Temat: Problem z adresem DNS Pi-hole wysyłanym przez dnsmasq

Witajcie,

kilka dni temu zmieniłem swoje raspberrypi w serwer DNS blokujący domeny nieporządane - Pi-hole. W centrum sieci mam router Archer C7 z oprogramowaniem od Cezarego (OpenWRT 18.06), który przy pomocy dnsmasq przydziela klientom adresy IP. Niestety mam problem z tym, że dnsmasq wysyła adres IPv4 Pi-hole natomiast adres IPv6 DNS pozostawia swój. W konsekwencji wszystkie klienty Windows 10 jakie mam w sieci ustawiają "domyślny" serwer DNS jako ten IPv6, zapasowy jako IPv4 i zapytania o adres "wyciekają" bezpośrednio przez router, bez odpytywania Pi-hole (sprawdziłem przez nslookup na windowsie, że dla zapytania o jakiś adres www zgłasza się router jako DNS po IPv6). W sieci działa też NAS synology - on natomiast ustawia domyślny adres DNS jako IPv4 natomiast zapasowy jako IPv6. Zapytania DNS z Synology przechodzą wprawdzie przez Pi-hole ale chciałem zupełnie wyeliminować rozgłaszanie w sieci adresu DNS routera, lub zmusić dnsmasq routera do wysyłania poprawnego adresu IPv6 przypisanego do Pi-hole.

Podsumowując - jak zmusić router (dnsmasq) do wysyłania adresu serwera DNS jako adres IPv4 oraz IPv6 przypisanego do Pi-hole? Ewentualnie jak zablokować rozgłaszanie adresu serwera DNS po IPv6, zostawiając w sieci wyłącznie adres IPv4? Chciałem zrobić to zgodnie ze sztuką, na razie poradziłem sobie poprzez ustawienie na sztywno w pliku "/etc/config/network" adresu IP serwera z Pi-hole, oraz pominięciem serwerów DNS dostawcy internetowego. Nie jestem szczególnie obeznany w technologiach sieciowych więc przepraszam za ewentualne błędy merytoryczne mojego posta smile

Adresy w sieci:
Pi-hole: 192.168.0.11
OpenWRT (router): 192.168.0.1

Poniżej pliki konfiguracyjne jakie mam w swoich urządzeniach:
Router OpenWRT 18.06

root@OpenWrt:~# cat /etc/config/dhcp

config dnsmasq
        option domainneeded '1'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.auto'
        option nonwildcard '1'
        option localservice '1'
        list rebind_domain 'free.aero2.net.pl'

config dhcp 'lan'
        option interface 'lan'
        option leasetime '12h'
        option dhcpv6 'server'
        option ra 'server'
        option start '10'
        option ra_management '1'
        option limit '90'
        list dhcp_option '6,192.168.0.11'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'

config odhcpd 'odhcpd'
        option maindhcp '0'
        option leasefile '/tmp/hosts/odhcpd'
        option leasetrigger '/usr/sbin/odhcpd-update'
        option loglevel '4'
root@OpenWrt:~# cat /etc/config/network

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config globals 'globals'
        option ula_prefix 'fdc2:eef9:bc42::/48'

config interface 'lan'
        option type 'bridge'
        option ifname 'eth1.1'
        option proto 'static'
        option netmask '255.255.255.0'
        option ip6assign '60'
        option ipaddr '192.168.0.1'

config interface 'wan'
        option ifname 'eth0.2'
        option proto 'dhcp'
        option dns '192.168.0.11'
        option peerdns '0'

config interface 'wan6'
        option ifname 'eth0.2'
        option proto 'dhcpv6'

config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '2 3 4 5 0t'

config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '1 6t'
root@OpenWrt:~# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 127.0.0.1:139           0.0.0.0:*               LISTEN
tcp        0      0 192.168.0.1:139         0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN
tcp        0      0 192.168.0.1:53          0.0.0.0:*               LISTEN
tcp        0      0 89.74.164.200:53        0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.1:445           0.0.0.0:*               LISTEN
tcp        0      0 192.168.0.1:445         0.0.0.0:*               LISTEN
tcp        0    288 192.168.0.1:22          192.168.0.99:50221      ESTABLISHED
tcp        0      0 fdc2:eef9:bc42::1:139   :::*                    LISTEN
tcp        0      0 ::1:139                 :::*                    LISTEN
tcp        0      0 :::80                   :::*                    LISTEN
tcp        0      0 fe80::16cc:20ff:fe67:d3a8:53 :::*                    LISTEN
tcp        0      0 fe80::16cc:20ff:fe67:d3a9:53 :::*                    LISTEN
tcp        0      0 ::1:53                  :::*                    LISTEN
tcp        0      0 fe80::16cc:20ff:fe67:d3ab:53 :::*                    LISTEN
tcp        0      0 fe80::16cc:20ff:fe67:d3aa:53 :::*                    LISTEN
tcp        0      0 fdc2:eef9:bc42::1:53    :::*                    LISTEN
tcp        0      0 fe80::16cc:20ff:fe67:d3aa:53 :::*                    LISTEN
tcp        0      0 fe80::16cc:20ff:fe67:d3ab:53 :::*                    LISTEN
tcp        0      0 fe80::c8ef:adff:fe94:1e75:53 :::*                    LISTEN
tcp        0      0 :::22                   :::*                    LISTEN
tcp        0      0 :::443                  :::*                    LISTEN
tcp        0      0 fdc2:eef9:bc42::1:445   :::*                    LISTEN
tcp        0      0 ::1:445                 :::*                    LISTEN

NAS Synology:

user@Syno:/$ cat /etc/resolv.conf
nameserver      192.168.0.11
nameserver      fdc2:eef9:bc42::1
domain  lan

Pi-hole:

pi@raspberrypi:~ $ ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.11  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fdc2:eef9:bc42:0:8e1f:2252:801a:6cdd  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::b568:92e6:ad2a:eff1  prefixlen 64  scopeid 0x20<link>
        inet6 fdc2:eef9:bc42::b0d  prefixlen 128  scopeid 0x0<global>
        ether b8:27:eb:df:f8:f8  txqueuelen 1000  (Ethernet)
        RX packets 16722  bytes 3070742 (2.9 MiB)
        RX errors 0  dropped 20  overruns 0  frame 0
        TX packets 14105  bytes 7721371 (7.3 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

2 (edytowany przez Cezary 2018-08-07 09:08:06)

Odp: Problem z adresem DNS Pi-hole wysyłanym przez dnsmasq

Jeżeli adres ipv6 i dns dostajesz przez odhcpd (a pewnie tak jest) to po prostu odinstaluj odhcpd i wywal sekcje z /etc/config/dhcp.
Nawet nie wiem jak w nim wysłać inne dane do klienta, muszę się douczyć jak on to robi.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: Problem z adresem DNS Pi-hole wysyłanym przez dnsmasq

OK, spróbuję odinstalować jak wrócę do domu. Chciałem tylko zrozumieć skąd odhcpd zainstalowane na routerze może dostawać adres IPv6 serwera DNS wskazujący na ten właśnie router? Czy w ogóle adresacja IPv6 jest wykorzystywana do czegoś istotnego w domowych sieciach lan / czy odinstalowanie pakietu odhcpd może popsuć mi lan?

Czy sekcję "lan" oczyścić również z poniższych rzeczy, czy mogą zostać?

        option dhcpv6 'server'
        option ra 'server'
        option ra_management '1'

4

Odp: Problem z adresem DNS Pi-hole wysyłanym przez dnsmasq

Domyślnie openwrt ma pakiety odpowiedzialne za ipv6. Jeżeli nie używasz tego w sieci domowej  - możesz spokojnie wywalić i pakiety i sekcje konfiguracyjne z tym związane.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Problem z adresem DNS Pi-hole wysyłanym przez dnsmasq

Najlepiej całe IPv6 wywalić jak nie używasz.

6

Odp: Problem z adresem DNS Pi-hole wysyłanym przez dnsmasq

Cezary dzięki za naprowadzenie na odhcpd. Trochę eksperymentowałem z ustawieniami dnsmasq (nie chciałem odinstalowywać pakietów, traktując opcję odinstalowania jako ostateczną) i znalazłem poniższe ustawienia, które wydają się spełniać moje oczekiwania.

W sekcji lan pliku /etc/config/dhcp:

config dhcp 'lan'
        option ra 'disabled'
        option ra_management '0'
        option dhcpv6 'disabled'

I restartujemy odhcpd oraz dnsmasq:

/etc/init.d/odhcpd restart
/etc/init.d/dnsmasq restart

Adres DNS po IPv6 nie jest przekazywany ani do Windowsa, ani do Linuxa ani nawet do Androida smile Będę śledził jeszcze przez jakiś czas czy zapytania DNS nie wyciekają z pominięciem Pi-hole ale wstępna obserwacja jest obiecująca.
Dzięki za pomoc.