Экспорт netflow во FreeBSD

Feb 16, 2010 13:03


Скрипт использует подсистему netgraph FreeBSD для экспорта данных о трафике с определенного интерфейса в формате netflow. Для работы скрипта в rc.conf нужно добавить следующее:

netflow_enable="YES" netflow_iface="em0" # Интерфейс, данные с которого нужно экспортировать netflow_collector="127.0.0.1:9996" # Адрес netflow-коллектора
При разработке использовал статью http://nexus.org.ua/weblog/message/406/

#!/bin/sh # PROVIDE: netflow # REQUIRE: NETWORKING # BEFORE: # KEYWORD: . /etc/rc.subr name="netflow" rcvar=`set_rcvar` start_cmd="netflow_start" stop_cmd="netflow_stop" ngctl="/usr/sbin/ngctl" load_rc_config $name eval "${rcvar}=\${${rcvar}:-'NO'}" netflow_collector=${netflow_collector:-"localhost:9996"} netflow_iface=${netflow_iface:-"lo0"} netflow_start() { echo "Starting netflow export on $netflow_iface to $netflow_collector" $ngctl mkpeer $netflow_iface: tee lower left $ngctl name $netflow_iface:lower tee0 $ngctl connect $netflow_iface: tee0: upper right $ngctl mkpeer tee0: one2many left2right many0 $ngctl name tee0:left2right one2many0 $ngctl connect tee0: one2many0: right2left many1 $ngctl mkpeer one2many0: netflow one iface0 $ngctl name one2many0:one netflow $ngctl mkpeer netflow: ksocket export inet/dgram/udp $ngctl name netflow:export ksocket0 $ngctl msg netflow: setifindex { iface=0 index=4 } $ngctl msg netflow:export connect inet/$netflow_collector } netflow_stop() { $ngctl shutdown ksocket0: $ngctl shutdown netflow: $ngctl shutdown one2many0: $ngctl shutdown $netflow_iface:upper $ngctl shutdown $netflow_iface:lower #$ngctl shutdown $netflow_iface:upper: } run_rc_command $1
Previous post Next post
Up