- Раздел 22: Балансировщик: мониторинг и диагностика - Раздел 23: Распознавание протоколов (DPI Engine) - Раздел 24: Траблшутинг Каждый раздел включает команды, описания и практические примеры для диагностики и мониторинга работы балансировщика и системы фильтрации.
199 lines
14 KiB
Markdown
199 lines
14 KiB
Markdown
# 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** (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)
|