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

566 пользователей проголосовало

  1. 1. Для блокировка используем



Блокировка сайтов провайдерами маневры с DNS

max1976 Подскажите пожалуйста. В ходе экспериментов на стенде с extFilter выявилась интересная вещь, если недоступен домен из url по протоколу http(но при этом домен ресолвиться, пингуется,

трассировка проходит, в браузере не открывается) то url не получает редирект на страницу заглушки(в extFilter.log( режим debug включен) при этом даже нет упоминания об этой записи, как обычно

наблюдается когда запись перенаправляется на страницу заглушки). Собственно вопрос, где может быть у меня ошибка ?

 

Всё правильно, это же dpi, а не прокси. Если клиент не может установить связь с сервером, то никакого обмена через http нет.

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


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

max1976 Подскажите пожалуйста. В ходе экспериментов на стенде с extFilter выявилась интересная вещь, если недоступен домен из url по протоколу http(но при этом домен ресолвиться, пингуется,

трассировка проходит, в браузере не открывается) то url не получает редирект на страницу заглушки(в extFilter.log( режим debug включен) при этом даже нет упоминания об этой записи, как обычно

наблюдается когда запись перенаправляется на страницу заглушки). Собственно вопрос, где может быть у меня ошибка ?

 

Всё правильно, это же dpi, а не прокси. Если клиент не может установить связь с сервером, то никакого обмена через http нет.

 

И как к этому относиться "ревизор" если не видит необходимый тег <title>xxx</title> ?

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


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

И как к этому относиться "ревизор" если не видит необходимый тег <title>xxx</title> ?

 

Так как же как и к скат, carbon reductor и т.д.

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


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

собрал-таки extfilter на slackware 14.2, 64bit

без пересборки ядра из коробки не обошлось - нужно было добавить поддержку hugetlbfs.

провожу тесты.

 

max1976, спасибо за ещё один инструмент.

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


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

Поднял на qemu с пробросом физического интерфейса на CentOS 7. Работает. Но потом опять пропадает фильтрация. Не могу понять почему падает.

Все собирали по инструкции или есть что то еще?

Изменено пользователем arhead

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


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

Поднял на qemu с пробросом физического интерфейса на CentOS 7. Работает. Но потом опять пропадает фильтрация. Не могу понять почему падает.

Все собирали по инструкции или есть что то еще?

 

Проблема имеется, но пока не решена. Проявляется если rx_queues > 1.

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


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

max1976, большое спасибо за Ваш труд, счастья и здоровья Вам и Вашим близким.

 

Пара вопросов

1. какая версия perl и python требуется для установки и работы extfilter? При сборке extfilter командой make вываливается

 

 

extfilter-master]# make

Making all in src

make[1]: Вход в каталог `/usr/src/extfilter-master/src'

g++ -std=c++0x -O2 -pthread -Wl,--whole-archive -lrte_pmd_bond -lrte_pmd_vmxnet3_uio -lrte_pmd_virtio -lrte_pmd_enic -lrte_pmd_i40e -lrte_pmd_fm10k -lrte_pmd_ixgbe -lrte_pmd_e1000 -lrte_pmd_ring -lrte_pmd_af_packet -lethdev -lrte_eal -lrte_mbuf -lrte_mempool -lrte_ring -lrte_kvargs -lrte_hash -lrte_cmdline -Wl,--no-whole-archive -o extFilter main.o worker.o AhoCorasickPlus.o ahocorasick.o node.o patricia.o patr.o qdpi.o sender.o sendertask.o statistictask.o reloadtask.o -lpcap -L.././PcapPlusPlus/Dist -lPcap++ -lPacket++ -lCommon++ -L /usr/src/dpdk/dpdk-16.07/lib -lrt -lm -ldl ../nDPI/src/lib/.libs/libndpi.a -lPocoNet -lPocoUtil -lPocoFoundation

main.o: In function `extFilter::printDPDKPorts(std::string const&, std::string const&)':

main.cpp:(.text+0x51d): undefined reference to `pcpp::DpdkDeviceList::initDpdk(unsigned int, unsigned int)'

main.cpp:(.text+0x62e): undefined reference to `pcpp::DpdkDeviceList::m_IsDpdkInitialized'

main.cpp:(.text+0x782): undefined reference to `pcpp::DpdkDeviceList::m_MBufPoolSizePerDevice'

main.cpp:(.text+0x78c): undefined reference to `pcpp::DpdkDeviceList::initDpdkDevices(unsigned int)'

main.cpp:(.text+0x848): undefined reference to `pcpp::DpdkDeviceList::DpdkDeviceList()'

main.cpp:(.text+0x861): undefined reference to `pcpp::DpdkDeviceList::~DpdkDeviceList()'

main.o: In function `extFilter::initialize(Poco::Util::Application&)':

main.cpp:(.text+0x1366): undefined reference to `pcpp::DpdkDeviceList::initDpdk(unsigned int, unsigned int)'

main.cpp:(.text+0x230f): undefined reference to `pcpp::DpdkDeviceList::m_MBufPoolSizePerDevice'

main.cpp:(.text+0x2319): undefined reference to `pcpp::DpdkDeviceList::initDpdkDevices(unsigned int)'

main.cpp:(.text+0x2323): undefined reference to `pcpp::DpdkDeviceList::getDpdkMasterCore()'

main.cpp:(.text+0x28ea): undefined reference to `pcpp::DpdkDeviceList::m_IsDpdkInitialized'

main.cpp:(.text+0x2a28): undefined reference to `pcpp::DpdkDeviceList::DpdkDeviceList()'

main.cpp:(.text+0x2a41): undefined reference to `pcpp::DpdkDeviceList::~DpdkDeviceList()'

main.o: In function `pcpp::DpdkDeviceList::getInstance()':

main.cpp:(.text._ZN4pcpp14DpdkDeviceList11getInstanceEv[_ZN4pcpp14DpdkDeviceList11getInstanceEv]+0x15): undefined reference to `pcpp::DpdkDeviceList::m_IsDpdkInitialized'

main.cpp:(.text._ZN4pcpp14DpdkDeviceList11getInstanceEv[_ZN4pcpp14DpdkDeviceList11getInstanceEv]+0x2a): undefined reference to `pcpp::DpdkDeviceList::m_MBufPoolSizePerDevice'

main.cpp:(.text._ZN4pcpp14DpdkDeviceList11getInstanceEv[_ZN4pcpp14DpdkDeviceList11getInstanceEv]+0x34): undefined reference to `pcpp::DpdkDeviceList::initDpdkDevices(unsigned int)'

main.cpp:(.text._ZN4pcpp14DpdkDeviceList11getInstanceEv[_ZN4pcpp14DpdkDeviceList11getInstanceEv]+0x54): undefined reference to `pcpp::DpdkDeviceList::DpdkDeviceList()'

main.cpp:(.text._ZN4pcpp14DpdkDeviceList11getInstanceEv[_ZN4pcpp14DpdkDeviceList11getInstanceEv]+0x6d): undefined reference to `pcpp::DpdkDeviceList::~DpdkDeviceList()'

main.o: In function `extFilter::main(std::vector<std::string, std::allocator<std::string> > const&)':

main.cpp:(.text.startup+0x2f8): undefined reference to `pcpp::DpdkDeviceList::m_IsDpdkInitialized'

main.cpp:(.text.startup+0x301): undefined reference to `pcpp::DpdkDeviceList::m_MBufPoolSizePerDevice'

main.cpp:(.text.startup+0x30b): undefined reference to `pcpp::DpdkDeviceList::initDpdkDevices(unsigned int)'

main.cpp:(.text.startup+0x318): undefined reference to `pcpp::DpdkDeviceList::getDeviceByPort(int)'

main.cpp:(.text.startup+0x3b0): undefined reference to `pcpp::DpdkDeviceList::DpdkDeviceList()'

main.cpp:(.text.startup+0x3c9): undefined reference to `pcpp::DpdkDeviceList::~DpdkDeviceList()'

main.cpp:(.text.startup+0x451): undefined reference to `pcpp::DpdkDevice::openMultiQueues(unsigned short, unsigned short, pcpp::DpdkDevice::DpdkDeviceConfiguration const&)'

main.cpp:(.text.startup+0xd95): undefined reference to `pcpp::DpdkDeviceList::startDpdkWorkerThreads(unsigned int, std::vector<pcpp::DpdkWorkerThread*, std::allocator<pcpp::DpdkWorkerThread*> >&)'

main.cpp:(.text.startup+0xe0b): undefined reference to `pcpp::DpdkDeviceList::stopDpdkWorkerThreads()'

worker.o: In function `WorkerThread::run(unsigned int)':

worker.cpp:(.text+0x45f7): undefined reference to `pcpp::DpdkDevice::receivePackets(pcpp::MBufRawPacket**, int&, unsigned short)'

collect2: ошибка: выполнение ld завершилось с кодом возврата 1

make[1]: *** [extFilter] Ошибка 1

make[1]: Выход из каталога `/usr/src/extfilter-master/src'

make: *** [all-recursive] Ошибка 1

 

 

pdpk Установился нормально (версия 16.07 с официального сайта). команды

 

build/app/testpmd -c7 -n3 --vdev=eth_pcap0,iface=eth0 --vdev=eth_pcap1,iface=eth1 --

-i --nb-cores=2 --nb-ports=2 --total-num-mbufs=2048

 

testpmd> show port stats all

testpmd> start tx_first

testpmd> stop

проходят нормально

Сетевая карта 1000E на чипе intel 82574L

 

2. требуется ли добавлять в iptables какие-либо специфичные правила для работы extfilter ?

Изменено пользователем inkindly

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


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

2. требуется ли добавлять в iptables какие-либо специфичные правила для работы extfilter ?

Требуется разрешить исходящий трафик с любых ip-адресов, с основного интерфейса сервера.

Для того, чтобы уходили rst-ответы с src-ip клиента и ресурса, к которому клиент обращается.

Но об этом extfilter расскажет в логах, если ему такое не удастся.

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


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

Проблема имеется, но пока не решена. Проявляется если rx_queues > 1.

 

И если больше одного порта. Сейчас выставил rx_queues = 1 и один порт. Работает как часы. Спасибо за Ваш труд.

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


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

если можно, распишите подробно установку extfilter. С nfqfilter проблем не было. Установился сразу. А тут не могу разобраться. Делаю все по инструкции и все-равно собрать не удается.

 

1. установил dpdk, протестировал сетевушку, сделал ее

2. запустил ./autogen.sh

3. сконфигурировал ./configure , вываливается ошибка с nDPI. Залезаю в каталог nDPI, делаю как в посте #1071, и все проходит нормально

Зайдите в каталог nDPI (cd nDPI), добавьте в файл configure.ac после AC_CONFIG_MACRO_DIR([m4]) строку AC_CONFIG_AUX_DIR([.]). Затем запустите

./autogen.sh | make

Затем возвращаетесь в каталог с фильтром (cd ..) и запускаете configure с нужными параметрами.

4. делаю make и выскакивает ошибка, описанная выше.

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


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

3. сконфигурировал ./configure , вываливается ошибка с nDPI. Залезаю в каталог nDPI, делаю как в посте #1071, и все проходит нормально

 

./configure как делали?

 

./configure --with-dpdk_target=<target> --with-dpdk_home=<path_to_compiled_dpdk>

где path_to_compiled_dpdk - это путь, где находятся исходники. target - подкаталог в path_to_compiled_dpdk где находится собранный dpdk.

например ./configure --with-dpdk_target=/usr/src/dpdk-16.07/ --with-dpdk_home=build

Изменено пользователем arhead

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


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

arhead, спасибо за ответ.

Да, делал именно так, исходники у меня в /usr/src/dpdk/dpdk-16.07/ находятся

./configure --with-dpdk_target=/usr/src/dpdk/dpdk-16.07 --with-dpdk_home=build

 

 

1

Изменено пользователем inkindly

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


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

arhead, спасибо за ответ.

Да, делал именно так, исходники у меня в /usr/src/dpdk/dpdk-16.07/ находятся

./configure --with-dpdk_target=/usr/src/dpdk/dpdk-16.07 --with-dpdk_home=build

 

ОС и ядро какие?

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


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

1. какая версия perl и python требуется для установки и работы extfilter? При сборке extfilter командой make вываливается

Судя по всему у вас не собрался PcapPlusPlus, который должен был собраться при запуске configure. Смотрите логи config.log.

Для самого extFilter не нужен perl, он нужен только для скрипта подготовки входных файлов для фильтра (смотрите конфигуратор)

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


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

rx_queues = 1

Хотелось бы узнать за что этот параметр отвечает.

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


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

Проблема имеется, но пока не решена. Проявляется если rx_queues > 1.

 

Обновил extFilter, теперь работает на всех ядрах, заданных в конфиге, без падений.

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


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

rx_queues = 1

Хотелось бы узнать за что этот параметр отвечает.

 

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

Вот пример. На своем слабом процессоре я получаю максимум ~230 kpps на ядре. Если я хочу обрабатывать больше, то я указываю rx_queues = 2 и получаю ~460 kpps. Если будет больше ядер, то соответственно общая производительность в моем случае = n*230 kpps, где n количество ядер процессора. Хочу отметить, что rx_queues должно быть кратно 2, если значение больше 1.

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


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

Уважаемый max1976, подскажите пожалуйста.При запуске выдает ошибку:

[root@rknfilter src]# ./extFilter --config-file=/root/filter/etc/extfilter.ini
Huge pages aren't set, DPDK cannot be initialized. Please run <PcapPlusPlus_Root>/setup_dpdk.sh
Exception: Couldn't initialize DPDK

 

[root@rknfilter PcapPlusPlus]# ./setup-dpdk.sh

*******************************
PcapPlusPlus setup DPDK script
*******************************

Error: List of NICs to bind was not given

 

[root@rknfilter dpdk]# ./tools/dpdk-devbind.py --status

Network devices using DPDK-compatible driver
============================================
<none>

Network devices using kernel driver
===================================
0000:01:00.0 '82571EB Gigabit Ethernet Controller' if=enp1s0f0 drv=e1000e unused=
0000:01:00.1 '82571EB Gigabit Ethernet Controller' if=enp1s0f1 drv=e1000e unused= *Active*

Other network devices
=====================
<none>

 

 

 

Менять сетевую карту на ту что идет с igb драйвером?

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


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

 

[root@rknfilter dpdk]# ./tools/dpdk-devbind.py --status

Network devices using DPDK-compatible driver
============================================
<none>

Network devices using kernel driver
===================================
0000:01:00.0 '82571EB Gigabit Ethernet Controller' if=enp1s0f0 drv=e1000e unused=
0000:01:00.1 '82571EB Gigabit Ethernet Controller' if=enp1s0f1 drv=e1000e unused= *Active*

Other network devices
=====================
<none>

 

 

Менять сетевую карту на ту что идет с igb драйвером?

 

Загрузите модули ядра:

modprobe uio
insmod kmod/igb_uio.ko

 

Затем у вас изменится вывод

./tools/dpdk-devbind.py --status

 

И запустите

./tools/dpdk-devbind.py -b igb_uio 0000:01:00.0

для подключения в dpdk первого порта карты.

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


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

[root@rknfilter dpdk]# ./tools/dpdk-devbind.py --status

 

Network devices using DPDK-compatible driver

============================================

<none>

 

Network devices using kernel driver

===================================

0000:01:00.0 '82571EB Gigabit Ethernet Controller' if=enp1s0f0 drv=e1000e unused=

0000:01:00.1 '82571EB Gigabit Ethernet Controller' if=enp1s0f1 drv=e1000e unused= *Active*

 

Other network devices

=====================

<none>

 

Не забиндил сетевой интерфейс для dpdk. Должно быть так

 

dpdk-devbind.py --status

 

Network devices using DPDK-compatible driver

============================================

0000:03:00.0 '82574L Gigabit Network Connection' drv=igb_uio unused=

 

Network devices using kernel driver

===================================

0000:04:00.0 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller' if=enp4s0 drv=r8169 unused=igb_uio *Active*

 

Other network devices

=====================

<none>

Для того что-бы это сделать необходимо выполнить следующее

modprobe uio

insmod /usr/src/dpdk-16.07/build/kmod/igb_uio.ko

dpdk-devbind.py --bind=igb_uio 0000:0X:00.X

где X - необходимый интерфейс. Обязательно что-бы он был unused=

в вашем случае 0000:01:00.0

 

Если не прав max1976 поправит.

 

Пока писал max1976 ответил :) .

Изменено пользователем Rick

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


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

max1976 Спасибо большое за труды. Перекомпилировал новую версию, все замечательно работает, пока только не могу проверить на rx_queues > 1, всего два ядра :) .

Возник только один вопрос: не помню как на старой версии, но на новой почему-то после сигнала HUP файл protos не пересчитывается, только если сервис перезапустить,

так должно быть ?

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


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

~ 4 гигабита (~ 160 kpps), проц слабый: Intel® Xeon® CPU E5-2603 @ 1.80GHz, памяти 8 гигов.

 

Вопрос: а как определить что уже не хватает ядра процессора ?

У меня сейчас Intel® Pentium® CPU G2010 @ 2.80GHz, памяти 4 гига.

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


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

Решил свою проблему. Оказывается, PcapPlusPlus действительно не собрался из-за изменений имен скриптов в последней версии dpdk и по еще каким-то причинам. Публикую подробные шаги.

 

# uname -a
Linux 3.10.0-327.36.1.el7.x86_64 #1 SMP Sun Sep 18 13:04:29 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

 

Снес свои неудачные попытки и заново скачал и распаковал extfilter. Dpdk удалять не стал, так как он нормально собран и нормально работает.

# cd /usr/src
# rm -drf /usr/src/extfilter-master
# wget https://github.com/max197616/extfilter/archive/master.zip
# unzip master.zip
# cd extfilter-master

 

Далее следуем рекомендациям автора фильтра (ВНИМАНИЕ: пути нужно указывать без последнего слеша, иначе будут ошибки при компиляции)

# ./autogen.sh
# ./configure --with-dpdk_target=/usr/src/dpdk/dpdk-16.07 --with-dpdk_home=build

 

Вылетает ошибка

configure: creating ./config.status
config.status: error: cannot find input file: `Makefile.in'
make: *** No targets specified and no makefile found.  Stop.
/usr/src/extfilter-master
yes
checking for compiling with nDPI... configure: error: Linking with nDPI failed!

 

Решаем проблему через подсказку от автора

Зайдите в каталог nDPI (cd nDPI), добавьте в файл configure.ac после AC_CONFIG_MACRO_DIR([m4]) строку AC_CONFIG_AUX_DIR([.]). Затем запустите

./autogen.sh | make

# cd nDPI
# nano configure.ac
# ./autogen.sh | make 

 

Выводит

make: *** Не заданы цели и не найден make-файл.  Останов.
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
autoreconf: configure.ac: tracing
autoreconf: running: libtoolize --copy --force
autoreconf: libtoolize terminated by signal: 13
./autogen.sh: line 33: ./configure: Нет такого файла или каталога

 

но, как я понимаю, тут все нормально.

Возвращаемся в каталог с extfilter

# cd ../
# ./configure --with-dpdk_target=/usr/src/dpdk/dpdk-16.07 --with-dpdk_home=build

 

Всё завершается успешно. Пробуем собрать extfilter

# make

 

Вылетает ошибка

Making all in src
make[1]: Вход в каталог `/usr/src/extfilter-master/src'
g++ -DHAVE_CONFIG_H -I. -I../include  -I.././PcapPlusPlus/Dist/header -I..[b]/nDPI/src/include [u]-Ibuild//usr/src/dpdk/dpdk-16.07/include[/u][/b]   -std=c++0x -O2 -pthread -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
In file included from main.cpp:1:0:
../include/main.h:5:24: фатальная ошибка: DpdkDevice.h: Нет такого файла или каталога
#include <DpdkDevice.h>
                       ^
компиляция прервана.
make[1]: *** [main.o] Ошибка 1
make[1]: Выход из каталога `/usr/src/extfilter-master/src'
make: *** [all-recursive] Ошибка 1

 

Пробуем сконфигурировать вручную PcapPlusPlus

# cd PcapPlusPlus
# configure-linux.sh
Compile PcapPlusPlus with PR_RING? no
Compile PcapPlusPlus with DPDK? yes  (указываем пути к dpdk) 
# ./setup-dpdk.sh -n

 

Вылетает ошибка

*******************************
PcapPlusPlus setup DPDK script
*******************************
./setup-dpdk.sh: line 41: /usr/src/dpdk/dpdk-16.07/tools/dpdk_nic_bind.py: Нет такого файла или каталога

 

В 91 и 41 строке переправил dpdk_nic_bind.py на dpdk-devbind.py

NICS_TO_BIND="" заменил на NICS_TO_BIND="0000:02:00.0"

# nano ./setup-dpdk.sh

 

# ./setup-dpdk.sh
*******************************
PcapPlusPlus setup DPDK script
*******************************
1. Huge-pages already allocated
2. 0000:02:00.0 is already binded to DPDK or doesn't exist. Exiting

Network devices using DPDK-compatible driver
============================================
0000:02:00.0 '82574L Gigabit Network Connection' drv=igb_uio unused=

Network devices using kernel driver
===================================
0000:03:00.0 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller' if=enp3s0 drv=r8169 unused=igb_uio *Active*

Other network devices
=====================
<none>

"is already binded to DPDK" - такое сообщение вылетело, потому что сетевая карта была переключена на DPDK-compatible driver ранее, во время сборки DPDK

 

Снова пробуем собрать extfilter

# cd ../
# make

 

Вылетает ошибка. Обратил внимание на -Ibuild//usr/src/dpdk/dpdk-16.07/include Почему тут именно такая строка - не знаю. Надо править

Making all in src
make[1]: Вход в каталог `/usr/src/extfilter-master/src'
g++ -DHAVE_CONFIG_H -I. -I../include  -I.././PcapPlusPlus/Dist/header -I..[u][b]/nDPI/src/include -Ibuild//usr/src/dpdk/dpdk-16.07/include[/b][/u]   -std=c++0x -O2 -pthread -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
In file included from main.cpp:1:0:
../include/main.h:5:24: фатальная ошибка: DpdkDevice.h: Нет такого файла или каталога
#include <DpdkDevice.h>
                       ^
компиляция прервана.
make[1]: *** [main.o] Ошибка 1

 

Правим

# cd src
# nano Makefile

В 191 строке меняем DPDK_INCLUDE = build//usr/src/dpdk/dpdk-16.07/include на DPDK_INCLUDE = /usr/src/dpdk/dpdk-16.07/build/include

Меняем и DPDK_LIB = build//usr/src/dpdk/dpdk-16.07/lib на DPDK_LIB = /usr/src/dpdk/dpdk-16.07/build/lib

Возвращаемся в каталог с extfilter, пробуем заново запустить сборку

# cd ../
# make

 

Снова ошибка

Making all in src
make[1]: Вход в каталог `/usr/src/extfilter-master/src'
g++ -DHAVE_CONFIG_H -I. -I../include  -I.././PcapPlusPlus/Dist/header -I../nDPI/src/include -I/usr/src/dpdk/dpdk-16.07/build/include   -std=c++0x -O2 -pthread -MT main.o -MD -MP -MF .deps/main.Tpo -c -o main.o main.cpp
In file included from main.cpp:1:0:
../include/main.h:5:24: фатальная ошибка: DpdkDevice.h: Нет такого файла или каталога
#include <DpdkDevice.h>
                       ^
компиляция прервана.
make[1]: *** [main.o] Ошибка 1
make[1]: Выход из каталога `/usr/src/extfilter-master/src'

 

Смотрим, каталогов Dist/header в PcapPlusPlus/Dist нет. Видимо make надо было запустить и в каталоге PcapPlusPlus. После в этой же директории появится каталог Dist С необходимыми для финишной сборки файлами

# find / -name DpdkDevice.h
/usr/src/extfilter-master/PcapPlusPlus/Pcap++/header/DpdkDevice.h
# cd PcapPlusPlus
# make

 

Пробуем снова собрать extfilter

# cd ../
# make

 

Всё. Фильтр собрался

Устанавливаем

make install

 

Фильтр установится в каталог /usr/local/bin

По умолчанию фильтр идет без файлов-списков запрещенных ip и доменов. Для тестов их можно скопировать из nfqfilter. Пути к данным файлам прописываются в файле /usr/src/extfilter-master/etc/extfilter.ini

 

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

P.S: управление сервером по ssh, как я понимаю, должно осуществляться через сетевушку без dpdk драйвера.

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


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

Join the conversation

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

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

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

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

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

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

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