info Базовая конфигурация СКАТ и 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