Управление сервисами и полисингом
Управление абонентами осуществляется с помощью утилиты fdpi_ctrl.
Синтаксис команд
Общий формат команд:
fdpi_ctrl команда { --service идентификатор_сервиса | --policing файл_описания_полисинга} [список_IP] [список_LOGIN]
где команда - это:
load : загрузить данные. del : удалить. Для '--service' нужно задать 'идентификатор_программы', для полисинга задавать не надо. list : показать информацию по заданному списку 'список_IP' или всю информацию если задан аргумент all.
Идентификатор_сервиса - это один из следующих вариантов или их список через запятую:
1 - бонусная программа 2 - реклама 3 - блокировка рекламы 4 - фильтрация по черному списку 5 - белый список и Captive Portal 6 - уведомление через HTTP redirect 7 - кэширование 8 - пройдена ddos защита 9 - RADIUS accounting / сбор netflow статистики для биллинга 10 - DDOS защита 11 - CGNAT и NAT 1:1 12 - запись трафика в PCAP 13 - мини Firewall 14 - отведение трафика на TAP интерфейс 15 - спецабонент (весь трафик помещается в cs0, не применяется фильтрация (4 услуга) для vChannel и общего канал) 16 - белый список и переадресация на Captive Portal без доступа в интернет 17 - зеркалирование трафика в заданный VLAN 18 - полисинг по сессии для определенных протоколов и определение классов трафика на уровнях канала и абонента 19 - подмена DNS ответов, в планах: перенаправление DNS запросов на DNS сервер провайдера 49 - блокировка IPv6 трафика 50 - участник маркетинговой компании с уведомлением через HTTP redirect 51 - reserved (internal) 254 - VRF
udp_block
.
Список_IP - это последовательность или одна из следующих опций:
--file - файл со списком IP --ip - одиночный IP --ip_range - интервал IP (включает границы) --cidr - CIDR включает границы, CIDR~ исключает границы
Из диапазона CIDR можно исключить крайние адреса (по соглашению о безклассовой адресации это адреса шлюза и широковещательный) добавив в определение диапазона символ «~» в конце определения cidr, например –cidr 5.200.43.0/24~
Список_LOGIN - это последовательность или одно значение имени (идентификатора) абонента вида
--login USER1 --login "FIRST_NAME LAST_NAME" вариант указания login с экранированием спецсимволов
Список IP или LOGIN в файле (–file) можно задавать как:
192.168.0.1 одиночный IP 192.168.0.1-192.168.0.5 интервал (включает границы) 192.168.0.0/30 CIDR "USER1" вариант задания login в двойных кавычках 'USER2' вариант задания login в одинарных кавычках
Строка начинающаяся с # - это комментарий.
Примеры
Получить список применения полисинга
fdpi_ctrl list all --policing
Получить список с подключенной услугой 1
fdpi_ctrl list all --service 1
Получить информацию по конкретному IP
fdpi_ctrl list --policing --ip 192.168.0.1 fdpi_ctrl list --service 1 --ip 192.168.0.1
Подключить услугу 1
fdpi_ctrl load --service 1 --ip 192.168.0.1 или fdpi_ctrl load --service 1 --login USER1
Включить политику полисинга
fdpi_ctrl load --policing tbf.cfg --ip 192.168.0.1
Отключить услугу 1
fdpi_ctrl del --service 1 --ip 192.168.0.1
При задания списка IP можно одновременно задавать несколько опций '–file', '–ip', '–ip_range', '–cidr' :
fdpi_ctrl list --service 1 --ip 192.168.0.1 --ip 192.168.0.2 --file fip_1.txt --ip_range 192.168.0.3-192.168.0.6 --login USER1
Операция применится для всех указанных элементов, по которым не произошло ошибки.
Конкретные описания по управлению услугами и полисингом можно найти в описании соответствующих опций.
Настройка блокировки протоколов TCP и UDP
Параметр udp_block
отвечает за блокировку протокола UDP. Если в конфигурационном файле DPI /etc/dpi/fastdpi.conf
есть этот параметр — то происходит блокировка TCP+UDP, если нет — блокируется только TCP.
Чтобы начать блокировать протоколы UDP (например, QUIC), необходимо добавить в конфигурационный файл параметр udp_block
со значением 2 или 3 (начать блокировку после двух или трёх прошедших пакетов). Такие значения устанавливаются так как бывает, что проходит большое количество одиночных пакетов, которые не учитываются в трафике, но могут вызвать сильную нагрузку на DPI.
udp_block=3
Добавление параметра не требует рестарта DPI, достаточно сделать reload:
service fastdpi reload