Перейти к содержимому
Калькуляторы

cREoz

Пользователи
  • Публикации

    65
  • Зарегистрирован

  • Посещение

О cREoz

  • Звание
    Абитуриент
    Абитуриент

Информация

  • Пол
    Array

Посетители профиля

2175 просмотров профиля
  1. Какого, опять, хедера ему не хватает? $ make Making all in src make[1]: Entering directory '/home/user/src/extfilter/src' g++ -DHAVE_CONFIG_H -I. -I../include -I/home/user/src/dpdk-stable-17.05.2/build/include -I.././peafowl/src -std=c++11 -O3 -Wall -fno-stack-protector -pthread -msse -msse2 -msse3 -mssse3 -march=native -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp main.cpp: In member function ‘virtual void extFilter::initialize(Poco::Util::Application&)’: main.cpp:818:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(rc != 6 || mac.size() != last) ~~~~~~~~~~~^~~~~~~ main.cpp: In member function ‘virtual int extFilter::main(const ArgVec&)’: main.cpp:1064:97: error: ‘ceil’ was not declared in this scope int max_ipv4_flows_per_core = ceil((float)_dpi_max_active_flows_ipv4/(float)(_nb_lcore_params)); ^ Makefile:374: recipe for target 'main.o' failed make[1]: *** [main.o] Error 1 make[1]: Leaving directory '/home/user/src/extfilter/src' Makefile:343: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1 gcc version 6.4.1 20170727 (Red Hat 6.4.1-1) (GCC)
  2. Напрягает большое количество expired flows, на старой версии их не было...
  3. Поставил последнюю версию, поправил руками IPv6-адреса в ssl_ips - заключил в квадратные скобки. Подскажите, пожалуйста, какие параметры для core_mask и port queues для двух 4-х поточных сетевух на 4-х ядерном проце? Можно садить на одну очередь потоки разных сетевух? ;isolcpus=1,2,3 core_mask = 7 [port 0] queues = 0,1; 1,2 [port 1] queues = 0,1; 1,2 С таким конфигом в статистике стабильно есть missed packets - 4 и 25 2017-05-22 13:37:35.898 [6041] Information Application - Port 0 input packets 47541278, input errors: 0, mbuf errors: 0, missed packets: 4 2017-05-22 13:37:35.898 [6041] Information Application - Port 1 input packets 78622889, input errors: 0, mbuf errors: 0, missed packets: 25 2017-05-22 13:39:35.899 [6041] Information Application - Port 0 input packets 51921715, input errors: 0, mbuf errors: 0, missed packets: 4 2017-05-22 13:39:35.899 [6041] Information Application - Port 1 input packets 85566336, input errors: 0, mbuf errors: 0, missed packets: 25 2017-05-22 13:41:35.900 [6041] Information Application - Port 0 input packets 55859567, input errors: 0, mbuf errors: 0, missed packets: 4 2017-05-22 13:41:35.900 [6041] Information Application - Port 1 input packets 92666690, input errors: 0, mbuf errors: 0, missed packets: 25 Что бы это значило? 2017-05-22 13:33:13.505 [6041] Error CSender - sendto() failed to xxx.xxx.xxx.254:51359 errno: 90 2017-05-22 13:33:13.505 [6041] Error CSender - sendto() failed to xxx.xxx.xxx.254:51359 errno: 90 После того как отработали скрипты опять сломался ssl_ips((( [extfilter]$ sudo extFilter --config-file=/etc/extfilter.ini EAL: Detected 4 lcore(s) EAL: Probing VFIO support... EAL: PCI device 0000:01:00.0 on NUMA socket -1 EAL: probe driver: 8086:10a7 net_e1000_igb EAL: PCI device 0000:01:00.1 on NUMA socket -1 EAL: probe driver: 8086:10a7 net_e1000_igb EAL: PCI device 0000:04:00.0 on NUMA socket -1 EAL: probe driver: 8086:10d3 net_e1000_em EAL: PCI device 0000:05:00.0 on NUMA socket -1 EAL: probe driver: 8086:10d3 net_e1000_em Invalid address: 0000 В логах такое: 2017-05-22 13:46:23.266 [11600] Debug ACL - Building ACL from file /var/lib/extfilter/ssl_ips 2017-05-22 13:46:23.266 [11600] Debug ACL - IP 104.31.95.208 without port 2017-05-22 13:46:23.266 [11600] Debug ACL - IP 104.31.94.208 without port 2017-05-22 13:46:23.266 [11600] Debug ACL - IP 37.1.201.79 without port 2017-05-22 13:46:23.266 [11600] Debug ACL - IP 184.170.131.157 without port 2017-05-22 13:46:23.267 [11600] Debug ACL - IP 185.49.71.191 without port 2017-05-22 13:46:23.267 [11600] Debug ACL - IP is 0000 port 0000:0000:0000:005e:c3b2:c3aa:c3bd Как починить скрипты? Нашёл беду, скопировал кусок кода из функции ниже: [extfilter]$ git diff scripts/extfilter-maker/extfilter_maker.pl diff --git a/scripts/extfilter-maker/extfilter_maker.pl b/scripts/extfilter-maker/extfilter_maker.pl index ef38791..d2e94a0 100755 --- a/scripts/extfilter-maker/extfilter_maker.pl +++ b/scripts/extfilter-maker/extfilter_maker.pl @@ -141,7 +141,12 @@ while (my $ips = $sth->fetchrow_hashref()) { next if(defined $ssl_ip{$ip}); $ssl_ip{$ip}=1; - print $SSL_IPS_FILE "$ip","\n"; + if($ip =~ /^(\d{1,3}\.){3}\d{1,3}$/) + { + print $SSL_IPS_FILE "$ip","\n"; + } else { + print $SSL_IPS_FILE "[$ip]","\n"; + } } } }
  4. На коммите #2ebe0e9 (Добавлена поддержка блокировки подсетей через bgp) без этого патча вываливается с ошибкой компиляции: diff --git a/include/sender.h b/include/sender.h index 22c73d5..9b02168 100644 --- a/include/sender.h +++ b/include/sender.h @@ -31,6 +31,7 @@ #include <netinet/tcp.h> #include <netinet/ip.h> #include <arpa/inet.h> +#include <immintrin.h> #include <Poco/Logger.h> #include <Poco/Net/IPAddress.h> ошибка: g++ -DHAVE_CONFIG_H -I. -I../include -I../ -I../nDPI/src/include -I/home/user/src/dpdk-stable-16.11.1/build/include -std=c++11 -O3 -Wall -pthread -msse -msse2 -msse3 -mssse3 -MT sendertask.o -MD -MP -MF .deps/sendertask.Tpo -c -o sendertask.o sendertask.cpp In file included from sendertask.cpp:20:0: ../include/sendertask.h:174:3: error: ‘__m128i’ does not name a type __m128i ipv6; ^~~~~~~ ../include/sendertask.h:179:3: error: ‘__m128i’ does not name a type __m128i ipv6; ^~~~~~~ Fedora 25, gcc version 6.3.1 20161221 (Red Hat 6.3.1-1) (GCC)
  5. Раз так, то только откатыватья, т.к. у меня два порта. К тому же траффика не видит((( На каком-то старом коммите работало без указания core_mask=7 но при num_of_workers=2 Сейчас откатился до коммита commit a17476087079cd72b215c039291ea2bed412c57d Author: root <root@filter.tushino.com> Date: Thu Mar 9 10:55:18 2017 +0300 Изменена работа с url в случае наличия точки в конце домена Запускается при core_mask=15 num_of_workers=2 $ sudo /usr/local/bin/extFilter --pidfile=/var/run/extFilter.pid --config-file=/etc/extfilter.ini EAL: Detected 4 lcore(s) EAL: Probing VFIO support... EAL: PCI device 0000:01:00.0 on NUMA socket -1 EAL: probe driver: 8086:10a7 rte_igb_pmd EAL: PCI device 0000:01:00.1 on NUMA socket -1 EAL: probe driver: 8086:10a7 rte_igb_pmd EAL: PCI device 0000:04:00.0 on NUMA socket -1 EAL: probe driver: 8086:10d3 rte_em_pmd EAL: PCI device 0000:05:00.0 on NUMA socket -1 EAL: probe driver: 8086:10d3 rte_em_pmd Using core 1 Core configuration: Reader thread DPDK device#0: RX-Queue#0; Reader thread DPDK device#1: RX-Queue#0; Using core 2 Core configuration: Worker thread Using core 3 Core configuration: Worker thread
  6. На последнем коммите не стартует(( Писало ошибку: EAL: Detected 4 lcore(s) EAL: invalid coremask раскоментил в конфиге ; Какие ядра использовать. Default: все ядра, кроме management. core_mask = 7 стало запускаться, но сразу падает: [user@zapret ~]$ sudo systemctl status extfilter ● extfilter.service - extFilter is a daemon for filtering traffic using DPDK Loaded: loaded (/etc/systemd/system/extfilter.service; disabled; vendor preset: disabled) Active: failed (Result: exit-code) since Ср 2017-04-05 16:41:32 MSK; 16min ago Process: 29444 ExecStart=/usr/local/bin/extFilter --daemon --pidfile=/var/run/extFilter.pid --config-file /etc/extfilter.ini (code=exited, status=0/SUCCESS) Main PID: 29445 (code=exited, status=78) апр 05 16:41:32 zapret.local extFilter[29445]: EAL: probe driver: 8086:10a7 net_e1000_igb апр 05 16:41:32 zapret.local extFilter[29445]: EAL: PCI device 0000:01:00.1 on NUMA socket -1 апр 05 16:41:32 zapret.local extFilter[29445]: EAL: probe driver: 8086:10a7 net_e1000_igb апр 05 16:41:32 zapret.local extFilter[29445]: EAL: PCI device 0000:04:00.0 on NUMA socket -1 апр 05 16:41:32 zapret.local extFilter[29445]: EAL: probe driver: 8086:10d3 net_e1000_em апр 05 16:41:32 zapret.local extFilter[29445]: EAL: PCI device 0000:05:00.0 on NUMA socket -1 апр 05 16:41:32 zapret.local extFilter[29445]: EAL: probe driver: 8086:10d3 net_e1000_em апр 05 16:41:32 zapret.local systemd[1]: extfilter.service: Main process exited, code=exited, status=78/n/a апр 05 16:41:32 zapret.local systemd[1]: extfilter.service: Unit entered failed state. апр 05 16:41:32 zapret.local systemd[1]: extfilter.service: Failed with result 'exit-code'. Экпериментальным путём выяснил что не запускается из-за этих параметров: ; dpdk порт(ы), где анализировать трафик dpdk_ports = 0,1 ; количество потоков по анализу трафика num_of_workers=2 Что делать, на какой коммит откатываться?
  7. подскажите, пожалуйста, как это сделать? в гугле предлагают увеличить kernel.shmall и kernel.shmmax а у меня они вот такие: $ sysctl kernel.shmall kernel.shmall = 18446744073692774399 $ sysctl kernel.shmmax kernel.shmmax = 18446744073692774399 $ ipcs -lm ------ Shared Memory Limits -------- max number of segments = 4096 max seg size (kbytes) = 18014398509465599 max total shared memory (kbytes) = 18014398442373116 min seg size (bytes) = 1 $ uname -a Linux accel-nat 4.10.0-13-generic #15-Ubuntu SMP Thu Mar 9 20:28:34 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux частично удалось снизить нагрузку через LD_PRELOAD=noprocnetdevppp.so, но на графиках всё равно есть пропуски((( есть ли альтернативный способ получения данных по SNMP без snmpd?
  8. На сервере кроме accel-ppp только snmpd, nat и ipt_netflow Клиетны - PPPoE до 2500 Что значат эти ошибки? $ tail -F /var/log/accel-ppp/*.log ==> /var/log/accel-ppp/accel-ppp.log <== [2017-04-03 10:23:47]: error: cli: write: Connection reset by peer [2017-04-03 10:35:21]: error: cli: write: Connection reset by peer [2017-04-03 10:39:43]: error: cli: write: Connection reset by peer [2017-04-03 10:57:37]: error: cli: write: Connection reset by peer [2017-04-03 11:09:06]: error: cli: write: Connection reset by peer [2017-04-03 11:10:39]: error: cli: write: Connection reset by peer [2017-04-03 11:11:31]: error: cli: write: Connection reset by peer [2017-04-03 11:37:45]: error: cli: write: Connection reset by peer [2017-04-03 11:50:39]: error: cli: write: Connection reset by peer [2017-04-03 12:00:07]: error: cli: write: Connection reset by peer ==> /var/log/accel-ppp/core.log <== [2017-04-02 13:31:29.299]timer:timerfd_settime: Invalid argument [2017-04-02 16:47:47.20]timer:timerfd_settime: Invalid argument [2017-04-02 18:23:32.46]timer:timerfd_settime: Invalid argument [2017-04-02 18:56:31.677]timer:timerfd_settime: Invalid argument [2017-04-02 20:37:04.260]timer:timerfd_settime: Invalid argument [2017-04-02 20:58:32.829]timer:timerfd_settime: Invalid argument [2017-04-03 06:06:02.941]timer:timerfd_settime: Invalid argument [2017-04-03 06:23:13.905]timer:timerfd_settime: Invalid argument [2017-04-03 06:42:26.242]timer:timerfd_settime: Invalid argument [2017-04-03 06:52:50.634]timer:timerfd_settime: Invalid argument ==> /var/log/accel-ppp/emerg.log <== radius: out of memory radius: out of memory radius: out of memory radius: out of memory radius: out of memory radius: out of memory radius: out of memory radius: out of memory radius: out of memory radius: out of memory Память - 24 гига: $ free -h total used free shared buff/cache available Mem: 23G 1,5G 618M 13M 21G 21G Swap: 23G 0B 23G
  9. Зависит от дистрибутива, у меня на Fedora 25 нужен такой файл: $ cat /etc/ld.so.conf.d/usr-local.conf /usr/local/lib
  10. По аналогии пакетов от Debian сделал DKMS-костыль к само-сборному DPDK 16.07.2 на Fedora 25 (4.9.3-200.fc25.x86_64) Добавляем модули в DKMS, компилируем и устанавливаем для всех версий kernel: [~]$ sudo dkms add dpdk-igb-uio/16.07.2 [~]$ sudo dkms autoinstall dpdk-igb-uio/16.07.2 --all [~]$ sudo dkms add dpdk-rte-kni/16.07.2 [~]$ sudo dkms autoinstall dpdk-rte-kni/16.07.2 --all
  11. Подскажите, пожалуйста, в каком файле смотреть? А сколько нужно памяти, воркер, кажется, запрашивает всего 250Мб? В сервере 8Гб, ему этого мало? Удалил, но видимо /16 сеть неправильно обрабатывается в скрипте?
  12. У нас тоже проблема с бесконечными редиректами при установке url_additional_info = url, т.к. сама заглушка находится в "Интернете". max1976, возможно реализовать пропуск HTTP-пакетов, содержащих заблокированный URL, но начинающийся со значения указанного в redirect_url? Можно и нужно ли устанавливать количесвот воркеров больше одного на 4-х ядерном процессоре с 2-мя сетевыми под анализ траффика? При num_of_workers = 2 второй воркер падает с ошибкой - Exception: Not enough memory for flows pool При запуске extfilter пишет в логи кучу Warning-ов "already present in the URL database from file" Так и дожно быть? Еще заметил, что extfilter-quagga.pl при запуске каждый раз пишет в логах "deleted 1 ipv4 ips" $ cat /var/log/extfilter/quagga.log 2016-12-06 23:50:21 | INFO | main | Quagga configuration successfully updated: added 0 ipv4 ips, added 0 ipv6 ips, deleted 1 ipv4 ips, deleted 0 ipv6 ips, added 0 ipv4 routes to blackhole, added 0 ipv6 routes to blackhole, deleted 0 ipv4 routes from blackhole, deleted 0 ipv6 routes from blackhole. 2016-12-06 23:52:34 | INFO | main | Quagga configuration successfully updated: added 0 ipv4 ips, added 0 ipv6 ips, deleted 1 ipv4 ips, deleted 0 ipv6 ips, added 0 ipv4 routes to blackhole, added 0 ipv6 routes to blackhole, deleted 0 ipv4 routes from blackhole, deleted 0 ipv6 routes from blackhole.2016-12-06 23:54:48 | INFO | main | Quagga configuration successfully updated: added 0 ipv4 ips, added 0 ipv6 ips, deleted 1 ipv4 ips, deleted 0 ipv6 ips, added 0 ipv4 routes to blackhole, added 0 ipv6 routes to blackhole, deleted 0 ipv4 routes from blackhole, deleted 0 ipv6 routes from blackhole. 2016-12-06 23:54:48 | INFO | main | Quagga configuration successfully updated: added 0 ipv4 ips, added 0 ipv6 ips, deleted 1 ipv4 ips, deleted 0 ipv6 ips, added 0 ipv4 routes to blackhole, added 0 ipv6 routes to blackhole, deleted 0 ipv4 routes from blackhole, deleted 0 ipv6 routes from blackhole. поставил в в этом месте в коде "print" и вылезло: no network 185.63/16 Quagga такое не понимает: $ sudo -u quagga vtysh zapret.local# conf t zapret.local(config)# router bgp 65001 zapret.local(config-router)# no network 185.63/16 % Unknown command. Сама сеть в конфиге присутствует: $ sudo grep 185.63 /etc/quagga/bgpd.conf network 185.63.0.0/16 network 185.63.144.1/32
  13. Нашёл в логах вот такое, но блокировка срабатывает:
  14. Quagga стоит только на сервере фильтрации из-за скриптов, а на BRAS-ах тоже bird, под него есть скрипт выгрузки или описание?
  15. Снова у меня затык с extfilter. Для эксперимента и чтобы не сломать работающий nfqfilter сделал следующее: С одного из BRAS-ов зазеркалил трафик и выкинул его из peer-group zapret-nfqfilter на AS 65001 В конифигурации Quagga включил multiple-instance и добавил этот BRAS в peer-group zapret-extfilter на новую AS 65002 При запуске extfilter_quagga.pl тишина в логах и никаких изменений в конфиге((( Как узнать на чём он зависает? Есть для Perl-а Debug-вывод типа "set -x" для Bash? Конфиги: И еще как настроить граффик для Cacti? Поправил SElinux и теперь SNMP всё отдаёт без ошибок, но в Cacti данные не приходят((( Мне кажется, что проблема из-за кастомного "Data Input Methods", помогите, пожалуйста, его побороть? Вот настройки хоста: