URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID11
Нить номер: 9
[ Назад ]

Исходное сообщение
"Подсчет трафика через iptables в Linux и ipfw в FreeBSD"

Отправлено nevi , 22-Дек-02 14:41 
Почему netfilter/iptables неправильно считает траффик??

ЭКСПЕРИМЕНТ по сабжу:

# iptables -I INPUT -p icmp
# iptables -Z
# ping 127.0.0.1 -c 1

PING 127.0.0.1 (127.0.0.1): 56 octets data
64 octets from 127.0.0.1: icmp_seq=0 ttl=64 time=0.1 ms

--- 127.0.0.1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.1/0.1/0.1 ms

# iptables -L INPUT -nvx
Chain INPUT (policy ACCEPT 2 packets, 168 bytes)
    pkts      bytes target     prot opt in     out     source              
destination        
       2      168            icmp --  *      *       0.0.0.0/0          
0.0.0.0/0
#

то-есть, послали 1 icmp(icmp-type 8) сегмент (протокол icmp относим к
межсетевому уровню) - 56 байт, и получили 1 icmp(icmp-type 0) сегмент - 64 байта.


внимание,ВОПРОС:

Почему netfilter правильно засчитал 2 pkts и *неправильно* посчитал количество байт -
56 + 64 = 118 != 168 ???

Инкапсуляции в протоколы низлежащего(сетевого) уровня нет, а ip-header, как написано в мане к ping, входит в те самые 56 байт -
ECHO_REQUEST datagrams (``pings'') have an IP and ICMP header,
followed by a ``struct timeval'' and then an arbitrary number of
``pad'' bytes used to fill out the packet.

Отчего так может быть? А то у меня на этом мысль останавливается ;)

==============================
В треде предлагается обсудить применяемые в практике методы учета трафика и накопления статистики используя счетчики в iptables, ipchains, ipf, ipfw и других пакетных фильтрах.

Выборка тредов из форума:
Linux
https://www.opennet.ru/openforum/vsluhforumID3/987.html
https://www.opennet.ru/openforum/vsluhforumID1/18933.html
https://www.opennet.ru/openforum/vsluhforumID1/17008.html
https://www.opennet.ru/openforum/vsluhforumID1/23697.html

FreeBSD
https://www.opennet.ru/openforum/vsluhforumID1/6741.html
https://www.opennet.ru/openforum/vsluhforumID1/7613.html
https://www.opennet.ru/openforum/vsluhforumID1/23699.html
https://www.opennet.ru/openforum/vsluhforumID1/23710.html
https://www.opennet.ru/openforum/vsluhforumID1/21977.html
https://www.opennet.ru/openforum/vsluhforumID1/18668.html
https://www.opennet.ru/openforum/vsluhforumID1/17292.html



Содержание

Сообщения в этом обсуждении
"RE: Подсчет трафика через iptables в Linux и ipfw в FreeBSD"
Отправлено poige , 23-Дек-02 09:23 
>Почему netfilter/iptables неправильно считает траффик??

[...]

>Почему netfilter правильно засчитал 2 pkts и *неправильно* посчитал количество байт -
>
>56 + 64 = 118 != 168 ???

видимо, потому, что у него сложилось "превратное" впечатление, что ICMP работает по IP. Я думаю, вам стоит прочитать и попытаться осмыслить немного документации по той отрасли, в которой вы находите ошибки.

/poige, http://www.morning.ru/~poige


"RE: Подсчет трафика через iptables в Linux и ipfw в FreeBSD"
Отправлено vadblm , 24-Дек-02 15:04 
>Почему netfilter/iptables неправильно считает траффик??

У нас тут Yury Pimenov написал отличный демон подсчета траффика для  Linux - trcounterd. Использует libpcap, данные складывает в MySQL. Вообще-то  он сделан с учетом местной (латвийской) политики (внутри страны траффик бесплатный, зарубеж - у разных ISP по-разному), но переделать под себя его совсем нетрудно ;)
последняя версия лежит здесь: ftp://ftp.linux.lv/pub/made_in_latvia/trcounterd/


"RE: Подсчет трафика через iptables в Linux и ipfw в FreeBSD"
Отправлено nevi , 25-Дек-02 08:00 
Дико извиняюсь! ;]

Просто не дочитал ман до _самого_ конца. На самом деле все считается
правильно, так и должно быть.

а ping, когда посылает пакет, пишет размер arbitrary data, не учитывая
icmp-header'а - 56 байт по дефолту,
и полный размер пакета, который он получает в ответ, на этот раз уже
учитывая все хедеры - 56 + 8.

Вот..и вообще, в мане к ping'у куча всяких интерестностей))

10x 2 All


"RE: Подсчет трафика через iptables в Linux и ipfw в FreeBSD"
Отправлено Gara , 22-Фев-03 11:54 
Есть замечательная вещь ipacc для freebsd ... посмотрите и оставьте в покое ipfw  :)))

https://www.opennet.ru/openforum/vsluhforumID3/327.html



"RE: Подсчет трафика через iptables в Linux и ipfw в FreeBSD"
Отправлено BlackSir , 12-Май-04 19:14 
ng_netflow кстати получше будет т.к. есть уже куча прог для сохранения и анализа netflow-статистики. (Хотя сам я считаю через ipfw и проверяю через netflow - так уж исторически сложилось)

>Есть замечательная вещь ipacc для freebsd ... посмотрите и оставьте в покое
>ipfw  :)))
>
>https://www.opennet.ru/openforum/vsluhforumID3/327.html



"RE: Подсчет трафика через iptables в Linux и ipfw в FreeBSD"
Отправлено Клинский , 16-Июн-04 17:31 
А если бы еще ограничить юзеров, то есть закрывать доступ, когда скачали допустимое количество информации, да не пользуясь базами mysql ???

"RE: Подсчет трафика через iptables в Linux и ipfw в FreeBSD"
Отправлено dm , 13-Сен-04 21:05 
>А если бы еще ограничить юзеров, то есть закрывать доступ, когда скачали
>допустимое количество информации, да не пользуясь базами mysql ???

могу дать целую систему учети и тарификации, немного не доделано, но  за полгода работы показала себя великолепно и на работе и в нашней домашней сетке. Трафик есть работает, закончился отключаем. (раз в минуту по крону запускается скрипт)
пользователи авторизуются по pptp (mpd)
ng_ipacctd считает трафик
база в файле  вот такого вида

login:password:fio:limit:status

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


"RE: Подсчет трафика через iptables в Linux и ipfw в FreeBSD"
Отправлено Moralez , 25-Сен-04 09:16 
Не подскажете аналог ng_ipacctd (или хотя бы ipacctd) для linux?!

На маршрутизаторы для всяких нищих контор нужно:

1. надёжную fs, поэтому подходит только ext3 с полным журналированием
2. считалка трафика, поэтому подходят divert sockets

libpcap использовать не хочется (т.к. возможны неточности с подсчётом)

пока ставлю фрю, но уже были печальные преценденты и с SoftUpdates и с sync и без итд... :-( подскажите аналог ipacctd под linux, плизз! :(