Всё очевидное просто
Накопилось у меня тут всякого по поводу работы с SRX и думаю я, что пора бы это куда-то вылить, чтобы не забыть.
Работаю я с Juniper SRX плюс-минус полгода, за это время я успел накупить себе целых два SRX300 и один SRX320. Чуть позже мне достался в обслуживание SRX380 с 10G портами. Забавная штука, но обо всём по порядку.
Итак, что же такое juniper – это предприятие, которое ориентировано на оборудование для глобальных сетей. У него достаточно большое коммьюнити, но чтобы к нему примкнуть нужно либо заплатить бесконечное количество денег через неопределённых лиц, поскольку нормальных партнёров в прибалтике я так и не нашёл, либо страдать. Если у вас на руках есть железка купленная с рук или восстановленная – вы можете долго регистрироваться на сайте juniper, ругаться с их техподдержкой, но в конечном итоге вас завернут и сообщат – покупай честную железку или путешествуй. Соответственно ни обновлений, ни ответов на вопросы, ничего не получить из официальных источников.
Конечно же есть всякие обходные пути, которые позволяют получить пусть и не последние, но обновления для Juniper железок. (Например я нашёл tg канал, но чтобы подобрать правильный пароль от архива нужно сломать себе весь мозг и пальцы) Дополнительно, как недавно оказалось, на Reddit достаточно живое коммьюнити по Juniper, которое может давать вполне дельные ответы. В общем я уже и забыл даже, что существуют форумы и вот это вот всё, а тут вдруг такое открытие.
Первая, да и, пожалуй, основная проблема, с которой я столкнулся настраивая Juniper это группы безопасности (security groups). Суть этой запчасти в том, что мы можем настраивать внутри маршрутизатора зоны безопасности и правила, по которым либо пропускать траффик, либо отбрасывать. Приключения начинаются, когда ты настраиваешь что-то сложнее офисного интернета.
Практический пример – чтобы быть автономной системой в интернете требуется не менее двух соседей, которые будут дальше по цепочке транслировать остальным в интернете как до вас добраться. По логике вещей хочется, чтобы каждый партнёр обслуживался своим виртуальным маршрутизатором и это можно организовать – вы просто рассовываете их в конфигурации и полетели... До того момента, пока у вас не начнёт появляться асимметричный траффик (это когда от нас сообщения уходят через одного соседа, а возвращаются через другого) В этот момент SRX начинает сходить с ума со своими группами безопасности и весь обратный траффик просто отбрасывать. Я даже нашёл несколько статей по поводу того как это починить на сайте джунипера, но увы, это никак не помогло. В конечном итоге было принято решение сгрузить всех соседей в один инстанс виртуального роутера, что, впрочем, впоследствии упростило настройку других запчастей.
Второй замечательной проблемой, которая больше относится к неосведомлённости о настройке оборудования, чем к самому оборудованию, хотя с другой стороны производитель мог бы по умолчанию и не включать функционал, который его никто не просил включать. У Juniper SRX есть прекрасная вещь под название ALG (Application Layer Gateway). Суть этой вещи в том, что Juniper сам залезает внутрь траффика, определяет к какому протоколу он относится и уже по своим внутренним правилам устанавливает ограничения на различные аспекты (количество соединений, скорость передачи данные, максимальное количество пакетов в секунду и тому подобное) Так мы столкнулись с тем, что переключив SIP траффик внутрь своей автономки ALG ограничил нас 100 одновременными подключениями к телефонной станции, а все остальные он просто втихаря отбрасывал. В конечном итоге всё дошло до того, что сам SRX был переведён из flow-mode в packet-mode, что превратило железку в тупой маршрутизатор, отключив все защитные фишки ради которых он и брался.
Прошло время, я поигрался со стендами, понастраивал разные топологии и в какой-то момент включил обратно flow-mode, что привело к частичному отключению автономки, но впоследствии всё вернулось на круги своя и я наконец настроил огненную стену как требовалось.
Поскольку мы тут интегрируемся со всякими партнёрами – нам понадобилось поднять несколько IPSec (VPN) подключений, чтобы иметь возможность взаимодействовать с партнёрами. В целом ничего сложного. Организовываем отдельную группу безопаности, чтобы сегрегировать основной траффик автономки и gsm траффик для клиентов. Далее пытаемся настроить IPSec туннели, но они почему-то не поднимаются. Включаем debug логи и видим, что траффик с улицы приходит на Juniper, обрабатывается им, но при отправле оборудованием обратного траффика мы получаем странную ошибку: Can not send UDP datagram. В интернете этой ошибки нет от слова совсем, гугл ничего про неё не знает. И тут я открыл для себя reddit. После недолгого общения было сделано предположение, что интерфейс, на котором будет терменироваться IPSec должен быть в той же группе безопасности, в которой находятся интерфейсы с внешним траффиком.
Заводим lo0.0 интерфейс, вешаем на него /32 адрес, засовывем его в группу безопасности untrust к интерфейсам соседей и voila – траффик ходит, туннели устанавливаются, всё работает.
Единственная проблема, которая у меня сейчас осталась – Telia подаёт нам 1gbps интернет по оптике, попутно предоставив нам SFP модуль на 1 гигабит. В нашем SRX380 SFP+ порты, которые поддерживают 10 гигабит модули, но имеют возможность переключаться в скорость модуля (судя по документации). Вся проблема в том, что интерфейс в режим 1 гигабит не переходит от слова совсем, каких-то настроек, взятых с интернета, просто нет, какие-то не работают. В общем я пока так и не понял, как заставить SFP+ порт в SRX380 работать в режим 1 гигабит, соответственно пиринга с Телией опять нет, но это не конец. Я уже даже смотрю в сторону медиа конвертера, но прибалтика это прибалтика – только на заказ, доставка когда-нибудь и то не факт.