SokolovS Опубликовано 27 февраля, 2018 · Жалоба 6 минут назад, flow-control сказал: extfilter будет всегда занимать 100% и вроде плохо работает с 2 процессорами.... + нужно настроить ; Порт для отправки уведомлений через dpdk ;[port 1] ;type = sender ; На какой mac адрес отправлять пакеты ;mac = 00:01:02:03:04:05 У вас ответы посылает сетевая карта которая находится в системе, а не в dpdk. возможно дело в этом. Читал, что с многопроцессорными системами не дружит. Но и вешал специально только на один процессор. Сетевая на одной шине с 0-процессором. Т.е. загрузка 100% это нормально? Получается мониторить нужно только статистику, а не загрузку CPU? А вот с этим не понял Цитата ; Порт для отправки уведомлений через dpdk Что это и для чего нужно? Речь о пакетах, которые летят в ответ на запрос к заблокированному ресурсу? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
flow-control Опубликовано 27 февраля, 2018 (изменено) · Жалоба 1 час назад, SokolovS сказал: загрузка 100% это нормально? Да 1 час назад, SokolovS сказал: Речь о пакетах, которые летят в ответ на запрос к заблокированному ресурсу? Да. + через dpdk ответ уйдет быстрее. Главное что бы в логе missed packets был равен 0, думаю одного X5675 для 100kpps достаточно . У меня i5-3450 и ~80kpps, missed packets: 0. на ночных проверках ревизором имею 3-6 пропусков , грешу на говноДелинк dgs-3627g, с которого зеркалирую трафик. PS на форуме советуют связку extfilter + отдельно для ревизора nfqfilter. Изменено 27 февраля, 2018 пользователем flow-control Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
nevsik Опубликовано 28 февраля, 2018 · Жалоба 8 часов назад, flow-control сказал: Да Да. + через dpdk ответ уйдет быстрее. Главное что бы в логе missed packets был равен 0, думаю одного X5675 для 100kpps достаточно . У меня i5-3450 и ~80kpps, missed packets: 0. на ночных проверках ревизором имею 3-6 пропусков , грешу на говноДелинк dgs-3627g, с которого зеркалирую трафик. PS на форуме советуют связку extfilter + отдельно для ревизора nfqfilter. можете поделиться своим конфигом? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
flow-control Опубликовано 28 февраля, 2018 (изменено) · Жалоба конфиг ; Переводить имя хоста в прописные буквы. lower_host = true domainlist = /root/rkn/files/domains urllist = /root/rkn/files/urls ssllist = /root/rkn/files/ssl_host hostlist = /root/rkn/files/hosts ; Список ip адресов/сетей для блокировки ssl если нет server_name в ssl hello пакете. Загружается если block_undetected_ssl = true. sslips = /root/rkn/files/ssl_ips ; если false, то будет послан rst пакет вместо редиректа. Default: false http_redirect = true redirect_url = http://zapret.local.ru/ ; HTTP код ответа. default: 302 Moved Temporarily http_code = 301 Moved Permanently ; Что добавлять в redirect_url, line - строка из файла url, url - запрещенный url, none - ничего url_additional_info=none ; посылать tcp rst в сторону сервера от имени клиента. Default: false rst_to_server = true ; Default: 0 - disable statistic_interval = 60 ; файл статистики (для extfilter-cacti) statisticsfile = /var/run/extFilter_stat match_url_exactly = false url_normalization = true remove_dot = false num_of_senders = 4 memory_channels = 2 ; Default: false ;block_undetected_ssl = true ;block_ssl_no_sni = true core_mask = 7 ;cli_port = 9999 ;cli_address = 127.0.0.1 ; dpdk порт, где анализировать трафик ;dpdk_port = 0 [port 0] queues = 0,1; 1,2 [port 1] type = sender mac = 01:35:56:f3:f4:01 ; Группа оповещения 0 ;[notify 0] ;http_code = 302 Found ;redirect_url = http://announce.example.com/? ;rst_to_server = false ; через какое время делать редирект (секунды) ;period = 1800 ; количество редиректов, если 0 - не ограничено ;repeat = 0 [dpi] max_active_flows_ipv4 = 100000 max_active_flows_ipv6 = 4000 [logging] loggers.root.level = information ;loggers.root.level = debug loggers.root.channel = fileChannel channels.fileChannel.class = FileChannel channels.fileChannel.path = /var/log/extFilter.log channels.fileChannel.rotation = 10 M channels.fileChannel.purgeCount = 4 channels.fileChannel.archive = timestamp channels.fileChannel.formatter.class = PatternFormatter channels.fileChannel.formatter.pattern = %Y-%m-%d %H:%M:%S.%i [%P] %p %s - %t channels.fileChannel.formatter.times = local Изменено 28 февраля, 2018 пользователем flow-control Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 28 февраля, 2018 · Жалоба 10 часов назад, flow-control сказал: У меня i5-3450 и ~80kpps, missed packets: 0. на ночных проверках ревизором имею 3-6 пропусков , грешу на говноДелинк dgs-3627g, с которого зеркалирую трафик. У вас ревизор находится за NAT ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
flow-control Опубликовано 28 февраля, 2018 · Жалоба Только что, max1976 сказал: У вас ревизор находится за NAT ? нет, сразу в интернете Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 28 февраля, 2018 · Жалоба Только что, flow-control сказал: нет, сразу в интернете Тогда не должно быть пропусков, если все пакеты попадают на фильтр и ответы гарантированно доходят до ревизора. В новой версии фильтра (ветка exp) есть опция: ; Количество повторных пакетов в сторону клиента (от 1 до 3) ; answer_duplication = 1 позволяющая дублировать ответы от фильтра в случае их возможной потери в сети. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
flow-control Опубликовано 28 февраля, 2018 · Жалоба Супер! спасибо! Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
big-town Опубликовано 28 февраля, 2018 (изменено) · Жалоба 12 часов назад, SokolovS сказал: Читал, что с многопроцессорными системами не дружит. Но и вешал специально только на один процессор. Сетевая на одной шине с 0-процессором. Т.е. загрузка 100% это нормально? Получается мониторить нужно только статистику, а не загрузку CPU? Дружит. У меня xen 2х5620 выделено по 2 ядра с каждого процессора. Все ОК. По собственным проверкам 2-6(скриптом, это же руками не пускает ) , по ревизору от 0-20. Причем я списывался с проверяющими, они сказали что прилетает 200ОК но содержимое пустое, и это не считается пропуском. Ревизор за натом, в качестве ната используется mikrotik 941. Изменено 28 февраля, 2018 пользователем big-town Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 28 февраля, 2018 · Жалоба 21 час назад, big-town сказал: Вероятно этот вопрос адресовался мне. На специальной выделенной машинке, постоянно крутится скрипт вида(автор скрипта не я, его здесь кто то выкладывал на форуме): Не совсем хорошо этот скрипт отрабатывать будет. Много случаев, когда сотни/тысячи адресов на одном хосте, и после ~5 запросов в секунду ваша машинка блокируется, оставшиеся адреса фактически проверены не будут. Ради простой проверки работоспособности достаточно проверить десяток случайных адресов из списка. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Huko Опубликовано 28 февраля, 2018 · Жалоба Версия с гита от 16 февраля. В последние время почти раз в сутки уходит в coredump :( Не могу понять в чем причина. Трейс такой: Spoiler [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". Core was generated by `/usr/local/bin/extFilter --daemon --pidfile=/var/run/extFilter.pid --config-fil'. Program terminated with signal SIGABRT, Aborted. #0 0x00007fe9d2b95428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 54 ../sysdeps/unix/sysv/linux/raise.c: No such file or directory. [Current thread is 1 (Thread 0x7fe9d166d700 (LWP 7853))] (gdb) bt #0 0x00007fe9d2b95428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54 #1 0x00007fe9d2b9702a in __GI_abort () at abort.c:89 #2 0x00007fe9d3afb365 in Poco::SignalHandler::handleSignal(int) () from /usr/local/lib/libPocoFoundation.so.46 #3 <signal handler called> #4 0x0000000000592740 in ac_trie_settext(ac_trie*, ac_text*, int) () #5 0x000000000058f6b8 in WorkerThread::checkHTTP(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >&, dpi_pkt_infos*) () #6 0x000000000059063e in host_cb(dpi_http_message_informations*, unsigned char const*, unsigned int, dpi_pkt_infos*, void**, void*) () #7 0x00000000005aec3c in on_value () #8 0x00000000005b1a25 in http_parser_execute () #9 0x00000000005af312 in check_http () #10 0x00000000005ade5a in dpi_stateless_get_app_protocol () #11 0x000000000058949d in WorkerThread::getAppProtocol(unsigned char*, unsigned long, unsigned int, dpi_pkt_infos*) () #12 0x000000000058ad8d in WorkerThread::identifyAppProtocol(unsigned char const*, unsigned int, unsigned int, unsigned char*, unsigned int) () #13 0x000000000058c3bd in WorkerThread::analyzePacket(rte_mbuf*, unsigned long) () #14 0x000000000058d80b in WorkerThread::run(unsigned int) () #15 0x00000000005858a4 in dpdkWorkerThreadStart(void*) () #16 0x00000000005528fb in eal_thread_loop () #17 0x00007fe9d2f316ba in start_thread (arg=0x7fe9d166d700) at pthread_create.c:333 #18 0x00007fe9d2c673dd in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:74 #19 0x0000000000000000 in ?? () (gdb) Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 28 февраля, 2018 · Жалоба 25 минут назад, Huko сказал: Версия с гита от 16 февраля. В последние время почти раз в сутки уходит в coredump :( Это происходит в момент подачи сигнала HUP ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Huko Опубликовано 28 февраля, 2018 (изменено) · Жалоба 8 minutes ago, max1976 said: то происходит в момент подачи сигнала HUP ? Чаще всего да, по крайне мере именно это coredump Изменено 28 февраля, 2018 пользователем Huko Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 28 февраля, 2018 · Жалоба 3 минуты назад, Huko сказал: Чаще всего да В логах есть что-то похожее на: Цитата Something wrong with worker thread ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
big-town Опубликовано 28 февраля, 2018 · Жалоба 3 часа назад, ixi сказал: Не совсем хорошо этот скрипт отрабатывать будет. Много случаев, когда сотни/тысячи адресов на одном хосте, и после ~5 запросов в секунду ваша машинка блокируется, оставшиеся адреса фактически проверены не будут. Ради простой проверки работоспособности достаточно проверить десяток случайных адресов из списка. Бред полный. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Huko Опубликовано 28 февраля, 2018 · Жалоба 21 minutes ago, max1976 said: В логах есть что-то похожее на: Something wrong with worker thread ? Нет, ничего подозрительного в логах нет Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
max1976 Опубликовано 28 февраля, 2018 · Жалоба 2 часа назад, Huko сказал: Нет, ничего подозрительного в логах нет Остается только один вариант - нет свободной памяти (обычной, не для DPDK). Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 28 февраля, 2018 (изменено) · Жалоба 8 часов назад, max1976 сказал: Тогда не должно быть пропусков, если все пакеты попадают на фильтр и ответы гарантированно доходят до ревизора. В новой версии фильтра (ветка exp) есть опция: ; Количество повторных пакетов в сторону клиента (от 1 до 3) ; answer_duplication = 1 позволяющая дублировать ответы от фильтра в случае их возможной потери в сети. exp это экспериментальная ветка? 19 часов назад, flow-control сказал: Да Да. + через dpdk ответ уйдет быстрее. Главное что бы в логе missed packets был равен 0, думаю одного X5675 для 100kpps достаточно . У меня i5-3450 и ~80kpps, missed packets: 0. на ночных проверках ревизором имею 3-6 пропусков , грешу на говноДелинк dgs-3627g, с которого зеркалирую трафик. PS на форуме советуют связку extfilter + отдельно для ревизора nfqfilter. Прошу прощения, но еще кучка вопросов :) Можно ответы отправлять на один из портов, которые анализируются или отдельный выделять? MAC-адрес в конфиге это адрес назначения или источника? Сколько памяти (hugapages) выделять под DPDK? Как должен быть настроен интерфейс с обратной стороны? Сейчас у меня там просто: interface GigabitEthernet3/29 description ExtFilter_Mirror switchport switchport mode trunk interface GigabitEthernet3/30 description ExtFilter_Mirror switchport switchport mode trunk monitor session 1 source vlan 15 tx monitor session 1 destination interface Gi3/29 monitor session 2 source vlan 304 , 1128 tx monitor session 2 destination interface Gi3/30 VLAN: 15, 304, 1128 это аплинки. Сама железка это BGP-бордер. P.S.: 100% загрузка это что эмуляция realtime такая? Там бесконечный цикл(ы)? Этот вопрос снимается. Почитал как работает DPDK. Изменено 28 февраля, 2018 пользователем SokolovS Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
flow-control Опубликовано 28 февраля, 2018 (изменено) · Жалоба 4 часа назад, SokolovS сказал: MAC-адрес в конфиге это адрес назначения или источника? Сколько памяти (hugapages) выделять под DPDK? MAC-адрес интерфейса который смотрит в сторону абонентов Я выделил под dpdk 8Gb ram. (~80k pps) Про остальное не понял... Вам, наверное ,лучше зеркалировать rx трафик с порта который смотрит в сторону абонентов и направлять ответы extfilter в тот же vlan . У меня, примерно такая схема: Изменено 28 февраля, 2018 пользователем flow-control Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
SokolovS Опубликовано 28 февраля, 2018 · Жалоба 2 часа назад, flow-control сказал: MAC-адрес интерфейса который смотрит в сторону абонентов Так, уже понятней. Только у нас на BGP-бордере в сторону абонентов смотрят 2 L3-интерфейса и соответственно два шлюза (один для тех кто за NAT-ом). Для такого варианта есть какое-то решение? Памяти выделил 4Гб, missed по нулям, в пике сегодня до 150 kpps. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
flow-control Опубликовано 28 февраля, 2018 · Жалоба 6 минут назад, SokolovS сказал: на BGP-бордере в сторону абонентов смотрят 2 L3-интерфейса тут наверно нужно или два extfilter или два порта настроенных как sender в vlan для юзеров с NAT и в vlan юзеров с рельными. даже не знаю, может Max подскажет.... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
myth Опубликовано 1 марта, 2018 · Жалоба тогда вариант с ответами через dpdk не годится и нужны обычные настроенные интерфейсы под контролем ядра. Я отдаю ответы в бордер. А уже он отдает кому надо Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Huko Опубликовано 1 марта, 2018 · Жалоба 16 hours ago, max1976 said: Остается только один вариант - нет свободной памяти (обычной, не для DPDK). Подскажите, а что должен показывать вывод # hugeadm --pool-list Такое впечатление, что у меня не отработали параметры загрузки "default_hugepagesz=1G hugepagesz=1G hugepages=4" и hugepages установлены по дефолту на 2Мб Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
ixi Опубликовано 1 марта, 2018 · Жалоба 19 часов назад, big-town сказал: Бред полный. И тем не менее, в статистике есть хосты, где [без интервала между запросами] после N блокировок идут сплошные таймауты на connect 35 минут назад, Huko сказал: Такое впечатление, что у меня не отработали параметры загрузки "default_hugepagesz=1G hugepagesz=1G hugepages=4" и hugepages установлены по дефолту на 2Мб Не все процессоры поддерживают 1G Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Huko Опубликовано 1 марта, 2018 · Жалоба 4 minutes ago, ixi said: И тем не менее, в статистике есть хосты, где [без интервала между запросами] после N блокировок идут сплошные таймауты на connect Не все процессоры поддерживают 1G А как узнать сколько поддерживает Intel(R) Xeon(R) CPU E5520 @ 2.27GHz ? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...