Продолжаю рубрику о ненависти к Juniper-ам.
Практика показала, что когда строишь тоннель между Juniper-ом и чем-то другим, то в случае попыток использования IKEv2 тебя ждут большие проблемы.
Самая мелкая из них заключается в том, что Juniper не даёт явно выставлять Pseudo-Random Function. Об этом я уже писал раньше.
Следующий прикол — разработчики софта традиционно по-разному трактуют RFC. А в IKEv2 появилась возможность делать как по принципу "одна SA — один тоннель", так и запихивать в рамки одной и той же SA несколько различных identities (грубо говоря, несколько маршрутов в одном тоннеле с одной SA). Так вот, иногда они не могут договориться: пруф 1, пруф 2. На практике это выглядит так, что тоннель поднимается только по запросу одной из сторон, а Juniper постоянно гадит в логи про то, что не может согласовать какие-то security associations (SA).
И самое мерзкое, с чем лично мне пришлось столкнуться — это конкретное такое "залипание" тоннелей на IKEv2. Настолько конкретное, что не спасают "clear security ike бла-бла-бла", "clear security ipsec бла-бла-бла" от слова "совсем". То есть формально Juniper показывает, что всё нормально, SPI меняются, но трафик не ходит. Помогает только деактивация проблемного traffic selector из конфига, выжидание 10 минут, потом активация обратно.
Короче говоря, между двумя Juniper-ами там особых проблем нет. А вот между какой-нибудь Cisco ASA и Juniper надо всё-таки брать IKEv1 и не вы**ываться.
Хотя, с другой стороны, мне известен как минимум один обратный кейс. Когда строили IPSec-тоннель между Juniper SRX и каким-то Huawei, то там было наоборот. IKEv1 не хотел подниматься из-за косяков в прошивке "хуявого", а вот IKEv2 таки взлетел.
Техника несовершенна. Но Juniper — это лютая попа-боль.