Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] Не работает nfqws на втором проводном провайдере (2) #142

Open
ThinkPadThink opened this issue Dec 21, 2024 · 11 comments

Comments

@ThinkPadThink
Copy link

Опишите проблему
Повторение #92

Дома подключено 2 проводных провайдера, первый и он же основной местный районный Московский провайдер, работает через PPPOE(ppp0), второй и он резервный провайдер Ростелеком, подключен в порт eth3 работает через Ethernet
Работают по факту оба, в балансировке нагрузки.
И с РТК есть проблемы, при настройки nfqws на два оператора, если добавить РТК устройства которые выходят в инет через РТК перестают видеть сеть.
IСMP не проходит ни до каких сайтов.

IPv6 на РТК отключил, в настройке nfqws тоже отключил.

Модель маршрутизатора
Keenetic Ultra (KN-1811)
Установленная версия 4.3 Alpha 8
Entware установлен на внешний sata ssd

Провайдер
Районный провайдер ppp0
Ростелеком eth3

Выполните команды и приложите их вывод
opkg info nfqws-keenetic

Package: nfqws-keenetic
Version: 2.6.6
Depends: iptables, busybox
Conflicts: tpws-keenetic
Status: install user installed
Section: net
Architecture: aarch64-3.10
Size: 117666
Filename: nfqws-keenetic_2.6.6_aarch64-3.10.ipk
Conffiles:
 /opt/etc/nfqws/nfqws.conf d897b5561e5f36b8dc0304f407eef540157f76fc2789dfe61ed17af3c2d486ad
 /opt/etc/nfqws/user.list 45dc2adaa172b86d73369c6ed12a8a0e648b851b66293b11514c3b1d4bd3fce6
 /opt/etc/nfqws/auto.list e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
 /opt/etc/nfqws/exclude.list 3ffc3588b7ed7f4585a6563b186d6e57c0d19ba1276f6b8ec595ce015b1da562
Description: NFQWS service
Installed-Time: 1734115355

/opt/etc/init.d/S51nfqws restart

Stopping NFQWS service...
Policy 'nfqws' not found. All traffic will be processed.
github version v69.7 (594e613fcb3669e377d1f564873e15459dc5f229)

we have 3 user defined desync profile(s) and default low priority profile 0
Loading hostlist /opt/etc/nfqws/exclude.list
loading plain text list
Loaded 149 hosts from /opt/etc/nfqws/exclude.list
Loading hostlist /opt/etc/nfqws/auto.list
loading plain text list
Loaded 10 hosts from /opt/etc/nfqws/auto.list
Loading hostlist /opt/etc/nfqws/user.list
loading plain text list
Loaded 415 hosts from /opt/etc/nfqws/user.list
Started NFQWS service

cat /opt/etc/nfqws/nfqws.conf

# Provider network interface, e.g. eth3
# You can specify multiple interfaces separated by space, e.g. ISP_INTERFACE="eth3 nwg1"
ISP_INTERFACE="ppp0 eth3"

# All arguments here: https://github.com/bol-van/zapret (search for `nfqws` on the page)
# HTTP(S) strategy
NFQWS_ARGS="--dpi-desync=fake,multisplit --dpi-desync-split-pos=1,midsld --dpi-desync-ttl=0 --dpi-desync-repeats=17 --dpi-desync-fooling=badseq,md5sig --dpi-desync-fake-tls=/opt/etc/nfqws/tls_clienthello.bin"

# QUIC strategy
NFQWS_ARGS_QUIC="--filter-udp=443 --dpi-desync=fake --dpi-desync-repeats=11 --dpi-desync-fake-quic=/opt/etc/nfqws/quic_initial.bin"

# UDP strategy (doesn't use lists from NFQWS_EXTRA_ARGS)
NFQWS_ARGS_UDP="--filter-udp=50000-50099 --dpi-desync=fake --dpi-desync-any-protocol --dpi-desync-repeats=6 --dpi-desync-cutoff=n2"

# auto - automatically detects blocked resources and adds them to the auto.list
NFQWS_EXTRA_ARGS="--hostlist=/opt/etc/nfqws/user.list --hostlist-auto=/opt/etc/nfqws/auto.list --hostlist-auto-debug=/opt/var/log/nfqws.log --hostlist-exclude=/opt/etc/nfqws/exclude.list"

# list - applies rules only to domains in the user.list
#NFQWS_EXTRA_ARGS="--hostlist=/opt/etc/nfqws/user.list"

# all  - applies rules to all traffic except domains from exclude.list
#NFQWS_EXTRA_ARGS="--hostlist-exclude=/opt/etc/nfqws/exclude.list"

# IPv6 support
IPV6_ENABLED=0

# TCP ports for iptables rules
TCP_PORTS=443

# UDP ports for iptables rules
UDP_PORTS=443,50000:50099

# Keenetic policy name
POLICY_NAME="nfqws"

# Syslog logging level (0 - silent, 1 - debug)
LOG_LEVEL=0

NFQUEUE_NUM=200
USER=nobody
CONFIG_VERSION=5

ps | grep nfqws

Сюда вставлять нечего.

iptables-save | grep 200

-A POSTROUTING -o ppp0 -p udp -m multiport --dports 443,50000:50099 -m connbytes --connbytes 1:8 --connbytes-mode packets --connbytes-dir original -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass
-A POSTROUTING -o ppp0 -p tcp -m multiport --dports 443 -m connbytes --connbytes 1:8 --connbytes-mode packets --connbytes-dir original -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass
-A POSTROUTING -o eth3 -p udp -m multiport --dports 443,50000:50099 -m connbytes --connbytes 1:8 --connbytes-mode packets --connbytes-dir original -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass
-A POSTROUTING -o eth3 -p tcp -m multiport --dports 443 -m connbytes --connbytes 1:8 --connbytes-mode packets --connbytes-dir original -m mark ! --mark 0x40000000/0x40000000 -j NFQUEUE --queue-num 200 --queue-bypass

sysctl net.netfilter.nf_conntrack_checksum

net.netfilter.nf_conntrack_checksum = 0
@Sergmasharov
Copy link

У меня с обновкой все чудесно работает, проверьте точно ли соответствуют имена интерфейсов действительности в конф файле, после последнего обновления кинетика или моих ковыряний у меня ppp1 стал ppp3. Из-за этого были глюки.

@Sergmasharov
Copy link

Sergmasharov commented Dec 25, 2024

Воспользуйтесь командой из entware, она покажет кто есть кто:
ip addr show | awk -F" |/" '{gsub(/^ +/,"")}/inet /{print $(NF), $2}'

@danzal007
Copy link

У меня проблема другая. Два провайдера Ростелеком ppp0 и Билайн eth2.5 (как резерв). Дополнительно через Билайн как приоритеты подключений настроен ТВ (Билайн ТВ). YT на ТВ не работает, если убрать ТВ через приоритеты на по умолчанию, то работает. Также работает если вручную отключить Ростелеком (переключается на Билайн), YT работает.

@ThinkPadThink
Copy link
Author

Пришлось откатить прошивку до 4.2.5 так как были проблемы с openconnect
Попробовал убрать из конфига основного провайдера и указать только РТК:
В расширенном логе видны постоянные ошибки:
nfqws[7701]: rawsend: bind (ignoring): Address not available
nfqws[7701]: Core::Syslog: last message repeated 10 times.
Больше никаких ошибок.
Из того что ещё заметил бывает раз в какой-то момент рандомно сайты могут загрузиться и абсолютно рандомные которых в списках нет и те что в user.list и в exclude.list, в следующий раз снова разные
Из некоторых особенностей, я не использую встроенный в кинетик dhcp сервер, установлен relay режим, dns сервер так же не встроенный в кинетик

@ThinkPadThink
Copy link
Author

К сожалению попытки поиграть с настройками, вариантами работы user list/auto list ни к чему не привели, как не работал NFQWS так и не работает, удалось только повалить web ui кинетика и entware.
Буду пробовать с нуля настроить идентичный Keenetic Ultra (KN-1811) на стабильной прошивке. Но на это уйдёт какое-то время.

@ThinkPadThink
Copy link
Author

Воспользуйтесь командой из entware, она покажет кто есть кто: ip addr show | awk -F" |/" '{gsub(/^ +/,"")}/inet /{print $(NF), $2}'

Я это первым делом смотрел, там всё верно указано
ppp0 статик ip основного провайдера
eth3 статик ip Ростелеком

@ThinkPadThink
Copy link
Author

Буду пробовать с нуля настроить идентичный Keenetic Ultra (KN-1811) на стабильной прошивке.

Попробовал nfqws-keenetic 2.7.1 на другом идентичном кинетике Keenetic Ultra (KN-1811)+entware на внешнем(бокс) sata ssd с прошивкой 4.2.5
Результат тот же, Через основного провайдера через pppoe(ppp0) всё работает, через ртк(eth3) не работает совсем, youtube не работает, другие сайты из списка(юзер листа) тоже не работают, обычные сайты работают.
попробовал даже сделать отдельную политику nfqws и повесить её на ртк, тоже не помогает.

В логе есть такие ошибки, но как писал болван, не критичные:
Янв 4 03:21:31
nfqws[6407]
seccomp: this can be safely ignored if kernel does not support seccomp
Янв 4 03:21:31
nfqws[6407]
seccomp: Invalid argument

Больше идей у меня нет, может кто подскажет у кого 2 провайдера, как у вас приоритеты настроены?
Либо может кто-то что-нибудь предложит попробовать? Могу экспериментировать на 2 роутере.

@ThinkPadThink
Copy link
Author

Покопавшись немного с голым Zapret проблему так же не удалось решить. Так же при запуске Запрета с интерфейсом РТК в консоль спамило ошибкой rawsend: sendto: Operation not permitted

Нашёл похожу проблему bol-van/zapret#397

Наверно текущее ишью можно закрыть как нерешаемое на сегодня, ну либо оставить на будущее.

@Anonym-tsk
Copy link
Owner

А если оставить только РТК и отрубить ppoe, работает нормально с одним провайдером?

@ThinkPadThink
Copy link
Author

А если оставить только РТК и отрубить ppoe, работает нормально с одним провайдером?

Наконец-то дошли руки проверить, вынул кабель из PPPoe и в конфиге прописал eth3, так заработало на РТК

@Anonym-tsk
Copy link
Owner

@ThinkPadThink а попробуйте ещё раз с версией 2.7.5, пропишите в конфиге nfqws двух провайдеров, настройте политику многопутевой передачи.
Я сейчас проверил с проводным и мобильным провайдерами, вроде все работает.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants