Похоже, что у Mikrotik-а появился достойный конкурент на звание самой ненавистной мной сетевой железки.
А началось всё с казалось бы, очень простой задачи. Жил-был IPSec-тоннель между Juniper SRX 345 и Cisco 2811. По некоторым не зависящим от меня причинам его потребовалось поменять на GRE / IPSec. Причём, прозрачно. То есть чтобы по возможности никто ничего не заметил.
Ну ладно. Чтобы не затронуть уже существующие тоннели, добавил на lo-интерфейс Juniper-а ещё один белый IPшник и начал колдовать.
Со стороны Cisco это проделывается элементарно.
Всё!
А вот со стороны Juniper-а начинаются грёбаные приседания и танцы с бубном.
Во-первых, SRX-серия в принципе не умеет IPSec в транспортном режиме. Только в тоннельном. Хотя, казалось бы, чего тут такого? Ну ладно, думаю, переживу. Ага, хрен там. Начал настраивать. Собственно, IPSec-составляющая сцепилась очень быстро. А потом я промудохался ещё полдня в бесплодных попытках выяснить, почему же IPSec есть, а пакетики не бегают.
Тут нужно сделать маленькое лирическое отступление. В Juniper-ах можно определять VPN либо как route-based, либо как policy-based. Я изначально пошел вторым путём. Не хотел совать в IPSec всё подряд, а только лишь один GRE, чтобы красивее было. Ну и для удобства последующей диагностики, ежели что. Бился-бился, ничего не выходит. А потом ещё раз внимательно перечитал документацию.
However, GRE over IPsec has a few limitations in Junos OS (flow mode):
The IPsec tunnel needs to be route based
Сука!!!11
Спрашивается, ну вот какого хрена???
И тут я сел на жопу. Если я начну прописывать статические маршруты в сторону "вражеской" циски, то под них неизбежно попадут и "старые" действующие тоннели тоже. Которые ожидаемо рухнут. Назначить циске еще один белый IP не могу, у меня их там больше нет. Разводить по разным routing instance? Ха-ха, мы это уже проходили.
Как же я счастлив, что мне ещё работать и работать с этим говном. Причем, по-видимому, довольно долго...