# 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)
