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

cREoz, спасибо за тестирование! nfdump я не пользовался, возможно баг, который надо репортить его авторам, вот его трекер: https://sourceforge.net/p/nfdump/bugs/

Share this post


Link to post
Share on other sites

aabc, не имеет ли смысл добавить в git инструкцию по сборке модуля под Ubuntu/Debian как DKMS-модуля?

Да, супер-нужная вещь!

 

Сделал экспериментально. https://github.com/aabc/ipt-netflow/commit/6dd6003e5

Для отключения опция --disable-dkms. Если захотите инсталлировать в DKMS вручную, то опция --disable-dkms-install отключит автоматический инсталл, но создаст dkms.conf. Всё остальное должно работать автоматически.

Share this post


Link to post
Share on other sites
Сделал экспериментально. https://github.com/aabc/ipt-netflow/commit/6dd6003e5

Ubuntu 14.04

 

make install

 *
make -C /lib/modules/3.13.0-40-generic/build M=/home/johnny/src/ipt-netflow modules_install INSTALL_MOD_PATH=
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-40-generic'
 INSTALL /home/johnny/src/ipt-netflow/ipt_NETFLOW.ko
Can't read private key
 DEPMOD  3.13.0-40-generic
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-40-generic'
depmod -a
*
install -D libipt_NETFLOW.so /lib/xtables/libipt_NETFLOW.so
install -D libip6t_NETFLOW.so /lib/xtables/libip6t_NETFLOW.so
*
Installing into DKMS...
! You have same version of module already installed into DKMS.
! That version was automatically installed by this script,
! thus, is safe to remove. No worries.
! Removing from dkms...
Error!  Unknown option: --no-depmod
Usage: /usr/sbin/dkms [action] [options]
 [action]  = { add | remove | build | install | uninstall | match | autoinstall
              | mkdriverdisk | mktarball | ldtarball | mkrpm | mkkmp | mkdeb | status }
 [options] = [-m module] [-v module-version] [-k kernel-version] [-a arch]
             [-d distro] [-c dkms.conf-location] [-q] [--force] [--all]
             [--templatekernel=kernel] [--directive='cli-directive=cli-value']
             [--config=kernel-.config-location] [--archive=tarball-location]
             [--kernelsourcedir=source-location] [--no-prepare-kernel] [--no-initrd]
             [--binaries-only] [--source-only] [-r release (SuSE)] [--verbose]
             [--size] [--spec=specfile] [--media=floppy|iso|tar] [--legacy-postinst=0|1]
! Removing source tree from /usr/src/ipt-netflow-2.0-41-g6dd6003
! Installing 2.0-41-g6dd6003 into DKMS...
Error! DKMS tree already contains: ipt-netflow-2.0-41-g6dd6003
You cannot add the same module/version combo more than once.
make: *** [dinstall] Error 3

Share this post


Link to post
Share on other sites

Прежде всего хочу поблагодарить товарища aabc за столь замечательный продукт как ipt_NETFLOW. Поддержку ipv6 я пока еще не тестил, но то, что касается ipv4 делается просто на ура. Товарищи у которых ipt_NETFLOW крашится вызывают у меня искреннее недоумение. Использую ipt_NETFLOW в продакшене уже больше 2 лет - никаких крашей по вине данного модуля - всё замечательно как на CentOS, так и на Gentoo(где я являюсь мэйнтэйнером данного пакета).

 

Теперь небольшая просьба к автору. Я - не великий знаток внутренностей ядра(скорее наоборот). А у нас в Gentoo существует такая штука как Gentoo Hardened - в основном это ядро с набором патчей от PaX и GrSecurity и соответствующий набор userspace-утилит. Так вот - ipt_NETFLOW в указанной конфигурации(с включенным PaX) - не собирается, подробности можно прочитать тут - https://bugs.gentoo.org/show_bug.cgi?id=466430

 

Мы используем для этого патч, который накладывается только для подобных конфигураций. Для версии 2.0 его можно посмотреть тут - http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-firewall/ipt_netflow/files/ipt_netflow-2.0-pax-const.patch?revision=1.2&view=markup

 

Патч неполный(не учитывает natevents, мы в Gentoo пока собираем без него, и возможно много чего еще), но общая идея наверное должна быть ясна.

 

Хотелось бы: доработать патч на все случаи и обрамить его соответствующими ifdef-ами(при включенной опции CONFIG_PAX - использовать новые куски кода, в остальных случаях - старые), в идеале - смерджить с основным кодом

Share this post


Link to post
Share on other sites

Pinkbyte

Спасибо за поддержку!

 

То что описано в Bug 466430 (2013 год), на мой взгляд, исправлено в Issue #16 (2014). Да, этот коммит после релиза 2.0, на который вы ссылаетесь. Можете проверить текущую git версию? Собираюсь в скором времени сделать релиз того, что сейчас как 2.1, всё таки уже ~60 коммитов после 2.0, и давно не было багрепортов. Если что вылезет - заводите тикет - там и обсудим, чтоб не напрягать этот форум (да и уведомления о новых постах тут приходят через раз).

Edited by aabc

Share this post


Link to post
Share on other sites

Да, вы правы - из гита собирается на ура.

 

Релиз бы новый не помешал, т.к. я озадачился бэкпортом патча, добавляющего поддержку сборки с ядром 3.17, но понял, что проще добавить снапшот прямо из git-а

Share this post


Link to post
Share on other sites

Если не секрет, то почему этот модуль ещё не в ванильном ядре? В архивах netdev не нашел попыток заслать его туда.

Share this post


Link to post
Share on other sites

s.lobanov

В начале 2009 Harald Welte (автор ulogd) высказался против, он лоббировал conntrack+ulogd2, а Pablo Neira Ayuso его поддержал, Patrick McHardy так ничего и не сказал. После не пытались продавливать. Кратко так:

 

My personal opinion (unless I'm missing something) is that the module is a

'specific' implementation of something that netfilter/iptables/ulogd2 try

to solve in a more generic way, without any new kernel changes/code. If I'm

missing something, or if an actual detailed performance comparison shows that

ipt-netflow is significantly faster, I might change that opinion. So as of

now, I would not be supportive of pushing it mainline, sorry.

 

I think that I would be better if this goes into ulogd2 as well as a

plugin. Otherwise, we'll end up bloating the kernel with log plugins

that show information in every different format available out there. But

Patrick has the last word here.

 

Pinkbyte

Перед релизом думаю, что делать с SNMP OID. Пока получали PEN у IANA (ужё получили, но они тормозили месяц), я уже сделал реализацию на другом, который уже могут некоторые юзать с своём мониторинге. Но, он ещё не был ни в одном релизе, так что его можно запросто объявить тестовым и заменить на новый.

 

Кстати, а как вы в Gentoo решаете проблему фич, которые включаются опциями для configure?

Edited by aabc

Share this post


Link to post
Share on other sites

Кстати, а как вы в Gentoo решаете проблему фич, которые включаются опциями для configure?

flags ебилда - не то? :) Или в чем вопрос?

Share this post


Link to post
Share on other sites

Народ подкаЖите где копать?

 

Стоял ipt_netflow раБотал и вдруг при нагрузки на роутер в 5Гбит/c загрузка всеХ ядер в 100%, причем взрывооБразно на 4.5Гбит/c раБотал и на cpu нагрузку в 15% давал.

ИспользуЮ так

iptables -I FORWARD -j NETFLOW

 

sysctl -w net.netflow.destination=10.0.3.3:9996

sysctl -w net.netflow.hashsize=13107200

sysctl -w net.netflow.active_timeout=300

sysctl -w net.netflow.sndbuf=10240000

sysctl -w net.netflow.maxflows=2000000

 

 

kernel 3.4.16 64bit

iptables v1.4.14

 

oprofile

CPU_CLK_UNHALT...|

samples| %|

------------------

55222222 90.7886 ipt_NETFLOW

2250176 3.6994 ip_tables

1261715 2.0743 ixgbe

1066515 1.7534 ip_set

264539 0.4349 ip_set_hash_net

218131 0.3586 oprofiled

83631 0.1375 ip_set_list_set

77324 0.1271 processor

68946 0.1134 bgpd

 

Или уЖе у него предел?

Попробую 2.0.1.

Edited by Стич

Share this post


Link to post
Share on other sites

Стич

100% на 2.0.1? (Попробуйте пожалуйста версию из git.) По сообщениям, не предел и 10Гбит на соотв. железе. Различить где уперлось в железо, а где в софт, а где в ядро часто тяжело, поэтому лучше, чтоб был запас по нагрузке. В вашем случае, надо снимать статистику и копать.

mpstat -P ALL 1

cat /proc/net/stat/ipt_netflow

perf top -g (с заходом в топовые функции).

До и после "100%" (для сравнения).

Edited by aabc

Share this post


Link to post
Share on other sites

 

Pinkbyte

Перед релизом думаю, что делать с SNMP OID. Пока получали PEN у IANA (ужё получили, но они тормозили месяц), я уже сделал реализацию на другом, который уже могут некоторые юзать с своём мониторинге. Но, он ещё не был ни в одном релизе, так что его можно запросто объявить тестовым и заменить на новый.

 

Думаю так и придется сделать. Ну и соответствующее пояснение в README/ChangeLog для тех кто всё-таки тестил фичу, мол, мужики - настройки поменялись.

 

Кстати, а как вы в Gentoo решаете проблему фич, которые включаются опциями для configure?

 

Решаем с помощь USE flags.

Share this post


Link to post
Share on other sites

Всем доброго времени суток.. ребята есть небольшая проблемка..

Стоит задача сбора netflow с цыски... тоесть необходимо поднять коллектор.. я поднял на основе flow-tools/ но у нее есть минус, он не может собирать статистику netflow 9 версии.. начал искать в гугле.. нашел pmacct, но вот как ее устанавливать настраивать очень мало информации.. кто что посоветует? И если можно с инструкцией установки.. у меня стоит ОС ubuntu 14.04, могу и centos поставить..

Заранее спс

 

Всем доброго времени суток.. ребята есть небольшая проблемка..

Стоит задача сбора netflow с цыски... тоесть необходимо поднять коллектор.. я поднял на основе flow-tools/ но у нее есть минус, он не может собирать статистику netflow 9 версии.. начал искать в гугле.. нашел pmacct, но вот как ее устанавливать настраивать очень мало информации.. кто что посоветует? И если можно с инструкцией установки.. у меня стоит ОС ubuntu 14.04, могу и centos поставить..

Заранее спасибо..

задача - сбор статистики на сервере.. для дальнейшей передачи файла статистики

Edited by maga

Share this post


Link to post
Share on other sites

Павел спасибо.. Выручил.. С пол пинка завел.. статистику собирает

Share this post


Link to post
Share on other sites

ipt_netflow почему то не собирается на 3.19

 

make all install
Compiling for kernel 3.19.1-1.el7.elrepo.x86_64
make -C /lib/modules/3.19.1-1.el7.elrepo.x86_64/build M=/usr/src/ipt-netflow-2.1 modules CONFIG_DEBUG_INFO=y
make[1]: Вход в каталог `/usr/src/kernels/3.19.1-1.el7.elrepo.x86_64'
 CC [M]  /usr/src/ipt-netflow-2.1/ipt_NETFLOW.o
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c: В функции «sk_error_report»:
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1748:2: ошибка: неявная декларация функции «__get_cpu_var» [-Werror=implicit-function-declaration]
 NETFLOW_STAT_INC(sock_cberr);
 ^
In file included from /usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:73:0:
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «sock_cberr» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1748:2: замечание: in expansion of macro «NETFLOW_STAT_INC»
 NETFLOW_STAT_INC(sock_cberr);
 ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c: В функции «netflow_sendmsg»:
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «send_failed» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1836:4: замечание: in expansion of macro «NETFLOW_STAT_INC»
   NETFLOW_STAT_INC(send_failed);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «send_failed» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1850:4: замечание: in expansion of macro «NETFLOW_STAT_INC»
   NETFLOW_STAT_INC(send_failed);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «exported_pkt» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1870:4: замечание: in expansion of macro «NETFLOW_STAT_INC»
   NETFLOW_STAT_INC(exported_pkt);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «exported_traf» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1871:4: замечание: in expansion of macro «NETFLOW_STAT_ADD»
   NETFLOW_STAT_ADD(exported_traf, ret);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «pkt_lost» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1880:3: замечание: in expansion of macro «NETFLOW_STAT_ADD»
  NETFLOW_STAT_ADD(pkt_lost, pdu_packets);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «traf_lost» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1881:3: замечание: in expansion of macro «NETFLOW_STAT_ADD»
  NETFLOW_STAT_ADD(traf_lost, pdu_traf);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «flow_lost» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1882:3: замечание: in expansion of macro «NETFLOW_STAT_ADD»
  NETFLOW_STAT_ADD(flow_lost, pdu_flow_records);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:403:41: ошибка: выборка элемента «lost» из объекта, не являющегося структурой или объединением
  if (!(__get_cpu_var(ipt_netflow_stat)).count.first.tv64)  \
                                        ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1883:3: замечание: in expansion of macro «NETFLOW_STAT_TS»
  NETFLOW_STAT_TS(lost);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:404:35: ошибка: выборка элемента «lost» из объекта, не являющегося структурой или объединением
   __get_cpu_var(ipt_netflow_stat).count.first = kts;  \
                                  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1883:3: замечание: in expansion of macro «NETFLOW_STAT_TS»
  NETFLOW_STAT_TS(lost);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:405:34: ошибка: выборка элемента «lost» из объекта, не являющегося структурой или объединением
  __get_cpu_var(ipt_netflow_stat).count.last = kts;   \
                                 ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1883:3: замечание: in expansion of macro «NETFLOW_STAT_TS»
  NETFLOW_STAT_TS(lost);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «exported_flow» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:1885:3: замечание: in expansion of macro «NETFLOW_STAT_ADD»
  NETFLOW_STAT_ADD(exported_flow, pdu_flow_records);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c: В функции «ipt_netflow_find»:
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «found» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:2260:4: замечание: in expansion of macro «NETFLOW_STAT_INC»
   NETFLOW_STAT_INC(found);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «searched» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:2263:3: замечание: in expansion of macro «NETFLOW_STAT_INC»
  NETFLOW_STAT_INC(searched);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «notfound» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:2265:2: замечание: in expansion of macro «NETFLOW_STAT_INC»
 NETFLOW_STAT_INC(notfound);
 ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c: В функции «alloc_record_key»:
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:411:35: ошибка: выборка элемента «alloc_err» из объекта, не являющегося структурой или объединением
  (__get_cpu_var(ipt_netflow_stat).count++); \
                                  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:3423:3: замечание: in expansion of macro «NETFLOW_STAT_INC_ATOMIC»
  NETFLOW_STAT_INC_ATOMIC(alloc_err);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c: В функции «netflow_export_flow_tpl»:
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «pkt_lost» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:3528:3: замечание: in expansion of macro «NETFLOW_STAT_ADD»
  NETFLOW_STAT_ADD(pkt_lost, nf->nr_packets);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «traf_lost» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:3529:3: замечание: in expansion of macro «NETFLOW_STAT_ADD»
  NETFLOW_STAT_ADD(traf_lost, nf->nr_bytes);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «flow_lost» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:3530:3: замечание: in expansion of macro «NETFLOW_STAT_INC»
  NETFLOW_STAT_INC(flow_lost);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:403:41: ошибка: выборка элемента «lost» из объекта, не являющегося структурой или объединением
  if (!(__get_cpu_var(ipt_netflow_stat)).count.first.tv64)  \
                                        ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:3531:3: замечание: in expansion of macro «NETFLOW_STAT_TS»
  NETFLOW_STAT_TS(lost);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:404:35: ошибка: выборка элемента «lost» из объекта, не являющегося структурой или объединением
   __get_cpu_var(ipt_netflow_stat).count.first = kts;  \
                                  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:3531:3: замечание: in expansion of macro «NETFLOW_STAT_TS»
  NETFLOW_STAT_TS(lost);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:405:34: ошибка: выборка элемента «lost» из объекта, не являющегося структурой или объединением
  __get_cpu_var(ipt_netflow_stat).count.last = kts;   \
                                 ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:3531:3: замечание: in expansion of macro «NETFLOW_STAT_TS»
  NETFLOW_STAT_TS(lost);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c: В функции «netflow_scan_and_export»:
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «pkt_out» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4131:3: замечание: in expansion of macro «NETFLOW_STAT_ADD»
  NETFLOW_STAT_ADD(pkt_out, nf->nr_packets);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «traf_out» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4132:3: замечание: in expansion of macro «NETFLOW_STAT_ADD»
  NETFLOW_STAT_ADD(traf_out, nf->nr_bytes);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c: В функции «netflow_target»:
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «truncated» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4669:3: замечание: in expansion of macro «NETFLOW_STAT_INC»
  NETFLOW_STAT_INC(truncated);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «pkt_drop» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4670:3: замечание: in expansion of macro «NETFLOW_STAT_INC»
  NETFLOW_STAT_INC(pkt_drop);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «traf_drop» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4671:3: замечание: in expansion of macro «NETFLOW_STAT_ADD»
  NETFLOW_STAT_ADD(traf_drop, skb->len);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:403:41: ошибка: выборка элемента «drop» из объекта, не являющегося структурой или объединением
  if (!(__get_cpu_var(ipt_netflow_stat)).count.first.tv64)  \
                                        ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4672:3: замечание: in expansion of macro «NETFLOW_STAT_TS»
  NETFLOW_STAT_TS(drop);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:404:35: ошибка: выборка элемента «drop» из объекта, не являющегося структурой или объединением
   __get_cpu_var(ipt_netflow_stat).count.first = kts;  \
                                  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4672:3: замечание: in expansion of macro «NETFLOW_STAT_TS»
  NETFLOW_STAT_TS(drop);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:405:34: ошибка: выборка элемента «drop» из объекта, не являющегося структурой или объединением
  __get_cpu_var(ipt_netflow_stat).count.last = kts;   \
                                 ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4672:3: замечание: in expansion of macro «NETFLOW_STAT_TS»
  NETFLOW_STAT_TS(drop);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «frags» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4805:3: замечание: in expansion of macro «NETFLOW_STAT_INC»
  NETFLOW_STAT_INC(frags);
  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «maxflows_err» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4945:4: замечание: in expansion of macro «NETFLOW_STAT_INC»
   NETFLOW_STAT_INC(maxflows_err);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «pkt_drop» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4946:4: замечание: in expansion of macro «NETFLOW_STAT_INC»
   NETFLOW_STAT_INC(pkt_drop);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «traf_drop» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4947:4: замечание: in expansion of macro «NETFLOW_STAT_ADD»
   NETFLOW_STAT_ADD(traf_drop, pkt_len);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:403:41: ошибка: выборка элемента «drop» из объекта, не являющегося структурой или объединением
  if (!(__get_cpu_var(ipt_netflow_stat)).count.first.tv64)  \
                                        ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4948:4: замечание: in expansion of macro «NETFLOW_STAT_TS»
   NETFLOW_STAT_TS(drop);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:404:35: ошибка: выборка элемента «drop» из объекта, не являющегося структурой или объединением
   __get_cpu_var(ipt_netflow_stat).count.first = kts;  \
                                  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4948:4: замечание: in expansion of macro «NETFLOW_STAT_TS»
   NETFLOW_STAT_TS(drop);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:405:34: ошибка: выборка элемента «drop» из объекта, не являющегося структурой или объединением
  __get_cpu_var(ipt_netflow_stat).count.last = kts;   \
                                 ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4948:4: замечание: in expansion of macro «NETFLOW_STAT_TS»
   NETFLOW_STAT_TS(drop);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «alloc_err» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4954:4: замечание: in expansion of macro «NETFLOW_STAT_INC»
   NETFLOW_STAT_INC(alloc_err);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «pkt_drop» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4955:4: замечание: in expansion of macro «NETFLOW_STAT_INC»
   NETFLOW_STAT_INC(pkt_drop);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «traf_drop» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4956:4: замечание: in expansion of macro «NETFLOW_STAT_ADD»
   NETFLOW_STAT_ADD(traf_drop, pkt_len);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:403:41: ошибка: выборка элемента «drop» из объекта, не являющегося структурой или объединением
  if (!(__get_cpu_var(ipt_netflow_stat)).count.first.tv64)  \
                                        ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4957:4: замечание: in expansion of macro «NETFLOW_STAT_TS»
   NETFLOW_STAT_TS(drop);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:404:35: ошибка: выборка элемента «drop» из объекта, не являющегося структурой или объединением
   __get_cpu_var(ipt_netflow_stat).count.first = kts;  \
                                  ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4957:4: замечание: in expansion of macro «NETFLOW_STAT_TS»
   NETFLOW_STAT_TS(drop);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:405:34: ошибка: выборка элемента «drop» из объекта, не являющегося структурой или объединением
  __get_cpu_var(ipt_netflow_stat).count.last = kts;   \
                                 ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:4957:4: замечание: in expansion of macro «NETFLOW_STAT_TS»
   NETFLOW_STAT_TS(drop);
   ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:397:65: ошибка: выборка элемента «pkt_total» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_INC(count) (__get_cpu_var(ipt_netflow_stat).count++)
                                                                ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:5032:2: замечание: in expansion of macro «NETFLOW_STAT_INC»
 NETFLOW_STAT_INC(pkt_total);
 ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.h:398:70: ошибка: выборка элемента «traf_total» из объекта, не являющегося структурой или объединением
#define NETFLOW_STAT_ADD(count, val) (__get_cpu_var(ipt_netflow_stat).count += (unsigned long long)val)
                                                                     ^
/usr/src/ipt-netflow-2.1/ipt_NETFLOW.c:5033:2: замечание: in expansion of macro «NETFLOW_STAT_ADD»
 NETFLOW_STAT_ADD(traf_total, pkt_len);
 ^
cc1: some warnings being treated as errors
make[2]: *** [/usr/src/ipt-netflow-2.1/ipt_NETFLOW.o] Ошибка 1
make[1]: *** [_module_/usr/src/ipt-netflow-2.1] Ошибка 2
make[1]: Выход из каталога `/usr/src/kernels/3.19.1-1.el7.elrepo.x86_64'
make: *** [ipt_NETFLOW.ko] Ошибка 2

 

 

Так понимаю из-за предварительно сломанного шага:

# make oldconfig
scripts/kconfig/conf --oldconfig Kconfig
#
# configuration written to .config
#
[root@test01 3.19.1-1.el7.elrepo.x86_64]# make prepare modules_prepare
scripts/kconfig/conf --silentoldconfig Kconfig
make[1]: *** Нет правила для сборки цели `arch/x86/tools/relocs_32.c', требуемой для `arch/x86/tools/relocs_32.o'.  Останов.
make: *** [archscripts] Ошибка 2

или же только на штатном ядре будет работать? на ubuntu собралось по инструкции влет, несмотря на старое ядро 3.2

Share this post


Link to post
Share on other sites

linx

Попробуйте ещё раз версию из git.

Share this post


Link to post
Share on other sites

aabc версия из гит - собирается без ошибок, работает, спасибо!

Share this post


Link to post
Share on other sites

Народ, а есть у кого-то рецепт на ebtables как с миррора поднять трафик без bridge?

так понимаю надо поменять dst mac, но не помогу понять как именно, вроде dnat? можно есть у кого-то уже решение.

 

Также интересно ebtables против bridge and dummy0

Share this post


Link to post
Share on other sites

aabc, вы бы не могли пояснить, как сейчас правильно ставить ваш модуль под Ubuntu? Свежие версии из git'a сами стали ставить dkms, но как-то странно. Например, на одном сервере у меня так:

 

root@nata3:/root/nasscripts# dkms status
ipt-netflow, 2.1-14-g22ddee7, 3.13.0-46-generic, x86_64: installed
ipt-netflow, 2.1-5-g3ab46d9-dirty: added
xtables-addons, 2.3, 3.13.0-37-generic, x86_64: installed
xtables-addons, 2.3, 3.13.0-39-generic, x86_64: installed
root@nata3:/root/nasscripts#

 

 

А вот что происходит, когда я пытаюсь поставить на другом роутере:

 


root@kam:/root/src# git clone git://git.code.sf.net/p/ipt-netflow/code ipt-netflow
Cloning into 'ipt-netflow'...
remote: Counting objects: 992, done.
remote: Compressing objects: 100% (891/891), done.
remote: Total 992 (delta 669), reused 152 (delta 101)
Receiving objects: 100% (992/992), 266.67 KiB | 204.00 KiB/s, done.
Resolving deltas: 100% (669/669), done.
Checking connectivity... готово.




root@kam:/root/src# cd ipt-netflow/

root@kam:/root/src/ipt-netflow# ./configure --enable-natevents --enable-aggregation
Kernel version: 3.13.0-46-generic (uname)
Kernel sources: /lib/modules/3.13.0-46-generic/build (found)
Checking for presence of include/linux/llist.h... Yes
Iptables binary version: 1.4.19.1 (detected from /usr/local/sbin/iptables)
pkg-config for version 1.4.19.1 exists: Yes
Checking for presence of xtables.h... Yes (using pkg-config)
Iptables include flags: -I/usr/local/include   (pkg-config)
Iptables module path: /usr/local/lib/xtables (pkg-config)
Searching for net-snmp-config... No.
Searching for net-snmp agent... Yes.
! You have net-snmp agent but not development package.
! net-snmp agent will not be built, to fix:
!   run:  apt-get install libsnmp-dev
Checking for DKMS... Yes.
! You are already have module installed via DKMS
!   it will be uninstalled on 'make install' and
!   current version of module installed afterwards.
! Use --disable-dkms option if don't want this.
Creating Makefile.. done.

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

root@kam:/root/src/ipt-netflow# make all install
Compiling for kernel 3.13.0-46-generic
make -C /lib/modules/3.13.0-46-generic/build M=/root/src/ipt-netflow modules CONFIG_DEBUG_INFO=y
make[1]: Вход в каталог `/usr/src/linux-headers-3.13.0-46-generic'
 CC [M]  /root/src/ipt-netflow/ipt_NETFLOW.o
 Building modules, stage 2.
 MODPOST 1 modules
 CC      /root/src/ipt-netflow/ipt_NETFLOW.mod.o
 LD [M]  /root/src/ipt-netflow/ipt_NETFLOW.ko
make[1]: Выход из каталога `/usr/src/linux-headers-3.13.0-46-generic'
gcc -O2 -Wall -Wunused -DXTABLES  -I/usr/local/include   -fPIC -o libipt_NETFLOW_sh.o -c libipt_NETFLOW.c
gcc -shared -o libipt_NETFLOW.so libipt_NETFLOW_sh.o
gcc -O2 -Wall -Wunused -DXTABLES  -I/usr/local/include   -fPIC -o libip6t_NETFLOW_sh.o -c libipt_NETFLOW.c
gcc -shared -o libip6t_NETFLOW.so libip6t_NETFLOW_sh.o
*
make -C /lib/modules/3.13.0-46-generic/build M=/root/src/ipt-netflow modules_install INSTALL_MOD_PATH=
make[1]: Вход в каталог `/usr/src/linux-headers-3.13.0-46-generic'
 INSTALL /root/src/ipt-netflow/ipt_NETFLOW.ko
Can't read private key
 DEPMOD  3.13.0-46-generic
make[1]: Выход из каталога `/usr/src/linux-headers-3.13.0-46-generic'
/sbin/depmod -a
*
install -D libipt_NETFLOW.so /usr/local/lib/xtables/libipt_NETFLOW.so
install -D libip6t_NETFLOW.so /usr/local/lib/xtables/libip6t_NETFLOW.so
*
Installing into DKMS...
! You have different version of module installed into DKMS.
! That version was automatically installed by this script,
! thus, is safe to remove. No worries.
! Removing from dkms...

------------------------------
Deleting module version: 2.0-53-g8e42ff3-dirty
completely from the DKMS tree.
------------------------------
Done.
! Removing source tree from /usr/src/ipt-netflow-2.0-53-g8e42ff3-dirty
! Installing 2.1-14-g22ddee7 into DKMS...

Creating symlink /var/lib/dkms/ipt-netflow/2.1-14-g22ddee7/source ->
            	/usr/src/ipt-netflow-2.1-14-g22ddee7

DKMS: add completed.
rm libipt_NETFLOW_sh.o libip6t_NETFLOW_sh.o





root@kam:/root/src/ipt-netflow# dkms status


ipt-netflow, 2.1-14-g22ddee7: added





root@kam:/root/src/ipt-netflow# dkms install -m ipt-netflow/2.1-14-g22ddee7



Kernel preparation unnecessary for this kernel.  Skipping...

Running the pre_build script:
Kernel version: 3.13.0-46-generic (uname)
Kernel sources: /lib/modules/3.13.0-46-generic/build (dkms)
Checking for presence of include/linux/llist.h... Yes
Iptables binary version: 1.4.21 (detected from /sbin/iptables)
pkg-config for version 1.4.21 exists: No (reported: 1.4.19.1)
Checking for presence of xtables.h... Yes
Searching for iptables-1.4.21 sources..
! Can not find iptables source directory, you may try setting it with --ipt-src=
! This is not fatal error, yet. Will be just using default include dir.
Iptables include flags: none (default)
Iptables module path: /usr/local/lib/xtables
/tmp/iptables-1.4.19.1/libxtables (from iptables binary)
Searching for net-snmp-config... No.
Searching for net-snmp agent... Yes.
! You have net-snmp agent but not development package.
! net-snmp agent will not be built, to fix:
!   run:  apt-get install libsnmp-dev
Checking for DKMS... Yes.
Creating Makefile.. sed: -e выражение #1, символ 348: незавершенная команда `s'
done.

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


Building module:
cleaning build area....
make KERNELRELEASE=3.13.0-46-generic ipt_NETFLOW.ko....(bad exit status: 2)
ERROR (dkms apport): binary package for ipt-netflow: 2.1-14-g22ddee7 not found
Error! Bad return status for module build on kernel: 3.13.0-46-generic (x86_64)
Consult /var/lib/dkms/ipt-netflow/2.1-14-g22ddee7/build/make.log for more information.




root@kam:/root/src/ipt-netflow# cat /var/lib/dkms/ipt-netflow/2.1-14-g22ddee7/build/make.log
DKMS make.log for ipt-netflow-2.1-14-g22ddee7 for kernel 3.13.0-46-generic (x86_64)
Вт. марта 31 11:27:45 MSK 2015
make: *** Нет правила для сборки цели `ipt_NETFLOW.ko'.  Останов.





root@kam:/root/src/ipt-netflow# dkms status
ipt-netflow, 2.1-14-g22ddee7: added


 

 

 

Edited by Dyr

Share this post


Link to post
Share on other sites

Dyr

Спс за репорт. Я уже поставил убунту14, разберусь на досуге или может кто поможет.

Share this post


Link to post
Share on other sites

High performance and scalability. For highest performance module could be
run without conntrack being enabled in kernel. Reported to be able to
handle 10Gbit traffic with more than 1500000 pps with negligible server
load (on S5500BC).

 

Подскажите, а с коннтраком и --enable-natevents насколько ресурсоёмко? при траффике до 1Gb.

Share this post


Link to post
Share on other sites

Подскажите, а с коннтраком и --enable-natevents насколько ресурсоёмко? при траффике до 1Gb.

Natevents почти не ест ресурсов, это просто эвенты принимаемые из conntrack (если нужны только natevents, то можно не ставить правил в iptables). Всё остальное как сконфигурируете. 1Gb - это небольшие объемы трафика для современного компа. Предсказываю: ~10% нагрузки от уже существующей. "От" значит вот что - если сейчас нагрузка softirq всего 10%, то добавляем 1%.

Share this post


Link to post
Share on other sites

Есть виртуалка на основе OpenVZ в OVH.

 

Debian GNU/Linux 7 \n \l
2.6.32-042stab106.4 #1 SMP Fri Mar 27 15:19:28 MSK 2015 x86_64 GNU/Linux

 

Подскажите Netflow сенсор.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now