From a4a7802ce8261f263ab2f282f4e7990bfcfcb15f Mon Sep 17 00:00:00 2001 From: Daniel Lavrushin Date: Fri, 20 Feb 2026 12:23:25 +0100 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=82=D1=80=D0=B5=D0=B4=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D1=8B=20=D0=B3=D1=80?= =?UTF-8?q?=D0=B0=D1=84=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=B5=20=D1=8D?= =?UTF-8?q?=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82=D1=8B=20=D0=B8=20=D1=82?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D1=82=D0=BE=D0=B2=D1=8B=D0=B5=20=D0=B1=D0=BB?= =?UTF-8?q?=D0=BE=D0=BA=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D1=83=D0=BB=D1=83?= =?UTF-8?q?=D1=87=D1=88=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=87=D0=B8=D1=82=D0=B0?= =?UTF-8?q?=D0=B5=D0=BC=D0=BE=D1=81=D1=82=D0=B8=20=D0=B2=20=D0=B4=D0=BE?= =?UTF-8?q?=D0=BA=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 01.md | 20 +++++++------- 02.md | 86 +++++++++++++++++++++++++++++------------------------------ 03.md | 44 +++++++++++++++--------------- 04.md | 34 +++++++++++------------ 05.md | 36 ++++++++++++------------- 06.md | 2 +- 6 files changed, 111 insertions(+), 111 deletions(-) diff --git a/01.md b/01.md index ff7adf7..b263b73 100644 --- a/01.md +++ b/01.md @@ -49,19 +49,19 @@ ```text Оборудование оператора - │ + │ ┌───────┴───────┐ - │ Байпасы │ ← защита каналов оператора + │ Байпасы │ ← защита каналов оператора └───────┬───────┘ - │ + │ ┌───────┴───────┐ - │Балансировщики │ ← распределение трафика + │Балансировщики │ ← распределение трафика └───────┬───────┘ - │ - ┌────────┼──────────┐ - │ │ │ - ┌───┴───┐ ┌─┴─────┐ ┌─┴─────┐ - │Фильтр │ │Фильтр │ │Фильтр │ ← анализ и фильтрация + │ + ┌─────────────┼─────────────┐ + │ │ │ + ┌───┴───┐ ┌───┴───┐ ┌───┴───┐ + │Фильтр │ │Фильтр │ │Фильтр │ ← анализ и фильтрация └───────┘ └───────┘ └───────┘ ────────────────────────────────────────── @@ -127,4 +127,4 @@ --- -[← Оглавление](README.md) · [Раздел 2: Прохождение трафика через ТСПУ →](02.md) +[← Оглавление](README.md) · [Раздел 2: Прохождение трафика через ТСПУ →](02-traffic-path.md) diff --git a/02.md b/02.md index ce5d611..cbfdf50 100644 --- a/02.md +++ b/02.md @@ -13,14 +13,14 @@ ```text Абонент → Интернет: ┌─────────────────────────────────────────────┐ -│ Source: local IP : local port │ -│ Destination: remote IP : remote port │ +│ Source: local IP : local port │ +│ Destination: remote IP : remote port │ └─────────────────────────────────────────────┘ Интернет → Абонент: ┌─────────────────────────────────────────────┐ -│ Source: remote IP : remote port │ -│ Destination: local IP : local port │ +│ Source: remote IP : remote port │ +│ Destination: local IP : local port │ └─────────────────────────────────────────────┘ ``` @@ -34,8 +34,8 @@ ```text ┌──────────┬─────────────────┬──────────────┬─────────┬──────┐ -│ Ethernet │ Доп. заголовки │ IP-заголовок │ TCP/UDP │ Data │ -│ заголовок │ (??? ) │ │ │ │ +│ Ethernet │ Доп. заголовки │ IP-заголовок│ TCP/UDP │ Data │ +│ заголовок│ (??? ) │ │ │ │ └──────────┴─────────────────┴──────────────┴─────────┴──────┘ ``` @@ -61,12 +61,12 @@ - **WAN-порты** — порты, смотрящие в сторону **интернета** (внешняя сторона). ```text - Абоненты Интернет - │ │ - ▼ ▼ - ┌──────────┐ ┌──────────┐ - │ LAN-порт │ ◄── ТСПУ ──► │ WAN-порт │ - └──────────┘ └──────────┘ + Абоненты Интернет + │ │ + ▼ ▼ + ┌──────────┐ ┌──────────┐ + │ LAN-порт │ ◄── ТСПУ ──► │ WAN-порт │ + └──────────┘ └──────────┘ ``` Эта идеология **прослеживается через всё оборудование ТСПУ** — от байпасов до балансировщиков и фильтров. Все порты на любом устройстве ТСПУ можно разделить на две группы: порты в сторону абонентов (LAN) и порты в сторону интернета (WAN). @@ -84,16 +84,16 @@ - **сегмент управления** — SPFS, СПХД, коммутатор, VPN-шлюз. ```text - Оборудование Оборудование - оператора оператора - (LAN) (WAN) - │ │ - │ ┌────────────┐ │ - └ ─┤ Байпас ├───┘ - └──────┬─────┘ - │ - ┌──────┴────┐ - │ Фильтр │ + Оборудование Оборудование + оператора оператора + (LAN) (WAN) + │ │ + │ ┌───────────┐ │ + └────┤ Байпас ├────┘ + └─────┬─────┘ + │ + ┌─────┴─────┐ + │ Фильтр │ └───────────┘ ───────────────────────────── @@ -114,15 +114,15 @@ ```text Оборудование оператора Оборудование оператора (сторона абонентов, LAN) (сторона интернета, WAN) - │ │ │ │ - │ Канал 1 │ │ Канал 1 │ + │ │ │ │ + │ Канал 1 │ │ Канал 1 │ ┌────┴───────────┴───┐ ┌────┴───────────┴───┐ - │ Байпас 1 │ │ Байпас 1 │ - │ Net0 Net1│ │ Mon0 Mon1 │ + │ Байпас 1 │ │ Байпас 1 │ + │ Net0 Net1│ │ Mon0 Mon1 │ └────┬───────────┬───┘ └────┬───────────┬───┘ - │ │ │ │ + │ │ │ │ ┌────┴───────────┴───────────────────┴───────────┴───┐ - │ Балансировщик │ + │ Балансировщик │ │ │ │ ┌─────────┐ ┌──────────────┐ ┌─────────────┐ │ │ │ Фильтры │ │ Группа │ │ Программный │ │ @@ -188,34 +188,34 @@ │ ▼ ┌──────────────────┐ Нет -│ IP-пакет? │──────────► Прозрачный пропуск +│ IP-пакет? │──────────► Прозрачный пропуск └────────┬─────────┘ │ Да ▼ ┌──────────────────┐ Нет -│ Попал в ACL? │──────────► Прозрачный пропуск -│ (привязка к │ -│ пулу) │ +│ Попал в ACL? │──────────► Прозрачный пропуск +│ (привязка к │ +│ пулу) │ └────────┬─────────┘ │ Да ▼ ┌──────────────────┐ Нет -│ Попал в │──────────► Прозрачный пропуск -│ DPI-лист? │ -│ (IP-подсети) │ +│ Попал в │──────────► Прозрачный пропуск +│ DPI-лист? │ +│ (IP-подсети) │ └────────┬─────────┘ │ Да ▼ ┌──────────────────┐ -│ Движок DPI │ -│ (анализ и │ -│ решение) │ +│ Движок DPI │ +│ (анализ и │ +│ решение) │ └────────┬─────────┘ - │ - ┌──────┴─────────┐ - ▼ ▼ - Пропустить Заблокировать - (drop) + │ + ┌────┴────┐ + ▼ ▼ + Пропустить Заблокировать + (drop) ``` 1. **Проверка: IP-пакет или нет.** Если пакет не является IP-пакетом (например, служебный keep-alive от балансировщика), он прозрачно пропускается через парный порт обратно в сеть оператора. diff --git a/03.md b/03.md index 4336aa4..08d76e9 100644 --- a/03.md +++ b/03.md @@ -32,22 +32,22 @@ ```text Оборудование Оборудование - оператора оператора - (сторона A) (сторона B) - │ │ - ▼ ▼ + оператора оператора + (сторона A) (сторона B) + │ │ + ▼ ▼ ┌──────────────────────────┐ - │ Байпас Silicom │ - │ │ - │ Net0 Net1 │ - │ │ │ │ - │ │ (логика │ │ - │ │ режимов) │ │ - │ │ │ │ - │ Mon0 Mon1 │ + │ Байпас Silicom │ + │ │ + │ Net0 Net1 │ + │ │ │ │ + │ │ (логика │ │ + │ │ режимов) │ │ + │ │ │ │ + │ Mon0 Mon1 │ └────┬──────────────────┬──┘ - │ │ - ▼ ▼ + │ │ + ▼ ▼ В сторону балансировщика ``` @@ -171,14 +171,14 @@ 4. Если пакет проходит — байпас считает канал исправным и продолжает работу в текущем режиме. ```text - Байпас Балансировщик - ┌─────────┐ ┌──────────────────┐ - │ │ heartbeat │ │ - │ Mon0 ─ ┼─────────────► прозрачный │ - │ │ │ пропуск │ - │ Mon1 ◄──┼──────────┤ │ - │ │ heartbeat │ │ - └─────────┘ └──────────────────┘ + Байпас Балансировщик + ┌─────────┐ ┌──────────────────┐ + │ │ heartbeat │ │ + │ Mon0 ─┼─────────────► прозрачный │ + │ │ │ пропуск │ + │ Mon1 ◄┼──────────────┤ │ + │ │ heartbeat │ │ + └─────────┘ └──────────────────┘ ``` Heartbeat-пакеты байпаса Silicom — это **не IP-пакеты**, а специальные служебные кадры (по умолчанию формат IPX). По запросу RDP.ru формат пакета был изменён на согласованный вариант, который прозрачно проходит через балансировщик и, при необходимости, через фильтр, не вызывая проблем с обработкой (фильтр пропускает не-IP-пакеты прозрачно). diff --git a/04.md b/04.md index dcd9b15..d04f6ef 100644 --- a/04.md +++ b/04.md @@ -46,23 +46,23 @@ Порты внутри каждой группы объединяются в **пары** LAN + WAN и далее — в логические сущности, называемые **линками**. ```text - Оборудование оператора (через байпасы) - │ │ │ │ - P42(L) P41(W) P10(L) P9(W) - └─────┬─────┘ └─────┬─────┘ - Линк 1 Линк 2 - (10G) (100G) - │ │ - ┌──── ──┴─────────────────────────┴──────────┐ - │ Балансировщик │ - │ │ - │ Flow rules → Balance Group │ - └───┬─────┬─────┬─────┬─────┬─────┬─────────┘ - P21(L) P22(W) P31(L) P32(W) P41(L) P42(W) - └──┬──┘ └──┬──┘ └──┬──┘ - Filter Group 1 Filter Group 2 Filter Group 3 - │ │ │ - Фильтр 1 Фильтр 2 Фильтр N + Оборудование оператора (через байпасы) + │ │ │ │ + P42(L) P41(W) P10(L) P9(W) + └─────┬─────┘ └─────┬─────┘ + Линк 1 Линк 2 + (10G) (100G) + │ │ + ┌───────────┴─────────────────────┴──────────┐ + │ Балансировщик │ + │ │ + │ Flow rules → Balance Group │ + └───┬─────┬─────┬──────────┬─────┬─────┬─────┘ + P21(L) P22(W) P31(L) P32(W) P41(L) P42(W) + └──┬──┘ └──┬──┘ └──┬──┘ + Filter Group 1 Filter Group 2 Filter Group 3 + │ │ │ + Фильтр 1 Фильтр 2 Фильтр N ``` ### 4.3.1. Принцип чётных/нечётных портов diff --git a/05.md b/05.md index 7872578..9a18a22 100644 --- a/05.md +++ b/05.md @@ -12,39 +12,39 @@ ```text Пакет от балансировщика - │ - ▼ + │ + ▼ ┌─────────────────────┐ - │ 1. IP-пакет или нет │ + │ 1. IP-пакет или нет │ └────────┬────────────┘ - │ Не IP → прозрачный пропуск ──► - ▼ + │ Не IP → прозрачный пропуск ──► + ▼ ┌─────────────────────┐ - │ 2. Проверка по ACL │ - │ (привязка к пулу) │ + │ 2. Проверка по ACL │ + │ (привязка к пулу) │ └────────┬────────────┘ - │ Не попал в ACL → прозрачный пропуск ──► - ▼ + │ Не попал в ACL → прозрачный пропуск ──► + ▼ ┌─────────────────────┐ │ 3. Проверка по │ │ DPI-листу (IP/сети) │ └────────┬────────────┘ - │ Не попал в DPI-лист → прозрачный пропуск ──► - ▼ + │ Не попал в DPI-лист → прозрачный пропуск ──► + ▼ ┌─────────────────────┐ - │ 4. Обработка │ - │ движком DPI │ + │ 4. Обработка │ + │ движком DPI │ └────────┬────────────┘ - │ - ┌────┴────┐ - ▼ ▼ + │ + ┌────┴────┐ + ▼ ▼ Пропустить Заблокировать - (pass) (drop) + (pass) (drop) ``` На каждом этапе, если пакет не удовлетворяет условиям для дальнейшей обработки, он **прозрачно возвращается** через парный интерфейс обратно в сеть оператора — как будто фильтра в тракте нет. -Важно понимать, что даже самая первая проверка (является ли пакет IP-пакетом) выполняется **программным ядром фильтра** — процессом EcoNAT. Если «мозг» фильтра не работает (процесс завис или перегружен), даже эта простейшая проверка не будет пройдена, и keep-alive пакеты от балансировщика не вернутся. Именно поэтому keep-alive пакеты балансировщика проверяют не только физическую связность канала, но и работоспособность процесса обработки на фильтре (подробнее — в [разделе 4.6.1](04.md#461-keep-alive-пакеты-к-фильтрам)). +Важно понимать, что даже самая первая проверка (является ли пакет IP-пакетом) выполняется **программным ядром фильтра** — процессом EcoNAT. Если «мозг» фильтра не работает (процесс завис или перегружен), даже эта простейшая проверка не будет пройдена, и keep-alive пакеты от балансировщика не вернутся. Именно поэтому keep-alive пакеты балансировщика проверяют не только физическую связность канала, но и работоспособность процесса обработки на фильтре (подробнее — в [разделе 4.6.1](04.md)). ### 5.1.1. Проверка: IP-пакет или нет diff --git a/06.md b/06.md index c2414bd..327a21b 100644 --- a/06.md +++ b/06.md @@ -14,7 +14,7 @@ │ ← (1) До BRAS: PPPoE-трафик │ ┌───┴───┐ - │ BRAS │ (BPE / BNG / GGSN / PGW) + │ BRAS │ (BPE / BNG / GGSN / PGW) └───┬───┘ │ │ ← (2) До CGNAT: серые IP, наиболее удобная точка