Конфигурация IPFIX ресиверов [Документация VAS Experts]

Конфигурация IPFIX ресиверов

Настройка ipfix ресиверов через файл .env

/var/qoestor/backend/.env

Стандартная конфигурация выглядит следующим образом

#Ipfix form DPI 0
IPFIX_FULLFLOW_PORT_TYPE[0]=tcp
IPFIX_FULLFLOW_PORT[0]=1500
#IPFIX_FULLFLOW_ROTATE_MINUTES[0]=10
#IPFIX_FULLFLOW_ROTATE_DELAY_SECONDS[0]=0
#IPFIX_FULLFLOW_FW_MAX_QUEUE_SIZE[0]=10
#IPFIX_FULLFLOW_DUMP_INSERT_PROCESSES[0]=0
#IPFIX_FULLFLOW_EXPORT[0]=10.0.0.2/9920/tcp,10.0.0.3/3440/udp

IPFIX_CLICKSTREAM_PORT_TYPE[0]=tcp
IPFIX_CLICKSTREAM_PORT[0]=1501
#IPFIX_CLICKSTREAM_ROTATE_MINUTES[0]=12
#IPFIX_CLICKSTREAM_ROTATE_DELAY_SECONDS[0]=400
#IPFIX_CLICKSTREAM_FW_MAX_QUEUE_SIZE[0]=10
#IPFIX_CLICKSTREAM_DUMP_INSERT_PROCESSES[0]=0
#IPFIX_CLICKSTREAM_EXPORT[0]=10.0.0.2/9921/tcp,10.0.0.3/3441/udp

IPFIX_GTPFLOW_PORT_TYPE[0]=tcp
IPFIX_GTPFLOW_PORT[0]=1502
#IPFIX_GTPFLOW_ROTATE_MINUTES[0]=10
#IPFIX_GTPFLOW_ROTATE_DELAY_SECONDS[0]=0
#IPFIX_GTPFLOW_FW_MAX_QUEUE_SIZE[0]=10
#IPFIX_GTPFLOW_DUMP_INSERT_PROCESSES[0]=0
#IPFIX_GTPFLOW_EXPORT[0]=10.0.0.2/9921/tcp,10.0.0.3/3441/udp

IPFIX_NATFLOW_PORT_TYPE[0]=tcp
IPFIX_NATFLOW_PORT[0]=1503
#IPFIX_NATFLOW_ROTATE_MINUTES[0]=10
#IPFIX_NATFLOW_ROTATE_DELAY_SECONDS[0]=0
#IPFIX_NATFLOW_FW_MAX_QUEUE_SIZE[0]=10
#IPFIX_NATFLOW_DUMP_INSERT_PROCESSES[0]=0
#IPFIX_NATFLOW_EXPORT[0]=10.0.0.2/9921/tcp,10.0.0.3/3441/udp

IPFIX_DNSFLOW_PORT_TYPE[0]=tcp
IPFIX_DNSFLOW_PORT[0]=1504
#IPFIX_DNSFLOW_ROTATE_MINUTES[0]=10
#IPFIX_DNSFLOW_ROTATE_DELAY_SECONDS[0]=0
#IPFIX_DNSFLOW_FW_MAX_QUEUE_SIZE[0]=10
#IPFIX_DNSFLOW_DUMP_INSERT_PROCESSES[0]=0
#IPFIX_DNSFLOW_DPI_ID[0]=30
#IPFIX_DNSFLOW_BALANCER_SUB_PROTO[0]=tcp

#Traffic direction definition
# 0 - as is
# 1 - by AS (for fullflow only)
# 2 - by CIDR (for fullflow and clickstream)
# 3 - by both: AS and CIDR
# 4 - any: AS or CIDR
TRAFFIC_DIR_DEF_MODE=0

#Subscriber filter
# 0 - no filter
# 1 - by AS (for fullflow only)
# 2 - by CIDR (for fullflow and clickstream)
# 3 - by both: AS and CIDR
# 4 - any: AS or CIDR
SUBSCRIBER_FILTER_MODE=0

#Subscriber exclude
# 0 - no exclude
# 1 - by AS (for fullflow only)
# 2 - by CIDR (for fullflow and clickstream)
# 3 - by both: AS and CIDR
# 4 - any: AS or CIDR
SUBSCRIBER_EXCLUDE_MODE=0

#Enable host (url) categories dics autoload
URLS_CATEGORIES_DIC_AUTOLOAD_ENABLED=1

#Enable asnum dic autoload
ASNUM_DIC_AUTOLOAD_ENABLED=1

#Enable auto replacing Login with vchannel on insert
# 0 - Disabled
# 1 - Enabled
# 2 - Enabled if Login is empty
ULR_REPLACE_LOGIN_WITH_VCHANNEL=0

# Use dictionary when replacing login
ULR_USE_DIC_WHEN_REPLACING_LOGIN=0

# Enable autoload of vchannel_name_dic
ULR_VCHANNEL_NAME_DIC_AUTOLOAD_ENABLED=0

# vchannel_name_dic remote url
ULR_VCHANNEL_NAME_DIC_URL=

#Import NAT events from fullflow
NAT_IMPORT_FROM_FULLFLOW
# 0 - Disabled
# 1 - Enabled

#Fields to save when aggregating NAT log (bitmask)
# 0x1 - Save protocol ID
# 0x2 - Save event type,
# 0x4 - Save source ipv4,
# 0x8 - Save source port,
# 0x10 - Save destination ipv4,
# 0x20 - Save destination port,
# 0x40 - Save post NAT source ipv4,
# 0x80 - Save post NAT source_port,
# 0x100 - Save session ID,
# 0x200 - Save login,
# 0x400 - Save DPI ID
NAT_AGG_LOG_FIELDS_TO_SAVE_BITMASK=0

#Time interval for aggregating NAT logs
NAT_AGG_LOG_GROUP_TIME_INTERVAL
# 1 - 1 minute
# 5 - 5 minutes
# 10 - 10 minutes
# 15 - 15 minutes
# 30 - 30 minutes
# 60 - 60 minutes

В представленной конфигурации настроен запуск fullflow и clickstream ресиверов на udp сокетах 1500 и 1501 соответственно. «0» в индексе массива означает, что прием идет от DPI под номером 0.

Лучше использовать tcp, т.к для udp могут теряться пакеты при превышении MTU.

Список параметров

  • IPFIX_FULLFLOW_PORT_TYPE[i] и IPFIX_CLICKSTREAM_PORT_TYPE[i] определяют тип трафика, принимаемого на порту: tcp или udp. Рекомендуется ставить tcp.
  • IPFIX_FULLFLOW_PORT[i] и IPFIX_CLICKSTREAM_PORT[i] определяют номер порта.
  • TRAFFIC_DIR_DEF_MODE и SUBSCRIBER_FILTER_MODE определяет режим фильтрации абонентов согласно справочникам asnum_local_dic и subnets_local_dic. Значения TRAFFIC_DIR_DEF_MODE=0 и SUBSCRIBER_FILTER_MODE=0 означают, что вычислять направление трафика и фильтровать абонентов не требуется.
  • SUBSCRIBER_EXCLUDE_MODE определяет режим фильтрации абонентов согласно справочникам asnum_exclude_diс и subnets_exclude_dic. Значение SUBSCRIBER_EXCLUDE_MODE=0 означает, что фильтрация не требуется.
  • IPFIX_FULLFLOW_EXPORT[i] и IPFIX_CLICKSTREAM_EXPORT[i] дают возможность настроить экспорт на сторонние ресиверы. Формат ip/port/proto[,ip/port/proto].
  • IPFIX_FULLFLOW_ROTATE_MINUTES[i] и IPFIX_CLICKSTREAM_ROTATE_MINUTES[i] дают возможность настроить период ротации дампов и запись их в БД. По умолчанию это 10 минут для fullflow и 12 минут для clickstream.
  • IPFIX_FULLFLOW_ROTATE_DELAY_SECONDS[i] и IPFIX_CLICKSTREAM_ROTATE_DELAY_SECONDS[i] дают возможность настроить задержку вставки данных на определенное количество секунд. По умолчанию для fullflow – 0 секунд, для clickstream – 400 секунд. Задержка для clickstream относительно fullflow нужна, чтобы обеспечить соединения логов fullflow и clickstream для обогащения статистических отчетов.
  • IPFIX_FULLFLOW_FW_MAX_QUEUE_SIZE[i] и IPFIX_CLICKSTREAM_FW_MAX_QUEUE_SIZE[i] определяют максимальный размер очереди на ресиверах. Лучше не трогать.
Если конфигурация изменилась, необходимо выполнить
fastor-restart

Следующий пример конфигурации позволяет настроить прием от нескольких DPI

#Ipfix form DPI 0
IPFIX_FULLFLOW_PORT_TYPE[0]=tcp
IPFIX_FULLFLOW_PORT[0]=1500

IPFIX_CLICKSTREAM_PORT_TYPE[0]=tcp
IPFIX_CLICKSTREAM_PORT[0]=1501

#Ipfix form DPI 1
IPFIX_FULLFLOW_PORT_TYPE[1]=tcp
IPFIX_FULLFLOW_PORT[1]=1510

IPFIX_CLICKSTREAM_PORT_TYPE[1]=tcp
IPFIX_CLICKSTREAM_PORT[1]=1511

#Ipfix form DPI 2
IPFIX_FULLFLOW_PORT_TYPE[2]=tcp
IPFIX_FULLFLOW_PORT[2]=1520

IPFIX_CLICKSTREAM_PORT_TYPE[2]=tcp
IPFIX_CLICKSTREAM_PORT[2]=1521

Пример конфигурации, когда требуется определение абонентов по CIDR

Данная конфигурация актуальна в случаях, когда СКАТ DPI установлен на зеркале.

TRAFFIC_DIR_DEF_MODE=2
SUBSCRIBER_FILTER_MODE=2

Не забудьте настроить справочник subnets_local_dic для этого примера конфигурации!

Пример конфигурации, когда настроен экспорт на сторонние ресиверы

IPFIX_FULLFLOW_PORT_TYPE[0]=tcp
IPFIX_FULLFLOW_PORT[0]=1500
IPFIX_FULLFLOW_EXPORT[0]=10.0.0.2/1600/tcp

IPFIX_CLICKSTREAM_PORT_TYPE[0]=tcp
IPFIX_CLICKSTREAM_PORT[0]=1501
IPFIX_CLICKSTREAM_EXPORT[0]=10.0.0.2/1601/tcp
Перезапуск ресиверов

Перезапуск всех ресиверов можно выполнить командой

fastor-restart

Если требуется перезапуск ресиверов по отдельности, это можно сделать через перезапуск сервисов, например так

  • Для CentOS 7
    systemctl restart qoestor_fullflow_0.service
    systemctl restart qoestor_clickstream_0.service
  • Для CentOS 6
    service qoestor_fullflow_0 stop
    service qoestor_clickstream_0 stop
    service qoestor_fullflow_0 start
    service qoestor_clickstream_0 start
Остановка ресиверов
  • Для CentOS 7
    systemctl stop qoestor_fullflow_0.service
    systemctl stop qoestor_clickstream_0.service
  • Для CentOS 6
    service qoestor_clickstream_0 stop
    service qoestor_fullflow_0 stop
Остановка и запуск БД clickhouse
  • Остановка
    fastor-db-stop
  • Запуск
    fastor-db-restart