wiki:freebsd:netflow

NetFlow

Для того, что бы проанализировать netflow, в первую очередь нужно его сохранить, записать на диск. Для этого служат спациальные коллекторы netflow. В состав набора утилит по работе с netflow, netflow-tools входит flow-capture, это и есть коллектор netflow.

cd /usr/ports/net-mgmt/flow-tools && make install clean

Настройка flow-capture фактически сводится к установке стартовых флагов, которые добавляются в /etc/rc.conf

flow_capture_enable="YES"
flow_capture_localip="192.168.3.211"
flow_capture_remoteip="0.0.0.0"
flow_capture_port="9998"
flow_capture_datadir="/usr/home/netflow/"
flow_capture_flags="-E5G -n287 -N-2"

Теперь о примененных флагах:

-E20G — это объем записанных флоу пакетов, как только эта цифра превысит установленное значение, самые старые файлы начнут удаляться. Важно рассчитать примерный объем, который вам нужен. То есть если за месяц ваш роутер генерирует 5Гиг флоу, то что бы хранить трафик за 3 месяца, нужно установть в 15Гиг. Ну или с небольшим запасом.

-n287 — число ротаций за сутки, фактически сколько отдельных файлов флоу будет записано в сутки. 287 ротаций — это 1 файл каждые 5 минут.

-N-2 — вид в каком будут хранится файлы флоу на диске. Или правильней сказать структура хранения файлов. В настоящем случае это будет YYYY-MM/YYYY-MM-DD/flow-file — то есть каталог с год-месяц/год-месяц-день/и сами файлы.

Файлы записываются в виде ft-v05.2010-03-27.090000+0200, тот файл в который пишется в текущий момент имеет в начале tmp, вместо ft.

Ну, с тем как записать сведения о трафике мы разобрались. Теперь надо разобраться, как же его просмотреть и проанализировать.

Для этого служат другие утилиты из пакета flow-tools.

К примеру, что бы просмотреть содержимое файла флоу, нужно выполнить:

flow-cat ft-v05.2010-03-27.090000+0200 |flow-print |less

Это мы просмотрели содержимое файла ft-v05.2010-03-27.090000+0200. Соответственно просмотреть все файлы, можно такой командой:

flow-cat ft-*|flow-print|less

Для того, что бы перевести содержимое файлов флоу в другой формат, нужно воспользоваться командой flow-export. Эта утилита позволяет экспортивать flow файлы в несколько форматов, наиболее интересным из которых, по моему мнению, является экспорт в csv файл.

Для экспорта в csv файл, команда выглядит так:

flow-cat ft-v05.2010-01-12.190000+0200 | flow-export -f 2 | less

Утилита flow-stat позволяет создавать различные отчеты. К примеру выявление наиболее активных «качальщиков» — генераторов трафика. Вещь полезная.

flow-cat ft-v05.2010-01-12.190000+0200 | flow-stat -f 9 -S 2 |less

Ну а самое главное и полезное, это то, что в любом случае, имея информацию о трафике, вы в любой момент сможете отчитаться о том, что происходило с клиентом. По моему мнению, это самое главное.

Рассмотрим пример конфигурации Traffic Flow на роутере Mikrotik.

Допустим мы хотим собирать статическую информацию о трафике, который проходит через интерфейс ether3 нашего роутера и отправлять её на коллектор по адресу 192.168.3.211 используя 5 версию протокола. В этом случае конфигурация может выглядеть следующим образом:

Сначала включаем Traffic Flow и указываем интерфейс:

/ip traffic-flow set enabled=yes 
interfaces=ether3

Затем указываем адрес коллектора, стандартный порт и версию протокола 5:

/ip traffic-flow target add dst-address=192.168.3.211
port=2055 
version=5

После этого наш роутер начнет отправлять информацию на коллектор. Если вы хотите указать несколько коллекторов, то это можно сделать, используя разные версии протокола и номера UDP портов.

  • wiki/freebsd/netflow.txt
  • Последние изменения: 2019/07/23 17:21
  • (внешнее изменение)