Базовая конфигурация СКАТ и Netflow-экспорт
В данной статье мы рассмотрим базовое конфигурирование системы DPI СКАТ. Настраивается данное ПО через файл конфигурации fastdpi.conf, который располагается в каталоге /etc/dpi/. Конфигурация составляется путем добавления/изменения строк в файле.
Базовая настройка
Для начала нам необходимо сконфигурировать интерфейсы, указав, какие являются внешними (смотрят в сторону Интернета), а какие – внутренними (смотрят в сторону абонентов). В нашем случае интерфейс dna0 будет внутренним, dna1 – внешним.
# Конфигурация интерфейсов:
in_dev=dna0
out_dev=dna1
Мы обязаны фильтровать трафик по спискам Роскомнадзора и Минюста. В СКАТ можно включить автоматическую выгрузку списков из облака, а также установить, как часто СКАТ будет это делать (раз в 60 минут). Опционально можно использовать и свои списки блокировки.
# Включаем выгрузку списков фильтрации из облака:
federal_black_list=true
timeout_check_new_bl=60
# Укажем страницу для переадресации абонента при блокировке ресурса:
black_list_redirect=//example.org/ban.html
Чтобы при перезагрузке сервера не потерять данные об абонентах и выставленных им тарифных планах, необходимо записывать эти данные в БД.
# Включим запись данных абонентов в базу данных:
udr=1
# Устанавливаем порядок классов приоритета:
class_order=0
Следующим этапом можно задать страницу, на которую совершать перенаправление абонентов, учетные записи которых заблокированы.
# Конфигурация страницы перенаправления при блокировке учетной записи:
cp_server=example.org/blocked.html
Для выполнения перенаправления у абонентов, которые имеют заблокированные учетные записи, понадобится какая-то минимальная пропускная способность, соответствующая классу трафика, к которому будет отнесен http-трафик. Также может понадобиться уведомить абонентов о событии (акция, проведение работ, опрос о качестве услуги и т. д.). Чтобы страница показывалась только один раз, необходимо, чтобы трафик до веб-сервера прошел через СКАТ либо веб-сервер сообщил, что «отдал» страницу клиенту. Опционально можно сделать так, чтобы в этом не было необходимости и страница была отображена клиенту один раз (см. Конфигурацию профилей).
# Конфигурация URL для уведомления абонента:
ntf_server=example.org/one_time_redirect.html
Для маркировки трафика с помощью меток DSCP в IP-пакете необходимо указать это в параметре set_packet_priority.
# Включение маркировки трафика с помощью поля:
DSCP set_packet_priority=1
Далее необходимо ограничить общую полосу для DPI. Это полоса, в которую шейпер будет «укладывать» абонентский трафик. Общая полоса указывается как для всех классов суммарно, так и по классам в отдельности. В нашем случае на данный момент полоса на каждом DPI ограничивается до 5 Гбит/с.
Rate – полоса, резервируемая под класс обслуживания,
Сeil – максимально достижимая классом полоса.
При этом в конфигурации суммарная полоса rate всех классов не должна превышать общую полосу rate, а ceil отдельного класса не должна превышать общий rate. Если не соблюсти эти правила, поведение DPI будет неопределенным.
# Ограничение глобальной полосы:
# Limit global inbound bandwidth
htb_inbound_root=rate 5000mbit
htb_inbound_class0=rate 8bit ceil 5000mbit
htb_inbound_class1=rate 8bit ceil 5000mbit
htb_inbound_class2=rate 8bit ceil 5000mbit
htb_inbound_class3=rate 8bit ceil 5000mbit
htb_inbound_class4=rate 8bit ceil 5000mbit
htb_inbound_class5=rate 8bit ceil 5000mbit
htb_inbound_class6=rate 8bit ceil 5000mbit
htb_inbound_class7=rate 8bit ceil 5000mbit
# Limit global outbound bandwidth
htb_root=rate 5000mbit
htb_class0=rate 8bit ceil 5000mbit
htb_class1=rate 8bit ceil 5000mbit
htb_class2=rate 8bit ceil 5000mbit
htb_class3=rate 8bit ceil 5000mbit
htb_class4=rate 8bit ceil 5000mbit
htb_class5=rate 8bit ceil 5000mbit
htb_class6=rate 8bit ceil 5000mbit
htb_class7=rate 8bit ceil 5000mbit
На случай, когда необходимо отследить абонента, есть специальная функция, которая будет писать характеристики трафика абонента и складывать его в лог. Включается эта функция в режиме глобальной конфигурации, а результаты забираются из файла: /var/log/dpi/fastdpi_stat.log.
После тестов необходимо обязательно выключить эту функцию во избежание исчерпания свободного пространствана жестком диске.
# Включение для определенного IP-адреса:
plc_trace_ip=192.0.2.1
По умолчанию максимальное количество профилей (о них чуть позже) для сервисов блокировки и однократных перенаправлений достаточно мало и необходимо подстроить соответствующее значение.
# Изменение количества профилей:
# Number of profiles for services
max_profiles_white_list=10
Для отслеживания состава трафика, его разброса по автономным системам, а также количественным характеристикам можно использовать утилиту Netflow. На данный момент не реализована возможность получения данных об объеме трафика до процедуры полисинга, что несколько снижает полезность данного функционала.
Конфигурация Netflow-экспорта
# Netflow export
netflow=11
netflow_dev=eth2
netflow_timeout=1
netflow_collector=192.0.2.2:9997
netflow_as_direction=1
netflow_as_collector=192.0.2.2:9998
netflow_rate_limit=7
netflow_full_collector=192.0.2.2:9999
netflow_passive_timeout=20
netflow_active_timeout=60
netflow_full_port_swap=1
Мы закончили с глобальной конфигурацией, изменения будут приняты после сохранения файла конфигурации и перезапуска сервиса.
Перезапуск сервиса:
service fastdpi restart