1

Temat: DNS forward

Cześć

Mam klasyczną sieć lan1 z routerem1 openwrt z standardowym DNS1 podłączonego do wan1.
Router połączony jest siecią openvpn z innym routerem2 z DNS2 w którym w /etc/hosts są wpisane nazwy hostów które są potrzebne.

Jak zrobić, żeby nazwy tych hostów były również rozszyfrowywane na routerze1 i w sieci lan1?


Póki co próbowałem:
1. Bazując na: https://eko.one.pl/?p=openwrt-dns, dodałem wpis w /etc/config/network w wan: option dns 'router2' który pokazał się w cat /tmp/resolv.conf.d/resolv.conf.auto jako: nameserver router2, mimo to router1 nie rozszyfrowywuje wpisów z DNS2
2. Dopisałem w /etc/config/dhcp wpis  w sekcji lan: list dhcp_option "6,router2,router1" i mam połowiczny sukces - klienci routera1 rozszyforywują nazwy z DNS2. Jednakże nadal nie robi to router1 (w konsoli).
2a. co ciekawe gdybym wpisał odwrotnie ist dhcp_option "6,router1,router2" to klienci nie rozszyfrowywaliby nazw z DNS2

Pytanie czemu nie działa pkt 1?

2

Odp: DNS forward

1 Dodaj option peerdns 0 żeby tylko korzystał z router2 jako dnsów.

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

3

Odp: DNS forward

Spróbowałem z tą opcją niestety bezskutecznie.
Zrobiłem nawet tak, że wpisałem tylko DNS2 routera2 - nazwy z DNS2 też nie są widoczne.

Pomyślałem też że to może dlatego, że wpis zrobiłem w sekcji WAN network, a adres routera2 pochodzi z podsieci openvpn która jest przyklejona do LAN. Przeniosłem też do LAN ale bezskutecznie sad

4

Odp: DNS forward

Nie ma znaczenia w jakiej sekcji to jest, i tak idzie do jednego pliku.

Jeżeli router2  faktycznie rozwiązuje te nazwy to użycie go jako jednego musi działać - nie ma bata żeby było inaczej. Sprawdź czy nie masz jednak ustawionych innych dnsów, bo sądzę że jednak zrobiłeś coś po swojemu. Masz mieć w systemie tylko jeden dns - router2 i żaden inny jeżeli on ma rozwiązywać nazwy.

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

5

Odp: DNS forward

Jedyną być może istotną zmianę którą zrobiłem to wyłączyłem odhcpd bo nie chciałem mieszać w to IPv6

Badam dalej.
Zaciekawiło mnie, czemu router nie widzi wpisów dns2, a klienci1 którym podrzuca konfigurację widzą?
- sprawdziłem port 53 na router2 - jest otwarty [ok]
- sprawdziłem cat /tmp/resolv.conf.d/resolv.conf.auto, jest wpis router2
- ustawiłem wpis list dhcp_option "6,router1,router2" i włączyłem logowanie dns i sprawdziłem jak wyglądają zapytania od klienta1 dla komendy "ping klient2" (czyli pytanie o klienta2 podsieci2 zapisanej w /etc/host dsn2)

May 29 22:57:02 dnsmasq[13060]: 16 ipklient1/58266 query[A] klient2.lan from ipklient1
May 29 22:57:02 dnsmasq[13060]: 16 ipklient1/58266 config klient2.lan is NXDOMAIN
May 29 22:57:03 dnsmasq[13060]: 17 127.0.0.1/53411 query[PTR] 1retuorpi.in-addr.arpa from 127.0.0.1
May 29 22:57:03 dnsmasq[13060]: 17 127.0.0.1/53411 config iprouter1 is NXDOMAIN

Czyli jeśli dobrze zrozumiałem zapytanie poszło do router1, a router2 został totalnie olany.
(To zapytanie do 127.0.0.1 to jest ten wspomniany wewnętrzny cache? Pytam bo restartowałem, więc powinien być czysty)


W takim razie czemu gdy zmieniłem wpis na odwrotny dhcp_option "6,router2,router1" klienci1 widzą klientów2? Tu nie było zaskoczenia gdy zajrzałem w logowanie dns - nie było wpisu - bo zapewnie klienci1 po prostu ominęli router1 i zapytali bezpośrednio dns2 routera2
Jednakże jak wspomniałem to półśrodek i dodatkowo spowalniacz zapytań dns. Cel jest żeby to router1 rozszyfrowywał i cachował zapytania z dns2 routera2.


Dodam jeszcze taką poszlakę, bo jak wspomniałem router2 jest osiągalny przez openvpn i trasa do niego jest otwarta chwilę później niż dostęp do wan. Może router1 cały czas myli ip routera2 z czymś z wanu? (chociaż traceroute temu zaprzecza) Albo też router1 perfidnie pomija dns2 routera2 bo nie jest on dostępny od razu tylko chwilę później po ustanowieniu połączenia openvpn?

6 (edytowany przez WoT 2023-05-29 23:27:32)

Odp: DNS forward

Drążyłem dalej aż coś drgnęło!

Jak proponowałeś Cezary w router1 usunąłem wszystkie dnsy w dhcp pozostawiając tylko wpis "dns router2" i wymusiłem żeby korzystał tylko z dns2. Odbiło się to brakiem wpisów w logu dnsqueries - bo jak rozumiem wszystkie zapytania poszły na router2
Co się okazało:
- router2 zaczął przekazywać rozszyfrowane zapytania internetowe typu "wp.pl" poprawnie
- ale na zapytania typu "ping klient1" niczego nie zwraca, ponadto dla nieosiągalnych adresów zaczął pojawiać się błąd w logu "Possible DNS-rebind attack detected"
- a to po przekopaniu informacji na forach doprowadziło mnie, żeby sformułować pytania "ping klient2.lan2". I to zapytanie zaskoczyło!

Czyżby to router2 był DZIADEM, który nie udziela poprawnej odpowiedzi!!!??
Czemu trzeba dodawać zapytanie o domenę, żeby udzielił odpowiedzi?

Gdy przywróciłem pozostałe dnsy router2 przestał odpowiadać nawet na zapytanie z domeną ("ping klient2.lan2"). Nie mogę sobie pozwolić na takie rozwiązanie; zapytania przez openvpn są zbyt wolne; dns2 powinien być tylko odpytywany o klientów2

7

Odp: DNS forward

...z dokumentacji wynika, że na ostatnie pytanie powinna pomóc opcja domainneeded=0 tu niestety nie sad

8

Odp: DNS forward

Przestaw sobie także rebind_protection na 0, bo widać używasz domen z prywatnymi adresami.

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

9 (edytowany przez WoT 2023-05-31 19:58:50)

Odp: DNS forward

Niestety rebind_protection '0' też nic nie zmieniło sad

Dzisiaj mam jeszcze takie spostrzeżenie: komenda  `nslookup klient2` daje

Server:         127.0.0.1
Address:        127.0.0.1#53

** server can't find klient2: NXDOMAIN
** server can't find klient2: NXDOMAIN

ale gdy wyuszam użycie dns2 na routera2: `nslookup klient2 router2` to jest już jakiś konkret

Server:         router2
Address:        10.0.0.1#53

Name:      klient2
Address 1: 10.0.0.11
*** Can't find klient2: No answer

Da się jakoś zmusić zeby najpierw pytał router2 nie usuwając DNS'a ISP?
Kolejność w resolv.conf jest zachowana

# Interface wan
nameserver router2
nameserver ISP

10

Odp: DNS forward

Nie, openwrt pyta się wszystkiego na raz nie po kolei. Używaj jednego dns, z router2. Już to napisałem w poście 2.

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

11 (edytowany przez WoT 2023-05-31 20:01:31)

Odp: DNS forward

Tak, to póki co jedyne rozwiązanie, ale mało efektywne z uwagi na prędkość sad
I dodatkowo robi sie problematyczne w przypadku przełączania/padania sieci openvpn

12

Odp: DNS forward

Możesz sobie zrobić prymitywny skrypcik który po podniesieniu openvpn ustawi router2 a po jego zamknięciu przełączy na dnsy od isp. To żaden problem.

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