Жила себе ASA 5510, на которой крутились Site-to-Site VPN и офис. Между VPN и офисом была настроена маршрутизация. Крутилось все это под прошивкой из 8ой серии.
И решились мы ее перепрошить на 9.13. Перепрошивка прошла успешно, кроме одного нюанса — перестали ходить пинги между Site-to-Site VPN и офисом.
В итоге выяснилось, что перестали ходить только пинги. В остальном никаких изменений не произошло.
«Работает — и пусть работает, а на тестовом стенде мы разберемся почему» — решили мы.
Собрали стенд из Cisco ASA 5505 и Cisco 881 (в качестве принимающей стороны). Сконфигурили аналогичным образом.
Опуская все извращения — выяснилось, что компания Cisco решила сделать приоритетность выполнения правил НАТ. Зачем — это их дело. На данный момент статические наты должны быть описаны перед динамическими. Все статические, которые описаны ниже динамических, обрабатываться не будут.
В связи с этим мы получили такую веселую штуку, что правила:
nat (inside,outside) source dynamic inside-network interface nat (inside,outside) source static inside-network inside-network destination static Mount-IntraNET-VPN Mount-IntraNET-VPN no-proxy-arp route-lookup
не будут делать прямое перенаправление трафика, а будут его хитрым образом заворачивать в НАТ.
С другой стороны правила:
nat (inside,outside) source static inside-network inside-network destination static Mount-IntraNET-VPN Mount-IntraNET-VPN no-proxy-arp route-lookup
будут работать корректно.
Покопавшись в памяти, вспомнил, что товарищ знакомый недавно натыкался на такую же штуку. Ниже пример нерабочих и рабочих правил от него.
Нерабочий вариант:
nat (IN1,OUT) source static obj-fakeip obj-realip service obj-tcp-source-eq-20 obj-tcp-source-eq-20 nat (IN1,OUT) source dynamic obj-fakeip obj-realip nat (IN1,OUT) source static obj-fakeip obj-realip service obj-tcp-source-eq-21 obj-tcp-source-eq-21 nat (IN1,OUT) source static obj-fakeip obj-realip service obj-tcp-source-eq-22 obj-tcp-source-eq-2222
Рабочий вариант:
nat (IN1,OUT) source static obj-fakeip obj-realip service obj-tcp-source-eq-20 obj-tcp-source-eq-20 nat (IN1,OUT) source static obj-fakeip obj-realip service obj-tcp-source-eq-21 obj-tcp-source-eq-21 nat (IN1,OUT) source static obj-fakeip obj-realip service obj-tcp-source-eq-22 obj-tcp-source-eq-2222 nat (IN1,OUT) source dynamic obj-fakeip obj-realip