1

Temat: WireGuard site to site i DNSy w LANach.

Zachciało mi się spinać moje trzy domowe sieci WireGuardem by mieć dostęp do wszystkich urządzeń w tych lokalizacjach. Schemat jest stosunkowo prosty. Każda sieć ma tylko jeden router z OpenWRT i z publicznym, dynamicznym adresem IP. Dostęp z zewnątrz jest poprzez DDNS. Dwie sieci 192.168.1.0/27 i 192.168.3.1/27 spiąłem już i działa to stabilnie. Trzecia sieć 192.168.2.0/28 czeka na spięcie z pozostałymi i nie powinno to mi sprawić większego kłopotu. Odwoływanie się do maszyn w każdej podsieci przez adres IP działa idealnie tzn. ping wywołany na końcówce LAN1 (np. 192.168.1.2) dociera do końcówki LAN2 (np. 192.168.3.2). Muszę skonfigurować sobie to samo tylko na DNSach, bo już nie ogarniam wszystkich istotnych adresów IP. Czytałem jak to zrobić w poprzedni weekend, czytałem cały dzisiejszy dzień i nic. Jedna wielka pustka w głowie. Za dużo dla mnie tych wszystkich kombinacji, artykułów, problemów. Po prostu zgłupiałem i nie wiem od czego zacząć, który artykuł, porada, będzie najlepsza dla mnie, by uzyskać dostęp po DNS. Na domiar złego sieci LAN1 i LAN2 są oddalone od siebie o 1200km. Jak coś spieprzę w tej oddalonej to będzie nie fajnie, bo przemieszczam się pomiędzy nimi raz na kilka miesięcy. Podpowiedzcie na początek, za co się zabrać na początku, z jakiego artykułu skorzystać? Już w samym Luci jest dla mnie za dużo opcji DNSowych.

Xiaomi Mi Router AX9000 ver. EU + OpenWrt 25.12.0
NETGEAR Nighthawk X4S R7800 + OpenWRT 25.12.0
Netgear Nighthawk R7000 & 6400 v2 + FreshTomato
TP-Link TL-WR842ndv1 + DD-WRT

2

Odp: WireGuard site to site i DNSy w LANach.

Ale co chcesz zrobić? Nadać określonym hostom w tych 3 sieciach nazwy? Dodaj do /etc/hosts nazwy na każdym z trzech routerów i tyle, najproszta i najgłupsza metoda, bo w 3 miejscach musisz pilnować żeby to było spójne ale to się da skryptem obrobić.

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

3

Odp: WireGuard site to site i DNSy w LANach.

W każdej z podsieci mam dostęp do urządzeń po DNSach. Na routerach działają serwery DHCP i DNS. Chciałbym odwoływać się do komputera z odległej sieci po nazwie. Np. chciałbym, aby zadziałało polecenie ping komputer.lan3 wywołane z komputera.lan1 i odwrotnie. Chyba lepiej tego już nie opiszę, nie jestem informatykiem.

Xiaomi Mi Router AX9000 ver. EU + OpenWrt 25.12.0
NETGEAR Nighthawk X4S R7800 + OpenWRT 25.12.0
Netgear Nighthawk R7000 & 6400 v2 + FreshTomato
TP-Link TL-WR842ndv1 + DD-WRT

4 (edytowany przez ZbiG 2023-10-28 20:24:10)

Odp: WireGuard site to site i DNSy w LANach.

Cezary napisał/a:

Ale co chcesz zrobić? Nadać określonym hostom w tych 3 sieciach nazwy? Dodaj do /etc/hosts nazwy na każdym z trzech routerów i tyle, najproszta i najgłupsza metoda, bo w 3 miejscach musisz pilnować żeby to było spójne ale to się da skryptem obrobić.

OK. Chyba zrozumiałem. Sprawdzę to zaraz. Myślałem o jakimś automacie zasysającym nazwy DNS z jednego serwera (routera) do drugiego. W sumie na tym etapie sieci takie rozwiązanie powinno mi wystarczyć, nawet gdybym miał wszystkie DNSy ręcznie edytować.

Xiaomi Mi Router AX9000 ver. EU + OpenWrt 25.12.0
NETGEAR Nighthawk X4S R7800 + OpenWRT 25.12.0
Netgear Nighthawk R7000 & 6400 v2 + FreshTomato
TP-Link TL-WR842ndv1 + DD-WRT

5

Odp: WireGuard site to site i DNSy w LANach.

No tak. Więc zrób tak jak napisalem. W przeciwnym przypadku musiał byś korzystac w sieci 1 z dnsów sieci 1 i 2 i3, a tego pewnie nie chcesz bo jak padnie połączenie to stracisz dnsy i ogóle to nie będzie działało.

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

6

Odp: WireGuard site to site i DNSy w LANach.

Ten automat to właśnie prosty skrypcik który robi lub kopiuje nazwy....

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

7 (edytowany przez ZbiG 2023-10-28 22:53:09)

Odp: WireGuard site to site i DNSy w LANach.

Cezary napisał/a:

Ten automat to właśnie prosty skrypcik który robi lub kopiuje nazwy....

Zrobiłem i działa. Bardzo Ci dziękuję Cezary za podpowiedź. Robiłem tak w Windowsach i nie przypuszczałem, że i w OpenWRT tak można.
O to mi chodziło, choć myślałem, że jest jakiś sposób na to by serwery w obu sieciach LAN "gadały" ze sobą, wymieniały się tylko lokalnymi adresami DNS.
A może jest jakiś sposób, by odwołania do DNSów z konkretnym sufiksem np. *.lan2 kierowane były z sieci *.lan1 przez WireGuarda do odległego serwera.lan2 (routera)? Czy nie za bardzo kombinuję?

Cezary napisał/a:

No tak. Więc zrób tak jak napisalem. W przeciwnym przypadku musiał byś korzystac w sieci 1 z dnsów sieci 1 i 2 i3, a tego pewnie nie chcesz bo jak padnie połączenie to stracisz dnsy i ogóle to nie będzie działało.

W sumie to chciałbym tak, bo Internet nie jest dostarczany przez WireGuarda. Połaczone sa tylko LANy. Internet leci "normalną" trasą przez providera.

Xiaomi Mi Router AX9000 ver. EU + OpenWrt 25.12.0
NETGEAR Nighthawk X4S R7800 + OpenWRT 25.12.0
Netgear Nighthawk R7000 & 6400 v2 + FreshTomato
TP-Link TL-WR842ndv1 + DD-WRT

8

Odp: WireGuard site to site i DNSy w LANach.

ZbiG napisał/a:

jest jakiś sposób na to by serwery w obu sieciach LAN "gadały" ze sobą, wymieniały się tylko lokalnymi adresami DNS.
A może jest jakiś sposób, by odwołania do DNSów z konkretnym sufiksem np. *.lan2 kierowane były z sieci *.lan1 przez WireGuarda do odległego serwera.lan2 (routera)? Czy nie za bardzo kombinuję?

Oczywiście jest, czytaj https://eko.one.pl/?p=openwrt-dns#obsug … owychdomen

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

9

Odp: WireGuard site to site i DNSy w LANach.

Cezary napisał/a:
ZbiG napisał/a:

jest jakiś sposób na to by serwery w obu sieciach LAN "gadały" ze sobą, wymieniały się tylko lokalnymi adresami DNS.
A może jest jakiś sposób, by odwołania do DNSów z konkretnym sufiksem np. *.lan2 kierowane były z sieci *.lan1 przez WireGuarda do odległego serwera.lan2 (routera)? Czy nie za bardzo kombinuję?

Oczywiście jest, czytaj https://eko.one.pl/?p=openwrt-dns#obsug … owychdomen

O! Super! To jest to, o co mi chodziło od początku, tyle tylko, że coś nie działa. Na routerze 192.168.3.1 zrobiłem (bez #)

# uci add_list dhcp.@dnsmasq[0].server="/.lan1/192.168.1.1"
# uci commit dhcp
# /etc/init.d/dnsmasq restart

Na routerze 192.168.1.1

# uci add_list dhcp.@dnsmasq[0].server="/.lan3/192.168.3.1"
# uci commit dhcp
# /etc/init.d/dnsmasq restart

Nawet zrestartowałem oba routery i dalej nie działa tzn. ping nazwa.lan1 nie odpowiada z lokalizacji lan3. Myślę, że czegoś nie wiem. Może serwery DNS niechętnie wymieniają się nazwami z obcą siecią? Dlaczego?

Xiaomi Mi Router AX9000 ver. EU + OpenWrt 25.12.0
NETGEAR Nighthawk X4S R7800 + OpenWRT 25.12.0
Netgear Nighthawk R7000 & 6400 v2 + FreshTomato
TP-Link TL-WR842ndv1 + DD-WRT

10

Odp: WireGuard site to site i DNSy w LANach.

Czy 192.168.1.1 jako dns jest osiągalny z sieci 192.168.3.1? Czy on odpowiada na zapytania o nazwy?

Zrób

nslookup nazwa.lan1 192.168.1.1

będąc w na routerze 192.168.3.1 i zobacz czy działa.

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

11 (edytowany przez ZbiG 2023-10-29 11:04:45)

Odp: WireGuard site to site i DNSy w LANach.

Cezary napisał/a:

Czy 192.168.1.1 jako dns jest osiągalny z sieci 192.168.3.1? Czy on odpowiada na zapytania o nazwy?

Zrób

nslookup nazwa.lan1 192.168.1.1

będąc w na routerze 192.168.3.1 i zobacz czy działa.

Zrobiłem.
Ping 192.168.1.1 z routera 192.168.3.1 działa, a nslookup nie działa.
Nslookup z 192.168.1.1 też nie działa w kierunku 192.168.3.1
_________________________________________
root@Router:~# nslookup router.lan1 192.168.1.1
;; connection timed out; no servers could be reached

root@Router:~# nslookup Router.lan1 192.168.1.1
;; connection timed out; no servers could be reached

root@Router:~# nslookup Router.lan1
;; connection timed out; no servers could be reached

root@Router:~# nslookup 192.168.1.1
Server:         127.0.0.1
Address:        127.0.0.1:53

** server can't find 1.1.168.192.in-addr.arpa: NXDOMAIN

root@Router:~#

Xiaomi Mi Router AX9000 ver. EU + OpenWrt 25.12.0
NETGEAR Nighthawk X4S R7800 + OpenWRT 25.12.0
Netgear Nighthawk R7000 & 6400 v2 + FreshTomato
TP-Link TL-WR842ndv1 + DD-WRT

12

Odp: WireGuard site to site i DNSy w LANach.

Albo masz coś zablokowane np. na firewallu albo dnsmasq odmawia ci współpracy jak pytasz się z innych sieci. Sprawdź co go boli.

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

13 (edytowany przez ZbiG 2023-10-29 12:06:28)

Odp: WireGuard site to site i DNSy w LANach.

Cezary napisał/a:

Albo masz coś zablokowane np. na firewallu albo dnsmasq odmawia ci współpracy jak pytasz się z innych sieci. Sprawdź co go boli.

Też tak myślę, że jest jakaś blokada w serwerach DNS. Będę szukał. Dziś już nie zawracam Ci głowy. Dzięki.

Zainstalowałem nmap na 192.168.3.1 i wykonałem polecenie

root@Router:~# nmap -v 192.168.1.1 -p1-64
Starting Nmap 7.93 ( https://nmap.org ) at 2023-10-29 11:32 CET
Initiating Ping Scan at 11:32
Scanning 192.168.1.1 [4 ports]
Completed Ping Scan at 11:32, 0.09s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 11:32
Completed Parallel DNS resolution of 1 host. at 11:32, 0.00s elapsed
Initiating SYN Stealth Scan at 11:32
Scanning 192.168.1.1 [64 ports]
Discovered open port 53/tcp on 192.168.1.1
Discovered open port 22/tcp on 192.168.1.1
Completed SYN Stealth Scan at 11:32, 1.26s elapsed (64 total ports)
Nmap scan report for 192.168.1.1
Host is up (0.038s latency).
Not shown: 62 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
53/tcp open  domain

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 1.71 seconds
           Raw packets sent: 80 (3.496KB) | Rcvd: 65 (2.596KB)
root@Router:~#

Port TCP i UDP 53 na routerze 192.168.1.1 jest otwarty, więc firewall go nie blokuje.

Xiaomi Mi Router AX9000 ver. EU + OpenWrt 25.12.0
NETGEAR Nighthawk X4S R7800 + OpenWRT 25.12.0
Netgear Nighthawk R7000 & 6400 v2 + FreshTomato
TP-Link TL-WR842ndv1 + DD-WRT

14 (edytowany przez ZbiG 2023-10-31 00:01:07)

Odp: WireGuard site to site i DNSy w LANach.

ZbiG napisał/a:
Cezary napisał/a:

Czy 192.168.1.1 jako dns jest osiągalny z sieci 192.168.3.1? Czy on odpowiada na zapytania o nazwy?

Zrób

nslookup nazwa.lan1 192.168.1.1

będąc w na routerze 192.168.3.1 i zobacz czy działa.

Zrobiłem.
Ping 192.168.1.1 z routera 192.168.3.1 działa, a nslookup nie działa.
Nslookup z 192.168.1.1 też nie działa w kierunku 192.168.3.1
_________________________________________
root@Router:~# nslookup router.lan1 192.168.1.1
;; connection timed out; no servers could be reached

root@Router:~# nslookup Router.lan1 192.168.1.1
;; connection timed out; no servers could be reached

root@Router:~# nslookup Router.lan1
;; connection timed out; no servers could be reached

root@Router:~# nslookup 192.168.1.1
Server:         127.0.0.1
Address:        127.0.0.1:53

** server can't find 1.1.168.192.in-addr.arpa: NXDOMAIN

root@Router:~#

Jest mały sukces. Co prawda porty TCP/UDP 53 były odblokowane na interfejsach WireGuarda, to serwery DNS nie odpowiadały.
Zmieniłem w pliku /etc/config/dhcp wpis na option localservice '0' (w Luci "Local service only" bez ptaszka) i DNSy zaczęły gadać ze mną. Nslookup działa
_______________________
root@Router3:~# nslookup router1.lan1 192.168.1.1
Server:         192.168.1.1
Address:        192.168.1.1:53

Name:   router1.lan1
Address: 192.168.1.1
_______________________
root@Router1:~# nslookup router3.lan3 192.168.3.1
Server:         192.168.3.1
Address:        192.168.3.1:53

Name:   router3.lan3
Address: 192.168.3.1
_______________________
Niestety dalej ping działa tylko po IP, po DNS pomiędzy sieciami nie chce i to pomimo ustawionego przekierowania po suffiksach
list server '/.lan1/192.168.1.1' na Routerze3
i
list server '/.lan3/192.168.3.1' na Routerze1

Walczę dalej. Może jakaś kolejna sugestia?

Xiaomi Mi Router AX9000 ver. EU + OpenWrt 25.12.0
NETGEAR Nighthawk X4S R7800 + OpenWRT 25.12.0
Netgear Nighthawk R7000 & 6400 v2 + FreshTomato
TP-Link TL-WR842ndv1 + DD-WRT

15

Odp: WireGuard site to site i DNSy w LANach.

Dodaj sobie jeszcze

list rebind_domain 'lan1'
list rebind_domain 'lan2'
list rebind_domain 'lan3'

I zrestartuj dnsamsq

U mnie czasami trzeszczało że  possible DNS-rebind attack detected:

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

16

Odp: WireGuard site to site i DNSy w LANach.

Cezary napisał/a:

Dodaj sobie jeszcze

list rebind_domain 'lan1'
list rebind_domain 'lan2'
list rebind_domain 'lan3'

I zrestartuj dnsamsq

U mnie czasami trzeszczało że  possible DNS-rebind attack detected:

Na routerze3 dodałem tylko
list rebind_domain 'lan1'
Śmiga, aż miło. Kolejna kawka się należy.
W kolejnym poście podsumuję walkę i opiszę dla potomnych co trzeba zrobić w podobnej sytuacji, by móc w obu sieciach odwoływać się do końcówek po DNSach.

Xiaomi Mi Router AX9000 ver. EU + OpenWrt 25.12.0
NETGEAR Nighthawk X4S R7800 + OpenWRT 25.12.0
Netgear Nighthawk R7000 & 6400 v2 + FreshTomato
TP-Link TL-WR842ndv1 + DD-WRT

17

Odp: WireGuard site to site i DNSy w LANach.

Podsumowanie.
Sytuacja początkowa to zestawiony poprawnie pomiędzy sieciami LAN1 (192.168.1.0/27) i LAN3 (192.168.3.0/27) tunel site2site WireGuarda na OpenWRT. Oba routery 192.168.1.1 i 192.168.3.1 posiadają zewnętrzne adresy IP przydzielane dynamicznie przez DHCP providera. Oczywiście konfiguracja DDNS jest pomocna do zestawienia takiego tunelu. Dostęp do Internetu z sieci LAN1 i LAN3 jest realizowany poprzez lokalnych providerów. Pingi do adresów IP w obu sieciach krążą poprawnie do i z końcowych maszyn np. ping 192.168.1.2 z końcówki 192.168.3.2 poprawnie odpowiada, natomiast nie działają odwołania po DNS pomiędzy sieciami tzn. ping Maszyna17.lan1 nie odpowiada z komputera Maszyna29.lan3 i to było dla mnie problemem. Rozwiązanie (nie jedyne) poniżej.

1. Istotne jest na początku, aby domeny w LAN1 i LAN3 miały różne nazwy. Ja nazwałem je odpowiednio lan1 i lan3. Będą to jednocześnie suffiksy dołączane do nazw terminali w tych sieciach. Pomoże to w identyfikacji maszyn o tej samej nazwie w różnych sieciach.
2. W pliku /etc/config/dhcp Routera1 w sekcji config dnsmasq dodajemy/zmieniamy wpisy:

    option local '/lan1/'
    option domain 'lan1'
    option expandhosts '1'
    option localservice '0'
    list server '/.lan3/192.168.3.1'
    list rebind_domain 'lan3'

W Luci to samo można zrobić w zakładce /Network/DHCP and DNS/General Settings/

Local server /lan1/
Local domain lan1
DNS forwardings /.lan3/192.168.3.1
Domain whitelist lan3
Local service only □

3. W pliku /etc/config/dhcp Routera3 w sekcji config dnsmasq dodajemy/zmieniamy wpisy:

    option local '/lan3/'
    option domain 'lan3'
    option expandhosts '1'
    option localservice '0'
    list server '/.lan1/192.168.1.1'
    list rebind_domain 'lan1'

4. W obu routerach restartujemy serwery DNS.

service dnsmasq restart

5. Cieszymy się odwołaniami po DNS do urządzeń w połączonych sieciach LAN z wykorzystaniem suffiksów lan1 i lan3. Sprawdzamy czy:

Ping Komputer1.lan1 odpowiada z Komputer3.lan3 i odwrotnie Ping Komputer3.lan3 odpowiada z Komputer1.lan1.
Oczywiście w sieci LAN1 będzie działał również Ping Komputer1 (bez suffiksu .lan1).

Chyba można temat zamknąć za jakiś czas.

Xiaomi Mi Router AX9000 ver. EU + OpenWrt 25.12.0
NETGEAR Nighthawk X4S R7800 + OpenWRT 25.12.0
Netgear Nighthawk R7000 & 6400 v2 + FreshTomato
TP-Link TL-WR842ndv1 + DD-WRT

18 (edytowany przez cyniu88 2023-10-31 13:12:13)

Odp: WireGuard site to site i DNSy w LANach.

a jak sprawić   by pojedynczy klienci WG  (np laptop w sieci hotelowej)  mogli  łączyć  się po hostname?

Edit: dobra trzeba ustawić DNS adres na serwer WG

19

Odp: WireGuard site to site i DNSy w LANach.

cyniu88 napisał/a:

a jak sprawić   by pojedynczy klienci WG  (np laptop w sieci hotelowej)  mogli  łączyć  się po hostname?

W jakim sensie "łączyć  się po hostname?" Do czego łączyć?

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

20

Odp: WireGuard site to site i DNSy w LANach.

żeby można  było ping-ować hosty  po  XXX.lan1 i YYYY.lan3 z  swobodnego klienta WG.  Ale to działa jak w configu klienta podaj się adres serwera DNS  na ten z openwrt

21

Odp: WireGuard site to site i DNSy w LANach.

No tak. Możesz podać dnsy z openwrt i będziesz miał możliwość odpytania czegoś po nazwie.
Lub wpisz je sobie do hosts (na windowsie też to można zrobić).

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