LINUX.ORG.RU

Избранные сообщения Extralaw

Подсчет трафика

Форум — Admin

Есть роутер (выполняющий также роль MTA) под дебианом, на котором поднято 20+ подсетей (структура организации большая, наследие одного из бывших провайдеров, планируем переход на более простую схему). Знаю что софта, умеющего считать трафик вагон, но хотелось бы обойтись чем-то легким и изящным - вроде связки iptables + mysql + скрипт, который пишет в базу + простенький скрипт на пыхе, который красиво все показывает. Пытаюсь сделать что-то наподобие вот такого, только вот выхлоп iptables -Lvnx показывает трафик по подсетям, нужна конкретизация по ip (и желательно еще по mac).

P.S. Если из легкого - стоит может использовать ulogd + ulogd-mysql?

Собственно вся прелесть подсети:

# route -n | grep vlan
10.0.0.0        10.0.0.1        255.255.0.0     UG    0      0        0 vlan10
10.0.0.0        0.0.0.0         255.255.0.0     U     0      0        0 vlan10
10.1.0.0        10.1.0.1        255.255.0.0     UG    0      0        0 vlan11
10.1.0.0        0.0.0.0         255.255.0.0     U     0      0        0 vlan11
10.2.0.0        10.2.0.1        255.255.0.0     UG    0      0        0 vlan12
10.2.0.0        0.0.0.0         255.255.0.0     U     0      0        0 vlan12
10.14.124.0     10.14.127.254   255.255.252.0   UG    0      0        0 vlan1160
10.14.124.0     0.0.0.0         255.255.252.0   U     0      0        0 vlan1160
10.106.0.0      10.106.0.1      255.255.255.0   UG    0      0        0 vlan374
10.106.0.0      0.0.0.0         255.255.255.0   U     0      0        0 vlan374
10.106.1.0      10.106.1.1      255.255.255.224 UG    0      0        0 vlan354
10.106.1.0      0.0.0.0         255.255.255.224 U     0      0        0 vlan354
10.106.1.64     10.106.1.65     255.255.255.192 UG    0      0        0 vlan368
10.106.1.64     0.0.0.0         255.255.255.192 U     0      0        0 vlan368
10.106.1.128    10.106.1.129    255.255.255.192 UG    0      0        0 vlan365
10.106.1.128    0.0.0.0         255.255.255.192 U     0      0        0 vlan365
10.106.2.64     10.106.2.65     255.255.255.224 UG    0      0        0 vlan358
10.106.2.64     0.0.0.0         255.255.255.224 U     0      0        0 vlan358
10.106.2.128    10.106.2.129    255.255.255.128 UG    0      0        0 vlan363
10.106.2.128    0.0.0.0         255.255.255.128 U     0      0        0 vlan363
10.106.3.0      10.106.3.1      255.255.255.0   UG    0      0        0 vlan359
10.106.3.0      0.0.0.0         255.255.255.0   U     0      0        0 vlan359
10.106.5.64     10.106.5.65     255.255.255.224 UG    0      0        0 vlan373
10.106.5.64     0.0.0.0         255.255.255.224 U     0      0        0 vlan373
10.106.5.96     10.106.5.97     255.255.255.224 UG    0      0        0 vlan361
10.106.5.96     0.0.0.0         255.255.255.224 U     0      0        0 vlan361
10.106.7.0      10.106.7.1      255.255.255.128 UG    0      0        0 vlan369
10.106.7.0      0.0.0.0         255.255.255.128 U     0      0        0 vlan369
10.106.7.128    10.106.7.129    255.255.255.128 UG    0      0        0 vlan367
10.106.7.128    0.0.0.0         255.255.255.128 U     0      0        0 vlan367
10.106.8.0      10.106.8.1      255.255.255.128 UG    0      0        0 vlan352
10.106.8.0      0.0.0.0         255.255.255.128 U     0      0        0 vlan352
10.106.8.128    10.106.8.129    255.255.255.128 UG    0      0        0 vlan353
10.106.8.128    0.0.0.0         255.255.255.128 U     0      0        0 vlan353
10.106.9.0      10.106.9.1      255.255.255.128 UG    0      0        0 vlan356
10.106.9.0      0.0.0.0         255.255.255.128 U     0      0        0 vlan356
10.106.9.128    10.106.9.129    255.255.255.128 UG    0      0        0 vlan357
10.106.9.128    0.0.0.0         255.255.255.128 U     0      0        0 vlan357
10.106.13.0     10.106.13.1     255.255.255.128 UG    0      0        0 vlan362
10.106.13.0     0.0.0.0         255.255.255.128 U     0      0        0 vlan362
10.106.13.128   10.106.13.129   255.255.255.128 UG    0      0        0 vlan366
10.106.13.128   0.0.0.0         255.255.255.128 U     0      0        0 vlan366
10.106.14.0     10.106.14.1     255.255.255.128 UG    0      0        0 vlan360
10.106.14.0     0.0.0.0         255.255.255.128 U     0      0        0 vlan360
10.106.14.128   10.106.14.129   255.255.255.192 UG    0      0        0 vlan350
10.106.14.128   0.0.0.0         255.255.255.192 U     0      0        0 vlan350
192.168.1.0     192.168.1.1     255.255.255.0   UG    0      0        0 vlan802
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 vlan802

Правила для iptables просты:

iptables -I INPUT 1 -i vlanX -j ACCEPT
iptables -A FORWARD -i vlanX -s NET/NETMASK -j ACCEPT
iptables -A FORWARD -i eth0 -d NET/NETMASK -j ACCEPT

И в конце маскарадинг.

Решение: т.к. трафик идет немаленький, прикручиваем ipt_netflow вот таким способом, почитав также это

Затем:

mkdir /var/log/netflow
nfcapd -l /var/log/netflow/ -t <время в секундах> -D -p <порт>

Читаем логи:

nfdump -r /var/log/netflow/<имя_файла> | less

Отдельное спасибо AS

P.S. Если запилю скрипт для записи в БД и чтения с нее - выложу сюда.

leg0las
()