Files
tspu-docs/chapters/16.md
Daniel Lavrushin 10fb7f4e18 Добавлены новые разделы:
- Раздел 22: Балансировщик: мониторинг и диагностика
- Раздел 23: Распознавание протоколов (DPI Engine)
- Раздел 24: Траблшутинг

Каждый раздел включает команды, описания и практические примеры для диагностики и мониторинга работы балансировщика и системы фильтрации.
2026-02-20 13:59:30 +01:00

199 lines
14 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.
# 16. Фильтр: ACL и пулы — запуск трафика на обработку
[← Оглавление](../README.md) · [← Раздел 15: Фильтр: настройка интерфейсов и общих параметров](15.md)
---
Чтобы фильтр начал обрабатывать трафик, необходимо выполнить два действия: **создать пул** и **привязать к нему ACL**. Без этих настроек — какие бы DPI-листы ни были сконфигурированы — весь трафик будет прозрачно пропускаться через устройство без какой-либо обработки.
Это одна из ключевых стадий в пути прохождения пакета через фильтр (подробнее — в [разделе 5.1](05.md)): IP-пакет должен попасть в ACL и в пул, чтобы далее передаваться на обработку движком DPI.
> **Важно:** при заводской (дефолтной) конфигурации фильтра пулы и ACL **отсутствуют**. Их необходимо создать вручную при первоначальной настройке.
## 16.1. Создание ACL: `create acl`, правила (allow/deny), протоколы, source/destination, VLAN
ACL (Access Control List) — это набор правил, определяющих, какой трафик подлежит обработке. Изначально на фильтре нет ни одного ACL — его нужно создать.
### Создание и переход в ACL
| Действие | Команда | Пример |
| ---------------------- | ------------------------------ | ------------------------- |
| Создать ACL | `create acl <имя>` | `create acl aclfake` |
| Перейти в ACL | `go to acl<имя>` | `go to aclaclfake` |
| Удалить ACL | `no acl <имя>` | `no acl aclfake` |
> **Обратите внимание:** команда перехода `go to acl<имя>` пишется **слитно** — `aclaclfake`, а не `acl aclfake`. Здесь `acl` — это часть пути, а `aclfake` — название списка.
### Создание правил
Внутри ACL создаются правила, каждое из которых определяет, какой трафик разрешить (`allow`) или запретить (`deny`) для обработки:
```text
<номер> allow|deny <протокол> <source> <destination> [vlan <N>|<N-M>]
```
Структура правила:
| Элемент | Описание | Примеры |
| ---------------- | ---------------------------------------------------------------- | ------------------------------ |
| **Номер** | Порядковый номер правила (рекомендуется с зазором: 10, 20, 30) | `10`, `20`, `30` |
| **Действие** | `allow` (или `permit`) / `deny` — разрешить или запретить | `allow`, `deny` |
| **Протокол** | IP, TCP, UDP, ICMP и др. | `ip`, `tcp`, `udp` |
| **Source** | Источник: хост, подсеть или `any` (любой) | `any`, `10.0.0.0/8`, `host 1.2.3.4` |
| **Destination** | Назначение: хост, подсеть или `any` | `any`, `192.168.0.0/16` |
| **VLAN** | Номер или диапазон VLAN (необязательно) | `vlan 100`, `vlan 100-200` |
Ключевые слова `allow` и `permit`**синонимы**, можно использовать любое из них.
### Поведение VLAN по умолчанию
Если номер VLAN **не указан**, правило автоматически применяется ко **всем VLAN** (04095). Это поведение по умолчанию подходит для большинства сценариев в проекте ТСПУ.
При необходимости можно указать:
- конкретный VLAN: `vlan 100`
- диапазон VLAN: `vlan 100-200`
### Управление правилами
| Действие | Команда |
| --------------------- | ------------------------ |
| Удалить правило | `no <номер>` |
| Просмотреть ACL | `ls` (в контексте ACL) |
Номера правил рекомендуется задавать **с зазором** (10, 20, 30...) — это позволяет вставлять новые правила между существующими без перенумерации.
### Типовой ACL для проекта ТСПУ
В проекте ТСПУ, как правило, используется простейший ACL, пропускающий весь IP-трафик на обработку:
```text
create acl aclfake
go to aclaclfake
10 allow ip any any
apply
```
Правила обрабатываются **по порядку номеров** — первое совпавшее правило определяет судьбу пакета. Это аналогично работе ACL на маршрутизаторах: если пакет совпал с правилом `allow`, он направляется в пул; если с правилом `deny` — прозрачно пропускается мимо пула.
## 16.2. Создание пула: `create pool`, тип = fake (без NAT)
Пул — логическая сущность, в которую попадает трафик, отобранный ACL, для дальнейшей обработки. В проекте ТСПУ тип пула **всегда** должен быть **fake**.
### Создание пула
```text
create pool poolfake
go to poolpoolfake
```
### Тип пула: fake
| Тип пула | Описание | Применение в ТСПУ |
| ---------- | ----------------------------------------------------------- | ------------------ |
| **fake** | «Фейковый» пул — трансляция адресов не выполняется: что пришло, то и ушло | **Всегда** |
| Другие типы | Реальная трансляция адресов (NAT) | Не используется |
Тип `fake` означает, что фильтр **не изменяет** IP-адреса в проходящих пакетах. Это наследие CGNAT-платформы: механизм пулов изначально создавался для трансляции адресов, но в проекте ТСПУ трансляция не нужна. Тем не менее пул **должен быть создан** — без него трафик не попадёт на обработку DPI.
### Минимальные настройки пула
| Параметр | Значение | Описание |
| ----------- | ------------- | --------------------------------------- |
| **type** | `fake` | Тип пула — без трансляции адресов |
| **enable** | Включён | Пул должен быть активен |
| **acl** | `<имя ACL>` | Привязка ACL к пулу |
Этих трёх настроек **достаточно** для запуска трафика на обработку.
## 16.3. Привязка ACL к пулу
Привязка ACL к пулу выполняется командой `acl` внутри контекста пула:
```text
go to poolpoolfake
acl aclfake
type fake
enable
apply
```
Именно привязка ACL к пулу определяет, **какой именно трафик** будет попадать на обработку DPI. Без привязанного ACL пул не будет отбирать трафик, и обработка не начнётся.
Полная последовательность создания минимальной рабочей конфигурации:
```text
# 1. Создаём ACL
create acl aclfake
go to aclaclfake
10 allow ip any any
exit
# 2. Создаём пул и привязываем ACL
create pool poolfake
go to poolpoolfake
type fake
acl aclfake
enable
exit
# 3. Применяем и сохраняем
apply
wr
```
## 16.4. Приоритет пулов
При наличии нескольких пулов на фильтре трафик может совпасть с ACL **разных пулов**. В этом случае пакет попадёт в пул с **наивысшим приоритетом**.
| Параметр | Описание |
| ------------- | ----------------------------------------------------------- |
| **priority** | Числовое значение приоритета пула (чем выше — тем приоритетнее) |
На практике в проекте ТСПУ обычно используется **один пул**, поэтому настройка приоритета, как правило, не требуется. Однако при необходимости разделения трафика на разные пулы (например, для разных DPI-листов или разных политик обработки) приоритеты позволяют контролировать порядок отбора.
## 16.5. Connection logging в пуле
Параметр **connection log** в пуле управляет журналированием соединений (NAT translation log) — записью информации о каждой создаваемой сессии: какой абонент, на какой ресурс, по какому порту обращался.
| Значение | Описание |
| -------- | ------------------------------------------------------- |
| **on** | Журналирование соединений для данного пула включено |
| **off** | Журналирование отключено |
По умолчанию connection logging **включён**. В проекте ТСПУ этот параметр может быть как задействован, так и не использоваться — зависит от конкретной площадки и требований DevOps-команды.
Помимо connection log, в пуле присутствуют:
- **Тайм-ауты** — наследуются из секции `nat-defaults` при создании пула (подробнее — в [разделе 15.3](15.md)). При необходимости могут быть переопределены на уровне пула;
- **Ограничения на пользователей (limiter)** — актуальны только для NAT, в проекте ТСПУ **не используются**;
- **Параметр PIN** — по умолчанию включён, актуален для режима с трансляцией адресов. В проекте ТСПУ менять не требуется.
## 16.6. IPv6 в пуле
Поддержка IPv6 в пуле настраивается аналогично глобальным настройкам IPv6 (подробнее — в [разделе 15.4](15.md)):
| Параметр | Описание |
| --------------------- | ------------------------------------------------------------ |
| **Enable/disable** | Включение или выключение обработки IPv6-трафика в данном пуле |
| **Тайм-ауты** | Отдельные тайм-ауты для IPv6-сессий (можно не менять) |
| **Диапазон адресов** | Список IPv6-адресов и VLAN для обработки |
В проекте ТСПУ IPv6 в пуле должен быть **включён**. По умолчанию в диапазон обработки включены **все IPv6-адреса во всех VLAN** — менять это значение, как правило, не требуется.
При необходимости можно:
- включить в обработку только конкретные диапазоны IPv6-адресов;
- исключить определённые диапазоны из обработки;
- полностью отключить обработку IPv6-трафика в рамках данного пула.
---
### Диагностическая заметка: `show cps` показывает ноль
Если команда `show cps` показывает нулевое количество создаваемых сессий, одна из возможных причин — трафик **не попадает в пул**. Это может означать, что ACL не отбирает трафик: через фильтр могут идти гигабиты и десятки гигабит, но если пакеты не совпадают с правилами ACL привязанного пула, сессии создаваться не будут (подробнее — в [разделе 18.9](18.md)).
---
[← Оглавление](../README.md) · [← Раздел 15: Фильтр: настройка интерфейсов и общих параметров](15.md) · [Раздел 17: Фильтр: настройка DPI →](17.md)