Введение |
Сервер представлений(Flow_Server.pl) - скрипт на Perl.
Графический Интерфейс Пользователя(TkTopNetFlows.tcl, TkTopNetFlowsHist) -
скрипты на Tcl/Tk.
Программы разрабатывались и тестировались на платформе FreeBSD 4.9.
Для корректной работы нужны дополнительные пакеты: tcl-8.4.4,1 tk-8.4.4,1
blt-2.4z Tktable-2.8 flow-tools-0.66_1, p5-Cflow-1.051 [ для отладки - ucd-snmp-5.0.6 ]
Термины |
NetFlow- | технология сбора статистических данных о транзитном траффике
на маршрутизаторах Cisco.
|
Поток- | (flow) Последовательность IP пакетов, проходящая через маршрутизатор, для которой уникальна совокупность параметров: протокол, адрес источника, адрес назначения, номера портов источника и назначения (для протоколов TCP\UDP), tos, флаги (tcp), для icmp - icmp_type & code,тд.тп. входящий и исходящий порт маршрутизатора. |
Представление (view) | способ отображения информации о трафике, на основе данных NetFlow. Для одного и того-же набора данных можно построить несколько разных представлений. Для представления можно указать фильтр потоков и способ классификации трафика. |
Класс (class) | Группа потоков, имеющих какие-то общие свойства. Например, при классификации трафика по автономным системам назначения, все потоки, направленные к одной и той-же автономной системе составляют класс. |
Архитектура |
Имеем: Маршрутизатор (далее, для краткости, cisco), сервер сбора данных Monitor.
Cisco настраивается так, чтобы она собирала статистику NetFlow, и передавала ее на сервер сбора данных Monitor. На сервере сбора данных постоянно работает программа flow-capture, которая принимает данные от cisco и записывает в файл на диск - так, что для каждого следующего интервала времени создается новый файл. На этом-же сервере запускается программа Flow_Server.pl. Программа работает сервисом, отслеживает появление новых файлов с данными, разбирает их и строит в памяти представления трафика. Кроме того этот сервис слушает TCP сокет, и ожидает подключения клиентской программы. При подключении клиента - асинхронно принимает от него команду, исполняет ее, и асинхронно отдает результат клиенту обратно. Диагностику пишет в syslog. Программу TkTopNetFlows.tcl можно запускать на любом компьютере, с которого по IP можно подключиться к серверу Monitor. TkTopNetFlows.tcl в конфигурационном файле указывается, какое представление нужно отображать. Программа периодически опрашивает Flow_Servep.pl, и отрисовывает данные для указанного представления. Можно запустить несколько TkTopNetFlows.tcl, каждый экземпляр со своим файлом конфигурации, и все они могут показывать разные представления. При помощи программы TkTopNetFlowHist.tcl можно посмотреть те-же представления, но не в реальном времени, а за произвольный предыдущий промежуток времени, для которого есть накопленные данные NetFlow. |
Примеры, скриншоты |
Ссылки |