Метки

Метки – это быстрые таблицы данных, предназначенные для временной фиксации информации о сетевых пакетах и соединениях. Они используются для управления трафиком, выявления угроз и отладки правил фильтрации.

Типы меток

Система поддерживает следующие типы меток:

  • HMARK — фиксирует адрес источника.

  • DHMARK — фиксирует адрес назначения.

  • SDHMARK — фиксирует адрес источника и назначения.

  • CONNMARK — фиксирует полный 5-tuple соединения: IP-адрес источника и назначения, порты источника и назначения, транспортный протокол (L4).

  • HMARKC — административная метка для создания чёрных и белых списков. Префиксы вводятся вручную и не зависят от правил фильтрации.

Поля записи метки

  • ID — идентификатор записи.
  • Value — числовой счётчик, управляемый правилами.
  • Age — время, прошедшее с момента добавления записи.
  • Lifetime — время до истечения записи. Обновляется при поступлении подходящих пакетов. Когда срок заканчивается, запись получает статус expired.

Принцип работы

Исключение: механизм ниже не применяется к HMARKC.

Создание метки

Когда срабатывает правило, система создаёт запись с параметрами трафика, характерными для конкретного типа метки.

Применение метки в правилах

Для каждого нового пакета система проверяет, есть ли подходящая активная метка. Если метка найдена и она валидна, правило может применить действие: блокировку, перенаправление или другое требуемое поведение.

Обновление и удаление

При повторных нарушениях lifetime продлевается. Метка остаётся активной дольше. Когда срок истекает, метка автоматически удаляется. При необходимости её можно удалить вручную.

Пример использования HMARK

Сценарий: временная блокировка IP-адреса при превышении пороговой интенсивности пакетов.

кое-что-то

Шаг 1. Блокировка по уже активной метке

Если у источника уже есть валидная метка в HMARK id 2, пакет сразу отбрасывается. Система фиксирует событие в статистике и завершает обработку.

Шаг 2. Измерение интенсивности

Если метки нет, система начинает измерять частоту пакетов. Порог — 1000 pps от одного источника.

Шаг 3. Реакция на превышение порога

При превышении порога создаётся запись в HMARK id 2. Текущие пакеты отбрасываются.

Жизненный цикл

Пока запись HMARK id 2 валидна, трафик блокируется на шаге 1. После истечения lifetime измерения возобновляются. При повторном превышении порога создаётся новая запись и блокировка обновляется

Пример использования CONNMARK

Сценарий: временная блокировка TCP/UDP-сессий при превышении порога трафика.

кое-что-то

Шаг 1. Блокировка по уже активной метке

Если у источника уже есть валидная метка в CONNMARK id 111, пакет сразу отбрасывается. Система фиксирует событие в статистике и завершает обработку.

Шаг 2. Измерение интенсивности

Если метки нет, система начинает считать пакеты для каждого соединения отдельно. Соединение определяется:

  • l3_proto — IPv4 или IPv6

  • l3_src и l3_dst — IP-адрес источника и назначения

  • l4_proto — TCP или UDP

  • l4_src и l4_dst — порт источника и назначения

Порог — 10 000 pps на одно соединение.

Шаг 3. Реакция на превышение порога

При превышении порога создаётся запись в CONNMARK id 111 на 600 секунд. Текущий пакет и следующие отбрасываются шагом 1.

Жизненный цикл

Пока метка CONNMARK id 111 активна, трафик блокируется на шаге 1 без повторных измерений. Когда lifetime истекает, пакеты снова проходят шаг 2. Если порог превышается, система обновляет метку и возвращает блокировку.

Пример использования HMARKC

кое-что-то

Сценарий: адресное управление трафиком по заранее заданным префиксам.

Шаг 1. Добавление префикса

В разделе Метки создать новую метку HMARKC и добавить нужные префиксы.

Шаг 2. Применение в правилах

В условии совпадения выбрать HMARKC и задать действие:

  • DROP — блокирует трафик указанных адресов. Правило работает как чёрный список.
  • ACCEPT — пропускает трафик без дальнейшей фильтрации. Используется как белый список.

Жизненный цикл
Метка HMARKC управляется вручную. Автоматическое создание и продление Lifetime правилами не поддерживается.

Пример использования счётчика Value

Value помогает фиксировать повторные нарушения и усиливать реакцию системы при эскалации.

Первое срабатывание
При первом превышении порога создаётся метка HMARK со значением value = 1.

Повторные нарушения
Каждое новое превышение для того же источника увеличивает значение: value = 2, value = 3 и далее.

Эскалация
Когда значение достигает порога источник можно обработать жёстче: добавить в префикс-сет или применить отдельное блокирующее правило.

Пример
10.0.0.1 отправил 600 TCP SYN-пакетов → создаётся HMARK value = 1. Через 100 секунд тот же адрес отправил 700 пакетовvalue = 2. Следующее превышение → value = 3, после чего источник блокируется через префикс-сет или соответствующее правило.