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

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

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



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

На коммите #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)

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


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

На коммите #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)

На CentOS и без патча собирается нормально

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


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

Кстати, Карбон редуктор научился работать в режиме транзита.

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


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

Интересен ли функционал по информированию абонентов? Через определенное количество времени (например раз в час) абонентам (ip адреса абонентов/подсетей задаются через acl) делается редирект на нужную страницу, если абонент пытается зайти на http.

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


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

Интересен ли функционал по информированию абонентов?

 

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

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


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

Интересен ли функционал по информированию абонентов?

Очень интересен)

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


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

Есть проблемы при работе на ядрах выше 4.4 - выпадет kerlnel panic при попытке использовать больше чем один поток, да и в однопоточном режиме периодически вешает работу сетевой подсистемы.... не то чтобы это смертельно, но неприятно.

 

С несколькими потоками да, байда какая-то. Я так и не отловил...

При num_threads=1 проблем никаких не наблюдаю. 4.7/4.9 ядра...

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


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

в реестре появилась любопытная запись <ipSubnet>213.196.46.145/30</ipSubnet>

У них там явно ненормальная форма добавления подсетей.

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


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

в реестре появилась любопытная запись <ipSubnet>213.196.46.145/30</ipSubnet>

У них там явно ненормальная форма добавления подсетей.

Любой ipcalc поймёт. Ip есть, маска есть, просчитать саму сеть несложно.

 

Network 213.196.46.144 D5.C4.2E.90 11010101.11000100.00101110.100100 | 00

Broadcast 213.196.46.147 D5.C4.2E.93 11010101.11000100.00101110.100100 | 11

Hostmin 213.196.46.145 D5.C4.2E.91 11010101.11000100.00101110.100100 | 01

Hostmax 213.196.46.146 D5.C4.2E.92 11010101.11000100.00101110.100100 | 10

Hosts 2

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


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

Как и обещал, сделал функционал информирования абонентов. Изменения на github'е.

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


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

Любой ipcalc поймёт. Ip есть, маска есть, просчитать саму сеть несложно.

Ну это да, и уже исправлено. Просто тот кто писал код не смог себе представить что эти данные надо проверить а авторы системы фильтрации при попытке указать данные с не той по их мнению сетью выдают фатальное "фу!" :) Т.е. тут как минимум двое пошли на принцип.

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


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

Ну это да, и уже исправлено. Просто тот кто писал код не смог себе представить что эти данные надо проверить а авторы системы фильтрации при попытке указать данные с не той по их мнению сетью выдают фатальное "фу!" :) Т.е. тут как минимум двое пошли на принцип.

 

Ну вот в споре RFC или государство - кто победит ? :) Тот кто вносит - ниразу rfc не читал, а система ввода не дала ему возможность заблочить некорректность. Хотели заблочить хост, а указали маску сети. Непринципиально впрочем... при маске /30.

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


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

А для nfqfilter такого не будет?

Если не споткнулись с 28 апреля - то именно такого не будет :) Но может быть что-то другое. Всех вариантов как это может быть неправильно сделано заранее не надумать.

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


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

Периодически ловим пропуски, если даже просто в браузер сунуть страницу и понажимать f5, раз на двадцатый проходит, не понимаю, отчего так.

версия от 03 апреля 2017

почему-то постоянно работает только один thread, на всех остальных по нулям, несмотря на то, что пробовали всяко и по-разному, в логах:

2017-05-05 17:30:45.907 [3868] Information Application - Port 0 input packets: 56056583, input errors: 0, mbuf errors: 0
2017-05-05 17:30:45.907 [3868] Information Application - Reader thread on core 1 received packets: 56056603, enqueued packets: 56056603, missed packets: 0, traffic throughtput: 64.75 K pps

2017-05-05 17:30:45.907 [3868] Information Application - Worker thread on core 2 statistics:
2017-05-05 17:30:45.907 [3868] Information Application - Thread seen packets: 56056641, IP packets: 56023106 (IPv4 packets: 56023282, IPv6 packets: 114), seen bytes: 8195278937, Average packet size: 146 bytes, Traffic throughput: 64.75 K pps
2017-05-05 17:30:45.907 [3868] Information Application - Thread IPv4 fragments: 290, IPv6 fragments: 0, IPv4 short packets: 0
2017-05-05 17:30:45.907 [3868] Information Application - Thread matched by ip/port: 0, matched by ssl: 633, matched by ssl/ip: 8, matched by domain: 846, matched by url: 330
2017-05-05 17:30:45.907 [3868] Information Application - Thread redirected domains: 846, redirected urls: 330, rst sended: 641
2017-05-05 17:30:45.907 [3868] Information Application - Thread active flows: 11946 (IPv4 flows: 11946 IPv6 flows: 0), expired flows: 275327, already detected blocked: 0

2017-05-05 17:30:45.907 [3868] Information Application - Worker thread on core 3 statistics:
2017-05-05 17:30:45.907 [3868] Information Application - Thread seen packets: 0, IP packets: 0 (IPv4 packets: 0, IPv6 packets: 0), seen bytes: 0, Average packet size: 0 bytes, Traffic throughput: 0.00 pps
2017-05-05 17:30:45.907 [3868] Information Application - Thread IPv4 fragments: 0, IPv6 fragments: 0, IPv4 short packets: 0
2017-05-05 17:30:45.907 [3868] Information Application - Thread matched by ip/port: 0, matched by ssl: 0, matched by ssl/ip: 0, matched by domain: 0, matched by url: 0
2017-05-05 17:30:45.907 [3868] Information Application - Thread redirected domains: 0, redirected urls: 0, rst sended: 0
2017-05-05 17:30:45.907 [3868] Information Application - Thread active flows: 0 (IPv4 flows: 0 IPv6 flows: 0), expired flows: 0, already detected blocked: 0

2017-05-05 17:30:45.908 [3868] Information Application - All worker threads seen packets: 56056641, IP packets: 56023106 (IPv4 packets: 56023282, IPv6 packets: 114), seen bytes: 8195278937, traffic throughtput: 64.75 K pps
2017-05-05 17:30:45.908 [3868] Information Application - All worker IPv4 fragments: 290, IPv6 fragments: 0, IPv4 short packets: 0
2017-05-05 17:30:45.908 [3868] Information Application - All worker threads matched by ip/port: 0, matched by ssl: 633, matched by ssl/ip: 8, matched by domain: 846,  matched by url: 330
2017-05-05 17:30:45.908 [3868] Information Application - All worker threads redirected domains: 846, redirected urls: 330, rst sended: 641
2017-05-05 17:30:45.908 [3868] Information Application - All worker threads active flows: 11946(IPv4 flows: 11946 IPv6 flows: 0), expired flows: 275327

 

конфиг:

lower_host = true
domainlist = /usr/local/etc/extfilter/domains
urllist = /usr/local/etc/extfilter/urls
ssllist = /usr/local/etc/extfilter/ssl_host
;protocols = /usr/local/etc/extfilter/protos
sslips = /usr/local/etc/extfilter/ssl_ips
http_redirect = true
redirect_url = http://rkn.bitches.ru/deny_rkn.html
http_code = 302 Found
url_additional_info=line
rst_to_server = true
statistic_interval = 300
match_url_exactly = false
block_undetected_ssl = true
dpdk_port = 0
;dpdk_ports = 0,1
;mbuf_pool_size = 8191
num_of_workers=2
;rx_queues = 4
num_threads = 4
core_mask = 127
;statisticsfile = /var/run/extFilter_stat
; out_mtu = 1500
;flowhash_size = 524288
num_of_senders = 2
url_normalization = true
remove_dot = false

CentOS Linux release 7.3.1611

3.10.0-514.el7.x86_64

cpu

 

processor       : 7
vendor_id       : GenuineIntel
cpu family      : 6
model           : 79
model name      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
stepping        : 1
microcode       : 0x1
cpu MHz         : 2099.998
cache size      : 4096 KB
physical id     : 0
siblings        : 8
core id         : 7
cpu cores       : 8
apicid          : 7
initial apicid  : 7
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss ht syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch arat fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm rdseed adx smap xsaveopt
bogomips        : 4199.99
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management:

 

c чем может быть связано?

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


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

Периодически ловим пропуски, если даже просто в браузер сунуть страницу и понажимать f5, раз на двадцатый проходит, не понимаю, отчего так.

версия от 03 апреля 2017

почему-то постоянно работает только один thread, на всех остальных по нулям, несмотря на то, что пробовали всяко и по-разному, в логах:

Ставьте последнюю и посмотрите как будет с ней.

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


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

Не запускается extfilter

EAL: Probing VFIO support...

EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !

EAL: PCI device 0000:13:00.0 on NUMA socket -1

EAL: probe driver: 8086:1521 net_e1000_igb

EAL: PCI device 0000:13:00.1 on NUMA socket -1

EAL: probe driver: 8086:1521 net_e1000_igb

Exception: Configuration error

В чем может быть причина???

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


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

Не запускается extfilter

EAL: Probing VFIO support...

EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !

EAL: PCI device 0000:13:00.0 on NUMA socket -1

EAL: probe driver: 8086:1521 net_e1000_igb

EAL: PCI device 0000:13:00.1 on NUMA socket -1

EAL: probe driver: 8086:1521 net_e1000_igb

Exception: Configuration error

В чем может быть причина???

В логах что??

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


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

Не запускается extfilter

EAL: Probing VFIO support...

EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !

EAL: PCI device 0000:13:00.0 on NUMA socket -1

EAL: probe driver: 8086:1521 net_e1000_igb

EAL: PCI device 0000:13:00.1 on NUMA socket -1

EAL: probe driver: 8086:1521 net_e1000_igb

Exception: Configuration error

В чем может быть причина???

В логах что??

2017-05-07 19:25:48.916 [24776] Fatal Application - No cores defined in the configuration file

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


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

Не запускается extfilter

EAL: Probing VFIO support...

EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !

EAL: PCI device 0000:13:00.0 on NUMA socket -1

EAL: probe driver: 8086:1521 net_e1000_igb

EAL: PCI device 0000:13:00.1 on NUMA socket -1

EAL: probe driver: 8086:1521 net_e1000_igb

Exception: Configuration error

В чем может быть причина???

В логах что??

2017-05-07 19:25:48.916 [24776] Fatal Application - No cores defined in the configuration file

Конфиг покажите.

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


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

Не запускается extfilter

EAL: Probing VFIO support...

EAL: WARNING: cpu flags constant_tsc=yes nonstop_tsc=no -> using unreliable clock cycles !

EAL: PCI device 0000:13:00.0 on NUMA socket -1

EAL: probe driver: 8086:1521 net_e1000_igb

EAL: PCI device 0000:13:00.1 on NUMA socket -1

EAL: probe driver: 8086:1521 net_e1000_igb

Exception: Configuration error

В чем может быть причина???

В логах что??

2017-05-07 19:25:48.916 [24776] Fatal Application - No cores defined in the configuration file

Конфиг покажите.

; Переводить имя хоста в прописные буквы. Если url_normalization установлен в true, то не имеет значения.

lower_host = true

 

domainlist = /home/extfilter-master/contrib/domains

urllist = /home/extfilter-master/contrib/urls

ssllist = /home/extfilter-master/contrib/ssl_host

 

; Файл с портами для nDPI.

;protocols = /usr/local/etc/extfilter/protos

 

; Список ip адресов/сетей для блокировки ssl если нет server_name в ssl hello пакете. Загружается если block_undetected_ssl = true.

;sslips = /usr/local/etc/extfilter/ssl_ips

 

; если false, то будет послан rst пакет вместо редиректа. Default: false

http_redirect = true

 

redirect_url = http://notify.example.com?

 

; HTTP код ответа. default: 302 Moved Temporarily

http_code = 302 Found

 

; Что добавлять в redirect_url, line - строка из файла url, url - запрещенный url, none - ничего

url_additional_info=line

 

 

; посылать tcp rst в сторону сервера от имени клиента. Default: false

rst_to_server = false

 

; Default: 0 - disable

statistic_interval = 300

 

; Default: false

match_url_exactly = false

 

; Default: false

block_undetected_ssl = false

 

; Какие ядра использовать. Default: все ядра, кроме management.

core_mask = 1

 

; файл статистики (для extfilter-cacti)

;statisticsfile = /var/run/extFilter_stat

 

; mtu на интерфейсе для отправки пакетов в сторону абонентов. Default: 1500

out_mtu = 1500

 

; Количество flow, обрабатываемых программой. Должно быть кратно 2.

; flowhash_size = 1048576

 

; количество тредов для отсылки уведомлений о блокировке

; num_of_senders = 1

 

; делать ли нормализацию url

; url_normalization = true

 

; удалять ли точку в конце имени хоста

; remove_dot = true

 

; здесь задаются порты, с которых необходимо снимать трафик

; формат:

; [port n]

; queues = a,b; a1,b1...

; n - номер порта dpdk

; a - номер очереди

; b - ядро, обрабатывающее очередь a

; Пример:

;[port 0]

;queues = 0,1; 1,2

 

;notify_enabled = true

; Формат файла ip/mask @group_id, где group_id группа оповещения. Например:

; 192.168.0.0/24 @0

; 10.0.0.0/24 @0

; 10.20.0.0/24 @1

 

;notify_acl_file = /usr/local/etc/extfilter/notify_acl

 

 

;cli_port = 9999

;cli_address = 127.0.0.1

 

; Группа оповещения 0

;[notify 0]

;http_code = 302 Found

;redirect_url = http://announce.example.com/?

;rst_to_server = false

;period = 1800

 

 

[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 = 1 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

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


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

; здесь задаются порты, с которых необходимо снимать трафик
; формат:
; [port n]
; queues = a,b; a1,b1...
; n - номер порта dpdk
; a - номер очереди
; b - ядро, обрабатывающее очередь a
; Пример:
;[port 0]
;queues = 0,1; 1,2

 

читайте внимательнее

 

core_mask = 1

тут тоже скорее всего ошибка

 

сколько ядер? какие ядра изолированы??

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

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


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

core_mask = 1

 

Так же задайте правильную маску.

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

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


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

Join the conversation

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

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

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

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

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

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

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