LINUX.ORG.RU
ФорумAdmin

HELP, ULOG не считает всю статистику


0

0

Имеем: eth0 - внешний интерфейс, eth1 - NAT и _первое_ правило в iptables:

-A FORWARD -i eth0 -o eth1 -j ULOG --ulog-cprange 48 --ulog-qthreshold 50

Получаем:

# ifconfig eth0
...
          RX bytes:116459920 (111.0 MiB)  TX bytes:75727506 (72.2 MiB)
...

В статистике iptables:
Chain FORWARD (policy DROP 0 packets, 0 bytes)
num   pkts bytes target     prot opt in     out     source               destination
1      164052 113233908 ULOG       all  --  eth0   eth1    0.0.0.0/0            0.0.0.0/0           ULOG copy_range 48 nlgroup 1 queue_threshold 50

Куда утекает трафик? Сам сервер _ничего_ не качает.

Видим, что на интерфейсе трафика уже на 3 226 012 байт больше, чем ядро передало в ULOG.

Ядро 2.6.19.2
anonymous

точно ничего не качает?:)
сделай улог наинпут и сравни ...

Delay ★★
()

если твой сервер ктонибудь пропингует - как раз в ULOG и не попадет

anonymous
()

в документации по ulog написано, что он может передавать не весь пакет, только часть для анализа. подцепи базу данных, ulog будет писать в нее поля пакетов. типа src_ip, dst_ip, ip_len, raw_len, tot_len, qos, и т.д.

потом пишешь запрос, который агрегирует эти милионы записей :) по нужному тебе принципу и все.

по нагрузке: на машинке, которая форвардит порядка на скорости ~10 на двух интерфейсах, load average: 0.16 (до 0.3 иногда)

anonymous
()

INPUT _весь_ DNAT'ом уходит на одну из машин в локалке.

anonymous
()
Ответ на: комментарий от anonymous

лучше поставить -i ethX

Уже сделал, но всё равно ifconfig eth0 RX bytes быстрее растёт, чем ULOG

anonymous
()
Ответ на: комментарий от anonymous

> подцепи базу данных, ulog будет писать в нее поля пакетов.

Это итак сделано - в базе лежит байт в байт весь трафик из ULOG'a, только вот всё равно непонятно куда трафик утекает.

anonymous
()

В твоем правиле не будут учитываться всякие пинги, широковещательные запросы, попытки подобрать пароль к ссх, сканирование и прочее.

stalcker
()
Ответ на: комментарий от stalcker

в общем-то по идее должно быть INPUT(из локалки) + Forward(входящий из локалки)=If(локалкин) для инета то же самое.

The_Ketchup ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.