DNS-Verfügbarkeit gewährleisten bei AdGuard auf externem NAS

Started by markus.tobatz, May 12, 2024, 06:23:46 PM

Previous topic - Next topic
Bevor ich mich an die Umsetzung mache, hier eine Frage, ob und wie das technisch lösbar ist. Ich nutze OPNsense 24.1.5 mit Unbound DNS, ganz normal. Ich möchte Adguard Home einsetzen aber ungern ein externes Repository auf der OPNsense integrieren, daher war die Überlegung, Adguard als Docker auf dem permanent aktiven NAS aufzusetzen. Ich benötige Adguard, weil ich bei der Blocklist Ausnahmen für bestimmte Clients machen muss.

Dazu hätte ich für DNS-Anfragen, die *nicht* vom NAS kommen im OPNsense eine Port Forwarding Regel für UDP Port 53 eingerichtet, die auf den Adguard Docker Container auf dem NAS verweist. Und Adguard wiederum soll als Upstream natürlich den Unbound von OPNsense verwenden.

Die Frage ist nun: Wie kann ich da nun die Verfügbarkeit erhöhen. Für den Fall, dass das NAS gerade nicht verfügbar ist, werden dann vermutlich keine DNS Anfragen mehr beantwortet. Gibt es eine Möglichkeit im OPNsense den integrierten Unbound *doch* zu nutzen, falls das Adguard auf dem NAS nicht antwortet oder erreichbar ist?

Ich sehe gerade, es gibt ja Nginx als offizielles Plugin. Damit müsste sich doch ein UDP Reverse Proxy für DNS aufsetzen lassen. Per Upstream könnte ich dann Adguard auf dem NAS ansprechen und im Fehlerfall auf Unbound zurückfallen. Das schaue ich mir mal genauer an...

Aber dann wäre ja der Proxy der Single Point of Failure.

DNS an sich ist Fehlertolerant aufgebaut. Man kann Clients mehr als einen DNS Server geben.
Hardware:
DEC740

Achso, das SPoF stört mich hier nicht. Ich nutze Nginx für diverse Reverse Proxy Geschichten seit vielen Jahren, vertraue also darauf. Und da der Nginx auf der OPNsense laufen soll ist das auch weniger kritisch für mich. Die Clients bekommen bisher eh nur den Unbound auf der OPNsense als DNS Server mitgeteilt. Und wenn mir die ganze OPNsense-Kiste abrauscht, ist eh Feierabend. Und sollte der Nginx Proxy doch mal ausfallen, dann ist es so, damit kann ich leben. Mein NAS ist da deutlich ausfallgefährdeter als die dedizierte Appliance.

Ich hab 2 Raspberry Pis mit Pihole laufen, auf welchen auch Unbound Rekursiv läuft. Die beiden DNS Server verteile ich an meine Clients. Für Domains, die nur die OPNsense mit ihrem Unbound wegen DHCP registrierung kennt, gibt es bedingte Weiterleitungen. Das funktioniert recht Ausfallsicher.
Hardware:
DEC740

:'(

1) Anpassungen am Nginx Plugin werden mit dem Reload-Button nicht übernommen, da ist immer ein De- und Aktivieren des Plugins notwendig (quasi für einen kompletten Neustart des Services) - das ist aber noch das kleinere Übel.

2) Ärgerlicher ist aber, dass ich den lokalen Unbound nicht als Backup-Server im Upstream definieren kann, der wird dann einfach nicht genutzt. Muss ihn also im Round Robin ständig aktiv halten mit einer niedrigeren Priorität.

3) Was aber gerade gar nicht funktioniert, aber essentiell ist: Die Client IP kommt nicht in Adguard an, sondern immer nur die IP der OPNsense. Hat dazu jemand eine Idee?

Was soll denn sonst passieren, wenn du einen NginX als Proxy dazwischen klebst? Das geht nicht anders mit der Client-IP-Adresse, dann.
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

"Na klar". Wofür sonst gibt es Header wie X-Real-IP oder X-Forwarded-For...Adguard unterstützt das auch, siehe https://github.com/AdguardTeam/AdGuardHome/wiki/Encryption#nginx
Möglich, dass ich mir morgen nochmal die trusted_proxies Direktive in Adguard anschauen muss

Das ist für HTTP(S), nicht für DNS-Queries. Im DNS gibt es solche Header nicht.

Machst Du DoH vom Nginx zum AGH?
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)

Argh. Du hast natürlich recht, daran habe ich nicht gedacht.

Hohe Verfügbarkeit bei DNS bekommt man, indem man mehrere DNS Server an die Clients mitteilt. Das ist bei DNS alles ins Protokoll eingebaut, und man muss da nicht drum herum basteln.

Das ist in dem Fall ein Infrastrukturproblem, was durch einen zusätzlichen DNS Server mit Adguard am einfachsten behoben wird.
Hardware:
DEC740

Moin,

ich kann das rumgebastel eh nicht nachvollziehen, wo die beste Lösung naheliegend ist - AdGuard auf der OPNSense laufen zu lassen. Das erspart ne ganze Menge Probleme, weil es einfach funktioniert.

Wenn gehört das externe Repository den, wo Adguard liegt ?  Es ist eine Deutsche IT-Firma. Man munkelt, das einige der Mitarbeiter auch hier im Forum unterwegs sind.


Der Mensch, der das Repo aufgesetzt hat und wartet, ist Michael Münz, hier als @mimugmail unterwegs.

Die Seite hat doch ein ordentliches Impressum:
https://www.routerperformance.net/about/
Deciso DEC750
People who think they know everything are a great annoyance to those of us who do. (Isaac Asimov)