#cat ng5_netflow.sh#!/bin/sh
kldload ng_netflow
kldload ng_ether
kldload ng_tee
kldload ng_one2many/usr/sbin/ngctl -f- <<-SEQ
mkpeer em2: tee lower right
connect em2: em2:lower upper left
name em2:lower em2_tee
mkpeer em2:lower netflow right2left iface0
name em2:lower.right2left netflow
msg netflow: setifindex { iface=0 index=1 }
connect em2:lower netflow: left2right iface1
msg netflow: setifindex { iface=1 index=1 }mkpeer vlan254: tee lower right
connect vlan254: vlan254:lower upper left
name vlan254:lower vlan254_tee
connect vlan254:lower netflow: right2left iface3
msg netflow: setifindex { iface=3 index=1 }
connect vlan254:lower netflow: left2right iface4
msg netflow: setifindex { iface=4 index=1 }mkpeer vlan22: tee lower right
connect vlan22: vlan22:lower upper left
name vlan22:lower vlan22_tee
connect vlan22:lower netflow: right2left iface5
msg netflow: setifindex { iface=5 index=1 }
connect vlan22:lower netflow: left2right iface6
msg netflow: setifindex { iface=6 index=1 }mkpeer vlan21: tee lower right
connect vlan21: vlan21:lower upper left
name vlan21:lower vlan21_tee
connect vlan21:lower netflow: right2left iface7
msg netflow: setifindex { iface=7 index=1 }
connect vlan21:lower netflow: left2right iface8
msg netflow: setifindex { iface=8 index=1 }mkpeer netflow: ksocket export inet/dgram/udp
msg netflow:export connect inet/127.0.0.1:20001
SEQ
URL:
Обсуждается: http://www.opennet.me/tips/info/982.shtml
Хм, как-то сложновато. Вот стартовый скрипт, который я использую. Предполагается, что все необходимые модули уже загружены.% cat /usr/local/etc/rc.d/ng_netflow.sh
#!/bin/sh
## PROVIDE: ng_netflow
# REQUIRE: DAEMON. /etc/rc.subr
name="ng_netflow"
rcvar=`set_rcvar`ng_netflow_start()
{
echo "Starting ${name}."/usr/sbin/ngctl -f- <<-SEQ
mkpeer em1: netflow lower iface0
name em1:lower netflow
connect em1: netflow: upper out0
connect vlan303: netflow: lower iface1
connect vlan303: netflow: upper out1
connect vlan323: netflow: lower iface2
connect vlan323: netflow: upper out2
connect em2: netflow: lower iface3
connect em2: netflow: upper out3
connect em3: netflow: lower iface4
connect em3: netflow: upper out4
connect fxp0: netflow: lower iface5
connect fxp0: netflow: upper out5
mkpeer netflow: ksocket export inet/dgram/udp
msg netflow:export connect inet/217.107.252.9:4444
SEQ
}ng_netflow_stop()
{
echo "Stopping ${name}."/usr/sbin/ngctl -f- <<-SEQ
shutdown netflow:
SEQ
}
start_cmd="ng_netflow_start"
stop_cmd="ng_netflow_stop"load_rc_config $name
: ${ng_netflow_enable="NO"}
run_rc_command "$1"
Я начинал с
http://it-expert.com.ua/weblog/message/406/
и предпологал, что без "tee" трафф будет блокироватся. но видимо ng_netflow его пропускает
без проблем %). Главным оказалось отказатся от
one2many, тк это тормоз дикий
Правильно ли я понимаю, тут регистррируется только входящий поток ? Это нормально ?
Вообще, поделитесь пожалуйста, насколько ng_netflow влияет на производительность, например, переварит ли 300Mbps на интерфейсе роутера ?
>Правильно ли я понимаю, тут регистррируется только входящий поток ? Это нормально
>?
Не понятно, зачем упоминание в примере ng_one2many, он никак не используется.
В оригинальном примере, будет експортироваться весь трафик, в ваиранте Denis Shaposhnikov - только входящий на интерфейсах.>Вообще, поделитесь пожалуйста, насколько ng_netflow влияет на производительность, например, >переварит ли 300Mbps на интерфейсе роутера ?
тут важно не скорость, а количество пакетов, при большом pps (>10k) возможна потеря flows.
Стоит покрутить параметры експорта flows.
Как сделать чтоб поток на 2 сборщика уходил ?
на локальной машине
msg netflow:export connect inet/127.0.0.1:20001
и
msg netflow:export connect inet/17.0.0.25:4444
Как сделать чтоб поток на 2 сборщика уходил ?msg netflow:export connect inet/A.A.A.A:XXXX
mkpeer netflow: netflow out0 iface0
name netflow:out0 netflow2
connect netflow: netflow2: out1 iface1
mkpeer netflow2: ksocket export inet/dgram/udp
msg netflow2:export connect inet/B.B.B.B:YYYY
#!/bin/sh. /etc/rc.conf
uplink_if="vlan4"
echo -n "Installing netflow hooks:"
echo -n " $uplink_if"ngctl mkpeer $uplink_if: netflow lower iface0
ngctl name $uplink_if:lower netflow
ngctl connect $uplink_if: netflow: upper out0
ngctl mkpeer netflow: ksocket export inet/dgram/udp
ngctl msg netflow:export connect inet/127.0.0.1:9996n=1
for i in $cloned_interfaces
do
if [ $i != $uplink_if ]; then
echo -n " $i"
ngctl connect $i: netflow: lower iface$n
ngctl connect $i: netflow: upper out$n
n=`/bin/expr $n + 1`
fi
doneecho " done."
Всё замечательно, но только почему-то ManageEngine NetFlow Analizer 5 показывает что у меня траффик в обе стороны абсолютно одинаковый. Как такое может быть и чем лечится, если не секрет?