[personal profile] klink0v

Очередные увлекательные эротические приключения с индийской кривой сетевой псевдожелезкой под названием "Juniper SRX".

В энный раз на игрековой технической площадке меня достали всякие скрипткиддисы и прочие порт-сканеры. Всё бы ничего, но когда они "идут" по всему диапазону ASки, Juniper начинает генерировать ARP-запросы к хостам, которых нет. Потом он решает, что этих ARP-запросов как-то зело много, включает троттлинг, перестаёт откликаться на ARP от BGP-соседа и тем самым начинает терять полезный коммерческий трафик. Подход дебильный сам по себе, но ничего не поделаешь.

Тогда я озаботился тем, чтобы сформировать "белые списки" (скоро будет ругательством) из хостов, реально присутствующих в моей ASке. А заодно чётко перечислить весь полезный трафик, а остальной отфильтровать на "низкоуровневом" stateless-файрволле (pfe) чтобы не допускать всякий мусор до stateful-полисира и тем самым повысить живучесть этого несчастного ждунипера при всевозможных сканированиях и DDoS-атаках.

Штош, сказано — сделано. Перечень полезной нагрузки составлен, правила написаны. И всё было бы хорошо, но помимо прочего в списки затесалась парочка GRE-тоннелей. А GRE-тоннель по мнению жуниперов — это что особенное, сакральное, и общим правилам ни фига не подчиняющееся.

Я пошел "в лоб". Source IP такой-то, Destination IP такой-то (мой собственный), протокол GRE, действие "разрешить". Всё остальное запретить. Применяю набор правил на "внешний железный" интерфейс, направление "только на вход" (input). И всё падает. Протираю очки глаза, дважды всё перепроверяю. Снова применяю. Снова всё падает.

Дальше я стал размышлять в сторону маршрутизации. Потому что тот Juniper SRX у меня разбит на несколько Virtual Routers, ибо через те самые GRE-тоннели проложены маршруты по умолчанию для некоторых сервисов. А у GRE и с этим приколы, кому интересно можете посмотреть в документации и другие гневные посты. Была версия, что при "accept" входящий пакет в какой-то "не тот" routing instance приземляется. Но она разбилась об то, что accept "на весь GRE" без указания Source Address вполне себе отрабатывает. А вот если определить SRC IP, то уже нет.

Долго мучался. Благо, у меня дома есть Juniper SRX точно такой же линейки. Прикупил как раз для таких вот опытов. Стал ковырять. И выяснил прекрасное.

Исходящий GRE-пакет тоже попадает под критерий "input" внешнего физического сетевого интерфейса. Да-да. Исходящий. Уже "упакованный" (после инкапсуляции). Тот который готовится уйти внаружу. В input. На внешний железный интерфейс. Именно так.

Моя реакция ожидаема: сссссууууккккааааа!!!! Нигде в документации про это не сказано. Вообще нигде. Как я должен был про такое догадаться? И такое бл****во наблюдается только для GRE. С тем же IPSec-ом, например, вопросов нет; оный отрабатывает обычным ожидаемым образом: ESP ушел в output, ESP пришел в input.

В итоге добавил "зеркальное" разрешающее правило в общий набор, в тот же самый "input", и всё стало хорошо. Но как бычно, цензурных слов у меня нет, один мат.

Где логика? Где справедливость?

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

Sergeich

April 2026

S M T W T F S
    123 4
5 67 8 91011
12 131415161718
1920 2122232425
2627282930  

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Apr. 26th, 2026 08:34 pm
Powered by Dreamwidth Studios