Files
DanielLavrushin_tspu-docs/chapters/15.md
T
Daniel Lavrushin 2b5eaee2fb Refactor documentation for clarity and consistency
- Updated section 6.1 to clarify the handling of PPPoE encapsulation and filter settings.
- Revised section 8.1 to specify the use of a separate DPI list for protocol recognition.
- Changed references from PPPoE to IPoE in section 11 for accuracy.
- Corrected parameter names in CLI documentation in section 13 for consistency.
- Standardized naming conventions in section 15 for NAT defaults and VLAN modes.
- Clarified ACL processing order and behavior in section 16.
- Updated DPI module notes in section 17 to reflect changes in the number of DPI lists.
- Enhanced descriptions of DPI list behaviors in section 23 for better understanding.
2026-09-23 20:47:23 +02:00

124 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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: untagged / vlan / qinq — глубина поиска IP-заголовка (всегда qinq)
Параметр **VLAN Mode** (`vlan_mode`) определяет, насколько глубоко фильтр ищет IP-заголовок внутри Ethernet-фрейма:
| Значение | Поведение | Применение в ТСПУ |
| ------------ | ----------------------------------------------------------------- | ------------------ |
| **untagged** | 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
Параметр **L2 MTU** (`l2mtu`) определяет максимальный размер принимаемого Ethernet-кадра — с заголовками, но без контрольной суммы. По умолчанию установлено значение **1522** (в более поздних версиях ПО, по документации производителя, — 9216); максимально допустимое значение — 9692.
В проекте ТСПУ устанавливается значение **9216** — распространённый предельный размер jumbo-кадра у сетевого оборудования. Это позволяет полностью исключить проблемы с MTU:
```text
nat_defaults
l2mtu 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)