# 15. Фильтр: настройка интерфейсов и общих параметров [← Оглавление](../README.md) · [← Раздел 14: Фильтр: конфигурация подсистем](14.md) --- ## 15.1. Интерфейсы: enable/disable, description (LACP не используется) Фильтр обрабатывает трафик на **уровне L2** — для внешнего наблюдателя устройство представляет собой «прозрачный провод». На пути прохождения трафика **нет L3-интерфейсов**. Если посмотреть на интерфейсы в операционной системе Linux (на которой основано устройство), виден **только management-интерфейс** — все остальные интерфейсы отданы под управление **DPDK** и обрабатываются специализированным программным обеспечением. Настройки интерфейсов для пропуска трафика **минимальны**: | Действие | Команда | | ------------------ | ------------------------------ | | Включить интерфейс | `enable` | | Выключить интерфейс| `disable` | | Задать описание | `description "текст"` | Лог-интерфейсы **жёстко привязаны** к конкретным физическим портам и не могут быть переназначены. В конфигурации могут присутствовать настройки протокола **LACP** — в проекте ТСПУ он **не используется**. Эти параметры существуют по умолчанию, их не нужно изменять или удалять. ## 15.2. NAT Defaults — общие параметры устройства Секция `nat-defaults` содержит общие параметры, влияющие на работу всего устройства. Название секции — наследие от CGNAT-платформы, однако параметры применяются ко всему функционалу фильтра, включая DPI. ### 15.2.1. VLAN Mode: untag / vlan / QinQ — глубина поиска IP-заголовка (всегда QinQ) Параметр **VLAN Mode** определяет, насколько глубоко фильтр ищет IP-заголовок внутри Ethernet-фрейма: | Значение | Поведение | Применение в ТСПУ | | ------------ | ----------------------------------------------------------------- | ------------------ | | **untag** | IP-заголовок ищется только в нетегированных фреймах. Пакеты с VLAN-тегами пропускаются прозрачно | Нет | | **vlan** | IP-заголовок ищется в пакетах без тегов и с одним VLAN-тегом | Нет | | **QinQ** | IP-заголовок ищется при любом количестве VLAN-тегов: 0, 1 или 2 | **Всегда** | В проекте ТСПУ параметр **всегда должен быть установлен в `QinQ`**. При любом другом значении часть трафика (с VLAN-тегами) будет **прозрачно пропускаться** без обработки, что недопустимо. ### 15.2.2. Sessions per Translation (по умолчанию 4096) Параметр задаёт **максимальное количество сессий** в рамках одной трансляции. Значение по умолчанию — **4096**. В проекте ТСПУ менять его не требуется — этого значения достаточно для всех сценариев. ### 15.2.3. Forward Traffic: всегда ON Параметр **Forward Traffic** управляет пересылкой трафика через устройство: | Значение | Поведение | | -------- | ------------------------------------------------------------ | | **on** | Трафик проходит через фильтр и отправляется дальше | | **off** | Трафик принимается, но не отправляется (режим зеркала) | В проекте ТСПУ параметр **всегда должен быть `on`** (значение по умолчанию). Режим `off` используется только при работе с зеркалированным трафиком, что в данном проекте не применяется. ### 15.2.4. L2 MTU: максимум 9216 (по RFC) Параметр **L2 MTU** определяет максимальный размер кадра на уровне L2. По умолчанию установлено значение **1522**. В проекте ТСПУ рекомендуется устанавливать **максимально возможное значение — 9216** (максимум по RFC). Это позволяет полностью исключить проблемы с MTU: ```text nat-defaults l2-mtu 9216 ``` На балансировщиках MTU на интерфейсах также выставляется в районе **9000**, что позволяет закрыть проблему MTU на всей цепочке оборудования ТСПУ. ### 15.2.5. LLDP: выключен (требование операторов — прозрачность) Протокол **LLDP** (Link Layer Discovery Protocol) на фильтрах **должен быть выключен**. Это сделано по требованию операторов связи, которые не хотят видеть оборудование ТСПУ в своей сети. Принцип прозрачности: оператор ожидает, что ТСПУ — это «невидимый провод». Если LLDP включён, устройство начинает анонсировать себя в сети оператора, что нарушает эту прозрачность. Например, МТС потребовал отключить LLDP, поскольку устройства ТСПУ появлялись на их схемах сети. ### 15.2.6. Permit Invalid Flow: всегда ON — приём TCP-сессий без SYN Параметр **Permit Invalid Flow** — один из **наиболее критичных** параметров конфигурации. Он **всегда должен быть включён** в проекте ТСПУ. **Что он делает:** | Значение | Поведение | | -------- | --------------------------------------------------------------- | | **off** | TCP-сессия заводится **только** по TCP SYN-пакету. Пакеты без SYN-флага дропаются | | **on** | TCP-сессия заводится по **любому** TCP-пакету, включая пакеты без SYN | **Почему `off` опасен в контексте ТСПУ:** 1. **Переключение режимов.** При переключении ТСПУ из режима байпаса обратно в рабочий режим (inline) на фильтры мгновенно поступает большой объём трафика — уже установленных TCP-сессий. SYN-пакеты для этих сессий давно прошли. Если `permit invalid flow` выключен, фильтр **дропнет** весь этот трафик. Для абонентов это означает, что **все их TCP-сессии** отвалятся по тайм-ауту и потребуют переустановки; 2. **Асимметричный трафик.** Если исходящий трафик уходит через один фильтр, а входящий приходит через другой — на одном из фильтров сессия не будет установлена (нет SYN-флага), и трафик будет дропаться. С этой проблемой сталкивались **неоднократно** на практике. ## 15.3. Тайм-ауты сессий и трансляций В секции `nat-defaults` также настраиваются **тайм-ауты** для сессий и трансляций (подробнее о сессиях и трансляциях — в [разделе 12](12.md)): - Тайм-ауты для **трансляций** и **сессий** задаются **раздельно**; - Параметры различаются по типу протокола (TCP, UDP, ICMP); - Значения в `nat-defaults` являются **значениями по умолчанию**, которые наследуются каждым создаваемым пулом; - При необходимости тайм-ауты могут быть **переопределены** на уровне конкретного пула. В секции также присутствует параметр **limiter** — ограничения на количество выделяемых портов для одного пользователя. Этот параметр актуален **только для NAT** и в проекте ТСПУ **не используется**. ## 15.4. IPv6: включение, диапазон адресов для обработки Поддержка IPv6 была добавлена в прошивку позднее основного функционала. Настройка расположена в отдельном разделе: | Параметр | Описание | | --------------------- | ------------------------------------------------------------ | | **Enable/disable** | Включение или выключение обработки IPv6-трафика | | **Тайм-ауты** | Отдельные тайм-ауты для IPv6-сессий (по умолчанию можно не менять) | | **Диапазон адресов** | Список IPv6-адресов и VLAN, которые будут обрабатываться | В проекте ТСПУ IPv6 должен быть **включён**. По умолчанию в диапазон обработки включены **все IPv6-адреса во всех VLAN** — менять это значение, как правило, не требуется. При необходимости можно: - **Включить** в обработку только конкретные диапазоны IPv6-адресов; - **Исключить** определённые диапазоны из обработки; - Полностью **отключить** обработку IPv6-трафика (тогда DPI-фильтрация по IPv6 выполняться не будет, трафик пройдёт прозрачно). --- [← Оглавление](../README.md) · [← Раздел 14: Фильтр: конфигурация подсистем](14.md) · [Раздел 16: Фильтр: ACL и пулы →](16.md)