Экспорт данных о трафике
В EcoRouter реализована поддержка IPFIX, согласно RFC5101 (NetFlow v.10), с использованием UDP и порта 4739 для передачи данных коллектору.
Netflow-сенсор выделяет из проходящего трафика потоки, характеризуемые следующими совпадающими параметрами:
- адрес источника;
- адрес назначения;
- порт источника для UDP и TCP;
- порт назначения для UDP и TCP;
- тип и код сообщения для ICMP;
- номер протокола IP;
- сетевой интерфейс (параметр ifindex SNMP);
- IP Type of Service;
- маска источника;
- маска назначения.
Потоком считается набор пакетов, проходящих во входящем направлении. Когда сенсор определяет, что поток закончился (по изменению параметров пакетов, либо по сбросу TCP-сессии), он отправляет информацию в коллектор. В зависимости от настроек он также может периодически отправлять в коллектор информацию о все ещё идущих потоках.
Для управления сенсорами используются объекты конфигурации, называемые профилями сенсоров (flow-export-profile). Для создания профиля сенсора используется команда конфигурационного режима flow-export-profile <NUM>, где NUM — индекс профиля.
Для настройки профиля используется та же команда. Команды, доступные в режиме конфигурирования профиля, описаны в таблице ниже.
Таблица — Команды контекстного режима
config-flow-export
| Команда | Описание |
|---|---|
description <DESCRIPTION> | Создание описания профиля |
destination <IP> [port <1-65535>] [vrf <NAME>] [source <IP>] | IP-адрес коллектора. Адрес задаётся в формате A.B.C.D. После указания адреса можно указать UDP-порт коллектора. Также можно указать виртуальную таблицу маршрутизации (VRF), через которую будет производиться передача данных (параметр недоступен для виртуальных маршрутизаторов). С помощью параметра source можно указать определённый IP адрес, который будет использован как адрес источника в пакетах, отправляемых на коллектор. |
packet-sampling <1-1000> | Частота выборки пакета из потока. Пакет будет направлен на коллектор. Значение по умолчанию = 500 (будет отобран каждый пятисотый пакет). |
template {basic │ extended [origin-as │ peer-as]} | Переключает основной (basic) и расширенный (extended) набор параметров для отправки. Значение по умолчанию basic. Расширенный набор включает параметры bgpSourceAsNumber и bgpDestinationAsNumber. Ключ origin-as (по умолчанию) включает передачу номера исходной автономной системы, а peer-as предыдущей соседней автономной системы. |
timeout active <1-300> | Временной интервал, по истечении которого данные будут переданы на коллектор при активной сессии, в секундах. Значение по умолчанию = 60 |
timeout inactive<5-300> | Временной интервал, по истечении которого данные будут переданы на коллектор после закрытия сессии, в секундах. Значение по умолчанию = 15 |
timeout template <1-30> | Временной интервал, по истечении которого на коллектор будет передан шаблон сообщений о потоке, в секундах. Значение по умолчанию = 15 |
Привязка профиля сенсора к интерфейсу осуществляется при помощи контекстной команды режима конфигурирования интерфейса flow-export-profile <NUM>.
Настройка профилей сенсоров также доступна для виртуальных маршрутизаторов. Команды конфигурирования, аналогичные описанным выше, вводятся в интерфейсе виртуального маршрутизатора.
Параметры передаются по протоколу CFLOW. Жирным даны наименования по стандарту IPFIX, в скобках — соответствующие наименования полей в протоколе CFLOW. В таблице ниже перечислены имена всех все передаваемых EcoRouterOS полей с параметрами. Жирным даны наименования параметров по стандарту iana IPFIX. В скобках даны имена параметров в Wireshark.
Таблица — Передаваемые параметры
| Параметр | Описание |
|---|---|
| octetDeltaCount (BYTES) | Количество октетов, прошедших с момента предыдущего отчёта (если таковой имелся) во входящих пакетах для данного потока в точке наблюдения. Количество октетов включает заголовок(и) IP-пакета, заголовок(и) кадра и полезную нагрузку IP-пакета. |
| packetDeltaCount (PKTS) | Количество входящих пакетов с момента предыдущего отчёта (если таковой имелся) для данного потока в точке наблюдения. |
| ingressInterface (INPUT_SNMP) | Индекс IP-интерфейса, через который принимаются пакеты данного потока. |
| egressInterface (OUTPUT_SNMP) | Индекс IP-интерфейса, через который отправляются пакеты данного потока. |
| protocolIdentifier (PROTOCOL) | Значение номера протокола в заголовке IP-пакета. Номер протокола определяет тип полезной нагрузки IP-пакета. Номера протоколов определены в реестре номеров протоколов IANA. |
| ipClassOfService (IP_TOS) | Для пакетов IPv4 это значение поля TOS в заголовке пакета IPv4. Для пакетов IPv6 это значение поля Traffic Class в заголовке пакета IPv6. |
| tcpControlBits (TCP_FLAGS) | Биты управления TCP, наблюдаемые для пакетов этого потока. Эта информация кодируется в виде битового поля; каждому биту управления TCP соответствует определенный бит в этом поле. Бит устанавливается в 1, если для любого наблюдаемого пакета этого потока соответствующий бит управления TCP установлен в 1. В противном случае бит обнуляется. |
| sourceTransportPort (L4_SRC_PORT) | Идентификатор исходного порта в заголовке транспортного протокола. Для таких транспортных протоколов, как UDP, TCP, SCTP и DCCP, это номер исходного порта, указанный в соответствующем заголовке. |
| sourceIPv4Address (IP_SRC_ADDR) | Исходный IPv4-адрес в заголовке IP-пакета. |
| sourceIPv4PrefixLength (SRC_MASK) | Количество смежных битов, имеющих значение в информационном элементе sourceIPv4Prefix. |
| destinationTransportPort (L4_DST_PORT) | Идентификатор порта назначения в заголовке транспортного протокола. Для таких транспортных протоколов, как UDP, TCP, SCTP и DCCP, это номер порта назначения, указанный в соответствующем заголовке. |
| destinationIPv4Address (IP_DST_ADDR) | Адрес назначения IPv4 в заголовке IP-пакета. |
| destinationIPv4PrefixLength (DST_MASK) | Количество смежных битов, имеющих значение в информационном элементе destinationIPv4Prefix. |
| flowStartSeconds (flowStartSeconds) | Абсолютная метка времени первого пакета этого потока. |
| flowEndSeconds (flowEndSeconds) | Абсолютная метка времени последнего пакета этого потока. |
| samplingPacketInterval (samplingPacketInterval) | Этот информационный элемент указывает количество пакетов, которые отбираются последовательно. Значение 100 означает, что отбирается 100 последовательных пакетов. |
| flowDirection (DIRECTION) | Направление потока, наблюдаемого в точке наблюдения. Заданы только два значения: 0x00: входящий поток, 0x01: исходящий поток. |
| bgpSourceAsNumber (SRC_AS) | Номер автономной системы (АС) исходного IP-адреса. Если информация о пути АС для данного потока доступна только в виде неупорядоченного набора АС (а не в виде упорядоченной последовательности АС), то значение этого информационного элемента равно 0. |
| bgpDestinationAsNumber (DST_AS) | Номер автономной системы (АС) целевого IP-адреса. Если информация о пути АС для данного потока доступна только в виде неупорядоченного набора АС (а не в виде упорядоченной последовательности АС), то значение этого информационного элемента равно 0. |
