Jump to content

почему в сенсор попадает не весть трафик?

 

root@servak:~# cat /proc/net/stat/ipt_netflow
Flows: active 4 (peak 67 reached 0d0h10m ago), mem 0K
Hash: size 160000 (mem 625K), metric 1.0, 1.0, 1.0, 1.0. MemTraf: 5918 pkt, 6251 K (pdu 4640, 5026376).
Timeout: active 30, inactive 15. Maxflows 2000000
Rate: 1250072 bits/sec, 145 packets/sec; Avg 1 min: 1370328 bps, 155 pps; 5 min: 1438999 bps, 151 pps
cpu#  stat: <search found new, trunc frag alloc maxflows>, sock: <ok fail cberr, bytes>, traffic: <pkt, bytes>, drop: <pkt, bytes>
Total stat:      2 656656   2532,    0    0    0    0, sock:     88 0 0, 120 K, traffic: 659188, 583 MB, drop: 0, 0 K
cpu0  stat:      2 656416   2512,    0    0    0    0, sock:     88 0 0, 120 K, traffic: 658928, 583 MB, drop: 0, 0 K
cpu1  stat:      0    240     20,    0    0    0    0, sock:      0 0 0, 0 K, traffic: 260, 0 MB, drop: 0, 0 K
sock0: 127.0.0.1:9998, sndbuf 262144, filled 1, peak 1; err: sndbuf reached 0, other 0
root@servak:~# iptables -nvL|grep NETFLOW
659K  613M NETFLOW    all  --  *      *       0.0.0.0/0            0.0.0.0/0           NETFLOW
root@servak:~# uname -a
Linux servak 3.2.0-4-686-pae #1 SMP Debian 3.2.46-1 i686 GNU/Linux
root@servak:~#

Edited by zakachkin

Share this post


Link to post
Share on other sites

почему в сенсор попадает не весть трафик?

Больше похоже на неаккуратное округление, не?

583 * 1024 * 1024 = 611319808

584 * 1024 * 1024 = 612368384

613 * 1000 * 1000 = 613000000

Share this post


Link to post
Share on other sites

почему в сенсор попадает не весть трафик?

Больше похоже на неаккуратное округление, не?

583 * 1024 * 1024 = 611319808

584 * 1024 * 1024 = 612368384

613 * 1000 * 1000 = 613000000

А что надо подкрутить чтоб было ровное?

Share this post


Link to post
Share on other sites

А под 3.10 у кого-нибуть получилось собрать?

 

з.ы. Пабидил: в 3.10 немного переделали работу с procfs; мне разбираться лень - просто сделал

#undef CONFIG_PROC_FS

в ipt_NETFLOW.c

Один черт не использовал никогда; с выложенным в теме патчем всё собралось

 

Но может быть кто-то, более шарящий в "ядерной физике" сделает кошерно :)

 

мля, а libipt_netflow так и не собирается ><

Edited by Wingman

Share this post


Link to post
Share on other sites

Вобчем, libipt_netflow не собирается со свежими iptables; iptables постарше не собираются со свежими хидерами ядра :) Печалька, как бы автора уговорить пропатчить своё детище)

Share this post


Link to post
Share on other sites

ставьте старый проверенный в боях софт :)

 

core ~ # modinfo ipt_NETFLOW
filename:       /lib/modules/3.4.9-gentoo/ipt_netflow/ipt_NETFLOW.ko
version:        1.7.2
...
core ~ # equery u iptables
...
* Found these USE flags for net-firewall/iptables-1.4.13:
...
core ~ # uname -a
Linux core 3.4.9-gentoo #1 SMP Mon Oct 15 12:22:22 MSK 2012 x86_64 Intel(R) Xeon(R) CPU E5504 @ 2.00GHz GenuineIntel GNU/Linux

Edited by nanaiki

Share this post


Link to post
Share on other sites

Мне нужно ведро постарше :) Там много чего подтюнено, например выпилен нахрен роуткеш, который у меня потихоньку начинает переполняться временами)

Share this post


Link to post
Share on other sites

Вобчем, libipt_netflow не собирается со свежими iptables; iptables постарше не собираются со свежими хидерами ядра :) Печалька, как бы автора уговорить пропатчить своё детище)

Все там отлично собирается!

kernel 3.9.11

iptables-1.4.19.1

Share this post


Link to post
Share on other sites

А с 3.10 попробуйте, если есть возможность

Влом пока 3.10 пилить... вот будет он реально LT, тогда запилим))))

А будет это тогда, когда 3.11 выйдет и 3.10 перевалит за 3.10.10

А пока рано десятку ставить, сырое оно еще)

Share this post


Link to post
Share on other sites

Linux core 3.4.9-gentoo

 

И не вешалось оно у вас ни разу?

 

Мои наблюдения:

Linux роутеры, netflow, шейпер, ipset/iptables,

500-900мегабит, 70-140кппс

 

20 машин на 3.1.6 все отлично.

Несколько осталось на 3.0.6-gentoo тоже стабильно.

из ядер 3.2.* и 3.4.* осталась только одна на 3.4.38-gentoo, и то потому что техподдержку по телефону не далеко посылать нажимать заветную кнопку ресета.

При больших нагрузках это ядро вообще впадало в странности, посисали отдельные процессы, не говоря уж о IPv4: dst cache overflow..

На 3.7.7-gentoo зависало пару раз, сейчас одна машина на нем осталась

На 3.8.13-gentoo периодически пролетают "INFO: rcu_preempt detected stalls on CPUs/tasks.." в целом работает.

На 3.9.6-gentoo работает одна экспериментальная, замечено снижение нагрузки на cpu.

а вот тут уже netflow что-то редко, но ругается на "netflow_send_pdu[0]: sendmsg error -11: data loss 92 pkt, 8513 bytes: increase sndbuf!"

 

Жду ipt_netflow в 3.10 ибо нужно будет несколько 10g роутеров делать.

Без ipt_netflow на тестах 3.10.4-gentoo, под мои цели там все ок.

Share this post


Link to post
Share on other sites

telecom, а какие у вас linux-headers установлены? Что-то у меня не так в консерватории, под gentoo-sources-3.9.11-r1 тоже нихрена не собирается ><

С таким вот выводом: http://ip-home.net/files/make_all.txt

 

p.s. а gcc какой? Я уже в любую блажь готов поверить =)

Edited by Wingman

Share this post


Link to post
Share on other sites

telecom, а какие у вас linux-headers установлены? Что-то у меня не так в консерватории, под gentoo-sources-3.9.11-r1 тоже нихрена не собирается ><

С таким вот выводом: http://ip-home.net/files/make_all.txt

 

p.s. а gcc какой? Я уже в любую блажь готов поверить =)

у меня на центос, собирается влет, без всяких проблем)

PS

Мы сабж вкрячили в SRPM-ки с ядром и с iptabless. Он собирается вместе с ядром, более того монолитно, а не в виде модуля. Т.е. один раз компилим, получаем rpm-ки ядра и iptabless с уже впиленным сабжем, как с родным. Потом заливаем их на сколь угодное кол. серверов.

Share this post


Link to post
Share on other sites

Омфг.

Только сейчас я понял, что на кнопке "download" на sf.net висит 1.7.что-то-там, а 1.8 - в гите :)

 

+ что-то сломали в хидерах ядра в генте. Фиксится указанием ./configure --kdir=/usr/src/linux/arch/x86, ну либо в мейкфайле руками поправить

Ура, в общем :)

Share this post


Link to post
Share on other sites

Приветствую!

 

Стоит Debain 6.0 с iptables используется сугубо как роутер. Собрал ipt_netflow, добавил правила, все добавилось:

iptables -L -v -n

Chain INPUT (policy ACCEPT 13538 packets, 1315K bytes)

pkts bytes target prot opt in out source destination

23907 2309K NETFLOW all -- * * 0.0.0.0/0 0.0.0.0/0 NETFLOW

 

Chain FORWARD (policy ACCEPT 397 packets, 16820 bytes)

pkts bytes target prot opt in out source destination

8042M 4070G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED

522M 41G ACCEPT all -- eth0 * <скрыто>/24 0.0.0.0/0 ctstate NEW

849 35748 NETFLOW all -- * * 0.0.0.0/0 0.0.0.0/0 NETFLOW

 

Chain OUTPUT (policy ACCEPT 11575 packets, 1323K bytes)

pkts bytes target prot opt in out source destination

20263 2346K NETFLOW all -- * * 0.0.0.0/0 0.0.0.0/0 NETFLOW

 

Создал файл в modprobe.d, указал destination 127.0.0.1 9996 порт, tcpdump все видит:

 

tcpdump -i lo port 9996

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode

listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes

12:12:22.015238 IP localhost.37715 > localhost.9996: UDP, length 1464

12:12:22.615364 IP localhost.37715 > localhost.9996: UDP, length 1464

12:12:23.115116 IP localhost.37715 > localhost.9996: UDP, length 1464

12:12:23.715096 IP localhost.37715 > localhost.9996: UDP, length 1464

12:12:24.119151 IP localhost.37715 > localhost.9996: UDP, length 1464

12:12:24.819199 IP localhost.37715 > localhost.9996: UDP, length 1464

12:12:25.419114 IP localhost.37715 > localhost.9996: UDP, length 1464

12:12:26.219163 IP localhost.37715 > localhost.9996: UDP, length 1464

 

 

Собираю на той же ос с ncapd и читаю с nfdump.

 

Может у меня руки кривые, но я пробовал:

 

nfdump -R /var/netflow/ -s record -n 10

nfdump -R /var/netflow/$TODAY -s record -n 10

nfdump -R /var/netflow/$YESTURDAY -s record -n 10

 

Результаты одни и те же. При этом nfdump показывает максимальный трафик с одного хоста 12000 байт, а snmp показывает, что прошло минимум 30Гб за один день, в чем блин косяк?:(

Edited by r1sh

Share this post


Link to post
Share on other sites

нужный трафик то в цепочку NETFLOW зарулить забыли?

FORWARD переводим в политику дроп, в нем заруливаем в нетфлоу и ассептим

предлагаю создать табличку netflow в нее зарулить тех кого нужно общитывать, в ней нечто типа

iptables -A netflow -j NETFLOW

iptables -A netflow -j ACCEPT

 

а сейчас у вас первые два правила не дают пекетам шанса попасть в NETFLOW

8042M 4070G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED

522M 41G ACCEPT all -- eth0 * <скрыто>/24 0.0.0.0/0 ctstate NEW

849 35748 NETFLOW all -- * * 0.0.0.0/0 0.0.0.0/0 NETFLOW

Edited by Tamahome

Share this post


Link to post
Share on other sites

Результаты одни и те же. При этом nfdump показывает максимальный трафик с одного хоста 12000 байт, а snmp показывает, что прошло минимум 30Гб за один день, в чем блин косяк?:(

Какие-то странные у вас правила в iptables: до netflow в цепочке FORWARD мало что доходит. Определитесь, что именно хотите считать. Сейчас вы считаете только исходящий-входящий трафик непосредственно на сам маршрутизатор, плюс совсем немного транзитного трафика.

Share this post


Link to post
Share on other sites

Какие-то странные у вас правила в iptables: до netflow в цепочке FORWARD мало что доходит. Определитесь, что именно хотите считать. Сейчас вы считаете только исходящий-входящий трафик непосредственно на сам маршрутизатор, плюс совсем немного транзитного трафика.

 

считать хочу весь трафик проходящий через роутер.

 

ужный трафик то в цепочку NETFLOW зарулить забыли?

FORWARD переводим в политику дроп, в нем заруливаем в нетфлоу и ассептим

предлагаю создать табличку netflow в нее зарулить тех кого нужно общитывать, в ней нечто типа

iptables -A netflow -j NETFLOW

iptables -A netflow -j ACCEPT

 

а сейчас у вас первые два правила не дают пекетам шанса попасть в NETFLOW

8042M 4070G ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 ctstate RELATED,ESTABLISHED

522M 41G ACCEPT all -- eth0 * <скрыто>/24 0.0.0.0/0 ctstate NEW

849 35748 NETFLOW all -- * * 0.0.0.0/0 0.0.0.0/0 NETFLOW

 

супер, спасибо за совет!) чесно признаюсь, с iptablesz я мало работал, больше с цисками и vyatta которая тоже на дебиане но cli по типу циски.

 

как я понимаю, пакет в любом случае проходит по всей цепочки правил, пока не встретит правило ACCEPT или REJECT, не останавливаяс на первом совпадении, по этому я не могу понять, в чем разница: поднять правило iptables -A FORWARD -j NETFLOW на 1е место в цепочке FORWARD или создать свою цепочку и сделать как вы описали?

Edited by r1sh

Share this post


Link to post
Share on other sites

r1sh, можно и просто передвинуть на первое место, если все-равно считать все.

Но если честно, я не могу понять для какой цели у вас такие правила.

 

А проходит не по всей, а до первого ACCEPT/DROP/REJECT..

Edited by Tamahome

Share this post


Link to post
Share on other sites

честно скажу, пришел, увидел этот шлюз и пока его только разбираю что зачем и почему, решил начать с snmp: общую нагрузку и трафик, увидел скачки трафика, решил посмотреть через netflow а потом буду правила под трафик подстраивать: общие используемые порты, протоколы и тд

 

мне же для того чтобы использовать созданную цепочку в любом случае нужно ее добавить в цепочку FORWARD

Edited by r1sh

Share this post


Link to post
Share on other sites

Доброго утра!

 

Может быть пригодится кому-нибудь. Собрал ipt_NETFLOW для Vyatta.

http://umraf.blogspot.ru/2013/08/iptnetflow-vyatta.html#more

 

Текущую версию для Vyatta VC6.6R1 под нагрузкой не тестировал. До этого собирал для VC6.3, работает.

Share this post


Link to post
Share on other sites

Доброго утра!

 

Может быть пригодится кому-нибудь. Собрал ipt_NETFLOW для Vyatta.

http://umraf.blogspo...yatta.html#more

 

Текущую версию для Vyatta VC6.6R1 под нагрузкой не тестировал. До этого собирал для VC6.3, работает.

 

у виатты же и так есть netflow сенсор ?

Share this post


Link to post
Share on other sites

Скрипт агрегации выпадает с ошибкой:

/usr/bin/nfdump -R ./gw1/2013/08/01 -bzw ./gw1.log/2013/08/nfcapd.2013.08.01 not (proto icmp and packets LT 4)

 

malloc() error in nflowcache.c line 254: Cannot allocate memory

 

Никакого криминала нет, агрегируемый трафик вырос с 2,7 Гига до 3,3 суточно. В чем дело?

Share this post


Link to post
Share on other sites

Безотносительно nfdump это означает, что программа не может выделить память в куче, а значит либо исчерпалась свободная память на машине, либо программа уперлась в лимиты(что более вероятно, см. ulimit и cgroups).

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.