diff --git a/05.md b/05.md index 4f258a1..7872578 100644 --- a/05.md +++ b/05.md @@ -44,7 +44,7 @@ На каждом этапе, если пакет не удовлетворяет условиям для дальнейшей обработки, он **прозрачно возвращается** через парный интерфейс обратно в сеть оператора — как будто фильтра в тракте нет. -Важно понимать, что даже самая первая проверка (является ли пакет IP-пакетом) выполняется **программным ядром фильтра** — процессом EcoNAT. Если «мозг» фильтра не работает (процесс завис или перегружен), даже эта простейшая проверка не будет пройдена, и keep-alive пакеты от балансировщика не вернутся. Именно поэтому keep-alive пакеты балансировщика проверяют не только физическую связность канала, но и работоспособность процесса обработки на фильтре (подробнее — в [разделе 4.6.1](04.md)). +Важно понимать, что даже самая первая проверка (является ли пакет IP-пакетом) выполняется **программным ядром фильтра** — процессом EcoNAT. Если «мозг» фильтра не работает (процесс завис или перегружен), даже эта простейшая проверка не будет пройдена, и keep-alive пакеты от балансировщика не вернутся. Именно поэтому keep-alive пакеты балансировщика проверяют не только физическую связность канала, но и работоспособность процесса обработки на фильтре (подробнее — в [разделе 4.6.1](04.md#461-keep-alive-пакеты-к-фильтрам)). ### 5.1.1. Проверка: IP-пакет или нет diff --git a/06.md b/06.md new file mode 100644 index 0000000..c2414bd --- /dev/null +++ b/06.md @@ -0,0 +1,161 @@ +# 6. Места установки ТСПУ в сети оператора + +[← Оглавление](README.md) · [← Раздел 5: Фильтр](05.md) + +--- + +ТСПУ устанавливается **в разрыв каналов связи** оператора и может располагаться в нескольких различных точках его сети. Выбор точки установки влияет на тип трафика, который проходит через ТСПУ, на возможности диагностики и на общую нагрузку на оборудование. + +Если рассматривать сеть оператора связи от абонентов в сторону выхода в интернет, можно выделить три основных места установки, а также особый режим подключения — on-a-stick. + +```text + Абоненты + │ + │ ← (1) До BRAS: PPPoE-трафик + │ + ┌───┴───┐ + │ BRAS │ (BPE / BNG / GGSN / PGW) + └───┬───┘ + │ + │ ← (2) До CGNAT: серые IP, наиболее удобная точка + │ + ┌───┴───┐ + │ CGNAT │ + └───┬───┘ + │ + │ ← (3) После CGNAT: только белые IP + │ + Интернет +``` + +Каждая точка имеет свои особенности с точки зрения инкапсуляции трафика и возможностей траблшутинга. Некоторые точки более предпочтительны, другие — менее, но все они допустимы для установки ТСПУ. + +Инкапсуляция на стыке оператора, в разрыв которого встаёт ТСПУ, зависит от технологий конкретного оператора и от места установки в его сети. Это могут быть чистые IP-пакеты, пакеты с VLAN-тегами (одним или двумя — QinQ), пакеты с MPLS-метками, PPPoE-пакеты и различные комбинации. ТСПУ должно уметь разбираться со всеми этими заголовками, чтобы добраться до IP-трафика и выполнить его обработку. + +## 6.1. До BRAS/BPE/BNG (между абонентами и терминацией сессий) + +Первая возможная точка установки — **между абонентами и устройствами терминации абонентских сессий**. Такими устройствами могут быть: + +| Тип сети | Устройства терминации сессий | +| -------------------- | ------------------------------------ | +| **Широкополосный доступ** | BRAS, BPE, BNG | +| **Мобильные сети** | GGSN, PGW | + +Все эти устройства выполняют одну функцию — **терминируют абонентские сессии**. В дальнейшем они обобщённо именуются «BRAS» (условный BRAS). + +При установке в этой точке ТСПУ располагается максимально близко к абонентам — до того, как трафик пройдёт через какую-либо обработку на стороне оператора. + +### 6.1.1. Особенность: PPPoE-трафик + +Основная особенность установки **до BRAS** — наличие **PPPoE-трафика**. Широкополосные абоненты подключаются к BRAS по протоколу PPPoE, и этот трафик представляет собой дополнительный уровень инкапсуляции, который необходимо обрабатывать. + +Важно: PPPoE-трафик существует **только на участке до BRAS**. Выше BRAS (то есть ближе к интернету) PPPoE-трафика в нормально функционирующих сетях не бывает — BRAS терминирует PPPoE-сессии и дальше передаёт обычные IP-пакеты. + +Наличие PPPoE не является критической проблемой — фильтры умеют работать с этой инкапсуляцией. Однако это дополнительная сложность, которую необходимо учитывать при настройке. Параметр **VLAN Mode** на фильтрах должен быть установлен в **QinQ**, чтобы обеспечить корректный поиск IP-заголовка внутри PPPoE-инкапсуляции (подробнее — в [разделе 5.1.1](05.md)). + +## 6.2. До CGNAT (после BRAS) — наиболее удобная точка + +Вторая точка установки — **между BRAS и CGNAT**. На этом участке BRAS уже терминировал абонентские сессии, но трафик ещё не прошёл трансляцию адресов (NAT). + +Это, вероятно, **наиболее удобная точка** для установки ТСПУ по двум причинам: + +1. **Отсутствие PPPoE** — трафик PPPoE уже терминирован на BRAS, что означает меньшее количество заголовков инкапсуляции для обработки; +2. **Видимость абонентских адресов** — серые (частные) IP-адреса абонентов ещё не прошли через NAT-трансляцию и доступны для анализа. + +### 6.2.1. Видимость серых абонентских IP-адресов + +На участке до CGNAT фильтры ТСПУ видят **серые** (частные) IP-адреса абонентов — те самые адреса, которые непосредственно назначены абонентским устройствам. Это даёт существенные преимущества при диагностике: + +- Можно найти сессию **конкретного абонента** на фильтрах по его IP-адресу; +- Можно определить, что именно происходит с трафиком данного абонента; +- Можно исключить конкретного абонента из обработки DPI-листом (через параметр **No IP**) для диагностики проблем. + +Эта возможность особенно ценна при траблшутинге — прямая связь между физическим абонентом и его сессиями на ТСПУ значительно ускоряет поиск и устранение проблем. + +## 6.3. После CGNAT (ближе к выходу в интернет) + +Третья точка установки — **после CGNAT**, ближе к выходу в общую сеть интернет. На этом участке трафик уже прошёл трансляцию адресов. + +### 6.3.1. Только белые адреса, сложности траблшутинга + +После CGNAT серых абонентских адресов **больше не видно** — на фильтрах ТСПУ будут присутствовать только **белые** (публичные) IP-адреса из NAT-пула оператора. + +Это создаёт существенное неудобство при траблшутинге: + +- **Невозможно напрямую связать** конкретного физического абонента с его сессией на ТСПУ — адрес источника в пакете является транслированным (белым), а не оригинальным (серым) адресом абонента; +- Для идентификации абонента необходимо **взаимодействовать с оператором** — запрашивать у него информацию о том, в какие порты и IP-адреса был транслирован конкретный абонент на CGNAT; +- Процесс диагностики становится **значительно более длительным** и требует координации между командой ТСПУ и оператором связи. + +С точки зрения самой фильтрации (блокировки, распознавания протоколов) размещение после CGNAT не вносит каких-либо ограничений — функциональность ТСПУ остаётся полной. Неудобство касается исключительно диагностики и траблшутинга. + +> **Примечание:** в ряде случаев подсистемы BRAS и CGNAT могут быть **совмещены в одном устройстве**. В этом случае участок «между BRAS и CGNAT» (наиболее удобная точка установки) попросту отсутствует — ТСПУ может быть установлено либо до этого комбинированного устройства, либо после него. + +## 6.4. Режим On-a-stick (BRAS/CGNAT подключены петлёй) + +Помимо трёх линейных точек установки, существует особый вариант размещения ТСПУ — когда сервисное оборудование оператора (BRAS и/или CGNAT) подключено **в режиме on-a-stick** (петлёй). + +В режиме on-a-stick BRAS или CGNAT подключается к оператору **одним агрегированным каналом**, через который трафик уходит к устройству и возвращается обратно. Если ТСПУ установлено на этом участке, трафик **проходит через него дважды**. + +```text + Абоненты Интернет + │ │ + │ ┌────────────┐ │ + └─────────┤ ТСПУ ├──────────────────────┘ + └──────┬─────┘ + │ ↕ (трафик проходит дважды) + ┌──────┴─────┐ + │BRAS / CGNAT│ + │(on-a-stick)│ + └────────────┘ +``` + +Возможны три варианта подключения on-a-stick: + +| Вариант | Что проходит через ТСПУ дважды | +| -------------------------- | ----------------------------------------------------------- | +| **BRAS on-a-stick** | Трафик до BRAS + трафик после BRAS (сегменты 1 + 2) | +| **CGNAT on-a-stick** | Трафик до CGNAT + трафик после CGNAT (сегменты 2 + 3) | +| **BRAS + CGNAT on-a-stick**| Трафик до обоих устройств + трафик после обоих (сегменты 1 + 3) | + +### 6.4.1. Двойное прохождение трафика через ТСПУ + +При подключении on-a-stick трафик проходит через ТСПУ **дважды**: + +1. **Первый проход** — трафик от абонентов идёт через ТСПУ к BRAS/CGNAT; +2. **Второй проход** — после обработки на BRAS/CGNAT трафик возвращается через ТСПУ в сторону интернета (или обратно к абонентам — в зависимости от направления). + +Это означает, что каждая абонентская сессия потенциально **видна фильтрам дважды**, причём на втором проходе адреса могут быть уже другими (после NAT-трансляции на CGNAT). Без дополнительных мер это приводит к удвоению количества сессий и удвоению нагрузки на ТСПУ. + +### 6.4.2. Разделение по VLAN для обработки трафика одного направления + +**Наиболее удобная конфигурация** при подключении on-a-stick — когда оператор чётко разделяет трафик по VLAN: + +- **Один VLAN** несёт трафик **до** BRAS/CGNAT (от абонентов к сервисному оборудованию); +- **Другой VLAN** несёт трафик **после** BRAS/CGNAT (от сервисного оборудования в сторону интернета). + +В этом случае на ТСПУ можно настроить обработку **только нужного VLAN** (например, трафика до CGNAT, где видны серые абонентские адреса), а второй VLAN — **прозрачно пропустить** на уровне балансировщика, даже не отправляя его на фильтры. + +Это достигается через **flow rules** балансировщика (подробнее — в [разделе 4.4](04.md)): + +- Правило с действием `balancing` — для VLAN, который нужно обрабатывать (трафик отправляется на фильтры); +- Правило с действием `bypass` — для VLAN, который нужно пропустить (трафик прозрачно проходит через балансировщик). + +В результате фильтры обрабатывают трафик **только один раз**, каждый абонент виден единожды, путаницы с сессиями не возникает. + +### 6.4.3. Проблемы двойной обработки и best practice + +Если оператор **не может** чётко отделить трафик до и после BRAS/CGNAT (например, оба направления идут в одном VLAN), возникает ситуация **двойной обработки**. Её последствия: + +- **Удвоение количества сессий** — одна и та же абонентская сессия видна фильтру дважды, причём с разными IP-адресами (до и после NAT-трансляции); +- **Путаница при траблшутинге** — сложно определить, какая из двух записей сессии соответствует реальному состоянию; +- **Двойная нагрузка на ТСПУ** — запас производительности должен быть рассчитан исходя из удвоенного объёма трафика. + +Эта ситуация **нежелательна** и её следует избегать при проектировании. В лучшем варианте необходимо добиться от оператора информации о разделении трафика по VLAN и выбрать для обработки только нужное направление. + +> **Пример из практики:** на пилотном проекте (Урал) один из операторов подключён по принципу on-a-stick к CGNAT (сегменты 2 + 3 на схеме). Оператор предоставил информацию о том, какие VLAN несут трафик до CGNAT, а какие — после. На балансировщике были отобраны только нужные VLAN и отправлены на фильтры. В результате фильтры видят нормальные абонентские сессии до CGNAT (с серыми адресами) и не обрабатывают транслированный трафик после CGNAT. Это — **best practice** подключения on-a-stick. + +Возможен и **обратный подход**: вместо явного указания обрабатываемых VLAN можно исключить ненужные VLAN из обработки, а всё остальное — обрабатывать. Выбор подхода — вопрос удобства настройки для конкретной площадки. + +--- + +[← Оглавление](README.md) · [← Раздел 5: Фильтр](05.md) · [Раздел 7: Эшелонированная система →](07.md) diff --git a/README.md b/README.md index bf3aeb2..47792d1 100644 --- a/README.md +++ b/README.md @@ -66,7 +66,7 @@ - 5.1.5. Решение: пропустить или заблокировать (drop) - 5.2. Работа на уровне L2: фильтр как «прозрачный провод» -### 6. Места установки ТСПУ в сети оператора +### [6. Места установки ТСПУ в сети оператора](/06.md) - 6.1. До BRAS/BPE/BNG (между абонентами и терминацией сессий) - 6.1.1. Особенность: PPPoE-трафик