Добрый день!
Долго считал трафик с помощью правил ipfw count, всё было нормально, но с месяц назад появились странности. Вот, взгляните на этот результат команды ipfw show:00050 4439 1302601 tee 20001 ip from any to any via tun0
00100 2695 805238 count ip from any to any via tun0 in
00101 1713 489367 count ip from any to any via tun0 out
00103 0 0 deny ip from 127.0.0.0/8 to any
00105 0 0 deny ip from 192.168.1.0/24,192.168.0.0/24 to any via tun0 in
00106 0 0 deny ip from 192.168.1.0/24,192.168.0.0/24 to any via tun2 in
00107 0 0 deny ip from 192.168.1.0/24,192.168.0.0/24 to any via tun1 in
00108 2714 812754 count ip from any to any via tun0 in
00109 1725 489847 count ip from any to any via tun0 out
00116 0 0 allow tcp from any to xx.xx.xx.xx dst-port yy.yy.yy.yy
00117 0 0 fwd xx.xx.xx.xx tcp from yy.yy.yy.yy zz.zz.zz.zz to any
00118 0 0 fwd xx.xx.xx.xx1 tcp from yy.yy.yy.yy1 zz.zz.zz.zz1 to any
00118 0 0 fwd xx.xx.xx.xx2 tcp from yy.yy.yy.yy2 zz.zz.zz.zz2 to any
00119 0 0 fwd xx.xx.xx.xx3 tcp from yy.yy.yy.yy3 to any dst-port zz.zz.zz.zz3
00120 0 0 deny log logamount 65534 tcp from not xx.xx.xx.xx to yy.yy.yy.yy dst-port zz.zz.zz.zz via tun2
00121 0 0 deny log logamount 65534 tcp from not xx.xx.xx.xx to yy.yy.yy.yy1 dst-port zz.zz.zz.zz1 via tun0
00122 0 0 deny log logamount 65534 tcp from not xx.xx.xx.xx to yy.yy.yy.yy1 dst-port zz.zz.zz.zz2 via tun0
00123 0 0 deny log logamount 65534 tcp from not xx.xx.xx.xx to yy.yy.yy.yy2 dst-port zz.zz.zz.zz3 via tun0,tun2,tun1
00124 0 0 deny log logamount 65534 tcp from not xx.xx.xx.xx to yy.yy.yy.yy2 dst-port zz.zz.zz.zz1 via tun1
00125 0 0 deny log logamount 65534 tcp from not xx.xx.xx.xx to yy.yy.yy.yy3 dst-port zz.zz.zz.zz1 via tun1
00130 0 0 allow tcp from xx.xx.xx.xx to yy.yy.yy.yy dst-port zz.zz.zz.zz5 keep-state
00140 2360 777364 count ip from any to any via tun0 in
00141 1416 113119 count ip from any to any via tun0 outПо логике вещей, количество байт и пакетов правил 100 и 101 должно совпадать с правилами 108,109 и 140, 141. Но, результат вы видите сами. Что это может быть?
>Добрый день!
>Долго считал трафик с помощью правил ipfw count, всё было нормально, но
>с месяц назад появились странности. Вот, взгляните на этот результат команды
>ipfw show:..
>По логике вещей, количество байт и пакетов правил 100 и 101 должно
>совпадать с правилами 108,109 и 140, 141. Но, результат вы видите
>сами. Что это может быть?1. Автор темы обкурился.
2. Часть правил были занулены или добавлены после добавления других правил.
>1. Автор темы обкурился.не понял шутки
>2. Часть правил были занулены или добавлены после добавления других правил.
Не понял. Вы видите вывод команды ipfw show. Здесь все правила которые существуют. Если бы что-то попадало в другие правила - там бы не было нулей.
С какого перепугу оно должно совпадать?
>С какого перепугу оно должно совпадать?а с какого перепугу не должны совпадать два абсолютно одинаковых правила count?
>>С какого перепугу оно должно совпадать?
>
>а с какого перепугу не должны совпадать два абсолютно одинаковых правила count?
>а это точно полный листинг?
>а это точно полный листинг?Да. Есть правила после этих, но они ведь никак не могут влиять на результат.
>>а это точно полный листинг?
>
>Да. Есть правила после этих, но они ведь никак не могут влиять
>на результат.Блин ну не парь уже мозг - покажи полный листинг без редактирования.
>Блин ну не парь уже мозг - покажи полный листинг без редактирования.Там более тысячи правил. Какой смысл полного листинга?
>>Блин ну не парь уже мозг - покажи полный листинг без редактирования.
>
>Там более тысячи правил. Какой смысл полного листинга?сорри за офтоп, но зачем так извращаться с подсчетом, если можно поставить что-нить аля ipcad с netflow?
>сорри за офтоп, но зачем так извращаться с подсчетом, если можно поставить
>что-нить аля ipcad с netflow?Ipacct стоит. На него, кстати, заворачивает правило 50.
Через count я считал до того как познакомился с ipacctd. Ipacct всем хорош, но когда у тебя ежедневно на почтовик коннектится по 250 тыс. хостов, то количество записей в базе за месяц составляет 6-7 млн. И простенькие отчеты вроде суммарного трафика от провайдера или трафика конкретного юзера, которые регулярно запрашивается в течение дня, на такой базюке грузят mysql по самое нехочу. Я уже думаю насчет разведения статистики по почтовику и по всему остальному (почтовик генерит 70% логов ipacct), но пока нужно с ipfw count жить)
Уточню. До появления глюков, учет велся по правилу 140 и 141. В прошлом месяце я обнаружил, что трафик по этим двум правилам резко сократился. При том, что никаких изменений в правила до номера 140 не вносилось. Правила 100, 101 и 108,109 я уже добавил после, когда начал выяснять что за ерунда происходит. По идее, сумма счетчиков правил 100 и 101 или 108 и 109 или 140 и 141 должна быть равна счетчикам правила 50. Это выполняется, как ни странно, только для правил 108 и 109!
Да, забыл сказать, речь идет о FreeBSD 6.1-Release.
>Уточню. До появления глюков, учет велся по правилу 140 и 141. В
>прошлом месяце я обнаружил, что трафик по этим двум правилам резко
>сократился. При том, что никаких изменений в правила до номера 140
>не вносилось. Правила 100, 101 и 108,109 я уже добавил после,
>когда начал выяснять что за ерунда происходит. По идее, сумма счетчиков
>правил 100 и 101 или 108 и 109 или 140 и
>141 должна быть равна счетчикам правила 50. Это выполняется, как ни
>странно, только для правил 108 и 109!
>Да, забыл сказать, речь идет о FreeBSD 6.1-Release.Добавь логирование, проведи тестовый замер и сравни какие пакеты не учитывались.
>Добавь логирование, проведи тестовый замер и сравни какие пакеты не учитывались.О! Спасибо за идею! Попробую.
>>Добавь логирование, проведи тестовый замер и сравни какие пакеты не учитывались.
>
>О! Спасибо за идею! Попробую.Собери тестовую схему в вмваре....
>Добавь логирование, проведи тестовый замер и сравни какие пакеты не учитывались.Посмотрел - похоже на то, что он тупо не считает произвольные пакеты. Никакой закономерности.
Кстати, я даже вычислил конкретную дату и время когда это началось (у меня по крону каждые 15 минут в текстовый файлик записывается результат выполнения команды ipfw show с последующим обнулением счетчиков; так вот - конкретно видно что до определенного момента всё считалось корректно, а потом началась такая вот ерунда). И, похоже, я в это время что-то таки делал на сервере. Но что именно - не помню.
Кому там нужен был полный листинг правил. Сейчас специально грохнул все правила и добавил следующие четыре правила:00010 358 27284 count ip from any to any via tun0 in
00020 255 30168 count ip from any to any via tun0 out
00040 272 18594 count ip from any to any via tun0 in
00050 223 26013 count ip from any to any via tun0 outБольше никаких правил нет. Что за глюк?
>[оверквотинг удален]
>00010 358 27284 count ip from any to any
>via tun0 in
>00020 255 30168 count ip from any to any
>via tun0 out
>00040 272 18594 count ip from any to any
>via tun0 in
>00050 223 26013 count ip from any to any
>via tun0 out
>
>Больше никаких правил нет. Что за глюк?Сделай ipfw -z а потом смотри.
>Сделай ipfw -z а потом смотри.Упс, точно. Здесь всё нормально работает)
Век живи - век учись. Всё дело было вот в этом правиле.> 0 allow tcp from xx.xx.xx.xx to yy.yy.yy.yy dst-port zz.zz.zz.zz5 keep-state
keep-state каким-то образом влиял на подсчёт. Каким - попробую разобраться завтра.
Всем спасибо за советы.
>Век живи - век учись. Всё дело было вот в этом правиле.
>
>
>> 0 allow tcp from xx.xx.xx.xx to yy.yy.yy.yy dst-port zz.zz.zz.zz5 keep-state
>
>keep-state каким-то образом влиял на подсчёт. Каким - попробую разобраться завтра.
>Всем спасибо за советы.Lol.
>Lol.Хороший ответ, конечно, но, уважаемый Вадим, написавший вот это
http://www.opennet.me/base/net/ipfw_flow_map.txt.html
дал более исчерпывающий ответ и помог разобраться в чём было дело.
За что ему большое спасибо.
>>Lol.
>
>Хороший ответ, конечно, но, уважаемый Вадим, написавший вот это
>http://www.opennet.me/base/net/ipfw_flow_map.txt.html
>дал более исчерпывающий ответ и помог разобраться в чём было дело.
>За что ему большое спасибо.Да, Вадим мега чувак, в одном городе кстати живем )
>Да, Вадим мега чувак, в одном городе кстати живем )Кстати, со мной в соседней области)
>>Да, Вадим мега чувак, в одном городе кстати живем )
>Кстати, со мной в соседней области)А я в соседней стране. Земляки!