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

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

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



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

6 минут назад, flow-control сказал:

extfilter будет всегда занимать 100% и

вроде плохо работает с 2 процессорами....

+ нужно настроить

; Порт для отправки уведомлений через dpdk
;[port 1]
;type = sender
; На какой mac адрес отправлять пакеты

;mac = 00:01:02:03:04:05

 

У вас ответы посылает сетевая карта которая находится в системе, а не в dpdk. возможно дело в этом.

Читал, что с многопроцессорными системами не дружит. Но и вешал специально только на один процессор. Сетевая на одной шине с 0-процессором. Т.е. загрузка 100% это нормально? Получается мониторить нужно только статистику, а не загрузку CPU?

 

А вот с этим не понял 

Цитата

; Порт для отправки уведомлений через dpdk

Что это и для чего нужно? Речь о пакетах, которые летят в ответ на запрос к заблокированному ресурсу?

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


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

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

загрузка 100% это нормально?

Да

 

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

Речь о пакетах, которые летят в ответ на запрос к заблокированному ресурсу?

Да. + через dpdk ответ уйдет быстрее.

 

Главное что бы в логе missed packets был равен 0, думаю одного X5675 для 100kpps достаточно .

У меня i5-3450 и ~80kpps, missed packets: 0. на ночных проверках ревизором имею 3-6 пропусков , грешу на говноДелинк dgs-3627g, с которого зеркалирую трафик.

PS на форуме советуют связку extfilter + отдельно для ревизора nfqfilter.

Изменено пользователем flow-control

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


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

8 часов назад, flow-control сказал:

Да

 

Да. + через dpdk ответ уйдет быстрее.

 

Главное что бы в логе missed packets был равен 0, думаю одного X5675 для 100kpps достаточно .

У меня i5-3450 и ~80kpps, missed packets: 0. на ночных проверках ревизором имею 3-6 пропусков , грешу на говноДелинк dgs-3627g, с которого зеркалирую трафик.

PS на форуме советуют связку extfilter + отдельно для ревизора nfqfilter.

 

можете поделиться своим конфигом?

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


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

конфиг

 

 


; Переводить имя хоста в прописные буквы.
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

 

Изменено пользователем flow-control

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


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

10 часов назад, flow-control сказал:

У меня i5-3450 и ~80kpps, missed packets: 0. на ночных проверках ревизором имею 3-6 пропусков , грешу на говноДелинк dgs-3627g, с которого зеркалирую трафик.

У вас ревизор находится за NAT ?

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


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

Только что, max1976 сказал:

У вас ревизор находится за NAT ?

нет, сразу в интернете

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


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

Только что, flow-control сказал:

нет, сразу в интернете

Тогда не должно быть пропусков, если все пакеты попадают на фильтр и ответы гарантированно доходят до ревизора. В новой версии фильтра (ветка exp) есть опция:

; Количество повторных пакетов в сторону клиента (от 1 до 3)
; answer_duplication = 1

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

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


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

12 часов назад, SokolovS сказал:

Читал, что с многопроцессорными системами не дружит. Но и вешал специально только на один процессор. Сетевая на одной шине с 0-процессором. Т.е. загрузка 100% это нормально? Получается мониторить нужно только статистику, а не загрузку CPU?

Дружит. У меня xen 2х5620 выделено по 2 ядра с каждого процессора. Все ОК. По собственным проверкам 2-6(скриптом, это же руками не пускает ) , по ревизору от 0-20. Причем я списывался с проверяющими, они сказали что прилетает 200ОК но содержимое пустое, и это не считается пропуском. Ревизор за натом, в качестве ната используется mikrotik 941.

Изменено пользователем big-town

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


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

21 час назад, big-town сказал:

Вероятно этот вопрос адресовался мне. На специальной выделенной машинке, постоянно крутится скрипт вида(автор скрипта не я, его здесь кто то выкладывал на форуме):

Не совсем хорошо этот скрипт отрабатывать будет. Много случаев, когда сотни/тысячи адресов на одном хосте, и после ~5 запросов в секунду ваша машинка блокируется, оставшиеся адреса фактически проверены не будут.

 

Ради простой проверки работоспособности достаточно проверить десяток случайных адресов из списка.

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


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

Версия с гита от 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) 


 

 

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


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

25 минут назад, Huko сказал:

Версия с гита от 16 февраля. В последние время почти раз в сутки уходит в coredump :(

Это происходит в момент подачи сигнала HUP ?

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


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

8 minutes ago, max1976 said:

то происходит в момент подачи сигнала HUP ?

Чаще всего да, по крайне мере именно это coredump

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

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


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

3 минуты назад, Huko сказал:

Чаще всего да

В логах есть что-то похожее на:

Цитата

Something wrong with worker thread

 

?

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


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

3 часа назад, ixi сказал:

Не совсем хорошо этот скрипт отрабатывать будет. Много случаев, когда сотни/тысячи адресов на одном хосте, и после ~5 запросов в секунду ваша машинка блокируется, оставшиеся адреса фактически проверены не будут.

 

Ради простой проверки работоспособности достаточно проверить десяток случайных адресов из списка.

Бред полный.

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


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

21 minutes ago, max1976 said:

В логах есть что-то похожее на:

Something wrong with worker thread

?

Нет, ничего подозрительного в логах нет

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


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

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

Нет, ничего подозрительного в логах нет

Остается только один вариант - нет свободной памяти (обычной, не для DPDK).

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


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

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.

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

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


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

4 часа назад, SokolovS сказал:

MAC-адрес в конфиге это адрес назначения или источника?

Сколько памяти (hugapages) выделять под DPDK?

MAC-адрес интерфейса который смотрит в сторону абонентов

Я выделил под dpdk 8Gb ram. (~80k pps)

Про остальное не понял... Вам, наверное ,лучше зеркалировать rx трафик с порта который смотрит в сторону абонентов и направлять ответы extfilter в тот же vlan .

 

У меня, примерно такая схема:

 

ext.jpg

Изменено пользователем flow-control

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


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

2 часа назад, flow-control сказал:

MAC-адрес интерфейса который смотрит в сторону абонентов

Так, уже понятней. Только у нас на BGP-бордере в сторону абонентов смотрят 2 L3-интерфейса и соответственно два шлюза (один для тех кто за NAT-ом). Для такого варианта есть какое-то решение?

Памяти выделил 4Гб, missed по  нулям, в пике сегодня до 150 kpps.

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


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

6 минут назад, SokolovS сказал:

на BGP-бордере в сторону абонентов смотрят 2 L3-интерфейса

тут наверно нужно или два extfilter или два порта настроенных как sender в vlan для юзеров с NAT и в vlan юзеров с рельными.

даже не знаю, может Max подскажет....

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


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

тогда вариант с ответами через dpdk не годится и нужны обычные настроенные интерфейсы под контролем ядра. Я отдаю ответы в бордер. А уже он отдает кому надо

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


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

16 hours ago, max1976 said:

Остается только один вариант - нет свободной памяти (обычной, не для DPDK).

Подскажите, а что должен показывать вывод 

# hugeadm --pool-list

Такое впечатление, что у меня не отработали параметры загрузки "default_hugepagesz=1G hugepagesz=1G hugepages=4" и hugepages установлены по дефолту на 2Мб

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


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

19 часов назад, big-town сказал:

Бред полный.

И тем не менее, в статистике есть хосты, где [без интервала между запросами] после N блокировок идут сплошные таймауты на connect

 

35 минут назад, Huko сказал:

Такое впечатление, что у меня не отработали параметры загрузки "default_hugepagesz=1G hugepagesz=1G hugepages=4" и hugepages установлены по дефолту на 2Мб

Не все процессоры поддерживают 1G

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


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

4 minutes ago, ixi said:

И тем не менее, в статистике есть хосты, где [без интервала между запросами] после N блокировок идут сплошные таймауты на connect

 

Не все процессоры поддерживают 1G

А как узнать сколько поддерживает Intel(R) Xeon(R) CPU  E5520  @ 2.27GHz ?

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


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

Join the conversation

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

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

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

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

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

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

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