Jump to content
Калькуляторы

Простите уважаемые, что подниму тему.

 

Встала задача писать весь транзитный трафик с Cisco 6504, меня интересуют 2 гигабитных канала на интерфейсах Gi2/1 , Gi2/2. Можно было бы писать NetFlow напрямую с Cisco 6504, но на ней осуществляется нарезка полос (User Based Rate Limit microflow policy) совместно с которым экспорт в NetFlow не работает, поэтому будем извращаться :).

 

Для начала выгоним SPAN (копию интересующего меня трафика с Gi2/1 , Gi2/2 ) в два гигабитных порта Gi2/4 и Gi2/5.

 

<code>

!

vlan 100

!

!

interface Port-channel100

switchport

switchport access vlan 100

switchport mode access

!

interface GigabitEthernet2/4

switchport

switchport access vlan 100

switchport mode access

channel-group 100 mode on

!

interface GigabitEthernet2/5

switchport

switchport access vlan 100

switchport mode access

channel-group 100 mode on

!

monitor session 1 source interface Gi2/1 , Gi2/2

monitor session 1 destination interface Po100

!

</code>

 

Теперь необходимо определиться с инструментарием которым мы собираемся "ловить" поток и отдавать его в формате NetFlow.

 

На самом деле выбор не велик fprobe, ipcad, softflowd т. е. те вещи которые работают через pcap "умерли" сразу, попутно убив CPU сервера :)

 

Через ULOG iptables писать нельзя т. к. трафик не попадает ни в одну цепочку (ибо он не транзитный).

 

Нашелся один инструмент ipt_netflow, но для его работоспособности в схеме со Span портом пришлось пропатчить штатное ядро CentOS 5 здесь патченное ядро и пропатчить сам модуль ipt_netflow устанавливать надо ipt_netflow (модуль iptables) и kmod-netflow-promisc (модуль ядра).

 

SPAN потоки приходят в сетевые адаптеры eth2 и eth3 сервера соответственно.

 

После установки этого чуда пишем в iptables

 

<code>

*raw

-A PREROUTING -i eth2 -j NETFLOW

-A PREROUTING -i eth3 -j NETFLOW

COMMIT

</code>

 

в /etc/modprobe.conf добавляем

 

<code>

options ipt_NETFLOW hashsize=160000 destination="127.0.0.1:2055"

</code>

 

результаты таковы, что при 1-1,5 gbit/sec трафика мы получаем следующую нагрузку на CPU

 

top

<code>

Tasks: 117 total, 1 running, 116 sleeping, 0 stopped, 0 zombie

Cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu1 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu2 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu3 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st

Cpu4 : 0.0%us, 0.0%sy, 0.0%ni, 71.3%id, 0.3%wa, 0.0%hi, 28.3%si, 0.0%st

Cpu5 : 0.0%us, 0.0%sy, 0.0%ni, 69.5%id, 0.0%wa, 0.7%hi, 29.8%si, 0.0%st

Cpu6 : 0.0%us, 0.0%sy, 0.0%ni, 71.2%id, 0.0%wa, 0.3%hi, 28.4%si, 0.0%st

Cpu7 : 0.0%us, 1.0%sy, 0.0%ni, 68.2%id, 0.0%wa, 0.3%hi, 30.4%si, 0.0%st

Mem: 4044184k total, 2566136k used, 1478048k free, 485276k buffers

Swap: 2031608k total, 132k used, 2031476k free, 1622060k cached

 

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

33 root 10 -5 0 0 0 S 2.7 0.0 32:41.04 events/7

1 root 15 0 10348 632 540 S 0.0 0.0 0:02.31 init

2 root RT -5 0 0 0 S 0.0 0.0 0:00.02 migration/0

3 root 34 19 0 0 0 S 0.0 0.0 0:03.06 ksoftirqd/0

4 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/0

5 root RT -5 0 0 0 S 0.0 0.0 0:00.07 migration/1

6 root 34 19 0 0 0 S 0.0 0.0 0:00.04 ksoftirqd/1

7 root RT -5 0 0 0 S 0.0 0.0 0:00.00 watchdog/1

8 root RT -5 0 0 0 S 0.0 0.0 0:00.01 migration/2

9 root 34 19 0 0 0 S 0.0 0.0 0:00.03 ksoftirqd/2

</code>

 

cat /proc/net/stat/ipt_netflow

<code>

Flows: active 354747 (peak 540458 reached 0d16h37m ago), mem 30486K

Hash: size 160000 (mem 1250K), metric 2.7, 2.2, 1.0, 1.0. MemTraf: 121088697 pkt, 75450911 K (pdu 5, 276).

Timeout: active 1800, inactive 15. Maxflows 2000000

Rate: 1382824352 bits/sec, 298823 packets/sec; Avg 1 min: 1367908158 bps, 296724 pps; 5 min: 1361329134 bps, 296061 pps

cpu# stat: <search found new, trunc frag alloc maxflows>, sock: <ok fail cberr, bytes>, traffic: <pkt, bytes>, drop: <pkt, bytes>

Total stat: 38000468809 22085636328 1231067128, 0 0 0 0, sock: 41023746 0 0, 58651136 K, traffic: 23316703456, 13030478 MB, drop: 0, 0 K

cpu0 stat: 0 0 0, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 0, 0 MB, drop: 0, 0 K

cpu1 stat: 0 0 0, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 0, 0 MB, drop: 0, 0 K

cpu2 stat: 0 0 0, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 0, 0 MB, drop: 0, 0 K

cpu3 stat: 0 0 0, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 0, 0 MB, drop: 0, 0 K

cpu4 stat: 9502008868 5521585976 307793882, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 5829379858, 3259408 MB, drop: 0, 0 K

cpu5 stat: 9495159604 5519723902 307727275, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 5827451177, 3255443 MB, drop: 0, 0 K

cpu6 stat: 9500201467 5522411578 307754983, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 5830166561, 3258689 MB, drop: 0, 0 K

cpu7 stat: 9503098870 5521914872 307790988, 0 0 0 0, sock: 41023746 0 0, 58651136 K, traffic: 5829705860, 3256938 MB, drop: 0, 0 K

sock0: 127.0.0.1:2055, sndbuf 33554432, filled 0, peak 140936; err: sndbuf reached 0, other 0

</code>

 

Как видим трафик порядка 1.3 гбит/сек 300 kpps :)

 

Железо простое: сетевая Intel ServerAdapter 1000 ET Quad Port на 82576 чипсете, два четырехядерника Xeon E5405 2.00GHz, OS CentOS 5

Edited by _INF_

Share this post


Link to post
Share on other sites

_INF_

Hash: size 160000 (mem 1250K), metric 2.7, 2.2, 1.0, 1.0.
Это плохо, ipt_netflow перенапрягается у вас. Выставьте hashsize в максимальное количество flows*2. В вашем случае, например, 1572864.

 

Поменяйте и посмотрите на загрузку, наверняка будет гораздо меньше.

Edited by shoorickello

Share this post


Link to post
Share on other sites

Это плохо, ipt_netflow перенапрягается у вас. Выставьте hashsize в максимальное количество flows*2. В вашем случае, например, 1572864.

 

Поменяйте и посмотрите на загрузку, наверняка будет гораздо меньше.

Спасибо, последовал совету

стало metric 1.3, 1.0, 1.0, 1.0

но нагрузка на CPU не уменьшилась :(

 

 

 

Share this post


Link to post
Share on other sites

для "ускорения" передачи kernel-userspace для не ядерных реализаций коллекторов советую присмотреться к http://web.yl.is.s.u-tokyo.ac.jp/~tosh/kml/

Share this post


Link to post
Share on other sites

Простите за флуд но хочу выразить благодарность уважаемому _INF_ за его энтузиазм и редкий для наших дней альтруизм.

Воспользовавшись его замечательным реапозиторием (centos.alt.ru ) и с любовью сделанной инструкцией по замиррориванию траффика в netflow

завернул поток во flow-capture c

 

OPTIONS="-w /var/flow/ -n 96 -N -3 127.0.0.1/127.0.0.1/555"

 

(ЕВПОЧА),

 

по хрону скармливая всё это скрипту:

 

#!/bin/sh
flist0=/tmp/flist0
flist=/tmp/flist
find /var/flow/ -type f -name "ft-v05.*" > $flist0
cat $flist0|sort > $flist
while read line
do
fname=`basename $line`
fctime=`echo ${fname:7:17}`
flow-print  < `echo "$line"` > /var/flow/$fname.log
done < $flist
while read line
do
rm -f $line
done < $flist

 

получал на выходе файлики:

 

srcIP            dstIP            prot  srcPort  dstPort  octets      packets
192.168.136.243  192.168.136.255  17    631      631      186         1
192.168.136.243  192.168.136.255  17    631      631      186         1
192.168.136.50   83.149.52.45     17    52616    61402    61          1
192.168.136.50   188.168.22.149   6     65258    56789    280         5
188.168.22.149   192.168.136.50   6     56789    65258    132         3
192.168.136.50   78.29.72.11      6     65259    28931    280         5
78.29.72.11      192.168.136.50   6     28931    65259    132         3
192.168.136.50   78.26.128.252    6     65263    35691    152         3
192.168.136.50   78.109.180.14    6     65262    22387    152         3
...........

для скармливания оных бухгалтерскому екселу. Нач-во довольно, я спокойно ухожу в отпуск и для занудства ради прошу отметить что не надо забывать ifconfig_ом переводить и-фейс в promisc

и учитывать что ipt_netflow не хочит жевать поток байтов если в нём присутствуют vlan tagи

Ещё раз прошу извинить за много букв.

Share this post


Link to post
Share on other sites

Простите за флуд но хочу выразить благодарность уважаемому _INF_ за его энтузиазм и редкий для наших дней альтруизм.

Воспользовавшись его замечательным реапозиторием (centos.alt.ru ) и с любовью сделанной инструкцией по замиррориванию траффика в netflow

завернул поток во flow-capture c

OPTIONS="-w /var/flow/ -n 96 -N -3 127.0.0.1/127.0.0.1/555"

(ЕВПОЧА),

по хрону скармливая всё это скрипту:

Если в OPTIONS="-w /var/flow/ -n 96 -N -3 127.0.0.1/127.0.0.1/555" добавить -R <ваш скрипт> , то и крон нах не нать. :)

 

 

получал на выходе файлики:

srcIP            dstIP            prot  srcPort  dstPort  octets      packets
192.168.136.243  192.168.136.255  17    631      631      186         1
192.168.136.243  192.168.136.255  17    631      631      186         1
192.168.136.50   83.149.52.45     17    52616    61402    61          1
192.168.136.50   188.168.22.149   6     65258    56789    280         5
188.168.22.149   192.168.136.50   6     56789    65258    132         3
192.168.136.50   78.29.72.11      6     65259    28931    280         5
78.29.72.11      192.168.136.50   6     28931    65259    132         3
192.168.136.50   78.26.128.252    6     65263    35691    152         3
192.168.136.50   78.109.180.14    6     65262    22387    152         3
...........

для скармливания оных бухгалтерскому екселу. Нач-во довольно, я спокойно ухожу в отпуск и для занудства ради прошу отметить что не надо забывать ifconfig_ом переводить и-фейс в promisc

и учитывать что ipt_netflow не хочит жевать поток байтов если в нём присутствуют vlan tagи

Ещё раз прошу извинить за много букв.

flow-stat рулит, попробуйте - проникнитесь. :)

Share this post


Link to post
Share on other sites

Добрый день. Хотел бы поинтересаваться, не вешается ли машина при использовании ipt_NETFLOW. Вчера это произошло 3 -й раз за 3 месяца. Перед тем как сервер вешается пишет следующиее сообщения:

kernel: netflow_send_pdu[1]: sendmsg error -11: data loss 9867 pkt, 6761061 bytes: increase sndbuf!

Как я понимаю что нужно увеличить sndbuf, но не понятно почему машина просто вешается, кто-нибудь встечался с такими проблемами?

Proliant dl360 G6.

Share this post


Link to post
Share on other sites

>monitor session 1 destination interface Po100

 

Тоже так хотел, но человек из "Специальных технологий" сказал - "нормально это не работает". Теряется часть трафика.

Почему - никто не знает.

Share this post


Link to post
Share on other sites

Добрый день. Хотел бы поинтересаваться, не вешается ли машина при использовании ipt_NETFLOW. Вчера это произошло 3 -й раз за 3 месяца. Перед тем как сервер вешается пишет следующиее сообщения:

kernel: netflow_send_pdu[1]: sendmsg error -11: data loss 9867 pkt, 6761061 bytes: increase sndbuf!

Похожим образом оно орет если у выбить из под ног маршрут на коллектор - например положить интерфейс в который суется поток на коллектор.

Так, что похоже у Вас не ipt_NETFLOW сервер валит.

Edited by Jugernault

Share this post


Link to post
Share on other sites

Так, что похоже у Вас не ipt_NETFLOW сервер валит.

Странно, у меня поток идет через интерфейс управления и он как раз положен не был, я смог попасть на сервер, когда все остальные интерфейсы упали (9 интерфейсов: 1управления и 8 для тарфика, все 8 для тарфика лежали в down). Те получается после того как все интерфейсы лежали netflow писал что ему не хватает буферов? Нестыковка.

Share this post


Link to post
Share on other sites

Всем привет. А кто нить собирал ipt_NETFLOW на более старых ядрах (2.6.17)?

 

Compiling for kernel 2.6.17-5mdv

make -C /lib/modules/2.6.17-5mdv/build M=/home/inst/1/ipt_netflow modules

make[1]: Entering directory `/usr/src/linux-2.6.17-5mdv'

 

WARNING: Symbol version dump /usr/src/linux-2.6.17-5mdv/Module.symvers

is missing; modules will have no dependencies and modversions.

 

CC [M] /home/inst/1/ipt_netflow/ipt_NETFLOW.o

Building modules, stage 2.

MODPOST

WARNING: /home/inst/1/ipt_netflow/ipt_NETFLOW.o - Section mismatch: reference to .init.text: from .smp_locks after '' (at offset 0x34)

WARNING: /home/inst/1/ipt_netflow/ipt_NETFLOW.o - Section mismatch: reference to .exit.text: from .smp_locks after '' (at offset 0x18)

CC /home/inst/1/ipt_netflow/ipt_NETFLOW.mod.o

LD [M] /home/inst/1/ipt_netflow/ipt_NETFLOW.ko

make[1]: Leaving directory `/usr/src/linux-2.6.17-5mdv'

gcc -O2 -Wall -Wunused -I/lib/modules/2.6.17-5mdv/build/include -I./iptables-1.3.5/include -DIPTABLES_VERSION=\"1.3.5\" -fPIC -o libipt_NETFLOW_sh.o -c libipt_NETFLOW.c

gcc -shared -o libipt_NETFLOW.so libipt_NETFLOW_sh.o

libipt_NETFLOW_sh.o: In function `_init':

libipt_NETFLOW.c:(.text+0x30): multiple definition of `_init'

/usr/lib/gcc/i586-mandriva-linux-gnu/4.1.1/../../../crti.o:/home/gb/rpm/BUILD/glibc-2.4.90/build-i586-linux/csu/crti.S:36: first defined here

collect2: ld returned 1 exit status

make: *** [libipt_NETFLOW.so] Ошибка 1

Share this post


Link to post
Share on other sites

Сегодня попытался включить ipt_NETFLOW на одном из роутеров, получил такую красоту, выпадающую с периодичностью в минуту.

Есть рецепт по лечению?

 

Oct  8 17:16:59 rt kernel: [ 5506.150007] BUG: soft lockup - CPU#0 stuck for 61s! [events/0:9]
Oct  8 17:16:59 rt kernel: [ 5506.150013] Modules linked in: ipt_REJECT ts_kmp xt_tcpudp xt_limit xt_state xt_string iptable_filter ip_tables cls_u32 cls_tcindex sch_sfq sch_htb sch_dsmark nf_nat_pptp nf_conntrack_pptp nf_conntrack_proto_gre nf_nat_proto_gre nf_nat_sip nf_conntrack_sip nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack_ftp nf_conntrack bridge ipt_NETFLOW 8021q garp stp snd_hda_codec_atihdmi ipt_ULOG x_tables fbcon tileblit font bitblit softcursor vga16fb vgastate snd_hda_intel snd_hda_codec snd_hwdep radeon ttm snd_pcm snd_timer drm_kms_helper snd soundcore ppdev snd_page_alloc drm i2c_algo_bit parport_pc psmouse serio_raw edac_core k8temp shpchp edac_mce_amd lp parport i2c_piix4 raid10 raid456 async_pq async_xor xor async_memcpy async_raid6_recov raid6_pq async_tx raid1 raid0 multipath 8139too linear r8169 8139cp mii ahci pata_atiixp
Oct  8 17:16:59 rt kernel: [ 5506.150013] CPU 0:
Oct  8 17:16:59 rt kernel: [ 5506.150013] Modules linked in: ipt_REJECT ts_kmp xt_tcpudp xt_limit xt_state xt_string iptable_filter ip_tables cls_u32 cls_tcindex sch_sfq sch_htb sch_dsmark nf_nat_pptp nf_conntrack_pptp nf_conntrack_proto_gre nf_nat_proto_gre nf_nat_sip nf_conntrack_sip nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack_ftp nf_conntrack bridge ipt_NETFLOW 8021q garp stp snd_hda_codec_atihdmi ipt_ULOG x_tables fbcon tileblit font bitblit softcursor vga16fb vgastate snd_hda_intel snd_hda_codec snd_hwdep radeon ttm snd_pcm snd_timer drm_kms_helper snd soundcore ppdev snd_page_alloc drm i2c_algo_bit parport_pc psmouse serio_raw edac_core k8temp shpchp edac_mce_amd lp parport i2c_piix4 raid10 raid456 async_pq async_xor xor async_memcpy async_raid6_recov raid6_pq async_tx raid1 raid0 multipath 8139too linear r8169 8139cp mii ahci pata_atiixp
Oct  8 17:16:59 rt kernel: [ 5506.150013] Pid: 9, comm: events/0 Not tainted 2.6.32-25-server #44-Ubuntu GA-MA69GM-S2H
Oct  8 17:16:59 rt kernel: [ 5506.150013] RIP: 0010:[<ffffffffa019f080>]  [<ffffffffa019f080>] netflow_target+0x2e0/0x984 [ipt_NETFLOW]
Oct  8 17:16:59 rt kernel: [ 5506.150013] RSP: 0018:ffff880001c03928  EFLAGS: 00000282
Oct  8 17:16:59 rt kernel: [ 5506.150013] RAX: ffff880067b03f20 RBX: ffff880001c03a18 RCX: ffff88005da03b58
Oct  8 17:16:59 rt kernel: [ 5506.150013] RDX: 0000000000016760 RSI: ffff880001c039b8 RDI: ffff880067b03f40
Oct  8 17:16:59 rt kernel: [ 5506.150013] RBP: ffffffff81012cb3 R08: ffff880001c039b8 R09: 0000000000000010
Oct  8 17:16:59 rt kernel: [ 5506.150013] R10: ffffc90012cce530 R11: 0000000000000000 R12: ffff880001c038a0
Oct  8 17:16:59 rt kernel: [ 5506.150013] R13: ffff8800560d3c30 R14: ffff880067b03f20 R15: ffffffff8155f31c
Oct  8 17:16:59 rt kernel: [ 5506.150013] FS:  00007ff523c29720(0000) GS:ffff880001c00000(0000) knlGS:0000000000000000
Oct  8 17:16:59 rt kernel: [ 5506.150013] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
Oct  8 17:16:59 rt kernel: [ 5506.150013] CR2: 00007ff523c30000 CR3: 0000000001001000 CR4: 00000000000006f0
Oct  8 17:16:59 rt kernel: [ 5506.150013] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Oct  8 17:16:59 rt kernel: [ 5506.150013] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Oct  8 17:16:59 rt kernel: [ 5506.150013] Call Trace:
Oct  8 17:16:59 rt kernel: [ 5506.150013]  <IRQ>  [<ffffffffa019ef55>] ? netflow_target+0x1b5/0x984 [ipt_NETFLOW]
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffffa002ef0a>] ? rtl8169_start_xmit+0x30a/0x530 [r8169]
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffffa03a02bb>] ? ipt_do_table+0x3cb/0x678 [ip_tables]
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff8155a1c9>] ? _spin_unlock_bh+0x19/0x20
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffffa034ebc1>] ? __nf_ct_refresh_acct+0xa1/0xf0 [nf_conntrack]
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffffa03a80f3>] ? ipt_hook+0x23/0x30 [iptable_filter]
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff8149997c>] ? nf_iterate+0x6c/0xb0
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff814a33b0>] ? ip_forward_finish+0x0/0x70
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff81499a34>] ? nf_hook_slow+0x74/0x100
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff814a33b0>] ? ip_forward_finish+0x0/0x70
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff814a35ff>] ? ip_forward+0x1df/0x420
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff814a179d>] ? ip_rcv_finish+0x12d/0x440
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff814a1d25>] ? ip_rcv+0x275/0x360
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff81534bb8>] ? vlan_hwaccel_do_receive+0x38/0xf0
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff814724ca>] ? netif_receive_skb+0x38a/0x5d0
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff81534db0>] ? __vlan_hwaccel_rx+0x140/0x230
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffffa002f596>] ? rtl8169_rx_interrupt+0x216/0x5b0 [r8169]
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffffa002faad>] ? rtl8169_poll+0x3d/0x270 [r8169]
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff81559ffe>] ? _spin_lock+0xe/0x20
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff81472fcf>] ? net_rx_action+0x10f/0x250
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff8106d487>] ? __do_softirq+0xb7/0x1e0
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff810132ec>] ? call_softirq+0x1c/0x30
Oct  8 17:16:59 rt kernel: [ 5506.150013]  <EOI>  [<ffffffff81014cb5>] ? do_softirq+0x65/0xa0
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff8106cf48>] ? local_bh_enable_ip+0x98/0xa0
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff8155a1c9>] ? _spin_unlock_bh+0x19/0x20
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffffa019e993>] ? netflow_scan_inactive_timeout+0x1a3/0x340 [ipt_NETFLOW]
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffffa019eb30>] ? netflow_work_fn+0x0/0x30 [ipt_NETFLOW]
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffffa019eb45>] ? netflow_work_fn+0x15/0x30 [ipt_NETFLOW]
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff8107f6b7>] ? run_workqueue+0xc7/0x1a0
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff8107f833>] ? worker_thread+0xa3/0x110
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff81084250>] ? autoremove_wake_function+0x0/0x40
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff8107f790>] ? worker_thread+0x0/0x110
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff81083ed6>] ? kthread+0x96/0xa0
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff810131ea>] ? child_rip+0xa/0x20
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff81083e40>] ? kthread+0x0/0xa0
Oct  8 17:16:59 rt kernel: [ 5506.150013]  [<ffffffff810131e0>] ? child_rip+0x0/0x20

Share this post


Link to post
Share on other sites

В итоге, даже после того, как убрали правила -j NETFLOW оно сегодня повисло.

За полчаса до падения написало

Oct  9 15:33:38 rt kernel: [85705.271388] ------------[ cut here ]------------
Oct  9 15:33:38 rt kernel: [85705.271401] WARNING: at /build/buildd/linux-2.6.32/net/core/dst.c:272 dst_release+0x33/0x40()
Oct  9 15:33:38 rt kernel: [85705.271405] Hardware name: GA-MA69GM-S2H
Oct  9 15:33:38 rt kernel: [85705.271407] Modules linked in: ipt_REJECT ts_kmp xt_tcpudp xt_limit xt_state xt_string iptable_filter ip_tables cls_u32 cls_tcindex sch_sfq sch_htb sch_dsmark nf_nat_pptp nf_conntrack_pptp nf_conntrack_proto_gre nf_nat_proto_gre nf_nat_sip nf_conntrack_sip nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack_ftp nf_conntrack bridge ipt_NETFLOW 8021q garp stp snd_hda_codec_atihdmi ipt_ULOG x_tables fbcon tileblit font bitblit softcursor vga16fb vgastate snd_hda_intel snd_hda_codec snd_hwdep radeon ttm snd_pcm snd_timer drm_kms_helper snd soundcore ppdev snd_page_alloc drm i2c_algo_bit parport_pc psmouse serio_raw edac_core k8temp shpchp edac_mce_amd lp parport i2c_piix4 raid10 raid456 async_pq async_xor xor async_memcpy async_raid6_recov raid6_pq async_tx raid1 raid0 multipath 8139too linear r8169 8139cp mii ahci pata_atiixp
Oct  9 15:33:38 rt kernel: [85705.271476] Pid: 4, comm: ksoftirqd/0 Not tainted 2.6.32-25-server #44-Ubuntu
Oct  9 15:33:38 rt kernel: [85705.271479] Call Trace:
Oct  9 15:33:38 rt kernel: [85705.271482]  <IRQ>  [<ffffffff81065f4b>] warn_slowpath_common+0x7b/0xc0
Oct  9 15:33:38 rt kernel: [85705.271493]  [<ffffffff81065fa4>] warn_slowpath_null+0x14/0x20
Oct  9 15:33:38 rt kernel: [85705.271496]  [<ffffffff814793f3>] dst_release+0x33/0x40
Oct  9 15:33:38 rt kernel: [85705.271500]  [<ffffffff81473755>] dev_hard_start_xmit+0x1a5/0x1e0
Oct  9 15:33:38 rt kernel: [85705.271506]  [<ffffffff8148bd8f>] sch_direct_xmit+0x15f/0x1d0
Oct  9 15:33:38 rt kernel: [85705.271510]  [<ffffffff8148be6b>] __qdisc_run+0x6b/0xe0
Oct  9 15:33:38 rt kernel: [85705.271514]  [<ffffffff81470d30>] net_tx_action+0x120/0x180
Oct  9 15:33:38 rt kernel: [85705.271519]  [<ffffffff8106d487>] __do_softirq+0xb7/0x1e0
Oct  9 15:33:38 rt kernel: [85705.271523]  [<ffffffff810132ec>] call_softirq+0x1c/0x30
Oct  9 15:33:38 rt kernel: [85705.271525]  <EOI>  [<ffffffff81014cb5>] do_softirq+0x65/0xa0
Oct  9 15:33:38 rt kernel: [85705.271531]  [<ffffffff8106cfd0>] ksoftirqd+0x80/0x110
Oct  9 15:33:38 rt kernel: [85705.271535]  [<ffffffff8106cf50>] ? ksoftirqd+0x0/0x110
Oct  9 15:33:38 rt kernel: [85705.271539]  [<ffffffff81083ed6>] kthread+0x96/0xa0
Oct  9 15:33:38 rt kernel: [85705.271543]  [<ffffffff810131ea>] child_rip+0xa/0x20
Oct  9 15:33:38 rt kernel: [85705.271546]  [<ffffffff81083e40>] ? kthread+0x0/0xa0
Oct  9 15:33:38 rt kernel: [85705.271549]  [<ffffffff810131e0>] ? child_rip+0x0/0x20
Oct  9 15:33:38 rt kernel: [85705.271552] ---[ end trace 0761136eabad1b57 ]---

Share this post


Link to post
Share on other sites

День добрый. Собрал rpm ipt_NETFLOW 1.6 под 2.6.36, и 1.4.10 таблесы.

Как только добавляю -A INPUT -i eth0 -j NETFLOW - кернел паник... В FORWARD - не падает. Куда копать?

Share this post


Link to post
Share on other sites

To marikoda

Сейчас логи ничего не скажут, но по-моему похожее вылезало и у меня. Проблема софтово-аппаратная, тк на 1-х серваках ничего не падает, на других все перестает работать(сервер виснет, помогает ребут). Мне помогло следующее:

 

cat /proc/net/stat/ipt_netflow

Внизу есть:

sock0: 172.17.27.75:30009, sndbuf 250000, filled 1, peak 109617; err: sndbuf reached 0, other 0

sock1: 192.168.133.16:30009, sndbuf 250000, filled 1, peak 107849; err: sndbuf reached 0, other 0

 

Нужно что бы peak не превышал sndbuf.

 

Если когда то произошло превышение, то вы кроме peak увидите drop в строчках выше.

sndbuf можно изменить в /etc/sysctl.conf

net.netflow.sndbuf=250000

Если поможет, дайте знать.

 

Share this post


Link to post
Share on other sites

здарова уважаемые)).

у меня такая трабла.

собирал ipt_netflow 1.6 в ubuntu server 10.10 ( ядро 2.6.35)

iptables 1.4.4 просто скомплил в /usr/src/

первый раз он у меня собрался и все ок.

а вот на другом сервер с теми же пакетами выдает ощибку подобную

make

Compiling for kernel 2.6.35-22-generic-pae

make -C /lib/modules/2.6.35-22-generic-pae/build M=/usr/src/ipt_netflow-1.6 modules

make[1]: Entering directory `/usr/src/linux-headers-2.6.35-22-generic-pae'

CC [M] /usr/src/ipt_netflow-1.6/ipt_NETFLOW.o

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: In function ‘nf_seq_show’:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:263: error: implicit declaration of function ‘HIPQUAD’

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:265: warning: too few arguments for format

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: In function ‘hsize_procctl’:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:305: warning: passing argument 5 of ‘proc_dointvec’ from incompatible pointer type

include/linux/sysctl.h:969: note: expected ‘loff_t *’ but argument is of type ‘size_t *’

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:305: error: too many arguments to function ‘proc_dointvec’

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: In function ‘sndbuf_procctl’:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:331: warning: passing argument 5 of ‘proc_dointvec’ from incompatible pointer type

include/linux/sysctl.h:969: note: expected ‘loff_t *’ but argument is of type ‘size_t *’

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:331: error: too many arguments to function ‘proc_dointvec’

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: In function ‘destination_procctl’:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:349: warning: passing argument 5 of ‘proc_dostring’ from incompatible pointer type

include/linux/sysctl.h:967: note: expected ‘loff_t *’ but argument is of type ‘size_t *’

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:349: error: too many arguments to function ‘proc_dostring’

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: In function ‘aggregation_procctl’:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:364: warning: passing argument 5 of ‘proc_dostring’ from incompatible pointer type

include/linux/sysctl.h:967: note: expected ‘loff_t *’ but argument is of type ‘size_t *’

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:364: error: too many arguments to function ‘proc_dostring’

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: At top level:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:409: warning: initialization from incompatible pointer type

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:416: warning: initialization from incompatible pointer type

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:424: warning: initialization from incompatible pointer type

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:432: warning: initialization from incompatible pointer type

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:442: error: unknown field ‘ctl_name’ specified in initializer

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:467: error: unknown field ‘ctl_name’ specified in initializer

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:467: warning: excess elements in struct initializer

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:467: warning: (near initialization for ‘netflow_sysctl_path[0]’)

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: In function ‘usock_free’:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:535: warning: format ‘%u’ expects type ‘unsigned int’, but argument 4 has type ‘struct socket *’

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:535: warning: too few arguments for format

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: In function ‘add_usock’:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:580: warning: too few arguments for format

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: In function ‘add_aggregation’:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:693: warning: too few arguments for format

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: At top level:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:1245: warning: initialization from incompatible pointer type

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c: In function ‘ipt_netflow_init’:

/usr/src/ipt_netflow-1.6/ipt_NETFLOW.c:1315: error: ‘struct proc_dir_entry’ has no member named ‘owner’

make[2]: *** [/usr/src/ipt_netflow-1.6/ipt_NETFLOW.o] Error 1

make[1]: *** [_module_/usr/src/ipt_netflow-1.6] Error 2

make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-22-generic-pae'

make: *** [ipt_NETFLOW.ko] Error 2

 

 

большого опыта у меня нет. потому спрашиваю совет.

на сервере где работает сейчас ipt_netflow остались собраные модули.

конечно можно все перенсти и тоже запустить так как софт проверял практически скачал все идентично.

помогите понять где я ощибся или что упустил.

Share this post


Link to post
Share on other sites

Всем привет.

Подскажите, есть Centos 5.5

uname -a

Linux ppp-server 2.6.18-194.26.1.el5PAE #1 SMP Tue Nov 9 13:34:42 EST 2010 i686 i686 i386 GNU/Linux

пересобрал iptables собрал ipt_NETFLOW

модуль загрузил через insmod ipt_NETFLOW.ko destination=.....

]# cat /proc/net/stat/ipt_netflow

Flows: active 4163 (peak 4891 reached 0d0h1m ago), mem 227K

Hash: size 8192 (mem 32K), metric 1.5, 1.0, 1.0, 1.0. MemTraf: 1975606 pkt, 1128669 K (pdu 19, 1943).

Timeout: active 1800, inactive 15. Maxflows 2000000

Rate: 59321094 bits/sec, 12837 packets/sec; Avg 1 min: 59801595 bps, 12947 pps; 5 min: 38098640 bps, 8297 pps

cpu# stat: <search found new, trunc frag alloc maxflows>, sock: <ok fail cberr, bytes>, traffic: <pkt, bytes>, drop: <pkt, bytes>

Total stat: 1887203 4401031 80944, 0 0 0 0, sock: 2560 0 0, 3658 K, traffic: 4481975, 2548 MB, drop: 0, 0 K

cpu0 stat: 829113 2070737 61865, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 2132602, 1431 MB, drop: 0, 0 K

cpu1 stat: 587 397 977, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 1374, 0 MB, drop: 0, 0 K

cpu2 stat: 1052950 2325364 13108, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 2338472, 1112 MB, drop: 0, 0 K

cpu3 stat: 1037 810 1626, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 2436, 0 MB, drop: 0, 0 K

cpu4 stat: 233 178 438, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 616, 0 MB, drop: 0, 0 K

cpu5 stat: 1965 2723 770, 0 0 0 0, sock: 2560 0 0, 3658 K, traffic: 3493, 3 MB, drop: 0, 0 K

cpu6 stat: 671 395 1092, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 1487, 0 MB, drop: 0, 0 K

cpu7 stat: 647 427 1068, 0 0 0 0, sock: 0 0 0, 0 K, traffic: 1495, 0 MB, drop: 0, 0 K

sock0: 10.10.10.6:9996, sndbuf 110592, filled 0, peak 5136; err: sndbuf reached 0, other 0

статистика вроде как идет,но UTM трафик не считает (до этого все работало на 1пк, и нетфлов слался через ndsad на lo) хотя счетчик нетфлов бежит

 

добавил правила

iptables -A FORWARD -j NETFLOW

iptables -A INPUT -j NETFLOW

iptables -A OUTPUT -j NETFLOW

 

судя по УТМ, по отчету, трафик попадает только исходящий от абонента и то в сторону бродкаста или мультикаста, не считает то что идет в ппп интерфейсах (через форвардинг)

Edited by Cramac

Share this post


Link to post
Share on other sites

Может кто подскажет как скомпилить под ядро 2.6.37-rc5. А то вот такая пакость выходит:

Compiling for kernel 2.6.37-rc5-build-0001
make -C /home/madvamp/globalos/tmp/modules/lib/modules/2.6.37-rc5-build-0001/build M=/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow modules
make[1]: Вход в каталог `/home/madvamp/globalos/tmp/kernel/linux-2.6.37-rc5'
  CC [M]  /home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.o
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c: In function ‘netflow_target’:
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1126: error: ‘IPT_CONTINUE’ undeclared (first use in this function)
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1126: error: (Each undeclared identifier is reported only once
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1126: error: for each function it appears in.)
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1251: error: implicit declaration of function ‘NIPQUAD’
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1252: warning: too few arguments for format
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c: At top level:
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1285: error: variable ‘ipt_netflow_reg’ has initializer but incomplete type
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1286: error: unknown field ‘name’ specified in initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1286: warning: excess elements in struct initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1286: warning: (near initialization for ‘ipt_netflow_reg’)
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1287: error: unknown field ‘target’ specified in initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1287: warning: excess elements in struct initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1287: warning: (near initialization for ‘ipt_netflow_reg’)
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1288: error: unknown field ‘family’ specified in initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1288: warning: excess elements in struct initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1288: warning: (near initialization for ‘ipt_netflow_reg’)
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1290: error: unknown field ‘table’ specified in initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1290: warning: excess elements in struct initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1290: warning: (near initialization for ‘ipt_netflow_reg’)
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1292: error: unknown field ‘hooks’ specified in initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1293: warning: excess elements in struct initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1293: warning: (near initialization for ‘ipt_netflow_reg’)
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1308: error: unknown field ‘me’ specified in initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1309: warning: excess elements in struct initializer
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1309: warning: (near initialization for ‘ipt_netflow_reg’)
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c: In function ‘ipt_netflow_init’:
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1401: warning: passing argument 1 of ‘xt_register_target’ from incompatible pointer type
include/linux/netfilter/x_tables.h:414: note: expected ‘struct xt_target *’ but argument is of type ‘struct ipt_target *’
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c: In function ‘ipt_netflow_fini’:
/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.c:1438: warning: passing argument 1 of ‘xt_unregister_target’ from incompatible pointer type
include/linux/netfilter/x_tables.h:415: note: expected ‘struct xt_target *’ but argument is of type ‘struct ipt_target *’
make[2]: *** [/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow/ipt_NETFLOW.o] Ошибка 1
make[1]: *** [_module_/home/madvamp/globalos/tmp/ipt-netflow/ipt_netflow] Ошибка 2
make[1]: Выход из каталога `/home/madvamp/globalos/tmp/kernel/linux-2.6.37-rc5'
make: *** [ipt_NETFLOW.ko] Ошибка 2

Share this post


Link to post
Share on other sites

под 2.6.36 ктонить собирал? поделитесь патчиком, а то наваял свое (заменил NIPQUAD и HIPQUAD на %pI4 как рекомендуют в мейлистах кернела), дык теперь в dmesg айпишники задом наперед выводятся 0_о

 

netflow: registered: /proc/net/stat/ipt_netflow
netflow: registered: sysctl net.netflow
netflow: added destination 1.0.0.127:2055
ipt_netflow loaded.

Edited by Max P

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.