Jump to content

opkg dns-override и ip policy Policy0


Recommended Posts

Добрый день!

Установил AdGuard Home. Такое впечатление, что при создании нового профиля доступа в интернет и перемещении в него зарегистрированного устройства (или всего сегмента Гостевая сеть) на запросы с этого устройства вместо adguard начинает отвечать сам кинетик. Переношу устройство в "Основной профиль" - начинает отвечать AdGuard

Проверял командой в cli

ip host 192.168.168.168 example.example

и пользовательским правилом фильтрации AdGuard

192.168.200.200 example.example

при этом nslookup с устройства на кинетике

 nslookup example.example 192.168.23.1

выдаёт 192.168.168.168 или 192.168.200.200 в зависимости от того, находится устройство в основном профиле или в другом

Giga KN-1010, 3.4.12, AdGuard Home 0.103.3, opkg dns-override сказал. Воспроизводится устойчиво. ЧЯНТД?

Edited by moomey
Link to comment
Share on other sites

44 минуты назад, moomey сказал:

Установил AdGuard Home. Такое впечатление, что при создании нового профиля доступа в интернет и перемещении в него зарегистрированного устройства (или всего сегмента Гостевая сеть) на запросы с этого устройства вместо adguard начинает отвечать сам кинетик. Переношу устройство в "Основной профиль" - начинает отвечать AdGuard

Проверял командой в cli


ip host 192.168.168.168 example.example

и пользовательским правилом фильтрации AdGuard


192.168.200.200 example.example

при этом nslookup с устройства на кинетике


 nslookup example.example 192.168.23.1

выдаёт 192.168.168.168 или 192.168.200.200 в зависимости от того, находится устройство в основном профиле или в другом

Giga KN-1010, 3.4.12, AdGuard Home 0.103.3, opkg dns-override сказал. Воспроизводится устойчиво. ЧЯНТД?

По умолчанию для сетевых интерфейсов для интернета используется правило "ipcp name-servers" т.е. в итоге получаем согласно WEB "http://192.168.1.1/dashboard" подробности данного соединения раздел DNS, например такой - DNS от провайдера и сам роутер (наличие последней зависит от записи "Серверы DNS")

IP_DNS1_Провайдер
IP_DNS2_Провайдер
192.168.1.1

а согласно

    <file name="temp:resolv.conf">
        <![CDATA[
nameserver 192.168.1.1
nameserver IP_DNS1_провайдера
nameserver IP_DNS2_провайдера
options timeout:1 attempts:1 rotate

 

При настройках

1.opkg dns-override
2.на http://192.168.1.1/controlPanel/secureInternet "Серверы DNS" указан сам роутер 192.168.1.1
3.на каждом сетевом интерфейсе интернета указан параметр "ipcp no name-servers"

то на выходе согласно WEB "http://192.168.1.1/dashboard" подробности данного интернет соединения раздел DNS уже имеем только одну запись
192.168.1.1 сам роутер

и 

    <file name="temp:resolv.conf">
        <![CDATA[
nameserver 192.168.1.1
options timeout:1 attempts:1 rotate

т.е. на любом интернет интерфейсе в поле DNS стоит сам роутер, а все запросы в том числе и от лок.сервисов на самом роутере в данном случае будут идти через основной канал если их более одного

/ # dig mail.ru

; <<>> DiG 9.16.3 <<>> mail.ru
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 58623
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mail.ru.                       IN      A

;; ANSWER SECTION:
mail.ru.                14      IN      A       217.69.139.202
mail.ru.                14      IN      A       217.69.139.200
mail.ru.                14      IN      A       94.100.180.201
mail.ru.                14      IN      A       94.100.180.200

;; Query time: 28 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Tue Aug 11 21:26:15 MSK 2020
;; MSG SIZE  rcvd: 100

/ # 

/ # netstat -ntulp | grep :53
tcp        0      0 :::53                   :::*                    LISTEN      784/AdGuardHome
udp        0      0 0.0.0.0:53ххх           0.0.0.0:*                           799/ndnproxy
udp        0      0 :::53                   :::*                                784/AdGuardHome
/ # 

/ # traceroute mail.ru
traceroute to mail.ru (94.100.180.201), 30 hops max, 38 byte packets
 1  br_Inet_основной.ru (хх.хх.хх.1)  4.489 ms  13.007 ms  4.318 ms
 2  хх.хх.хх.хх (хх.хх.хх.48)  4.011 ms  хх.хх.хх.44 (хх.хх.хх.44)  3.937 ms  3.962 ms
 3  хх.хх.хх.85 (хх.хх.хх.85)  24.998 ms  28.165 ms  25.008 ms
...

А сам клиент на профиле где Инте2 основной

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

  1    <1 мс    <1 мс    <1 мс  G-KN [192.168.1.1] 
  2     1 ms     1 ms     1 ms  v_Inet2.ru [хх.хх.хх.26] 
  3     2 ms     1 ms     2 ms  v_Inet2.ru [хх.хх.хх.1] 
  4     5 ms     6 ms     5 ms  хх.хх.хх.21 
  5    10 ms    10 ms    10 ms  хх.хх.хх.17 
...

В данном случае перемена клиентом профиля с основного на любой созданной роли не играет, так как сервер DNS он один для любого интерфейса выхода в интернет -> сам роутер => основной канал (основной профиль)

Link to comment
Share on other sites

я немного про другое

в одном случае (общий профиль) при обращении к кинетику мне отвечает AdGuard, чего я и ожидаю

во втором случае (policy) при обращении к кинетику мне отвечает ndnproxy

про то, как и куда лезет отвечающий мне демон на ответом, мы ещё не дошли. вопрос в том, кто мне отвечает. только что перепроверил ещё раз, всё так, как я описываю.

 

Link to comment
Share on other sites

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

я немного про другое

в одном случае (общий профиль) при обращении к кинетику мне отвечает AdGuard, чего я и ожидаю

во втором случае (policy) при обращении к кинетику мне отвечает ndnproxy

про то, как и куда лезет отвечающий мне демон на ответом, мы ещё не дошли. вопрос в том, кто мне отвечает. только что перепроверил ещё раз, всё так, как я описываю.

 

Такое поведение идет уже давно когда пробовал DNSmasq и DNSproxy, поиск по форуму "opkg dns-override", а именно для простоты локальные сервисы роутера как работали через свой DNS так и работают в отличие от внешних запросов.

Так же в подтверждение сказанного ответ разработчиков

Смотрите команду "netstat -ntulp" для 53 порта, после выполнения "opkg dns-override"

Link to comment
Share on other sites

На верно я погорячился вверху что должно работать.

Так как AdguardHome весит на br0 (основной роутера 192.168.1.1 или в моем случае 192.168.130.100) и лок.сервисы спок.уходят по нему, то со вторым каналом и созданным профилем доступа и в нем клиент оказалось не все так просто.

При основном профиле - основной Инет1 рез. Инет2

AdGuardHome по конф

bind_host: 192.168.130.100
..
dns:
  bind_host: 0.0.0.0
  port: 53

В итоге

/ # netstat -ntulp | grep :53
tcp        0      0 :::53                   :::*                    LISTEN      791/AdGuardHome
udp        0      0 :::53                   :::*                                791/AdGuardHome
/ # 

ip name-server 192.168.130.100 "" on Home

и откл. DNS провайдера

т.е. основной профиль все работает.

 

Переводим клиента в новый профиль где основной канал Инет2

ip hotspot
...
    host хх:хх:хх:хх:хх:e2 policy Policy0

ip policy Policy0
    description Inet2
    permit global PPTP0
    permit global PPPoE0

так же на Инет2 игнорирование DNS провайдера, иначе просто в таблицу маршрута прописаны будут 
DNS провайдера на данный интерфейс Инет2 и будут работать они, а хотелось бы использовать 
AdGuardHome так же для данного профиля Policy0.

 

Но не тут то было, клиент вообще не может обработать DNS запрос и скорей всего из-за REDIRECT, так как имеем hotspot

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

Chain _NDM_HOTSPOT_DNSREDIR (1 references)
 pkts bytes target     prot opt in     out     source               destination         
   71  4536 REDIRECT   udp  --  br0    *       0.0.0.0/0            0.0.0.0/0            mark match 0xffffd00 PKTTYPE = unicast udp dpt:53 redir ports 41100
    0     0 REDIRECT   tcp  --  br0    *       0.0.0.0/0            0.0.0.0/0            mark match 0xffffd00 PKTTYPE = unicast tcp dpt:53 redir ports 41100

Chain _NDM_HOTSPOT_PRERT (1 references)
...
   18   938 MARK       all  --  br0    *       Клиент_Policy0        0.0.0.0/0            MARK set 0xffffd00
   18   938 CONNMARK   all  --  br0    *       Клиент_Policy0        0.0.0.0/0            CONNMARK save
...

где 41100 весит ndnproxy


ndnproxy 665 root    4u  IPv4        995      0t0  UDP *:41100 
ndnproxy 665 root    5u  IPv4        996      0t0  UDP *:50876 
ndnproxy 665 root    6u  IPv6        997      0t0  UDP *:41100 
ndnproxy 665 root    7u  sock        0,6      0t0  998 protocol: UDPv6

ndnproxy 665 root    8u  IPv4        999      0t0  TCP *:41100 (LISTEN)
ndnproxy 665 root    9u  IPv6       1000      0t0  TCP *:41100 (LISTEN)

 

 

Link to comment
Share on other sites

проясняется понемногу. спасибо за упоминание iptables ))

1) ndnproxy слушает на 41100 порту.

~ # netstat -ntulp | grep /ndn | grep LISTEN
tcp        0      0 0.0.0.0:41100           0.0.0.0:*               LISTEN      574/ndnproxy
tcp        0      0 :::41100                :::*                    LISTEN      574/ndnproxy

2) вывод 

~ # iptables-save | grep 0xffffd00

пустой, если в Policy0 пусто

3) при добавлении 192.168.23.94 (например) в Policy0 (через gui) вывод побогаче:

~ # iptables-save | grep 0xffffd00
-A _NDM_HOTSPOT_DNSREDIR -d 192.168.23.1/32 -i br0 -p udp -m mark --mark 0xffffd00 -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -d 192.168.23.1/32 -i br0 -p tcp -m mark --mark 0xffffd00 -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -d 10.1.30.1/32 -i br1 -p udp -m mark --mark 0xffffd00 -m udp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_DNSREDIR -d 10.1.30.1/32 -i br1 -p tcp -m mark --mark 0xffffd00 -m tcp --dport 53 -j REDIRECT --to-ports 41100
-A _NDM_HOTSPOT_PRERT -s 192.168.23.94/32 -i br0 -j MARK --set-xmark 0xffffd00/0xffffffff

где 192.168.23.1/32 это кинетик в домашнем сегменте, 10.1.30.1 - гостевая сеть (откуда она? раньше была в Policy1, которую я удалил, это хвост какой-то остался) 

то есть понятно, что действительно на запросы от устройства в Policy0 отзывается ndnproxy вместо AdGuard. непонятно, почему и зачем так сделано.

надеюсь на помощь разработчиков и призываю их в пост.

Edited by moomey
  • Upvote 1
Link to comment
Share on other sites

отвечу сам себе

~ # cat /opt/etc/ndm/netfilter.d/true-disable-ndnproxy.sh
#!/bin/sh

logger "$table reloaded"

if [ "$table" == "nat" ]
then
        iptables -F _NDM_HOTSPOT_DNSREDIR -t nat
        logger "nat chain _NDM_HOTSPOT_DNSREDIR flushed by /opt/etc/ndm/netfilter.d/ script"
fi

ну, хоть как. всем спасибо

  • Thanks 2
Link to comment
Share on other sites

  • 1 year later...
В 14.08.2020 в 14:10, moomey сказал:

отвечу сам себе

~ # cat /opt/etc/ndm/netfilter.d/true-disable-ndnproxy.sh
#!/bin/sh

logger "$table reloaded"

if [ "$table" == "nat" ]
then
        iptables -F _NDM_HOTSPOT_DNSREDIR -t nat
        logger "nat chain _NDM_HOTSPOT_DNSREDIR flushed by /opt/etc/ndm/netfilter.d/ script"
fi

ну, хоть как. всем спасибо

Приветствую Вас! Вам удалось подружиться с ndnproxy?

Я также при использовании AdGuardHome испытываю массу проблем.

И первая из них, Клиенты гостевой сети потеряли доступ в интернет. А также Я теперь не могу выходить в интернет через подключения к ВПН серверамкинетика IKEv2, IpSec, а также некоторые проблемы со статической маршрутизацией
Мне служба поддержки дала намеки на Policy  - но для меня это нечто абсолютно новое.

Подскажете куда двигаться? Возможно у вас есть готовое решение?

Спасибо

 

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.

 Share

  • Recently Browsing   0 members

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