... В процессе эксплуатации этого г...на под названием "Juniper SRX" эмпирическим путём я вывел для себя ещё несколько важных рекомендаций применительно к IPSec.
Если на железке терминируются IPSec-тоннели разных типов (статический, динамический, NAT-T, "обычные"), то под каждый из них нужно выделять отдельный локальный "честный" ("белый") IP-адрес. В общем случае их насчитывается четыре штуки: статический "честный", статический с NAT-T, динамический ("road warriors") "честный", динамический c NAT-T. Соответственно, лучше иметь четыре "белых" IP, каждый под своё. В официальной документации повесить все эти функции на один IP вовсе не возбраняется, но реально работать в таком случае оно будет через ж..у. Если кто не верит, то убедиться в этом можно только на долгой и суровой практике.
Касаемо "внутренних" концов тоннеля самым лучшим вариантом является присвоение отдельного IP-адреса на каждый ST-интерфейс (st0 unit X). Понятно, что если тоннелей много, то на "белых" IP-шниках разоришься, но никто не запрещает использовать серые. Терминировать "внутренние" концы тоннелей на lo-интерфейсе — крайне плохая идея. Это вам не Cisco ASA, привычные цискарям практики в Juniper-ах не канают. В противном случае будете получать разрывы тоннелей на ровном месте и/или при переключении аплинков / нод кластера.
Терминировать "внешние" концы тоннелей на lo-интерфейсе тоже сильно так себе ситуация, несет в себе кучу всевозможного геморроя. Но тут уж часто никуда не денешься, особенно если хочется указать адреса своей автономной системы, а не провайдерские. В идеальном мире стоит разносить по разным железкам BGP/маршрутизацию и IPSEC-терминацию. Но далеко не все и не всегда могут себе это позволить по деньгам, увы.
Самый лучший вариант для SRX-ов — это указывать в качестве proxy-identity ("криптодомен") сетки "0.0.0.0/0" с обеих сторон, а дальше разруливать статическими маршрутами и межзонными security-политиками. Но цискари "по ту сторону провода" такое ох как не любят. Во-первых, им разрывает все шаблоны; во вторых у них под такое обычно не заточены мозги, конфиги и стиль их написания. Хотя время от времени встречаются редкие исключения. С такими прям вот приятно иметь дело.
... Выдался какой-то очередной месячник идиотов. Когда-то давно построили IPSec-тоннель с одним из крупных банков, дык он раз в несколько дней стабильно рвется на 10 минут, потом сам поднимается. Затык явно в том, что с их стороны терминатор стоит за IPv4 NAT-ом. И когда наступает пора заново обменяться сеансовыми ключами, моя железка не может достучаться до них.
Первое, что я им посоветовал — вытащить их терминатор из-за NAT-а в белое адресное пространство. Встретил полнейшее непонимание и едкие насмешки. Мол, их "безопасники" говорят, что так низзя. Нибизапасно. Ну что ж, **итесь дальше, желаю удачи. Особенно доставила реплика с их стороны:
— Вы видели хоть где-то реализацию, где Интернет-канал подключается прямо в оборудование?
Ну да, конечно видел. У меня самого, например. А что, разве можно как-то по-другому? О боже, какой страх и ужас, включить интернет-канал прямо в оборудование. Оно же этого не переживет!
Тогда я им посоветовал увеличить время жизни UDP-сессий, чтобы он превышало интервал перегенерации ключей (rekey). В ответ получил:
— Чтобы у нас при любой атаке UDP ложилось все?
Как между собой связаны атаки и время жизни UDP-сессий я не понял, но переспрашивать не стал.
Я, конечно, покрутил у себя всякие там NAT Keepalive и Dead Peer Detection в настройках IPSec. Но реальность продемонстрировала, что оно всё как мёртвому припарки. Посмотрим что они там у себя дальше придумают, эти все "начальники отдела инфраструктуры управления телекоммуникаций ДИТ", тьфу блин.
... И вообще, по моей практике, чем более крупный и более "государственный" банк, тем более клинические дебилы там работают. Видимо, действует отрицательный естественный отбор. На днях еще один банк попросил поменять настройки IPSec-а потому что тоже решили спрятать свой IPSec-терминатор за NAT. Я вот не понимаю, им что, настолько скучно живется, что хочется новых проблем снова и снова? И что все эти "безопасники" собираются делать при переходе на IPv6? И откуда вообще повелась эта повсеместная дичь, что мол, если за NAT, то это "бизапасна"? Капец!
Ну ладно. Пишет мне этот красавец письмо типа "проверьте что у вас включен NAT-T, 32 мартобря мы переключимся на другую железку, никакие настройки менять не придется". Я ему в ответ: "Стопэ, дорогой! А как же IKE-ID? Он еще как поменяется, IP-адрес на интерфейсе-то будет другой, так что тоннель развалится". Он меня только подъ**нул в следующем письме, но как ни странно прислушался, хоть и не поверил.
Собственно, всё произошло ровно так, как я предполагал. Тоннель-то я с новыми настройками поднял, но чувак так и не извинился. Хотя, он всё равно молодец на общем фоне всепроникающей тотальной хронической тупизны и паранойи.
... Не покупайте Juniper SRX и не ходите работать в банки. Там полный тухляк.