Jump to content

AdGuard Home для селективной маршрутизации доменов


Recommended Posts

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

А понял, глупый вопрос конечно - как в политиках по умолчанию убрать ВПН соединение, или если только для интернета основного новую политику?

Никак, просто его в самый низ по приоритетам сдвинуть и оно не будет использоваться. 

Link to comment
Share on other sites

У меня при таких настройках, да и на старых скриптах тоже - ipv6 от провайдера перестает получать. Может надо у скриптах строчку какую то модифицировать?

Link to comment
Share on other sites

24 минуты назад, coolmen0509 сказал:

У меня при таких настройках, да и на старых скриптах тоже - ipv6 от провайдера перестает получать. Может надо у скриптах строчку какую то модифицировать?

Тут нужно прдробнее, что не получает, что за провайдер. 

Link to comment
Share on other sites

У провайдера нативный ipv6, как только ввожу скрипт и перезагружаю роутер - во время загрузки он получает адрес и сразу же отваливается и больше ipv6 нет пока не убрать скрипты. Да и еще если честно с вашим решением и сайты маркированные не открываются... (но это я наверное что-то не то делаю)..

Link to comment
Share on other sites

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

У провайдера нативный ipv6, как только ввожу скрипт и перезагружаю роутер - во время загрузки он получает адрес и сразу же отваливается и больше ipv6 нет пока не убрать скрипты. Да и еще если честно с вашим решением и сайты маркированные не открываются... (но это я наверное что-то не то делаю)..

Понятнее не стало. Что значит отваливается? На интерфейсе поровайдера префикс остаётся? 

Link to comment
Share on other sites

Конечно глупый вопрос, но в скрипте не написано  - откидывать весь трафик, данной строчкой: 

[ "$type" == "ip6tables" ] && exit

 

Скрытый текст

image.thumb.png.51956d28526c36e1099ac1bc76415c3a.png

 

Edited by coolmen0509
Link to comment
Share on other sites

1 минуту назад, coolmen0509 сказал:

Конечно глупый вопрос, но в скрипте не написано  - откидывать весь трафик, данной строчкой: 

[ "$type" == "ip6tables" ] && exit

Нет, это проверка типа хука.

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

Префикс, остается - но сайты ipv6 не видятся.. 

Значит не отваливается.

Далее уже сложно без селфтеста угадывать... 

Ну попробуем.

Какой выхлоп у команды:

 show ipv6 route

Link to comment
Share on other sites

3 минуты назад, coolmen0509 сказал:
  Скрыть содержимое

image.png.0fb1d6f6f9af5e8d1d0bb2b36e2f4b2e.png

 

Это полный вывод?

В этом выводе нет маршрута по умолчанию, и fd префикс это от vpn туннеля?

Link to comment
Share on other sites

34 минуты назад, r13 сказал:

Это полный вывод?

В этом выводе нет маршрута по умолчанию, и fd префикс это от vpn туннеля?

Это при  неработающем после скриптов v6 был  вывод (на роутинге нет от впна в6). ниже скрин с роутингом, когда все отключено, и работает только провайдер:

 

Скрытый текст

image.thumb.png.c9d9490544b70fdf1e48e3674069f2e7.png

 

Link to comment
Share on other sites

Идеи кончились...

Можно выяснить какой именно скрипт все сломал?

13 минуты назад, coolmen0509 сказал:

Это при  неработающем после скриптов v6 был  вывод (на роутинге нет от впна в6). ниже скрин с роутингом, когда все отключено, и работает только провайдер:

 

  Скрыть содержимое

image.thumb.png.c9d9490544b70fdf1e48e3674069f2e7.png

 

 

Link to comment
Share on other sites

8 часов назад, r13 сказал:

Идеи кончились...

Можно выяснить какой именно скрипт все сломал?

 

Как выяснить, если бы я понимал бы - не спрашивал бы :)

Link to comment
Share on other sites

36 минут назад, coolmen0509 сказал:

Как выяснить, если бы я понимал бы - не спрашивал бы :)

Добавлять по одному и смотреть на результат)

Link to comment
Share on other sites

В свое время пробовал "хитрую" схему, но может она не хитрая, а как то мудрено или наоборот проще - по возможности контроль оставить ПО прошивки.

1. Есть профили :

- основной

- WG от WARP (в итоге "MARK set 0xffffd00" и table 42 в которой "default dev nwg0  scope link") актив канал только он

- WG от Proton (в итоге "MARK set 0xffffd02" и table 44 в которой "default dev nwg4  scope link") актив канал только он

Важная ремарка которую нужно учитывать - MARK пакетов будет только после наличия клиента в данном/нужном профиле, нет клиента нет и маркировки (но ее можно и руками)

2. Нужно было обеспечить доступ к netflix сайту для клиента -> это позволяет профиль от Proton.

Задача на клиенте использовать выход по WARP но на сайт netflix через Proton

Скрытый текст
скрипт в /opt/etc/ndm/netfilter.d

#!/bin/sh

[ "$table" != "mangle" ] && exit 0

if [ -z "$(iptables-save | grep 'netflix')" ]; then
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j CONNMARK --save-mark 
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -m set --match-set netflix dst -j MARK --set-mark 0xffffd02
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j MARK --set-mark 0xffffd00
fi

exit 0

Настройки AdguardHome 

ipset: []
  ipset_file: /opt/home/AdGuardHome/ipset.conf

И само содержимое файла 

flxvpn.net,netflix.ca,netflix.com,netflix.com.au,netflixdnstest10.com,netflixdnstest1.com,netflixdnstest2.com,netflixdnstest3.com,netflixdnstest4.com,netflixdnstest5.com,netflixdnstest6.com,netflixdnstest7.com,netflixdnstest8.com,netflixdnstest9.com,netflixinvestor.com,netflix.net,netflixstudios.com,netflixtechblog.com,nflxext.com,nflximg.com,nflximg.net,nflxso.net,nflxvideo.net/netflix

Единственную команду 
 
ipset create netflix hash:ip hashsize 4096

Можно поместить в /opt/etc/init.d/105-Start.sh например скрипт

Пояснения

_NDM_HOTSPOT_PRERT - это место как раз для HOTSPOT PREROUTING

Она будет выглядеть так

Chain _NDM_HOTSPOT_PRERT (1 references)
 pkts bytes target     prot opt in     out     source               destination         
  490 84052 MARK       all  --  br0    *       192.168.130.2        0.0.0.0/0            MARK set 0xffffd00
   79 26503 MARK       all  --  br0    *       192.168.130.2        0.0.0.0/0            match-set netflix dst MARK set 0xffffd02
  490 84052 CONNMARK   all  --  br0    *       192.168.130.2        0.0.0.0/0            CONNMARK save
  490 84052 RETURN     all  --  br0    *       192.168.130.2        0.0.0.0/0   

и должна выглядеть именно так

т.е. у нас для клиента есть два варианте - на все сайты это WARP (mark 0xffffd00) а на сайт netflix это Proton (mark 0xffffd02) маршрутизация согласно профилям для данных маркировок.

Примечание чтоб остальное не нарушить для данного клиента он так же помещен в профиль WARP, хотя можно его и оставить в основном профиле, тогда это только

#!/bin/sh

[ "$table" != "mangle" ] && exit 0

if [ -z "$(iptables-save | grep 'netflix')" ]; then
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j CONNMARK --save-mark 
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -m set --match-set netflix dst -j MARK --set-mark 0xffffd02
fi

exit 0

/opt/etc/init.d # ipset list netflix

/opt/etc/init.d # ipset list netflix
Name: netflix
Type: hash:ip
Revision: 4
Header: family inet hashsize 4096 maxelem 65536
Size in memory: 1008
References: 2
Members:
54.246.79.9
54.74.73.31
46.137.171.215
45.57.0.158
3.251.50.149
34.252.74.1
45.57.90.1
45.57.91.1
54.73.148.110
18.200.8.190
198.38.115.173
54.170.196.176
198.38.115.168
52.31.48.193
45.57.0.163
198.38.115.185
54.155.178.5
52.214.181.141
54.155.246.232
/opt/etc/init.d # 

***

Еще один пример на этом же методе но с " dscp "

 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j RETURN
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j CONNMARK --save-mark 
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -m dscp --dscp 63 -j MARK --set-mark 0xffffd01
 iptables -t mangle -I _NDM_HOTSPOT_PRERT -i br0 -s 192.168.130.2/32 -j MARK --set-mark 0xffffd00

-m dscp --dscp 63 - это маркировка для приложения на клиенте торрент качалки которая выходит по профилю multipath (его маркировка mark 0xffffd01 и его table 43), а все остальное на WARP профиль. Опять именно в такой последовательности -> сначала mark для профиля WARP и если пакет не для торрент то идем далее, если же он для торрента то устанавливаем mark для профиля multipath

Как и сказал выше суть его в том как можно больше использовать уже готовый функционал в ПО :

1. не надо строить ни каких своих table (WEB создаст профиль и table для него);

2. для поддержания актуальности таблицы роутинга поддержка ее на плечах ПО роутера, так как есть профиль -> есть и table

3. осталась только маркировка но тут как говориться вариантов много, кому как нравится

Как то так, все оба варианта проверены :

- по первому speedtest показал IP от WARP 104.28.ххх.ххх, и netflix открылся по Proton (так как регион RU заблокирован для него)

- по второму торрент качалка с клиента шла на multipath (видно было по системному монитору на двух каналах) а тот же speedtest с этого клиента по WARP.

 

Был замечен глюк не глюк (может просто накладка была) при втором варианте с применением

net.ipv4.fib_multipath_hash_policy 1

для multipath

***

DNS тут везде завернут на AGH, т.е. на любом интерфейсе IP DNS указывает на роутер, так как он вертится на

dns:
  bind_hosts:
    - 192.168.130.101
    - 127.0.0.1
  port: 53

и пока работает такая схема где 192.168.130.101 это сам роутер

ip name-server 192.168.130.101 "" on Wireguard0
ip name-server 192.168.130.101 "" on Wireguard4

где Wireguard0 это профиль WARP, а Wireguard4 это профиль Proton

 

Фильтры ни какие не используются и даже не рассматривались.

Edited by vasek00
Link to comment
Share on other sites

В 06.08.2023 в 21:28, r13 сказал:

ЗЫ работоспособность скриптов проверил, но сейчас в локации без v6 так что полностью проверю через пару дней как буду дома(там аналогичная конструкция работает).

Такс проверено, работает, заодно оптимизировал на максимальное использование штатного функционала.

Как выясняется все равно инструкцию надо менять, так как с версии 4.0 скрипты в папке /opt/etc/ndm/ifstatechanged.d/ считаются устаревшими https://github.com/ndmsystems/packages/wiki/Opkg-Component#ndmifstatechangedd-obsoleted-since-40-kept-only-for-backward-compatibility.

Соответственно дубль 2:

Требования -

  • KeenOS версия 4.х
  • Развёрнутая среда Entware,
  • Рабочее VPN-соединение поверх провайдерского, по которому будет идти обращение к определённым доменам
  • Для работы через ipv6 наличие рабочего ipv6 на основном подключении и VPN

Установка пакетов

Подразумевается, что AGH будет использоваться вместо встроенной в прошивку службы DNS Proxy. Установите необходимые пакеты:

opkg install adguardhome-go ipset iptables ip-full curl jq

Выполните первоначальную настройку AGH, для чего в CLI роутера наберите:

opkg dns-override
system configuration save

В этот момент Entware-сервисы будут перезапущены, а интерфейс для первоначальной настройки AGH станет доступен по адресу http://192.168.1.1:3000, где 192.168.1.1 — IP-адрес роутера. Настройки по умолчанию подходят для большинства случаев.

Скриптовая обвязка

Результаты разрешения указанных доменных имён AGH будет помещать в ipset (bypass/bypass6 в примере), правилами iptables трафик по этим IP-адресам будет помечаться fwmark, c идентификатором соответствующим политике в KeenOS. 

Первый скрипт — создание ipset'а при старте роутера. Создайте файл /opt/etc/init.d/S52ipset со следующим содержимым:

#!/bin/sh

PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

if [ "$1" = "start" ]; then
    ipset create bypass hash:ip
    ipset create bypass6 hash:ip family inet6
fi

 И еще пара скриптов для пометки трафика с помощью fwmark. Актуальная прошивка активно использует эту возможность, поэтому маркировать трафик приходится точечно.

В двух последующих скриптах заменить <Имя полиси> на название политики в которую нужно перенаправлять трафик

Создайте файл /opt/etc/ndm/netfilter.d/010-bypass.sh c контентом для пометки ipv4 трафика:

#!/bin/sh

[ "$type" == "ip6tables" ] && exit
[ "$table" != "mangle" ] && exit
[ -z "$(ipset --quiet list bypass)" ] && exit

if [ -z "$(iptables-save | grep bypass)" ]; then
     mark_id=`curl -kfsS http://localhost:79/rci/show/ip/policy 2>/dev/null | jq -r '.[] | select(.description == "<Имя полиси>") | .mark'`
     iptables -w -t mangle -A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-mark 0x$mark_id
     iptables -w -t mangle -A PREROUTING ! -i nwg0 -m set --match-set bypass dst -j CONNMARK --restore-mark
fi

Создайте файл /opt/etc/ndm/netfilter.d/011-bypass6.sh c контентом для пометки ipv6 трафика:

#!/bin/sh

[ "$type" != "ip6tables" ] && exit
[ "$table" != "mangle" ] && exit
[ -z "$(ipset --quiet list bypass6)" ] && exit

if [ -z "$(ip6tables-save | grep bypass6)" ]; then
     mark_id=`curl -kfsS http://localhost:79/rci/show/ip/policy 2>/dev/null | jq -r '.[] | select(.description == "<Имя полиси>") | .mark'`
     ip6tables -w -t mangle -A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass6 dst -j CONNMARK --set-mark 0x$mark_id
     ip6tables -w -t mangle -A PREROUTING ! -i nwg0 -m set --match-set bypass6 dst -j CONNMARK --restore-mark
fi

В скриптах nwg0 — сетевой интерфейс VPN-соединения для выборочного обхода блокировок. Если затрудняетесь в его поиске, то посмотрите вывод команды ip addr.

Сделайте скрипты исполняемыми:

chmod +x /opt/etc/init.d/S52ipset
chmod +x /opt/etc/ndm/netfilter.d/010-bypass.sh
chmod +x /opt/etc/ndm/netfilter.d/011-bypass6.sh

 

 

и переходите к финальному пункту.

 

Список доменов для обхода блокировок

Найдите в конфигурационном файле AGH /opt/etc/AdGuardHome/AdGuardHome.yaml строчку ipset_file: "" и поменяйте на ipset_file: /opt/etc/AdGuardHome/ipset.conf.

Файл /opt/etc/AdGuardHome/ipset.conf будет единственным, требующим редактирования время от времени, в зависимости от изменения вашего персонального списка доменов для разблокировки. Он имеет следующий синтаксис:

intel.com,ipinfo.io/bypass,bypass6
instagram.com,cdninstagram.com/bypass,bypass6
epicgames.com,gog.com/bypass,bypass6

Т.е. в левой части через запятую указаны домены, требующие обхода блокировок, справа после слэша — ipset, в который AGH складывает результаты разрешения DNS-имён. Можно указать всё в одну строчку, можно разделить логически на несколько строк как в примере. Домены третьего уровня и выше также включаются в обход блокировок, т.е. указание intel.com включает www.intel.com, download.intel.com и пр.
Рекомендую добавить какой-нибудь «сигнальный» сервис, показывающий ваш текущий IP-адрес (ipinfo.io в примере). Так вы сможете проверить работоспособность настроенного решения. Учтите, что AGH не перечитывает изменённый файл, поэтому после правки перезапустите его с помощью:
 

/opt/etc/init.d/S99adguardhome restart

Диагностика проблем

  • Убедитесь в том, что набор ipset создан и наполняется в процессе работы:
# Проверка  ipv4
ipset --list bypass
# Проверка  ipv6
ipset --list bypass6

Вывод должен быть не пустой.

  • Посмотрите, существуют ли правила netfilter для пометки пакетов:
# Проверка  ipv4
iptables-save | grep bypass
# Проверка  ipv6
ip6tables-save | grep bypass6
  • После перезагрузки роутера проверьте в веб-интерфейсе Системный журнал, в нём не должно быть красных строк, связанных с настроенными скриптами.

В итоге:

Скрытый текст

image.thumb.png.25792f23bc762233d1fbfc4e000e9222.png

 

 

  • Thanks 2
  • Upvote 6
Link to comment
Share on other sites

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

Такс проверено, работает, заодно оптимизировал на максимальное использование штатного функционала.

Как выясняется все равно инструкцию надо менять, так как с версии 4.0 скрипты в папке /opt/etc/ndm/ifstatechanged.d/ считаются устаревшими https://github.com/ndmsystems/packages/wiki/Opkg-Component#ndmifstatechangedd-obsoleted-since-40-kept-only-for-backward-compatibility.

Соответственно дубль 2:

Требования -

  • KeenOS версия 4.х
  • Развёрнутая среда Entware,
  • Рабочее VPN-соединение поверх провайдерского, по которому будет идти обращение к определённым доменам
  • Для работы через ipv6 наличие рабочего ipv6 на основном подключении и VPN

Установка пакетов

Подразумевается, что AGH будет использоваться вместо встроенной в прошивку службы DNS Proxy. Установите необходимые пакеты:

opkg install adguardhome-go ipset iptables ip-full

Выполните первоначальную настройку AGH, для чего в CLI роутера наберите:

opkg dns-override
system configuration save

В этот момент Entware-сервисы будут перезапущены, а интерфейс для первоначальной настройки AGH станет доступен по адресу http://192.168.1.1:3000, где 192.168.1.1 — IP-адрес роутера. Настройки по умолчанию подходят для большинства случаев.

Скриптовая обвязка

Результаты разрешения указанных доменных имён AGH будет помещать в ipset (bypass/bypass6 в примере), правилами iptables трафик по этим IP-адресам будет помечаться fwmark, c идентификатором соответствующим политике в KeenOS. 

Первый скрипт — создание ipset'а при старте роутера. Создайте файл /opt/etc/init.d/S52ipset со следующим содержимым:

#!/bin/sh

PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

if [ "$1" = "start" ]; then
    ipset create bypass hash:ip
    ipset create bypass6 hash:ip family inet6
fi

 И еще пара скриптов для пометки трафика с помощью fwmark. Актуальная прошивка активно использует эту возможность, поэтому маркировать трафик приходится точечно. Создайте файл /opt/etc/ndm/netfilter.d/010-bypass.sh c контентом для пометки ipv4 трафика:

#!/bin/sh

[ "$type" == "ip6tables" ] && exit
[ "$table" != "mangle" ] && exit
[ -z "$(ipset --quiet list bypass)" ] && exit

if [ -z "$(iptables-save | grep bypass)" ]; then
     iptables -w -t mangle -A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-mark 0xffffd02
     iptables -w -t mangle -A PREROUTING ! -i nwg0 -m set --match-set bypass dst -j CONNMARK --restore-mark
fi

Создайте файл /opt/etc/ndm/netfilter.d/011-bypass6.sh c контентом для пометки ipv6 трафика:

#!/bin/sh

[ "$type" != "ip6tables" ] && exit
[ "$table" != "mangle" ] && exit
[ -z "$(ipset --quiet list bypass6)" ] && exit

if [ -z "$(ip6tables-save | grep bypass6)" ]; then
     ip6tables -w -t mangle -A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass6 dst -j CONNMARK --set-mark 0xffffd02
     ip6tables -w -t mangle -A PREROUTING ! -i nwg0 -m set --match-set bypass6 dst -j CONNMARK --restore-mark
fi

В скриптах nwg0 — сетевой интерфейс VPN-соединения для выборочного обхода блокировок. Если затрудняетесь в его поиске, то посмотрите вывод команды ip addr,  идентификатор метки 0xffffd02 

Для определения своего идентификатора выберите политику включающую в себя ваше VPN соединение

  Показать содержимое

image.png.863a22a913741c4f2998325273cc00ab.png

После чего выполните команду cli show ip policy и найдите нужный идентификатор в выводе(в скриптах используется шестнадцатеричный формат 0xffffd02):

Сделайте скрипты исполняемыми:

chmod +x /opt/etc/init.d/S52ipset
chmod +x /opt/etc/ndm/netfilter.d/010-bypass.sh
chmod +x /opt/etc/ndm/netfilter.d/011-bypass6.sh

 

 

и переходите к финальному пункту.

 

Список доменов для обхода блокировок

Найдите в конфигурационном файле AGH /opt/etc/AdGuardHome/AdGuardHome.yaml строчку ipset_file: "" и поменяйте на ipset_file: /opt/etc/AdGuardHome/ipset.conf.

Файл /opt/etc/AdGuardHome/ipset.conf будет единственным, требующим редактирования время от времени, в зависимости от изменения вашего персонального списка доменов для разблокировки. Он имеет следующий синтаксис:

intel.com,ipinfo.io/bypass,bypass6
instagram.com,cdninstagram.com/bypass,bypass6
epicgames.com,gog.com/bypass,bypass6

Т.е. в левой части через запятую указаны домены, требующие обхода блокировок, справа после слэша — ipset, в который AGH складывает результаты разрешения DNS-имён. Можно указать всё в одну строчку, можно разделить логически на несколько строк как в примере. Домены третьего уровня и выше также включаются в обход блокировок, т.е. указание intel.com включает www.intel.com, download.intel.com и пр.
Рекомендую добавить какой-нибудь «сигнальный» сервис, показывающий ваш текущий IP-адрес (ipinfo.io в примере). Так вы сможете проверить работоспособность настроенного решения. Учтите, что AGH не перечитывает изменённый файл, поэтому после правки перезапустите его с помощью:
 

/opt/etc/init.d/S99adguardhome restart

Диагностика проблем

  • Убедитесь в том, что набор ipset создан и наполняется в процессе работы:
# Проверка  ipv4
ipset --list bypass
# Проверка  ipv6
ipset --list bypass6

Вывод должен быть не пустой.

  • Посмотрите, существуют ли правила netfilter для пометки пакетов:
# Проверка  ipv4
iptables-save | grep bypass
# Проверка  ipv6
ip6tables-save | grep bypass6
  • После перезагрузки роутера проверьте в веб-интерфейсе Системный журнал, в нём не должно быть красных строк, связанных с настроенными скриптами.

В итоге:

  Показать содержимое

image.thumb.png.25792f23bc762233d1fbfc4e000e9222.png

 

Можно mark так найти

curl -kfsS http://localhost:79/rci/show/ip/policy 2>/dev/null | jq -r '.[] | select(.description == "Unblock-VPN") | .mark'

 

  • Thanks 1
  • Upvote 2
Link to comment
Share on other sites

Уф Лучшее враг хорошего, обновился с 398 на 402 все поломалось.

Вроде все исправил по этому гайду

Но нужная трассировка никак не идет :(

Spoiler


~ # ipset --list bypass
Name: bypass
Type: hash:ip
Revision: 4
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 740
References: 2
Members:
[роскомнадзор]
31.13.72.175
~ # ipset --list bypass6
Name: bypass6
Type: hash:ip
Revision: 4
Header: family inet6 hashsize 1024 maxelem 65536
Size in memory: 1292
References: 2
Members:
2a03:2880:f20a:e6:face:b00c:0:6e2e
2001:470:1:18::223:250
~ # iptables-save | grep bypass
-A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-xmark 0xffffd02/0xffffffff
-A PREROUTING ! -i nwg0 -m set --match-set bypass dst -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
Can't find library for match `ndmslin'
~ # ip6tables-save | grep bypass6
-A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass6 dst -j CONNMARK --set-xmark 0xffffd02/0xffffffff
-A PREROUTING ! -i nwg0 -m set --match-set bypass6 dst -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
~ #

>tracert 31.13.72.175

Трассировка маршрута к whatsapp-chatd-igd-p42-edge-shv-01-arn2.facebook.com [31.13.72.175]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  KEENETIC [192.168.1.1]
  2     2 ms     2 ms     2 ms  [роскомнадзор].rt.ru [IP Шлюза РФ]  
  3     3 ms     2 ms     2 ms  ^C

Куда копнуть можно? Заранее спасибо за ответ.

Link to comment
Share on other sites

12 часа назад, dogoma сказал:

Супер, спасибо.

А есть что-то подобное для сайтов? Например у торрентов часто несколько адресов, на netify не находятся...

 

Link to comment
Share on other sites

13 часа назад, Sergey K сказал:

Уф Лучшее враг хорошего, обновился с 398 на 402 все поломалось.

Вроде все исправил по этому гайду

Но нужная трассировка никак не идет :(

  Скрыть содержимое

 

 

~ # ipset --list bypass
Name: bypass
Type: hash:ip
Revision: 4
Header: family inet hashsize 1024 maxelem 65536
Size in memory: 740
References: 2
Members:
[роскомнадзор]
31.13.72.175
~ # ipset --list bypass6
Name: bypass6
Type: hash:ip
Revision: 4
Header: family inet6 hashsize 1024 maxelem 65536
Size in memory: 1292
References: 2
Members:
2a03:2880:f20a:e6:face:b00c:0:6e2e
2001:470:1:18::223:250
~ # iptables-save | grep bypass
-A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-xmark 0xffffd02/0xffffffff
-A PREROUTING ! -i nwg0 -m set --match-set bypass dst -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
Can't find library for match `ndmslin'
~ # ip6tables-save | grep bypass6
-A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass6 dst -j CONNMARK --set-xmark 0xffffd02/0xffffffff
-A PREROUTING ! -i nwg0 -m set --match-set bypass6 dst -j CONNMARK --restore-mark --nfmask 0xffffffff --ctmask 0xffffffff
~ #

>tracert 31.13.72.175

Трассировка маршрута к whatsapp-chatd-igd-p42-edge-shv-01-arn2.facebook.com [31.13.72.175]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  KEENETIC [192.168.1.1]
  2     2 ms     2 ms     2 ms  [роскомнадзор].rt.ru [IP Шлюза РФ]  
  3     3 ms     2 ms     2 ms  ^C

Куда копнуть можно? Заранее спасибо за ответ.

С роутера трассировку делаете? А зря...

Полиси создана? Проверьте метку по имени

curl -kfsS http://localhost:79/rci/show/ip/policy 2>/dev/null | jq -r '.[] | select(.description == "<Имя полиси>") | .mark'
Edited by avn
Link to comment
Share on other sites

On 8/9/2023 at 10:47 PM, Denis P said:

Не всё вы исправили

opkg update && opkg upgrade

Исправил переустановкой ШINDOШS entware

Почему то ругалось на отсутствие места в / хотя там сейчас тоже нет места )

}/opt/etc/AdGuardHome/data # df -h
Filesystem                Size      Used Available Use% Mounted on
/dev/root                18.3M     18.3M         0 100% /
tmpfs                   124.3M         0    124.3M   0% /dev
tmpfs                   124.3M    276.0K    124.0M   0% /tmp
/dev/ubi0_0              55.2M     48.6M      3.7M  93% /storage
/dev/ubi0_0              55.2M     48.6M      3.7M  93% /opt
/dev/sda1               931.5G    225.0G    706.5G  24% /tmp/mnt/72FA8041FA800417

22 hours ago, avn said:

С роутера трассировку делаете? А зря...

Полиси создана? Проверьте метку по имени

curl -kfsS http://localhost:79/rci/show/ip/policy 2>/dev/null | jq -r '.[] | select(.description == "<Имя полиси>") | .mark'

/opt/etc/AdGuardHome/data # curl -kfsS http://localhost:79/rci/show/ip/policy
{
}/opt/etc/AdGuardHome/data

чот  непонял зачем она нужна? Вроде - до 402 этой конфигурации у меня не было. Сча еще раз покурю гайд.

 

Link to comment
Share on other sites

36 минут назад, Mapuk37 сказал:

Подскажите, а у всех кто настроил эти методом переодически отваливаются vpn подключения?

Смотрите на данный момент времени логи роутера.

Link to comment
Share on other sites

23 hours ago, avn said:

С роутера трассировку делаете? А зря...

Полиси создана? Проверьте метку по имени

curl -kfsS http://localhost:79/rci/show/ip/policy 2>/dev/null | jq -r '.[] | select(.description == "<Имя полиси>") | .mark'

Политику создал ( в 398 у меня ее не было, и как то работало без нее ну ок)
 

Spoiler

~ # curl -kfsS http://localhost:79/rci/show/ip/policy 2>/dev/null | jq -r '.[] | select(.description == "VPN") | .mark'
ffffd00
~ # cat /opt/etc/init.d/S52ipset
#!/bin/sh

PATH=/opt/sbin:/opt/bin:/opt/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

if [ "$1" = "start" ]; then
    ipset create bypass hash:ip
    ipset create bypass6 hash:ip family inet6
fi
~ # cat /opt/etc/ndm/netfilter.d/010-bypass.sh
#!/bin/sh

[ "$type" == "ip6tables" ] && exit
[ "$table" != "mangle" ] && exit
[ -z "$(ipset --quiet list bypass)" ] && exit

if [ -z "$(iptables-save | grep bypass)" ]; then
     iptables -w -t mangle -A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass dst -j CONNMARK --set-mark 0xffffd00
     iptables -w -t mangle -A PREROUTING ! -i nwg0 -m set --match-set bypass dst -j CONNMARK --restore-mark
fi
~ # cat /opt/etc/ndm/netfilter.d/011-bypass6.sh
#!/bin/sh

[ "$type" != "ip6tables" ] && exit
[ "$table" != "mangle" ] && exit
[ -z "$(ipset --quiet list bypass6)" ] && exit

if [ -z "$(ip6tables-save | grep bypass6)" ]; then
     ip6tables -w -t mangle -A PREROUTING ! -i nwg0 -m conntrack --ctstate NEW -m set --match-set bypass6 dst -j CONNMARK --set-mark 0xffffd00
     ip6tables -w -t mangle -A PREROUTING ! -i nwg0 -m set --match-set bypass6 dst -j CONNMARK --restore-mark

трассировка с обычного компа - пошла но с 50% потерями.

Статистика Ping для 34.117.59.81:
    Пакетов: отправлено = 70, получено = 35, потеряно = 35
    (50% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 42мсек, Максимальное = 43 мсек, Среднее = 42 мсек
Control-C
^C
C:\Users\stdia>tracert ipinfo.io

Трассировка маршрута к ipinfo.io [34.117.59.81]
с максимальным числом прыжков 30:

  1    <1 мс    <1 мс    <1 мс  KEENETIC [192.168.1.1]
  2    42 ms    42 ms    42 ms  10.7.0.1 (vpn)
  3    42 ms    43 ms    42 ms  ....

Link to comment
Share on other sites

Добрый день. 

А подскажите, влияет ли на работу данного сетапа настройки размера журнала и размера логов в адгвард? Сейчас обе настройки выставлены на минимальный срок – 1 день, так как на прошлом роутере было не так много свободного места на внутреннем диске (сетап установлен на внутреннем диске роутера), но сейчас есть возможность увеличить эти параметры. 

 

Поясню, кажется будто в начале дня инстаграм (ну и другие сайты помеченные для обхода) как-то долго грузятся, а потом в течении дня уже быстрее (типа таблица маршрутизации может чиститься?)

Link to comment
Share on other sites

  • Илья Хрупалов changed the title to AdGuard Home для выборочного доступа к заданным доменам

Добрый вечер!

Подскажите в чем проблема. При добавлении доменов в файл ipset.conf в логах роутера выходят такие ошибки:

Авг 16 23:50:23 ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/010-bypass.sh: exit code 2.
Авг 16 23:50:23 ndm
Opkg::Manager: /opt/etc/ndm/netfilter.d/011-bypass6.sh: exit code 2.

Adguard Home перестает запускаться. В логах Adguard следующая ошибка:

2023/08/16 23:36:18.362721 [fatal] dnsServer.Prepare: preparing ipset settings: initializing ipset: ipset: getting ipsets from config line at idx 0: querying ipset "bypass": netfilter query: netlink receive: no such file or directory

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...