08.05.2014 01:30, Vladislav V. Prodan написав(ла):
Subj.
Есть скрипт для сбора с физических интерфейсов, но он не применим к ngX
# ngctl show ng0:
Name: ng0 Type: iface ID: 0000146e Num hooks: 1
Local hook Peer name Peer type Peer ID Peer hook
---------- --------- --------- ------- ---------
inet mpd83895-B2-mss tcpmss 00001473 out
# ngctl mkpeer ng0: netflow lower iface0
ngctl: send msg: Protocol family not supported
NgX поднимается через mpd5 (mpd5-5.7)
mpd умеет сам втыкаться куда скажут.
Я собираю где-то так:
#!/bin/sh
# PROVIDE: export_netflow
# BEFORE: mpd
# REQUIRE: ppp
export_netflow_enable=${export_netflow_enable-"NO"}
export_netflow_sink=${export_netflow_sink-''}
export_netflow_flags=${export_netflow_flags-'-d'}
. /etc/rc.subr
name="export_netflow"
rcvar=`set_rcvar`
start_cmd='export_netflow_start'
stop_cmd='export_netflow_stop'
required_modules='ng_bridge ng_ether ng_netflow ng_socket'
load_rc_config $name
export_netflow_start () {
echo "Starting ${name}."
{
if /usr/sbin/ngctl show netflow0: >/dev/null 2>&1; then
echo "connect wlan0: netflow0: lower iface0"
else
echo "mkpeer wlan0: netflow lower iface0"
echo "name wlan0:lower netflow0"
fi
echo "mkpeer netflow0: bridge out0 link0"
echo "name netflow0:out0 bridge0"
echo "connect rl0: netflow0: upper iface1"
echo "connect rl0: netflow0: lower iface2"
echo "connect netflow0: bridge0: out1 link1"
echo "connect netflow0: bridge0: out2 link2"
echo "mkpeer netflow0: ksocket export inet/dgram/udp"
echo "name netflow0:export ksocket0"
echo "msg ksocket0: connect inet/${export_netflow_sink}"
} | /usr/sbin/ngctl ${export_netflow_flags} -f -
}
export_netflow_stop () {
echo "Stopping ${name}."
{
echo "shutdown netflow0:"
} | /usr/sbin/ngctl ${export_netflow_flags} -f -
}
run_rc_command "$1"
После этого mpd отдаётся хук netflow с рекомендацией начинать не с
самого начала:
startup:
set netflow node netflow0
set netflow hook 256
peer:
set iface enable netflow-in netflow-out
Если же не нужно объединять с физическими интерфейсами у mpd есть другой
параметр для создания отдельного хука netflow и соответствующего ksocket:
startup:
set netflow peer 127.0.0.1 8787
--
Sphinx of black quartz judge my vow.