Juniper SRX, Dual ISP and ICMP
... Фиг его уже знает какой по счёту ненависти ждуниперов псто.
Вводные данные.
Есть внутренняя сеть (LAN) с "серой" адресацией. Есть своя PI AS (provider-independent autonomous system). Есть Juniper SRX. Есть два аплинка (ISP), к которому он подключен. BGP там, все дела. Логически оба интерфейса аплинков находятся в одной и той же security zone. Хост из LAN идет внаружу (устанавливает сессию), на ждунипере происходит Source NAT на один из адресов AS-ки. Вроде ничего сверхъестественного.
Дальше возможны две ситуации.
- Ответный трафик приходит через тот же интерфейс, что и инициирующий.
- Ответный трафик приходит на интерфейс, отличный от интерфейса исходящего трафика.
Понятно, что заранее предсказать куда придет ответ, нельзя.
В ситуации "1" всё всегда нормально и вообще без каких-либо вопросов.
В ситуации "2" TCP и UDP отрабатывают нормально, а вот ICMP — индейская национальная хижина, то есть "фиг вам". В случае с "пингами" request-ы уходят, а вот respons-ы ждунипер уже не признает и, соответственно, дропает.
А всё почему? Потому что ждунипер в своём внутреннем представлении маркирует трафик по схеме "5-tuple", а у ICMP нет такой характеристики как "номер порта". И всё, приплыли. Трафик, пришедший на соседний интерфейс мы уже распознать категорически не могём.
"set security flow allow-embedded-icmp" делать пробовал, не помогло.
В официальной документации тоже ничего путного на тему нет. Там рассматриваются ситуации, когда интерфейсы аплинков находятся в разных security-зонах и/или разных routing instances. Или когда применяется destination nat. Но это всё не мои случаи. А вот про описанную мной пидерсию никаких упоминаний нет.
Можно, конечно, поступить очень просто: NATить не на адреса ASки, а на адреса аплинковых интерфейсов. Тогда ответ гарантированно придёт туда же, откуда ушел запрос. Но, к сожалению, тоже не годится: некоторые "вражеские" сервисы жёстко завязаны на source IP из диапазона моей ASки.
И вот что со всем этим делать, ни хрена не понятно. В Linux-е как-то всё сильно проще и предсказуемее.