# 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 <протокол> [vlan |] ``` Структура правила: | Элемент | Описание | Примеры | | ---------------- | ---------------------------------------------------------------- | ------------------------------ | | **Номер** | Порядковый номер правила (рекомендуется с зазором: 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** (0–4095). Это поведение по умолчанию подходит для большинства сценариев в проекте ТСПУ. При необходимости можно указать: - конкретный 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)