Home Travels Photoalbum Library
Главная стр.
Путешествия
Библиотека
Фотоальбом
@rich62.ru
Home » Библиотека » Network » Проблема приема UDP NetFlow трафика
Вернуться в «Библиотеку» Проблема приема UDP NetFlow трафика

Проблема

При настройке передачи информации NetFlow, в сети, похожей на приведенном рисунке, возникла проблема - поток flow (в нашем случае - UDP/2222) от роутера (Router Cisco 2811) не записывался в файлы данных. В качестве flow-коллектора выступал сервер под управлением ОС Debian Linux с установленным пакетом flow-tools-0.66:

UDP Route Scheme [6K]
SRV:~# uname -a
Linux SRV 2.6.18-4-686 #1 SMP Wed Feb 21...

SRV:~# ip addr
1: lo:  mtu 16436 qdisc noqueue 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast qlen 100
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 172.16.0.7/16 brd 172.16.255.255 scope global eth0
    inet6 xxxx::xxx:xxxx:xxxx:xxxx/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1:  mtu 1500 qdisc pfifo_fast qlen 100
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.7/24 brd 10.10.10.255 scope global eth1
    inet6 xxxx::xxx:xxxx:xxxx:xxxx/64 scope link 
       valid_lft forever preferred_lft forever
4: sit0:  mtu 1480 qdisc noop 
    link/sit 0.0.0.0 brd 0.0.0.0

SRV:~# ps axf | grep flow
2664  ?  Ss  0:00  /usr/local/netflow/bin/flow-capture -V 5 -z 9 -n 95 -w \
    /flow/Router 172.16.0.7/192.168.1.254/2222

Все необходимые маршруты на сетевом оборудовании были настроены корректно и ACL's разрешали прохождение UDP/2222 в сторону сервера. Проверка показала, что данные на вход интерфейса eth0 поступают:

SRV:~# tcpdump -i eth0 | grep 192.168.1.254
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
13:25:31.293008 IP 192.168.1.254.50974 > SRV.2222: UDP, length 1464
13:25:31.548195 IP 192.168.1.254.50974 > SRV.2222: UDP, length 1464
13:25:31.548445 IP 192.168.1.254.50974 > SRV.2222: UDP, length 1464
1610 packets captured
3237 packets received by filter
0 packets dropped by kernel

SRV:~# iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source           destination
ACCEPT     udp  --  192.168.1.254    anywhere       udp dpt:2222 

Права на файловую систему были достаточны и strace (с отслеживанием child-процессов) запуска программы flow-capture показывала нормальную работу. Поскольку пакеты UDP не требуют подтверждения, то все должно было функционировать, однако, данные в файлы не писались.

Решение

Проблема решилась добавлением маршрута в сеть 192.168.1.0/24:

SRV:~# netstat -rn
Kernel IP routing table
Destination   Gateway     Genmask          Flags   MSS Window  irtt Iface
172.16.0.0    0.0.0.0     255.255.0.0      U         0 0          0 eth0
10.0.0.0      0.0.0.0     255.255.255.0    U         0 0          0 eth1
0.0.0.0       10.0.0.1    0.0.0.0          UG        0 0          0 eth1

SRV:~# /sbin/route add -v -net 192.168.1.0 netmask 255.255.255.0 gw 172.16.0.1

Вывод

IMHO (глубоко не копал) - проблема в настройке антиспуфинга в iptables. Пакет с адресом 192.168.1.254 поступал на интерфейс, в scope которого не входила данная сеть и firewall его просто "резал", не передавая дальше в ядро.

О замеченных неточностях прошу сообщить мне.

©rich62.ru,  2001-2011