| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| dpi:dpi_components:platform:vlan_traffic_handling [2026/06/03 12:28] – elena.krasnobryzh | dpi:dpi_components:platform:vlan_traffic_handling [2026/06/17 13:38] (текущий) – [Использование VLAN Rule в L2-балансировщике] elena.krasnobryzh |
|---|
| {{indexmenu_n>10}} | {{indexmenu_n>10}} |
| ======Обработка трафика по VLAN====== | ======Обработка трафика по VLAN====== |
| |
| <note warning>Данные ''vlan group'' перенесены из UDR в SDR. Глобальные правила для ''vlan drop'', ''vlan pass'', ''vlan hide'', ''vlan permit'', заданные прежней CLI-командой ''vlan group'', сконвертированы и перенесены из UDR в SDR c удалением из UDR.</note> | <note warning>Данные ''vlan group'' перенесены из UDR в SDR. Глобальные правила для ''vlan drop'', ''vlan pass'', ''vlan hide'', ''vlan permit'', заданные прежней CLI-командой ''vlan group'', сконвертированы и перенесены из UDR в SDR c удалением из UDR.</note> |
| | - Дроп трафика без анализа из конкретного VLAN:<code bash>fdpi_cli vlan rule add <id> perm drop</code> |
| | - Дроп трафика с предварительным анализом, но без передачи в статистике Netflow из конкретного VLAN (Используется для работы с асимметричным трафиком, когда на площадку подается дубль трафика с другой площадки. Необходимо провести анализ и дропнуть трафик, чтобы он не попал в статистику):<code bash>fdpi_cli vlan rule add <id> perm hide</code> |
| | - Пропуск трафика без какого-либо анализа из конкретного VLAN:<code bash>fdpi_cli vlan rule add <id> perm pass</code> |
| | - Вывод существующих настроек в UDR: <code bash>fdpi_cli vlan rule dump</code> Для вывода правил только определённого типа (например, только ''perm'') используется параметр ''[type]'': <code bash>fdpi_cli vlan rule dump perm</code> Пример вывода команды: <code bash># fdpi_cli vlan rule dump |
| | 1000 perm hide |
| | 2000 perm drop |
| | 3000 perm pass |
| | 4000 perm hide |
| | </code> В данном примере видно, что все протоколы, относящиеся к VLAN 1000 и 4000 попадают под влияние hide, то есть трафик с одной площадки дублируется на другую площадку; VLAN 2000 — трафик дропается, VLAN 3000 — трафик пропускается. |
| |
| - Дроп трафика без анализа из конкретного VLAN: <code bash>fdpi_cli vlan rule add <id> perm drop</code> | <note tip>Подробнее в разделе [[dpi:bras_bng:bras_pppoe#настройка_service-name_для_vlan|Настройка Service-Name для VLAN]]</note> |
| - Дроп трафика с предварительным анализом, но без передачи в статистике Netflow из конкретного VLAN (Используется для работы с асимметричным трафиком, когда на площадку подается дубль трафика с другой площадки. Необходимо провести анализ и дропнуть трафик, чтобы он не попал в статистику): <code bash>fdpi_cli vlan rule add <id> perm hide</code> | |
| - Пропуск трафика без какого-либо анализа из конкретного VLAN: <code bash>fdpi_cli vlan rule add <id> perm pass</code> | |
| - Вывод существующих настроек в SDR: <code bash>fdpi_cli vlan rule dump</code> | |
| | |
| =====Обновление CLI (vlan rule dump)===== | |
| | |
| Добавлена возможность фильтрации вывода по типу правил: | |
| | |
| Формат: | |
| <code bash>vlan rule dump [type]</code> | |
| | |
| ''type'' — тип правил: ''perm'', ''dhcp'', ''all'' (по умолчанию) | |
| | |
| Примеры: | |
| <code bash>vlan rule dump perm</code> | |
| <code bash>vlan rule dump dhcp</code> | |
| <code bash>vlan rule dump</code> | |
| |
| =====VLAN Rule===== | =====VLAN Rule===== |
| |
| VLAN Rule позволяет гибко управлять сетевым трафиком на уровне VLAN и QinQ, назначать определенные политики обработки пакетов для отдельных VLAN, диапазонов VLAN или QinQ-туннелей. | VLAN Rule позволяет гибко управлять сетевым трафиком на уровне VLAN и QinQ, назначать определенные политики обработки пакетов для отдельных VLAN, диапазонов VLAN или QinQ-туннелей. |
| |
| * не применяются услуги 9, 12, 15, 18, NAT, а также полисинг (общий и канальный); | * не применяются услуги 9, 12, 15, 18, NAT, а также полисинг (общий и канальный); |
| * пакет не записывается через ajb — в IPFIX, SIP, FTP и др. | * пакет не записывается через ajb — в IPFIX, SIP, FTP и др. |
| | * ''pppoe'' — управляет обработкой PPPoE-пакетов. Поддерживается фильтрация по Service-Name, в том числе для QinQ-туннелей. Доступны следующие действия: |
| ====PPPoE support (VLAN Rule)==== | * ''enable'' — разрешить обработку PPPoE. |
| Добавлена поддержка обработки PPPoE-трафика в правилах VLAN. | * ''drop'' — дропать пакеты PPPoE. |
| | * ''pass'' — пропустить пакеты PPPoE насквозь без обработки. |
| Правила PPPoE: | * ''delay N'' — устанавливать PPPoE-сессию с задержкой в N секунд (0 < N < 16).\\ Правила могут быть заданы как для всего PPPoE-трафика в диапазоне VLAN/QinQ, так и для конкретного Service-Name. |
| | |
| <code bash> | |
| vlan rule add <Range> pppoe [enable | drop | pass | delay N] | |
| </code> | |
| | |
| Правила PPPoE с фильтрацией Service-Name: | |
| | |
| <code bash> | |
| vlan rule add <Range> pppoe sname <Service-Name> [enable | drop | pass | delay N] | |
| </code> | |
| | |
| Разрешения: | |
| * ''enable'' — разрешена обработка PPPoE | |
| * ''drop'' — дропать PPPoE-пакеты | |
| * ''pass'' — пропускать PPPoE без обработки | |
| * ''delay N'' — устанавливать PPPoE-сессию с задержкой N секунд (0 < N < 16) | |
| |
| ====Синтаксис описания диапазонов VLAN/QinQ==== | ====Синтаксис описания диапазонов VLAN/QinQ==== |
| Правила применяются к диапазонам, которые задаются в следующем формате: | Правила применяются к диапазонам, которые задаются в следующем формате: |
| * Для одиночного VLAN: ''156'' | * Для одиночного VLAN: ''156'' |
| * Для диапазона VLAN: ''56-78'' | * Для диапазона VLAN: ''56-78'' (VLAN с 56 по 78 включительно) |
| * Для любого VLAN: ''*'' или ''any'' | * Для любого VLAN: ''*'' или ''any'' |
| * Для QinQ: | * Для QinQ: |
| * ''67.*'' или ''67.any'' — S-VLAN=67, любой C-VLAN | * ''67.*'' или ''67.any'' — S-VLAN=67, любой C-VLAN. |
| * ''*.68'' или ''any.68'' — любой S-VLAN, C-VLAN=68 | * ''*.68'' или ''any.68'' — любой S-VLAN, C-VLAN=68. |
| * ''*.*'' или ''any.any'' — любой QinQ | * ''*.*'' или ''any.any'' — любой QinQ. |
| * ''12-156.78-90'' — диапазон S-VLAN [12..156], диапазон C-VLAN [78..90] | * ''12-156.78-90'' — диапазон S-VLAN [12..156], диапазон C-VLAN [78..90]. |
| * ''609.1-199'' — S-VLAN=609, диапазон C-VLAN [1..199] | * ''609.1-199'' — S-VLAN=609, диапазон C-VLAN [1..199]. |
| <note important>Правила для обычных VLAN (''67'') и QinQ (''67.*'') являются независимыми и не пересекаются.</note> | <note important>Правила для обычных VLAN (''67'') и QinQ (''67.*'') являются независимыми и не пересекаются.</note> |
| | |
| | **Поддержка Service-Name для QinQ**\\ |
| | Правила с Service-Name корректно работают для QinQ: |
| | * Правила без селективности по CVLAN: ''SVLAN.*'' с указанием Service-Name и без него. |
| | * Полный QinQ (''SVLAN.CVLAN'') с селективностью по Service-Name. |
| |
| ====Приоритет правил==== | ====Приоритет правил==== |
| Если диапазоны нескольких правил пересекаются, система определяет итоговое действие по принципу "от общего к частному": | Если диапазоны нескольких правил пересекаются, система определяет итоговое действие по принципу "от общего к частному": |
| - Сначала применяются правила с самыми широкими диапазонами (например, 1-4095 или any.any) | - Сначала применяются правила с самыми широкими диапазонами (например, 1-4095 или any.any). |
| - Затем более узкие правила могут переопределить действие | - Затем правила с более узкими диапазонами (например, 100-200) могут переопределить действие, заданное общими правилами. |
| |
| **Пример:** | **Пример:**\\ |
| | Следующие правила создадут политику: "Запретить DHCP для всех VLAN в диапазоне 300-700, но разрешить его для VLAN 645 и диапазона 430-439". |
| <code bash> | <code bash> |
| vlan rule add 300-700 dhcp disable | vlan rule add 300-700 dhcp disable |
| |
| ====Управление==== | ====Управление==== |
| * ''vlan rule add'' — добавление нового правила в SDR | * ''vlan rule add'' — добавление нового правила в SDR.\\ Синтаксис для PPPoE: |
| * ''vlan rule modify'' — изменение существующего правила в SDR | * Добавление правила для всего PPPoE-трафика в диапазоне: <code bash>vlan rule add <Range> pppoe [enable | drop | pass | delay N]</code> |
| * ''vlan rule delete'' — удаление правила из SDR | * Добавление правила для конкретного Service-Name: <code bash>vlan rule add <Range> pppoe sname <Service-Name> [enable | drop | pass | delay N]</code> Здесь ''<Service-Name>'' — имя PPPoE Service-Name в одинарных или двойных кавычках (можно без кавычек, если является идентификатором: ''[a-zA-Z_][a-zA-Z_0-9]*''). |
| * ''vlan rule show'' — показывает все правила для указанного VLAN/QinQ | * ''vlan rule modify'' — изменение существующего правила в SDR (аналогичный синтаксис). |
| * ''vlan rule dump'' — выводит правила из SDR | * ''vlan rule delete'' — удаление правила из SDR. |
| * ''vlan rule purge vlan/qinq/all'' — очистка SDR VLAN/QinQ или обоих | * ''vlan rule show'' — показывает все правила для указанного VLAN/QinQ. В выводе отображаются не только общие действия для PPPoE, но и все разрешения для отдельных Service-Name. |
| * ''vlan rule apply'' — принудительное применение правил (не чаще 1 раза в минуту) | * ''vlan rule dump'' — выводит дамп всех правил в SDR. Для фильтрации вывода по типу правил используется параметр ''[type]'' (например, ''vlan rule dump perm''). |
| | * ''vlan rule purge vlan''/''qinq''/''all'' — очистка SDR VLAN/QinQ или обоих. |
| | * ''vlan rule apply'' — применение правил; по умолчанию правила применяются спустя 5 минут после последней модификации SDR. |
| | |
| | <note important>При использовании ''*'' в CLI для QinQ-диапазонов рекомендуется заключать выражение в кавычки (например, '' '*.68' '') или использовать ключевое слово ''any'' (например, ''any.68''), чтобы избежать некорректной интерпретации символа ''*'' оболочкой bash.</note> |
| | |
| | **Особенности применения изменений:** Изменения правил, внесенные командами ''add'', ''modify'' или ''delete'', сохраняются в SDR и автоматически применяются системой спустя 5 минут после последней модификации. Команда ''vlan rule apply'' позволяет применить их принудительно, но не чаще одного раза в минуту. |
| | |
| | ====Использование VLAN Rule в L2-балансировщике==== |
| | Правила VLAN также могут применяться компонентом **L2-балансировщик** для фильтрации пакетов. Это позволяет на этапе балансировки трафика отсеивать ненужные VLAN/QinQ до их попадания в основные обрабатывающие модули. |
| | |
| | **Пример:**\\ |
| | Требуется дропнуть трафик по номеру одиночного тега 133, а также по qinq S-tag 266.\\ Для этого выполнить команды: |
| | - Дроп трафика, тег которого равняется 133:<code bash>fdpi_cli vlan rule add 133 perm drop</code> Будет дропнут весь трафик, в котором есть одиночный тег 133 (трафик Q-in-Q не будет затронут) |
| | - Дроп трафика, Service-тег которого равняется 266: <code bash>fdpi_cli vlan rule add '266:*' perm drop</code> Будет дропнут весь трафик, в котором есть двойной тег, S-тег которого равняется 266 и любым C-тег (266:0-4095) |
| |
| <note important> | |
| При использовании ''*'' в CLI для QinQ-диапазонов рекомендуется заключать выражение в кавычки или использовать ''any''. | |
| </note> | |
| |
| **Особенности применения изменений:** изменения сохраняются в SDR и применяются автоматически спустя 5 минут после последней модификации. | |