Hallo,
ich plane unsere derzeitigen FreeBSD-Router durch OpenBSD-Router zu ersetzen. Bisher wurden die Netflows auf dem Router via netgraph und ng_netflow erstellt und an den Receiver geschickt.
Da OpenBSD mittlerweile auch ueber eine Kernel-Implementierung fuer Netflow verfuegt (pflow), moechte ich gerne diese nutzen.
An sich funktioniert das Ganze auch gut, allerdings sind alle Flows doppelt vorhanden.
Das Problem scheint hier mit den State-Table-Eintraegen zusammenzuhaengen.
Ein Beispiel:
Auf dem Rechner deb-01 laeuft flow-receive als Netflow Collector:
Der Router rtr-fra-01 (mit der enstprechenden Konfiguration fuer pflow s.u.) befindet sich zwischen 2 weiteren Rechnern, auf denen ich Performance Tests ausfuehre.
Auf einem der Rechner schicke ich nun Testdaten an den korrespondierenden Server.
Im State-Table von pf sehe ich entsprechend zwei Eintraege - einen pro Richtung.
Das Problem scheint zu sein, dass die Eintraege zwar einen Richtungsunterschied aufweisen, aber jeweils RX u. TX Traffic-Daten angezeigt werden, sodass diese entsprechend doppelt exportiert werden.
In Summe bedeutet das also, dass alle Daten doppelt accountet werden.
Hat jemand eine Idee, wie ich das Problem auf dem Router loesen kann?
Gruss,
Bernd
ich plane unsere derzeitigen FreeBSD-Router durch OpenBSD-Router zu ersetzen. Bisher wurden die Netflows auf dem Router via netgraph und ng_netflow erstellt und an den Receiver geschickt.
Da OpenBSD mittlerweile auch ueber eine Kernel-Implementierung fuer Netflow verfuegt (pflow), moechte ich gerne diese nutzen.
An sich funktioniert das Ganze auch gut, allerdings sind alle Flows doppelt vorhanden.
Das Problem scheint hier mit den State-Table-Eintraegen zusammenzuhaengen.
Ein Beispiel:
Auf dem Rechner deb-01 laeuft flow-receive als Netflow Collector:
Code:
deb-01:~# flow-receive 0.0.0.0/0.0.0.0/2100 -o bsdflow
flow-receive: setsockopt(size=4194304)
flow-receive: New exporter: time=1294143869 src_ip=192.168.89.150 dst_ip=192.168.89.52 d_version=5
Der Router rtr-fra-01 (mit der enstprechenden Konfiguration fuer pflow s.u.) befindet sich zwischen 2 weiteren Rechnern, auf denen ich Performance Tests ausfuehre.
Code:
rtr-fra-01# cat /etc/hostname.pflow0
flowsrc 192.168.89.150 flowdst 192.168.89.52:2100
rtr-fra-01# grep -v ^\# /etc/pf.conf
set skip on lo
pass keep state (pflow) # to establish keep-state
block in on ! lo0 proto tcp to port 6000:6010
rtr-fra-01#
Auf einem der Rechner schicke ich nun Testdaten an den korrespondierenden Server.
Code:
grabnebel:~# nuttcp -i1 192.168.92.55
102.0721 MB / 1.00 sec = 856.2173 Mbps
111.3174 MB / 1.00 sec = 933.8174 Mbps
111.6529 MB / 1.00 sec = 936.6071 Mbps
111.6529 MB / 1.00 sec = 936.5912 Mbps
111.6529 MB / 1.00 sec = 936.6240 Mbps
111.6529 MB / 1.00 sec = 936.6287 Mbps
111.6571 MB / 1.00 sec = 936.6241 Mbps
111.6529 MB / 1.00 sec = 936.6296 Mbps
111.6598 MB / 1.00 sec = 936.6725 Mbps
111.6529 MB / 1.00 sec = 936.5959 Mbps
1108.1875 MB / 10.01 sec = 928.3151 Mbps 6 %TX 20 %RX
grabnebel:~#
Im State-Table von pf sehe ich entsprechend zwei Eintraege - einen pro Richtung.
Code:
rtr-fra-01# pfctl -vss | grep -A2 5001
all tcp 192.168.92.55:5001 <- 192.168.89.55:50609 FIN_WAIT_2:FIN_WAIT_2
[3659736762 + 5888] wscale 6 [491808162 + 1749184] wscale 6
age 00:00:39, expires in 00:01:01, 802503:402038 pkts, 1203748980:20916988 bytes, rule 0, pflow
all tcp 192.168.89.55:50609 -> 192.168.92.55:5001 FIN_WAIT_2:FIN_WAIT_2
[491808162 + 1749184] wscale 6 [3659736762 + 5888] wscale 6
age 00:00:39, expires in 00:01:01, 802503:402038 pkts, 1203748980:20916988 bytes, rule 0, pflow
rtr-fra-01#
Das Problem scheint zu sein, dass die Eintraege zwar einen Richtungsunterschied aufweisen, aber jeweils RX u. TX Traffic-Daten angezeigt werden, sodass diese entsprechend doppelt exportiert werden.
Code:
deb-01:~# flow-print < bsdflow | grep 5001
192.168.89.55 192.168.92.55 6 50609 5001 1203748980 802503
192.168.92.55 192.168.89.55 6 5001 50609 20916988 402038
192.168.89.55 192.168.92.55 6 50609 5001 1203748980 802503
192.168.92.55 192.168.89.55 6 5001 50609 20916988 402038
deb-01:~#
In Summe bedeutet das also, dass alle Daten doppelt accountet werden.
Hat jemand eine Idee, wie ich das Problem auf dem Router loesen kann?
Gruss,
Bernd