1

(21 odpowiedzi, napisanych Sprzęt / Hardware)

Zainteresowałbym się sprzętem na ipq8064/ipq8065. Jak Netgear R7800 / TP-Link C2600 / Linksys EA8500. Wygląda na to, że może niedługo uda się dodać do mastera poprawki do obsługi offlloadu pod dedykowane dwa rdzenie NSS. (https://forum.openwrt.org/t/ipq806x-nss … /82525/298)

Sam testuje na c2600 taki własny build i po kablu 600/60 zjada na śniadanie praktycznie bez udziału rdzeni bazowych. Wifi też przyspieszyło o 30%.

xury napisał/a:

okaże się, że po obu stronach są hosty o tym samym adresie (np. 192.168.1.12) to pewnie nie będę się mógł dostać do zdublowanych. Ewentualnie dostęp będzie losowy.

Nie rób tego! Nie doprowadzaj do sytuacji gdzie masz konflikty.
Masz trzy modele do zastosowania w swojej sieci (niektóre są jednak bez sensu).

A. Oddzielne sieci z routingiem. Ja tak mam. Jeden centralny router przez którego terminują wszystkie inne.
Routery po WG są spięte w ramach własnej adresacji np. 192.168.50.0/29 (R1 192.168.50.1, R2 192.168.50.2, R3...)
Lokalnie masz wtedy np. 192.168.2.0/24 dla LAN na R1 i dla niego podajesz w Allowed wszystkie inne (192.168.50.0/29, 192.168.3.0/24, 192.168.4.0/24, ...). R2 masz np. LAN na 192.168.3.0/24 i w allowed IPs podajesz sieci z pozostałych R1...R6 (np. 192.168.2.0/24, 192.168.4.0/24, ...). I tak dla każdego Rx podpiętego do tego VPN. Jak masz na R1 jakieś dodatkowe sieci - np. VLANy 192.168.99.0/24 to jak chcesz mieć do nich dostęp z pozostałych Rx to musisz oddać taki adres do AllowedIPs w pozostałych.

B. Jedna sieć na poziomie L3 z separowanymi zakresami DHCP. (bez sensu)
Robisz jedną dużą sieć np. 192.168.0.0/16 i ustawiasz to globalnie tak samo dla każdego routera z tą różnicą, że bramy są ustawione lokalnie np. R1. 192.168.0.1/16 R2. 192.168.0.2/16, etc...
Teraz dla każdego routera z osobna musisz ustawić inne zakresy adresów aby nie było konfliktów np. R1 - 192.168.0.10-192.168.0.253, R2 - 192.168.1.1 - 192.168.1.253, etc.. W Wireguard musisz tylko sprytnie wpisać routing... w krótym możę się okazać, że zrobi się pętle bo wysyłasz ruch przez tunel który i tak leci spowrotem lokalnie... Takie coś ogólnie możę działać na OpenVPN z L2.

C. Robisz to co w A. ale rozpinasz sieć opartą o GRE tak aby działała jak w B. W tym wypadku wireguard tylko tuneluje ruch miedzy routerami bez wiedzy o rozpiętym LAN. To jak pisałem w poprzednim poscie bedize działać ale też trochę reguł trzeba zrobić aby nie było problemów. Jak zerwie tunele to klienci zależni od odległego DHCP nie bedą mieć adresów. Chyba, ze postawiśz DHCP w failover itp. ale to juz sie robi imho dla Ciebie skórka za wyprawkę.

Pozdr.

xury napisał/a:

Czy na routerze "kliencie" też należy ustawiać firewall?

A czy po wstaniu z rana należy myć zęby?

xury napisał/a:

Rozumiem, że portu nie trzeba otwierać, ale resztę ustawiamy tak samo jak na "serwerze"?

Na kliencie i serwerze musi być tak skonfigurowany fw aby mógł zezwolić na ruch w obrębie sieci np. przekazywanie LAN-LAN

xury napisał/a:

Ja ustawiłem, ale nie wiem czy potrzebnie.  Tunel działa wszystkie hosty się widzą na obu stronach LAN, tak jak właśnie chciałem.

No i prawidłowo!

xury napisał/a:

Nie wiem tylko czy potrzebne to było na "kliencie" czy też wireguard robi to jakoś samemu?

Samemu to może tylko dodać Ci regułki dla routingu z AllowedIP.

xury napisał/a:

Czy Wireguard podobnie do OpenVPN wymaga innej adresacji łączonych LANów?

OpenVPN nie wymaga innej adresacji. Wszystko zależy do architektry sieci. Ale... OpenVPN może działać na L2 (TAP) i L3 (TUN).
Wireguard jest protokołem L3 więc nie wspiera takich rzeczy jak ARP, DHCP, Multicast... Po prostu to nie przejdzie przez tunel.
Jak chcesz mieć jeden LAN to musisz zrobić np. GRE in Wireguard. Poszukaj tackiego hasła - ja tutaj włąśnie z takim tematem byłem kilkma miesiecy temu i napisałem jak to ogarnąć. Ale nie jest to bez wad i ja sam miałęm z tym później kłopoy (routing, pętle itp). Jak nie masz większej wiedzy na temat sieci to przygotuj się na problemy i testowanie. Jak chcesz coś szybko i tanio to odpuść i poczytaj enkapsulacji (GRE, IPIP, etc.).

xury napisał/a:

I jeszcze jedno. Czy podobnie jak w OpenVPNie można wystawić na publicznym adresie  serwera usługę z kliienta? Np. kamery na publicznym porcie, które są na kliencie za NATem.

Tak. To nie ma nic do Wireguarda, jak przez tunel pójdzie do koncówki i reguły maskarady/forwardu itp pozwalają to możesz udostępnić na swoim porcie WAN w Polsce, końcówkę w RPA.... Tylko czy to będzie wydajne to inna sprawa.
BTW. Poczytaj o MTU i impakcie na tunele.

4

(31 odpowiedzi, napisanych Oprogramowanie / Software)

A nie lepiej iperf ?

Zawsze można sobie wygenerować np. letsencrypta i podpiąć taki. Tylko wtedy musisz odwoływać się lokalnie po domenie (np. zrobić wpis domeny w pliku hosts i przkierować na lokalne ip).

6

(1 odpowiedzi, napisanych Oprogramowanie / Software)

Udało się. Dla potomnych:

socat UDP4-RECVFROM:6667,fork,so-bindtodevice=<networkInterfaceToListenOn> UDP4-SENDTO:<forwardToIP>:6667

Bardzo życiowy przypadek - mam kilka VLAN/podsieci o odmiennej adresacji ale z routingiem między (z odpowiednimi regułami) dla różnych zastosowań w tym:
- lan dla zwyczajowego sprzętu (laptop, telefony itp) (eth1 bridge lan)
- iot dla urządzeń iot wykorzystujących wifi. (wlan1-3 aka iot)

I próbuję uniezależnić się od chmury iot (niestety nie wszędzie tasmota/esphome32 można) i konfiguruję sobie takie rozwiązanie oparte na Home Assistant i LocalTuya. Rzecz w tym, że urządzenia chmury Tuya komunikują się wykorzystując broadcast na port. 6667. No i teraz pytanie:

Jak przepchnąć pakiety skierowane na 255.255.255.255:6667 w jednej podsieci do konkretnego ip np. 192.168.1.2:6667 (Home Assistant) w innej*.
Broadcasty są realizowane tylko w jeden podsieci. Są imgpproxy ale to się nie nadaje bo to na multicast działa.

1. Może ktoś mnie poprawi ale przepisanie na poziomie iptables nie zadziała?

2. Znalazłem opcje wykorzystania socat ale nie bardzo wiem jak tego dobrze użyć.

socat -T 3 UDP4-RECV:6667,bind=255.255.255.255,ip-add-membership=255.255.255.255:wlan1-3,reuseaddr

Nie działa mi.

Może ktoś coś podpowie.



-----
* wiem, że mógłbym dopiąć HA na IP w ten sieci dla IOT ale zasadniczo zakładałem, że to będzie dostępne z lan i wsyzstkie integracje będę realizował z wykorzystaniem OpenWRT i MQTT.  Nie chcę go wystawiać do tej sieci jeżeli nie muszę (docelowo blokuję internet tam)

8

(125 odpowiedzi, napisanych Oprogramowanie / Software)

Dziwna akcja. Ostatecznie zrobiłem tak - defconfig po aktualizacji źródeł a potem zaznaczyłem golanga w menuconfig. Zapisałem i znowu odznaczyłęm i zapisałem. Poszło...

Wywaliło się po drodze jeszcze z xtables (firewall) coś ale po pullu też poszło.

9

(125 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

768M czego? Ramu dysku? I jednego i drugiego za mało smile

Jest, wejdź w make menuconfig, znajdź ten golang (będzie pewne w languages), zrób help i zobaczysz co go zaznaczyło (selected by)

RAM. Dysku ma aż nadto > 40GB.
Sęk w tym, że ta sekcja w Languages jest niezaznaczona. Ani * ani M nie ma. A i tak coś pobiera tego golanga jako zależność. Ale leci to ciurkiem z innymi pakietami z feeds. W libach też nie ma nic z golangiem.

To zawiera .config jak polece grepem z 'go'

# CONFIG_PACKAGE_libgomp is not set
# CONFIG_PACKAGE_golang is not set
# CONFIG_PACKAGE_golang-doc is not set
# CONFIG_PACKAGE_golang-github-jedisct1-dnscrypt-proxy2-dev is not set
# CONFIG_PACKAGE_golang-github-nextdns-nextdns-dev is not set
# CONFIG_PACKAGE_golang-gitlab-yawning-obfs4-dev is not set
# CONFIG_PACKAGE_golang-src is not set
# CONFIG_PACKAGE_golang-torproject-tor-fw-helper-dev is not set
# CONFIG_PACKAGE_python-django is not set
# CONFIG_PACKAGE_python3-django is not set
# Algorithm Selection
# CONFIG_PACKAGE_google-authenticator-libpam is not set
# CONFIG_PACKAGE_bogofilter is not set
# CONFIG_PACKAGE_gstreamer1-plugins-good is not set
# CONFIG_PACKAGE_ddns-scripts_godaddy.com-v1 is not set

10

(125 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

No właśnie, samo openwrt nie wymaga go. Masz zaznaczony jakiś pakiet (adguard?) który wymaga go, a on ci się wykłada.

Choć killed raczej świadczy zawsze o problemach z system (np. wadliwy ram) a nie ż epakiet jest zwalony.

Na dzień dobry więc nie zaznaczaj za dużo, zaznacz tylko router i skompiluj.

Sęk w tym, ze mam swój zestaw pakietów, coś tam zmienialem ale wcześniej działało.
Nie ma jakiegoś patentu na to żeby sprawdzić od czego zależy ten golang? Nie umiem po tych logach stwierdzić pod czym to się wywala.

To nie jest kwestia pamięci raczej, bo te środowiska akurat stoją na dwóch różnych maszynach fizycznych. A może to być za mało pamięci? Wrzuciłem raptem 768Mb...

11

(2 odpowiedzi, napisanych Oprogramowanie / Software)

A nie masz jakieś izolacji klientów włączone czy coś takiego?
A ten sam adres jest na WiFi i Eth?

Mi to wygląda na firewall na laptopie. nie masz telefonu może, żeby spawdzić go jako dodakowego klienta?

12

(125 odpowiedzi, napisanych Oprogramowanie / Software)

Podbijam temat ze swoim problelem. Od trzech miesięcy próbuję skompilować wersję pod siebie. Wcześniej mi działało i robiłem to na gałęzi master. Ostatnio próbowałem już na snapshotach od Cezarego (skoro jemu działa to i mi powinno). Moja architektura to ipq806 dla C2600.
Środowisko kompilacji miałem jako kontener LXC oparty na Debianie Buster. Ostatnio stwierdziłem, że może już tak sie posypało, że postawiłem całkiem nowe tak samo ale na Ubuntu 20.04. Nie idzie nawet dla tagu v19.07.4

Teraz juz jednak mam sytuację gdzie jest ten sam błąd na obu środowiskach. Z tego co rozumiem, dotyczy on jakiś elementów bazowych (hostpkg) i krzyczy bład związanny z kompilatorem `Go`. Zaznaczę, że nie  mam zaznaczonej kompilacji bibliotek Go w sekcji Languages.

net/mail
net/rpc
net/smtp
os/user
net/rpc/jsonrpc
runtime/debug
runtime/race
testing
testing/iotest
testing/quick
text/scanner

( cd /home/builder/openwrt/build_dir/hostpkg/go-1.13.15/src ; GOROOT_FINAL=/home/builder/openwrt/staging_dir/hostpkg/lib/go-cross  GOROOT_BOOTSTRAP=/home/builder/openwrt/build_dir/hostpkg/go-1.13.15/.go_bootstrap GOCACHE=/home/builder/openwrt/build_dir/hostpkg/go-1.13.15/.go_work/cache CC=gcc CXX=g++  bash make.bash --no-banner ; )
Building Go cmd/dist using /home/builder/openwrt/build_dir/hostpkg/go-1.13.15/.go_bootstrap.
Building Go toolchain1 using /home/builder/openwrt/build_dir/hostpkg/go-1.13.15/.go_bootstrap.
Building Go bootstrap cmd/go (go_bootstrap) using Go toolchain1.
Building Go toolchain2 using go_bootstrap and Go toolchain1.
Building Go toolchain3 using go_bootstrap and Go toolchain2.
go build cmd/compile/internal/ssa: /home/builder/openwrt/build_dir/hostpkg/go-1.13.15/pkg/tool/linux_amd64/compile: signal: killed
go tool dist: FAILED: /home/builder/openwrt/build_dir/hostpkg/go-1.13.15/pkg/tool/linux_amd64/go_bootstrap install -gcflags=all= -ldflags=all= -a -i cmd/asm cmd/cgo cmd/compile cmd/link: exit status 1
make[3]: *** [Makefile:297: /home/builder/openwrt/build_dir/hostpkg/go-1.13.15/.built] Error 2
make[3]: Leaving directory '/home/builder/openwrt/feeds/packages/lang/golang/golang'
time: package/feeds/packages/golang/host-compile#271.48#241.94#299.58
make[2]: *** [package/Makefile:111: package/feeds/packages/golang/host/compile] Error 2
make[2]: Leaving directory '/home/builder/openwrt'
make[1]: *** [package/Makefile:107: /home/builder/openwrt/staging_dir/target-arm_cortex-a15+neon-vfpv4_musl_eabi/stamp/.package_compile] Error 2
make[1]: Leaving directory '/home/builder/openwrt'
make: *** [/home/builder/openwrt/include/toplevel.mk:227: world] Error 2

Jak z tym pójść do przodu? Powinienem zgłosić bug? Czy to tylko u mnie tak?

13

(3 odpowiedzi, napisanych Oprogramowanie / Software)

Cezary napisał/a:

Openvpn jest właśnie jednocorowy, i to jego wielka wada.

To chyba nawet nie o Openvpn chodzi ale o biblioteki SSL i bezpieczeństwo korzystania z dwóch procesorów logicznych.

14

(1 odpowiedzi, napisanych Oprogramowanie / Software)

advcron napisał/a:

Panowanie mam takie głupie pytanie.

Mamy dwa konfigi:

Przykład 1)

### Site A
[Interface]
Address = 172.30.30.1/24
PrivateKey = klucz_prv
ListenPort = 51844

[Peer]
PublicKey =K lucz_pub
AllowedIPs = 172.30.30.2/32
Endpoint = b.b.b.b:51844

### Site B
[Interface]
Address = 172.30.30.2/24
PrivateKey = klucz_prv
ListenPort = 51844

[Peer]
PublicKey =K lucz_pub
AllowedIPs = 172.30.30.1/32
Endpoint = a.a.a.a:51844

Przykład 2)

### Site A
[Interface]
Address = 172.30.30.1/24
PrivateKey = klucz_prv
ListenPort = 51844

[Peer]
PublicKey =K lucz_pub
AllowedIPs = 172.30.30.2/32

### Site B
[Interface]
Address = 172.30.30.2/24
PrivateKey = klucz_prv
ListenPort = 51844

[Peer]
PublicKey =K lucz_pub
AllowedIPs = 172.30.30.1/32
Endpoint = a.a.a.a:51844

Oba przykłady różnią się jedynie istnieniem wpisu Endpoint.
Czy dobrze rozumuje.
W przykładzie 1 to obie strony nawiązuja połączenie między sobą (siteA>siteB albo siteB->siteA, która pierwsza)?
W drugim przypadku tylko siteB nawiązuje połączenie (bo wie gdzie się zapiąć - wpis endpoint).

I jeszcze jedno pytanie czy jest jakiś sposób ,jak dodam wpisy peer, aby przeładować wireguard, bez resetowania interfejsów (/etc/init.d/network restart) ?

Z góry dziękuję za odpowiedź

Ta strona, której się to uda wcześniej. Nie przejmuj się tym. Jak masz taką możliwość to zostaw aby sie zapinały od dwóch stron. Mi to działa i nic nie implikuje, i zawsze pewniej.

Z mojego doswiadczenia niby poleceniem wg zarządzasz... ale bardzo często muszę nawet zrestartować cały router, gdyż i restart interfejsu nie łapie.

15

(14 odpowiedzi, napisanych Oprogramowanie / Software)

pinix napisał/a:

Teraz już to pojąłem.

Moja konfiguracja.
Dwa serwery jeden z publicznym stałym a drugi po DDNS.
Dwóch klientów jeden stacjonarny (router) i drugi mobilny.
Czy dopuszczalna będzie taka konfiguracja stacjonarnego klienta? Mogę w tym przypadku utworzyć dwóch użytkowników dla jednego interfejsu wireguard. Czy raczej powinienem utworzyć dwa interfejsy. Sprawdziłbym ale nie mam jak. Muszę skonfigurować klienta, żeby sprawdzić na serwerze czy się łączy.

Możesz kilku na jeden interfejs. Ja mam jeden na kilka tunelu router-router i drugi na kilka koncówek dla urządzeń moiblnych. Bardziej podział dotyczy firewalla niż samego wireguarda.

16

(14 odpowiedzi, napisanych Oprogramowanie / Software)

xury napisał/a:

No dzięki, ale nie o to mi chodziło.
Szukam możliwości wykorzystania tunelu na telefonie bez instalacji na laptopie czegokolwiek.  Z tego co się udało mi dowiedzieć to musiałbym ustawić routing na telefonie, a do tego potrzeba mieć roota na nim.

Z tego co wiem, to androd izoluje te sieci i się nie da. Tzn. android tworzy oddzielny interfejs sieciowy dla hotspota, ktory nie ma nic z vpn związanego.

17

(14 odpowiedzi, napisanych Oprogramowanie / Software)

pinix napisał/a:

Może inaczej zapytam, jeżeli mam w allowedips 0.0.0.0/0 po stronie serwera i klienta to jak by to zadziałało gdybym miał zarówno w sieci LAN serwera podsieć 192.168.0.0/24 i taką samą po stronie klienta. Jakby wyglądała komunikacja?

Najprościej to zrozumieć tak - allowed ips po stronie interfejsu mówi mu... jak masz pakiet do sieci 192.168.0.0/24 to pchaj go przez tunel w innym przypadku zostaw obsługę iptables.

Wiec musisz powiedzieć po obydwu stronach jakich sieci mają sie spodziewać z dreugiej strony (dlatego allowed ips to jest wink ). 0.0.0.0/0 oznacza czarną dziurę - jakikolwiek pakiet nie jest gdziekolwiek wysyłany pójdzie prze tunel. Jak chcesz mieć tak, ze na telefonie np. masz normalny ruch na LTE/WiFi to nie dawaj 0.0.0.0/0 tylko zdefiniuj, że twoja siec domowa to 192.168.0.0/24. Wtedy na telefonie tylko tak adresowane pakiety będą szły przez tunel a reszta normalnie.  Ale wazne jest aby nie było pętli, bo jak wpiszesz z obu stron allowed ips tą samą sieć to zginie w tunelu, bo po przybyciu pakiet będzie się odbijał od końcowek aż TTL wygaśnie. Dodatkowo zrób tak aby uniknąć sytuacji gdzie łączysz sie z tunelem na WiFi (LAN) i w allowed ips masz go wpisanego. Najlepiej aby endpoint dla telefonu byl wystawiony na publicznym IP.

Spójrz na moje posty w wątku https://eko.one.pl/forum/viewtopic.php?id=19675. tam trochę bardziej zaawansowany temat miałem ale masz przykład konfiguracji dla 3 endpointów spiętych centralnie przez jeden z nich.

18

(7 odpowiedzi, napisanych Oprogramowanie / Software)

WPA3 w Andku jest od wersji 10 tak samo OWE

19

(14 odpowiedzi, napisanych Oprogramowanie / Software)

Robisz dwa interfejsy wg. Jeden dla biura drugi dla roaming clients. Zestawiasz biuro - lan jako point-to-point i podajesz adresacje sieci z drugiej strony aby mozliwe było routowanie. Robisz dla roaming clients kolejny interfejs tylko, serwer nie ma podanego endpointa dla klienta (bo bedziesz do recznie zestawiał). Tutaj też dodajesz rounting dla klienta tak aby lan ewentualnie i biuro było osiągalne.

Ja mam tak zrobione, że mam w sumie 3 interfejsy wg. Jeden spina mi kilka LAN-ów, kolejny dla roaming clients i jeden spinający sieć na poziomie L2 via GRE. Dodatkowo mam dwa VPNy do zewnętrznych sieci firmowych (ktore wypychaja swoje routingi, wiec tylko to co maja przekierowane np. 10.17.0.0/22 leci przez VPN.

Tylko odróżniaj adresacje LAN-ów od sieci wireguard. Adresacja interfejsów wg jest tylko po to aby one mogły się ze sobą komunikować, natomiast one mogą routować pakiety z innych sieci tj. LAN, biuro, roaming clients.

Wszystko nad tym ustawisz na zaporze i bedziesz miał serparację.

Mapa mojej sieci

20

(4 odpowiedzi, napisanych Oprogramowanie / Software)

bulgar71 napisał/a:

dzięki za wsparcie jednak porzuciłem projekt ten i przeniosłem się na PI-HOLE i ADGUARD
działa i polecam

Ale wiesz, że to działa właśnie na Unbound i dnsmasq ? smile

21

(4 odpowiedzi, napisanych Oprogramowanie / Software)

Na szybko TSL wymaga podania domeny do weryfikacji: ip@port#domena

server:
  tls-cert-bundle: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

forward-zone:
  name: "."
  forward-tls-upstream: yes
  # Quad9
  forward-addr: 2620:fe::fe@853#dns.quad9.net
  forward-addr: 9.9.9.9@853#dns.quad9.net
  forward-addr: 2620:fe::9@853#dns.quad9.net
  forward-addr: 149.112.112.112@853#dns.quad9.net
  # Cloudflare DNS
  forward-addr: 2606:4700:4700::1111@853#cloudflare-dns.com
  forward-addr: 1.1.1.1@853#cloudflare-dns.com
  forward-addr: 2606:4700:4700::1001@853#cloudflare-dns.com
  forward-addr: 1.0.0.1@853#cloudflare-dns.com

Dwa - masz dwa razy zdefiniowany ten forward. Zostaw w ext tylko.
A dnsmasq nadal działa? Nie kłócą się? Czy to wywaliłeś?

22

(12 odpowiedzi, napisanych Oprogramowanie / Software)

bulgar71 napisał/a:

router ma być serwerem DNS
wszystkie zapytania wychodzą na WAN adresem 1.1.1.1

zrezygnowałeś z dnsmasq
a co robi za serwer dns u Ciebie unbound?

Tak - unbound.

23

(12 odpowiedzi, napisanych Oprogramowanie / Software)

Chcesz szyfrować zapytania DNS do zewnętznych serwerów DNS, tak? Czy wystawić swój serwer DNS z obsługą DoT?
Generalnie to ja mam złe doświadczenie z dnsmasq i przesiadłem się na unbound. Natomiat i tu i tu pewnie dla każdego z przypadku musiałbyś użyć coś z obsługą co najmniej DoT - a unbound ma wbudowaną. możesz też użyć DoH lub DnsCrypt.

24

(17 odpowiedzi, napisanych Oprogramowanie / Software)

Ja tylko dodam, że można w najnowszych Androidach wskazać aplikacje, które mają omijać VPN-y i tak robiłem ze sklepem Play. Wyczyszczenie cache zadziałało na raz, dwa razy potem się znowu zawiesiło. Na reddicie jest narzekanie na Google, bo olewają ticket dot. tego problemu. Także nie przejmowałmbym się tym bardzo (wyłączyć na chwilę sieć i tyle).

25

(0 odpowiedzi, napisanych Oprogramowanie / Software)

Hej, mam dziwny problem z rozwiązywaniem nazw z wykorzystaniem Unbound. Generalnie to mam dedykowaną kompilację gdzie pozbyłem sie dnsmasq (bardzo obciązał mocno mój sprzęt [90% 1 CPU] bez wyraźnego powodu + wolno rozwiązywał adresy).
Dodatkowo mam vpny z własnymi serwerami dns dla domen lokalnych, więc unbound wydawał się rozsądnym rozwiązaniem.

Moja obecna konfiguracja wykorzystuje DoH z wykorzystaniem https-dns-proxy.
I tak mam dwa endpointy:
127.0.0.1@5053 (DoH)
127.0.0.1@5054 (DoH)

Przykład

/usr/sbin/https-dns-proxy -a 127.0.0.1 -p 5053 -b 88.198.91.187,2a01:4f8:1c0c:8233::1 -r https://doh.centraleu.pi-dns.com/dns-query -u nobody -g nogroup -4

oraz sam unbound działa na
127.0.0.1@53 czyli standard

I teraz mam problem z kilkoma domenami. W tym chciałbym zrobić m.in. chalenge dla Let's encrypta ale router nie moze rozwiazac mi domeny korzystajac z Unbound.

Sam unbound ma z palca (/etc/unbound/unbound_srv.conf) zdefiniowane:

do-not-query-localhost: no

forward-zone:
  name: "."
  forward-addr: 127.0.0.1@5053
  forward-addr: 127.0.0.1@5054
  forward-first: yes

forward-zone:
  name: "localdomain.loc."
  forward-addr: 10.116.0.2
  forward-addr: 10.116.0.1
  forward-first: no

I tak ta druga domena idzie przez VPN i rozwiązuje mi lokalne adresy dla "localdomain.loc"
Reguła "." (wszystko) forwarduje bo jak wyłącze https-dns-proxy to nie ma odpowiedzi na nic.
Jak odpytam o domenę, która mi nie działa bezposrednio na DoH "dig @127.0.0.1 -p5053 youtu.be" to zwraca wynik. To samo dla @5054. Tak samo przez podanie adresu zewnętrznego serwera dns ale bez DoH. Rozwiązuje.

; <<>> DiG 9.14.8 <<>> @127.0.0.1 -p5053 youtu.be
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 64479
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: ebdef61799ebe629e1a9b78e5e996f2c7c610161dc657938 (good)
; CLIENT-SUBNET: 89.73.15.0/24/0
;; QUESTION SECTION:
;youtu.be.                      IN      A

;; ANSWER SECTION:
youtu.be.               219     IN      A       172.217.16.142

;; Query time: 134 msec
;; SERVER: 127.0.0.1#5053(127.0.0.1)
;; WHEN: Fri Apr 17 10:56:12 CEST 2020
;; MSG SIZE  rcvd: 100

Natomiast Unbound zwraca mi

;; Got SERVFAIL reply from 127.0.0.1, trying next server

; <<>> DiG 9.14.8 <<>> youtu.be +nofail
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 65063
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1280
;; QUESTION SECTION:
;youtu.be.                      IN      A

;; Query time: 0 msec
;; SERVER: ::1#53(::1)
;; WHEN: Fri Apr 17 10:55:18 CEST 2020
;; MSG SIZE  rcvd: 37

Wyłączyłem DNSSEC, mam obsługę ipv6 ale nie widzę aby to miało jakiś wpływ (próbowałem z i bez)
Miałem jakiś moment, gdzie zaczeło to działać ale potem po restarcie przestało.
W logach widać tyle, że są jakieś próby odpytywania rootserwerów po ipv6 typu azure.com, jakies ohv.com i permision denied
Tyle, że to chyba próba rekursji dla błędu przy forward.
Ktoś miał z tym do czynienia. Skończyły mi się pomysły.