Имеется шлюз на старом железе (п-233/80рам - это ключевой фактор). linux 2.6 + iptables.
Шлюз одной сетевухой смотрит в локалку (~40 компов), второй - в интернет (хилый ADSL).
Счетчик траффика я уже сделал (iptables, один юзер-две цепочи - in/out. снятие данных - bash+mysql, выборка статистики - php)
Считать-то он считает, но само собой, что не учитываются оверхеды при передаче по ADSL (bridget, LLC-инкапсуляция, если интересно).
Из-за этого получаются казусы, иногда. Например, при загрузке канала на 20-30 процентов (по суммам байт) на самом деле канал занят на 100. А иногда и 90%-ная загрузка видна и вроде бы канал что-то еще может выжать.
Хочется скорректировать статистику с учетом оверхедов. В Advanced Routing HowTo, кажется, вычитал, что обычно размер пакетов при LLC-инкапсуляции - 64 байта и 48 из них отводятся под данные (т.е. 1/4 канала уже съедается), большие IP-пакеты будут дробится, что бы вместится в 48 байт (тоже оверхеды).
Вопрос первый: где бы найти конкретные цифры, из которых можно посчитать оверхеды в моем случае.
Хочется так же вести какой-нить анализ траффика, в частности, размеров пакетов (что бы подобрать оптимальный MTU, к примеру) или номера портов. Пока додумался только до такого способа - добавить правило, по которому инфа о пакетах будут идти в syslog, а уже на том конце будет висеть мой анализатор, но, боюсь, это создаст высокую нагрузку на сервере (какое хранилище данных использовать для тысяч INSERT'ов в секунду? Особенно на такой машине...) Это второй вопрос... :-)