FlowSpec-правила

FlowSpec-правила — это механизм BGP Flow Specification для распространения фильтрационных политик на маршрутизаторы.

Область применения

FlowSpec-правила применяются для динамической фильтрации на уровне маршрутизаторов в ситуациях, когда требуется быстро ограничить, перенаправить или маркировать трафик без изменений в нижестоящих сервисах. Исполнение происходит на границе сети, до системы очистки; при DDoS-атаках правила позволяют отсечь вредоносный поток на входе и не допустить перегрузки очистителя.

В инфраструктурах без выделенного очистителя FlowSpec-правила выступают основным механизмом быстрой фильтрации. Также используются как дополнительный защитный слой: первичная отсечка нежелательного трафика выносится на вышестоящие BGP-маршрутизаторы, что разгружает внутренние узлы и каналы.

Добавление FlowSpec-правила

Для добавления нового правила в правой части интерфейса нажать серую кнопку «Добавить правило». Откроется редактор FlowSpec-правил, содержащий три блока: Название, Совпадение и Действие. В блоке Совпадение указываются условия отбора трафика, в блоке Действие — способ обработки трафика маршрутизатором. Для применения изменений нажать жёлтую кнопку Сохранить и применить.


Название

  • Допустимые символы: A–Z, 0–9, дефис -, подчёркивание _.
  • Рекомендуем давать правилам краткие и однозначные имена, отражающие их назначение. Примеры: udp-amp-auto, ipfrag-drop, invalid-ports

Совпадение

Совпадения — это набор технических условий, по которым маршрутизатор определяет, к какому трафику применять правило.

Для всех совпадений предусмотрена возможность включения флага NOT, реализованного в виде переключателя. NOT — логическое отрицание: при активации условие инвертируется, и правило срабатывает для всех значений, кроме указанного.

Исключения: для полей dst и src переключатель отсутствует — отрицание не поддерживается.

dst — IP назначения

Параметр Описание
Адрес Адрес назначения (IPv4/IPv6 в формате CIDR).

Если поле оставить пустым — правило используется как шаблон. Во время аномалии адрес назначения автоматически подставляется из события/счётчика.

src — IP источника

Параметр Описание
Адрес Адрес источника (IPv4/IPv6 в формате CIDR).

protocol — Протокол

Протокол Описание
TCP Протокол управления передачей (Transmission Control Protocol)
UDP Протокол пользовательских дейтаграмм (User Datagram Protocol)
ICMP Протокол управления интернет-сообщениями (Internet Control Message Protocol)
IGMP Управление членством в мультикаст-группах для IPv4
IP-in-IP Инкапсуляция IP-пакетов в IP (туннелирование без шифрования)
RSVP Резервирование сетевых ресурсов и сигнализация QoS
GRE Протокол инкапсуляции (Generic Routing Encapsulation)
OSPF Внутренний протокол маршрутизации (IGP) на основе состояния каналов
PIM Протокол независимой мультикаст-маршрутизации
SCTP Протокол управления потоками сообщений (Stream Control Transmission Protocol)

dport — Порт назначения

Параметр Описание
dport Порты назначения для сопоставления трафика.
Формат: значения и/или диапазоны 0–65535, через запятую.
Примеры: 80; 53, 123; 1020–65535.

sport — Порт источника

Параметр Описание
sport Порты источника для сопоставления трафика.
Формат: значения и/или диапазоны 0–65535, через запятую.
Примеры: 0, 17, 19, 69, 123; 49152–65535.

len — Длина пакета

Параметр Описание
len Длина IP-пакета в байтах.
Формат: значения и/или диапазоны, через запятую.
Примеры: 1280; 60–80; 576

frag — Фрагментация

Значение Описание
any Любой фрагмент (первый, внутренний, последний)
df Установлен флаг Don’t Fragment
first Первый фрагмент
internal Внутренний фрагмент
last Последний фрагмент
unfrag Не фрагментированный пакет

icmp — Тип/код

Проверяются сочетания тип–код: правило срабатывает только на пакеты, где тип и код встречаются одновременно; недопустимые комбинации игнорируются.

Параметр Описание
icmp-тип Значения или диапазоны типа ICMP.
Примеры: 8 (Echo Request), 11 (Time Exceeded)
icmp-код Значения или диапазоны кода ICMP.
Примеры: 0; 1

tcpflags — Флаги TCP

Флаг Описание
syn Инициализация соединения
ack Подтверждение соединения
psh Передача без задержки
rst Принудительный сброс
fin Завершение соединения
ece Индикация перегрузки (ECN Echo)
cwr Снижение окна при перегрузке (Congestion Window Reduced)
urg Срочные данные (Urgent)

Опция Учитывать совместно (+) задаёт логику проверки TCP-флагов:

  • Если опция включена, правило срабатывает только когда все выбранные флаги выставлены одновременно.
  • Если опция выключена, достаточно любого одного из выбранных флагов.

dscp — Класс обслуживания

Параметр Описание
dscp Класс обслуживания DSCP, диапазон 0–63.
Пример: 46

Действие

Определяет реакцию маршрутизатора на трафик, попавший под условия.

Параметр Аргумент Описание
ACCEPT Разрешить трафик
DISCARD Отбросить трафик
rate-limit Ограничение скорости;
трафик выше порога отбрасывается
rate-limit Порог скорости;
единицы — по конфигурации системы
AS Номер автономной системы
для сообщества traffic-rate
redirect Перенаправление в целевой VRF
route-target (rt) Формат: as:vrf или cidr:vrf,
например 65000:123
mark Маркировка DSCP для последующей приоритезации
dscp Значение 0–63
action sample Семплирование и логирование трафика
action terminal Прекращение дальнейшей фильтрации
для совпавшего трафика
action sample-terminal Семплировать и завершить дальнейшую фильтрацию
(комбинированное действие)

Примеры FlowSpec-правил

Ниже представлены примеры FlowSpec-правил. Для каждого правила указаны условия совпадения и действие маршрутизатора. Примеры позволяют понять, какой трафик фильтруется и каким образом правило применяется в сети.

  • invalid-ports — DISCARD
    Отбросить TCP/UDP-трафик к подсети 192.168.0.0/24 на неразрешённые по условию порты (22, 53, 80, 443, 8080, 8443; возможны диапазоны). Назначение: блокировка несанкционированных подключений и сканирований.
  • ipfrag-drop — DISCARD
    Отбросить фрагментированные IP-пакеты к адресу 192.168.0.49/32. Назначение: защита от атак с использованием фрагментации.
  • len-udp-drop — DISCARD
    Отбросить UDP-пакеты фиксированной длины 1280 байт к сети 192.168.0.0/24. Назначение: подавление сигнатурных шумов в рамках DDoS.
  • udp-amp-auto — DISCARD
    Отбросить UDP-трафик с характерных исходных портов усилителей (0, 17, 19, 69, 111, 123, 137, 161, 389, 427, 520, 1900, 3702, 11211, 10074). При пустом поле dst правило используется как шаблон: при срабатывании счётчика система подставляет адрес назначения из события и формирует анонс FlowSpec для этого адреса. Действие применяется точечно к подставленному dst и не действует глобально само по себе.
  • udp-apm — DISCARD
    Отбросить UDP-амплификации в подсети 192.168.0.0/24 по тем же исходным портам. Назначение: локальная фильтрация в заданной сети.

В столбце Использовано в объектах указывается, к каким объектам системы привязано правило.

Столбец Вкл. везде? — ручная публикация анонса FlowSpec. При включении система немедленно формирует и отправляет BGP FlowSpec-анонс правила на маршрутизаторы. Пороги и счётчики объектов при этом не учитываются.