Перейти к содержимому
Калькуляторы
22 часа назад, EShirokiy сказал:

Debian 10, iptables v1.8.2, ядро 4.19.118-2. ipt-netflow последняя версия с nel, nfdump последняя версия с nel. Проблема такая, что часть Netflow 9 пишется с 1970-01-01 03:00:00.000. Куда копать?

ставить nfdump: Version: NSEL-NEL1.6.11 $Date: 2013-11-16 09:04:43 +0100 (Sat, 16 Nov 2013) $

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день!

 

Люди подскажите! Есть у меня в продакшене дав старых сервера:

Intel Q9550, 4Gb, Intel E1G42BT. Текущая конфиграция Debian 7 (3.14.34), accel-ppp 1.8.0, ipt_NETFLOW 2.1.

Все прекрасно работает пережевывает 1,5к клиентов на сервер в нагрузук 1,5 Gbps трафика.

 

Вроде бы пришла пора заапгредится. Ставлю Debian 10.4 (тест был на родном ядре и ядре 4.19.123), последний accel из git и ipt_NETFLOW из git, только становится чуть больше pps срабатывает watchdog.

При отключении всякого в ядре, я увидел, что accel сжирает ядро на 100%, вываливаются BUG: soft lockup - CPU#0 stuck for 22s!

 

Экспериментальным путем пришел к тому, что при выгрузке ipt_NETFLOW, все работает нормально.

ipt_NETFLOW загружается только с параметром указания коллектора.

 

 

Проверял на обеих серверах

 

Прилагаю kern.log и скрин с экрана сервера

 

kern.log.gz

screen.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

8f06203b0bbb12c8fcc8ed66565cd14a712ec4d7

 

Обновил ядро до 4.4.229-1.el7.elrepo.x86_64 и пересобрал модуль. 

 

При выполнении depmod -a теперь ругается

depmod: ERROR: fstatat(4, ipt_NETFLOW.ko): No such file or directory

 

Но сам модуль на месте в /lib/modules/.../.../...etc

 

в dkms тоже показывает, что всё ок.


 

 dkms status
ipt-netflow, 2.5-2-g8f06203: added



[Tue Jul 21 14:51:15 2020] ipt_NETFLOW: add aggregation [1024-65535=0]
[Tue Jul 21 14:51:15 2020] ipt_NETFLOW protocol version 5 (NetFlow) enabled.
[Tue Jul 21 14:51:15 2020] ipt_NETFLOW: enable natevents.
[Tue Jul 21 14:51:15 2020] ipt_NETFLOW is loaded.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день.

Вопрос теоретический, но для практического применения.

Сейчас при отправке newflow v9 - не заполняются поля SRC_AS и DST_AS (https://www.cisco.com/en/US/technologies/tk648/tk362/technologies_white_paper09186a00800a3db9.html)

Как результат - допустим as-stats не может правильно разобрать данные, в какую AS сколько трафика ушло.

Можно ли рассмотреть доработку функционала, что бы модулю подгружать локальный файл для определения AS через IP и заполнения этих полей ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1 час назад, Susanin сказал:

Можно ли рассмотреть доработку функционала, что бы модулю подгружать локальный файл для определения AS через IP и заполнения этих полей ?

Зачем, асстатс имеет встроенный функционал, определяющий ASN по IP, нужно только актуализировать данные.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если посмотреть исходный код асстат, функция replace_asn используется в parse_sflow и parse_netflow_v5

Если использовать netflow_v9 то AS должна быть заполнена сенсором и передается на коллектор в FlowSet-е.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Странно, а как же функция parse_netflow_v9_data_flowset?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Добрый день. Поправьте, если я не прав: настройка

sampler=deterministic:123

действует глобально для всех destinations ?

В свете необходимости слать поток в ЦМУ (суверенный интернет) - можно ли сделать этот конфиг настраиваемым для каждого destination отдельно ?

Т.е. себе будем сливать все потоки, а им (согласно их документации - это разрешено) будем слать только с Sampling Rate 1:10000.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

del

Изменено пользователем Максим Сандаков
ошибочно

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Коллеги, подскажите пожалуйста чайнику! Как заставить ipt_NETFLOW слать фловы не одному, а нескольким destinations? Как это можно задать в конфиге?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В ридми всё написано

 destination=127.0.0.1:2055
     - where to export netflow, to this ip address. Port is optional, default
       is 2055. You will see this connection in netstat like this:

       udp 0 0 127.0.0.1:32772 127.0.0.1:2055 ESTABLISHED 

   destination=[2001:db8::1]:2055
     - export target using IPv6 address. Brackets are optional, but otherwise
       you should delimit port with 'p' or '#' character.

   destination=127.0.0.1:2055,192.0.0.1:2055
     - mirror flows to two (can be more) addresses, separate addresses
       with comma.

   destination=127.0.0.1:2055@127.0.0.2
     - bind socket to address (127.0.0.2).

   destination=127.0.0.1:2055%eth0
     - bind socket to interface (eth0). May be useful for multi-homed boxes.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

2 часа назад, pppoetest сказал:

В ридми всё написано


 destination=127.0.0.1:2055
     - where to export netflow, to this ip address. Port is optional, default
       is 2055. You will see this connection in netstat like this:

       udp 0 0 127.0.0.1:32772 127.0.0.1:2055 ESTABLISHED 

   destination=[2001:db8::1]:2055
     - export target using IPv6 address. Brackets are optional, but otherwise
       you should delimit port with 'p' or '#' character.

   destination=127.0.0.1:2055,192.0.0.1:2055
     - mirror flows to two (can be more) addresses, separate addresses
       with comma.

   destination=127.0.0.1:2055@127.0.0.2
     - bind socket to address (127.0.0.2).

   destination=127.0.0.1:2055%eth0
     - bind socket to interface (eth0). May be useful for multi-homed boxes.

 

А как снимать netflow в контейнерах или в netns? Там вроде как поддержки netns нету.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

упс.

Изменено пользователем dryukov
старо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[root@shluz8x16 ipt-netflow]# ./configure --enable-natevents  --disable-snmp-agent --ipt-src=/home/temp/iptables-1.8.7/
Module version: 2.6-7-g6a55739
Kernel version: 5.4.163-1.IMQ.el7.x86_64 (uname)
Kernel sources: /lib/modules/5.4.163-1.IMQ.el7.x86_64/build (found)
Checking for presence of include/linux/netfilter.h... Yes
netfilter.h uses CONFIG_NF_NAT_NEEDED... No
Checking for presence of include/linux/llist.h... Yes
Checking for presence of include/linux/grsecurity.h... No
Iptables binary version: 1.8.7 (legacy) (detected from /usr/sbin/iptables)
pkg-config for version 1.8.7 (legacy) exists: No
Check for working gcc: Yes (gcc)
Checking for presence of xtables.h... Yes
User specified source directory: /home/temp/iptables-1.8.7/
Found iptables sources at /home/temp/iptables-1.8.7/
Checking iptables sources version: 1.8.7 (legacy) (ok)
Iptables include flags: -I/home/temp/iptables-1.8.7//include (from source)
Iptables module path: /lib64/xtables/ (from libxtables.so, from binary)
Checking for DKMS... Yes.
Creating Makefile.. done.

  If you need some options enabled run ./configure --help
  Now run: make all install

[root@shluz8x16 ipt-netflow]# make all install
./gen_compat_def > compat_def.h-
Test function xt_family linux/netfilter_ipv4/ip_tables.h  declared
Test struct timeval linux/ktime.h  declared
Test struct proc_ops linux/proc_fs.h  undeclared
Test function synchronize_sched linux/rcupdate.h  undeclared
Test function nf_bridge_info_get linux/netfilter_bridge.h  declared
Test struct vlan_dev_priv linux/if_vlan.h  declared
Test function put_unaligned_be24 asm/unaligned.h  undeclared
Test function totalram_pages linux/mm.h  declared
Test symbol totalram_pages linux/mm.h  declared
Test member nf_ct_event_notifier.ct_event net/netfilter/nf_conntrack_ecache.h  undeclared
mv compat_def.h- compat_def.h
Compiling 2.6-7-g6a55739 for kernel 5.4.163-1.IMQ.el7.x86_64
make -C /lib/modules/5.4.163-1.IMQ.el7.x86_64/build M=/home/ipt-netflow modules
make[1]: Entering directory '/usr/src/kernels/5.4.163-1.IMQ.el7.x86_64'
  CC [M]  /home/ipt-netflow/ipt_NETFLOW.o
/home/ipt-netflow/ipt_NETFLOW.c: In function ‘netflow_conntrack_event’:
/home/ipt-netflow/ipt_NETFLOW.c:4622:36: warning: passing argument 2 of ‘notifier->fcn’ discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
 4622 |   ret = notifier->ct_event(events, item);
      |                                    ^~~~
/home/ipt-netflow/ipt_NETFLOW.c:4622:36: note: expected ‘struct nf_ct_event *’ but argument is of type ‘const struct nf_ct_event *’
/home/ipt-netflow/ipt_NETFLOW.c: At top level:
/home/ipt-netflow/ipt_NETFLOW.c:4687:14: error: initialization of ‘int (*)(unsigned int,  struct nf_ct_event *)’ from incompatible pointer type ‘int (*)(const unsigned int,  const struct nf_ct_event *)’ [-Werror=incompatible-pointer-types]
 4687 |  .ct_event = netflow_conntrack_event
      |              ^~~~~~~~~~~~~~~~~~~~~~~
/home/ipt-netflow/ipt_NETFLOW.c:4687:14: note: (near initialization for ‘ctnl_notifier.fcn’)
cc1: some warnings being treated as errors
make[2]: *** [scripts/Makefile.build:262: /home/ipt-netflow/ipt_NETFLOW.o] Error 1
make[1]: *** [Makefile:1734: /home/ipt-netflow] Error 2
make[1]: Leaving directory '/usr/src/kernels/5.4.163-1.IMQ.el7.x86_64'
make: *** [Makefile:27: ipt_NETFLOW.ko] Error 2

Не могу собрать с  --enable-natevents  ядро 5.4.163.

Есть решение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если взял свежий то он под 5.12 заточен вроде как и обкатан на нем мне кажется.
Недавно пришлось обновиться до свежего ядра, так как ipt ловил блокировку и валил ядро через пару минут работы.
В общем смени ядро на актуальное раз пересобираеш.

 

https://github.com/aabc/ipt-netflow

5.15 уже лучше.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вопрос такой, юзаю ipt_netflow для слива netflow в сорм, начали поступать жалобы, что часть идет нормально (Есть источник, получатель, адрес после ната, получатель после ната. Все порты, до нат и после нат), а часть нет (есть источник, получатель и Nexthop, весь формат отличается от нужного, а так же порты только источника и получателя. Портов после нат нет.)Ъ
Никак не могу понять в чем причина.
 

Скрытый текст

ipt_NETFLOW 2.2, srcversion 6282F494B5DAD5E28A24126; llist nel
Protocol version 9 (netflow), refresh-rate 20, timeout-rate 30, (templates 10, active 10).
Timeouts: active 1800s, inactive 15s. Maxflows 2000000
Natevents enabled, count start 7431486545, stop 7284944258.
Flows: active 149394 (peak 431157 reached 32d8h19m ago), mem 28462K, worker delay 4/1000 [1..100] (2 ms, 0 us, 285:0 0 [cpu9]).
Hash: size 655360 (mem 5120K), metric 1.17 [1.13, 1.00, 1.00]. InHash: 182176789 pkt, 203825823 K, InPDU 73, 66520.
Rate: 5342805210 bits/sec, 546420 packets/sec; Avg 1 min: 5490585776 bps, 570170 pps; 5 min: 5437509854 bps, 563494 pps
cpu#     pps; <search found new [metric], trunc frag alloc maxflows>, traffic: <pkt, bytes>, drop: <pkt, bytes>
Total 546416; 357216264069 1751361226396 21583505663 [623.18],    0    0    0    0, traffic: 1772944732059, 1954814335 MB, drop: 0, 0 K
cpu0   32852; 22073592263 108273583580 1349714787 [1.14],    0    0    0    0, traffic: 109623298367, 124090904 MB, drop: 0, 0 K
cpu1   31611; 22369176955 109452177482 1347870726 [1.14],    0    0    0    0, traffic: 110800048208, 120700861 MB, drop: 0, 0 K
cpu2   34246; 21942405349 107796571125 1347085136 [1.10],    0    0    0    0, traffic: 109143656261, 120398724 MB, drop: 0, 0 K
cpu3   43963; 22893500695 112246722626 1347616652 [1.11],    0    0    0    0, traffic: 113594339278, 126000333 MB, drop: 0, 0 K
cpu4   29934; 22443011918 110012384626 1348716517 [1.16],    0    0    0    0, traffic: 111361101143, 121198287 MB, drop: 0, 0 K
cpu5   33261; 22050243410 108033024349 1351080072 [1.14],    0    0    0    0, traffic: 109384104421, 121594432 MB, drop: 0, 0 K
cpu6   32224; 22329905394 109330451399 1348679835 [1.10],    0    0    0    0, traffic: 110679131234, 122674425 MB, drop: 0, 0 K
cpu7   38326; 22698679637 111373232471 1348986461 [1.16],    0    0    0    0, traffic: 112722218932, 123249458 MB, drop: 0, 0 K
cpu8   31228; 21854854557 107244123082 1347930318 [1.15],    0    0    0    0, traffic: 108592053400, 120175993 MB, drop: 0, 0 K
cpu9   38672; 22009286683 108074639584 1352148927 [1.15],    0    0    0    0, traffic: 109426788511, 120197645 MB, drop: 0, 0 K
cpu10  32380; 22434475006 110171403232 1349220891 [1.13],    0    0    0    0, traffic: 111520624123, 121668656 MB, drop: 0, 0 K
cpu11  38695; 22496745745 110328659846 1349619596 [1.13],    0    0    0    0, traffic: 111678279442, 122176384 MB, drop: 0, 0 K
cpu12  34358; 22107667286 108318315964 1348238731 [1.11],    0    0    0    0, traffic: 109666554695, 120672493 MB, drop: 0, 0 K
cpu13  29532; 22350003508 109543969638 1349789516 [1.13],    0    0    0    0, traffic: 110893759154, 123457520 MB, drop: 0, 0 K
cpu14  33813; 22607830452 110848699533 1347967775 [1.13],    0    0    0    0, traffic: 112196667308, 123721033 MB, drop: 0, 0 K
cpu15  31321; 22554885218 110313267892 1348839723 [1.10],    0    0    0    0, traffic: 111662107615, 122837180 MB, drop: 0, 0 K
Export: Rate 540714 bytes/s; Total 1068376350 pkts, 1427514 MB, 36454655668 flows; Errors 107 pkts; Traffic lost 42588 pkts, 49172 Kbytes, 3857 flows.
sock0: 62.33.36.122:9995, sndbuf 212992, filled 1, peak 65281; err: sndbuf reached 0, connect 2, cberr 1058938, other 106
 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Народ, как отправлять и 5 и 9 версию? 

Пересобрал модуль - везде заменил netflow на netflow2,

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

Не могу подцепить второй модуль в файрволл... 

iptables -I FORWARD -j netflow2

Chain 'netflow2' does not exist

Сам модуль в ядре есть

 cat /proc/net/stat/ipt_netflow2
ipt_netflow2 2.6, srcversion 08AFC7D33ACEC6137DCB775; llist
Protocol version 5 (netflow2)
Timeouts: active 1800s, inactive 15s. Maxflows 2000000
Flows: active 0 (peak 0 reached 0d0h30m ago), mem 5120K, worker delay 25/250 [1..25] (12 ms, 0 us, 0:0 0 [cpu0]).
Hash: size 655360 (mem 5120K), metric 1.00 [1.00, 1.00, 1.00]. InHash: 0 pkt, 0 K, InPDU 0, 0.
Rate: 0 bits/sec, 0 packets/sec; Avg 1 min: 0 bps, 0 pps; 5 min: 0 bps, 0 pps
cpu#     pps; <search found new [metric], trunc frag alloc maxflows>, traffic: <pkt, bytes>, drop: <pkt, bytes>
Total      0;      0      0      0 [0.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu0       0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu1       0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu2       0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu3       0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu4       0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu5       0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu6       0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu7       0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu8       0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu9       0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu10      0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
cpu11      0;      0      0      0 [1.00],    0    0    0    0, traffic: 0, 0 MB, drop: 0, 0 K
Export: Rate 0 bytes/s; Total 0 pkts, 0 MB, 0 flows; Errors 0 pkts; Traffic lost 0 pkts, 0 Kbytes, 0 flows.
sock0: 192.168.0.12:9895, sndbuf 212992, filled 1, peak 0; err: sndbuf reached 0, connect 0, cberr 0, other 0

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вообще-то NETFLOW и netflow - это не одно и тоже. Может все таки не всё переименовали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 21.04.2022 в 18:43, wed сказал:

Народ, как отправлять и 5 и 9 версию? 

Разве поля, присутствующие в v5 не представлены полностью в v9?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пробовал разными вариантами - и netflow2 и NETFLOW2. 

 

Возможно, но биллинг не понимает v9

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 21.04.2022 в 13:43, wed сказал:

Не могу подцепить второй модуль в файрволл... 

а если netflow1 выгрузить - netflow2 работает ?

 

и вообще у кого-нибудь такой вариант с переименованием работает?

Изменено пользователем alex39x
ошибка

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тут странно вообще. 

Я в исходниках переименовал вообще все. 

Пишу iptables -I FORWARD -j NETFLOW загружает. 

Пишу iptables -I FORWARD -j NETFLOW2 говорит Chain 'NETFLOW2' does not exist

Кажется в это пробовал делать на debian10, и на 10ке это работало. 

А в 11 debian под капотом уже nftables работает... Может быть с этим что-то связано. 

Так или иначе - задача в СОРМ отдавать v9, а в биллинг v5

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 22.04.2022 в 17:06, wed сказал:

Я в исходниках переименовал вообще все

Надеюсь, регистр соблюли? Сами файлы исходников переименовали или обошлись только правками внутри файлов?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

find -type f -name \* -exec sed -i -r 's/netflow/netflow2/g' {} \;
find -type f -name \* -exec sed -i -r 's/NETFLOW/NETFLOW2/g' {} \;

Вот так сделал. 

Файлы переименовал тоже. (иначе make не сработал бы, он же не найдет netflow.h например. )

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

В 23.04.2022 в 19:40, wed сказал:
find -type f -name \* -exec sed -i -r 's/netflow/netflow2/g' {} \;
find -type f -name \* -exec sed -i -r 's/NETFLOW/NETFLOW2/g' {} \;

Вот так сделал.

Badway, только ручками и просматривая код глазами. Может в коде что-нить типа

strcat(str, "NET");
strcat(str, "FLOW");

И приехали

 

В 22.04.2022 в 20:06, wed сказал:

Так или иначе - задача в СОРМ отдавать v9, а в биллинг v5

Какой-нить proxy netflow принимающий v9 и перепаковывающий в v5?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.