Fritz!Box 6591 Cable vergisst DNS-Einstellungen?

Ro4cHii

New member
Hallo zusammen,

ich habe aktuell ein Problem, bei dem inzwischen total am Verzweifeln bin.

Und zwar habe ich auf meinem NAS einige Anwendungen in Docker-Containern laufen, die ich über eine Domain statt IP-Adresse ansprechen will.

Dazu habe ich mir folgendes Setup eingerichtet:

  • NAS (192.168.178.218), auf dem u. a. folgendes läuft:
    • diverse Applikationen, die über verschiedene Ports erreichbar sind, darunter u. a.:
      • Traefik als Reverse Proxy (lauscht auf Port 80 und 443)
      • AdGuard Home (lokaler DNS-Server)
        • mit aktivem Wildcard-DNS-Rewrite für *.meine.domain.de
      • Beispiel-Applikation 1 (soll übers Internet verfügbar sein)
        • Host(`app1.meine.domain.de`)
      • Beispiel-Applikation 2 (soll nur lokal verfügbar sein)
        • Host(`app2.meine.domain.de`)
        • Traefik-Middleware: Erlaube nur Requests von 192.168.178.0/24
  • Fritz!Box als Gateway (192.168.178.1)
    • Port-Mapping 80 und 443 --> 192.168.178.218
    • Primärer und sekundärer DNS-Server: 192.168.178.218
    • DNS-Rebind-Schutz Ausnahmen:
      • app1.meine.domain.de
      • app2.meine.domain.de
      • etc.
Wenn ich nun Traefik, AdGuard und die Fritz!Box neu starte, läuft alles wie gewollt. Der Test mit dem Smartphone zeigt:
  1. WLAN aktiviert: Ich kann über die jeweilige Domain sowohl auf App 1 als auch App 2 zugreifen ✅
    • In den Entwickler-Tools des Browsers wird mir bei Remote Address jeweils 192.168.178.218:443 angezeigt ✅
  2. WLAN deaktiviert (mobiler Datentarif aktiv): Ich kann
    • weiterhin auf App 1 zugreifen ✅
      • Remote Address = externe IP-Adresse ✅
    • nicht mehr auf App 2 zugreifen ⛔
      • Traefik meldet "Forbidden" zurück ✅
      • Remote Address = externe IP-Adresse ✅
Soweit, so gut.

Jetzt passiert nach einiger Zeit (ein paar Stunden) irgendetwas, das ich nicht nachvollziehen kann, und plötzlich kann ich trotz aktiviertem WLAN nicht mehr auf App 2 zugreifen. Traefik meldet Forbidden und als Remote Address wird mir eine externe IP-Adresse angezeigt, obwohl ich aus dem lokalen Netzwerk zugreife!

Das gleiche Ergebnis erhalte ich dann übrigens auch mit allen anderen Geräten, die sich in meinem lokalen Netzwerk befinden (wie z. B. meinem Festrechner). Dabei scheint es keinen Unterschied zu machen, ob ich die IP für den DNS-Server manuell angebe oder über DHCP vom Router beziehen lasse.

  • Dem Fritz!Box-Ereignismonitor sowie dem Traefik-Log kann ich nichts interessantes entnehmen
  • Im AdGuard Home Anfragenprotokoll sehe ich lediglich, dass für die
    • auch extern zur Verfügung stehenden Applikationen noch Anfragen reinkommen
    • nur lokal zur Verfügung stehenden Applikationen keine Anfragen mehr reinkommen
Erst wenn ich Traefik, AdGuard Home und die Fritz!Box wieder neu starte, ggf. noch ein ipconfig /flushdns durchführe, funktioniert es nach einer Weile wieder, nur um dann spätestens am nächsten Tag nicht mehr zu funktionieren.

Jetzt wüsste ich echt gerne, an welcher Stelle das Ganze scheitert, weiß aber leider gar nicht, wo ich überhaupt ansetzen kann.
Funkt hier mein ISP vielleicht mit irgendwelchen anderen DNS-Settings dazwischen?

Die Einstellungen in der Fritz!Box sind leider durch meinen ISP eingeschränkt, aber prinzipiell ist ja alles erforderliche da, dass ich es (zumindest temporär) zum Laufen kriegen kann.

Ich hoffe hier weiß vielleicht jemand einen Rat...

Liebe Grüße
Ro4cHii
 
Hi,

naja, da wird ja schon grundsätzlich etwas schief laufen, wenn Du mit einer externen Adresse angewackelt kommst. Für mich liest sich das aber erstmal wie folgt:

Interner DNS löst "externen" FQDN für interne Clients auf und gibt "lokale" (traefik) zurück. Soweit so gut, das sollte dann auch alles entsprechend funktionieren. Ich sehe Dein "Problem" hier jetzt eher beim DNS, denn: Läuft da irgendwas internes DNS-mässig schief, wird die Anfrage nach "draussen" geschickt und Du bekommst als Antwort die "externe" Adresse (Stichwort "Namensauflösung").

Traefik meldet Forbidden und als Remote Address wird mir eine externe IP-Adresse angezeigt, obwohl ich aus dem lokalen Netzwerk zugreife!
Bist Du Dir sicher, dass diese Meldung auch zu "Deinen" Zugriffsversuchen gehört?

Zu Deinem Problem: Läuft bei der DNS-Auflösung etwas schief, wirst Du als Antwort Deine externe IP bekommen, somit wird der Client auch entsprechend versuchen, diesen Weg zu gehen (anstatt den internen). Handelt es sich dabei z.B. um ein Mobilgerät (inkl. LTE-Zugang), kann es auch sein, dass ggf. das WLAN in diesem Fall keine Namensauflösung auf die Kette bekommen hat, ggf. die LTE-Verbindung (und somit auch die beim LTE hinterlegen DNS-Server) genutzt wird und das Szenario kommt dann auch mitunter auch wieder auf so ein Fehlerbild.

Funkt hier mein ISP vielleicht mit irgendwelchen anderen DNS-Settings dazwischen?
Siehe oben - der Ansatz ist mitunter auch nicht der verkehrteste. Am einfachsten ist es, wenn Du bei den "Problemkindern" auch einfach mal schaust, wie sich das ganze verhält, sprich: Namensauflösung testen (z.B. nslookup/dig oder App) + Routing testen (z.B. tracert/traceroute oder App).
 
Dabei scheint es keinen Unterschied zu machen, ob ich die IP für den DNS-Server manuell angebe oder über DHCP vom Router beziehen lasse.
Btw... IPv4-only oder auch IPv6 (oder ggf. sogar nur IPv6)?

Wenn Du den DNS statisch vergibst, wird auch nix anderes gefragt, Frage wäre dann eher, was Dein DNS-Server so treibt.
 
  • Interner DNS löst "externen" FQDN für interne Clients auf und gibt "lokale" (traefik) zurück. Soweit so gut, das sollte dann auch alles entsprechend funktionieren. Ich sehe Dein "Problem" hier jetzt eher beim DNS, denn: Läuft da irgendwas internes DNS-mässig schief, wird die Anfrage nach "draussen" geschickt und Du bekommst als Antwort die "externe" Adresse (Stichwort "Namensauflösung").
Korrekt. Das ist bisher auch mein Verständnis, dass die Anfrage vermutlich nach draußen geschickt wird. Wenn dem tatsächlich so sein sollte, verstehe ich aber leider nicht warum.

Bist Du Dir sicher, dass diese Meldung auch zu "Deinen" Zugriffsversuchen gehört?
Ziemlich. Das habe ich nicht den Logs entnommen, sondern der Browser-Konsole - die zeigt ja immer meinen eigenen Request an.

Zu Deinem Problem: Läuft bei der DNS-Auflösung etwas schief, wirst Du als Antwort Deine externe IP bekommen, somit wird der Client auch entsprechend versuchen, diesen Weg zu gehen (anstatt den internen). Handelt es sich dabei z.B. um ein Mobilgerät (inkl. LTE-Zugang), kann es auch sein, dass ggf. das WLAN in diesem Fall keine Namensauflösung auf die Kette bekommen hat, ggf. die LTE-Verbindung (und somit auch die beim LTE hinterlegen DNS-Server) genutzt wird und das Szenario kommt dann auch mitunter auch wieder auf so ein Fehlerbild.
Das Verhalten ist bei allen getesteten Geräten gleich (Smartphone, Tablet, Festrechner bzw. LAN/WLAN).

Siehe oben - der Ansatz ist mitunter auch nicht der verkehrteste. Am einfachsten ist es, wenn Du bei den "Problemkindern" auch einfach mal schaust, wie sich das ganze verhält, sprich: Namensauflösung testen (z.B. nslookup/dig oder App) + Routing testen (z.B. tracert/traceroute oder App).
Gute Idee! Gerade funktioniert es ("leider" 😄), aber sobald es wieder passiert, werde ich das probieren!
Aktuell zeigt mir tracert nur einen Knoten an (NAS.fritz.box) - das interne Routing klappt also, wie es soll.

Btw... IPv4-only oder auch IPv6 (oder ggf. sogar nur IPv6)?

Wenn Du den DNS statisch vergibst, wird auch nix anderes gefragt, Frage wäre dann eher, was Dein DNS-Server so treibt.
Wenn ich im Browser schaue, sehe ich unter Remote Address immer nur die interne IPv4 von meinem NAS (Traefik) oder meine externe IPv4-Adresse. Lange Zeit hatte ich gar keine, da ich ausschließlich über DS-Lite angebunden war. Ich hatte schon überlegt, bei meinem ISP mal nett anzufragen, aber das Problem hat sich vor gut einem Jahr selbst gelöst - da hatte ich dann plötzlich eine feste IPv4!
Verbunden bin ich laut Fritzbox jedenfalls über beides.

Vielleicht ist IPv6 sogar der richtige Hinweis! Auf der Startseite der Fritzbox sehe ich, dass folgende DNS-Server genutzt werden:
  • 192.168.178.218 (aktuell genutzt für Standardanfragen)
  • 2a02:8100:c0:221::4:1101
  • 2a02:8100:c0:229::4:1101

Jetzt kenne ich mich dooferweise kaum mit IPv6 aus, kann also auch nicht sagen, was letztere beide für Adressen sind.
Meine Docker-Container haben meines Wissens nur IPv4-Adressen, werden also vermutlich die vom ISP gewählten sein.
Zumindest deckt sich das mit der Einstellung "DNSv6-Server: Vom Internetanbieter zugewiesene DNSv6-Server verwenden (empfohlen)".
Das kann ich leider auch nicht abstellen!? Entweder bin ich zu doof, die Option dafür zu finden, oder Vodafone kapselt das weg...

Ergänzung:
Die hier (https://www.heise.de/tipps-tricks/IPv6-deaktivieren-so-klappt-s-4401214.html) erwähnten Optionen habe ich z. B. gar nicht. Ich habe nur folgende drei:
  • DNSv4-Server
  • DNSv6-Server
  • DNS over TLS (DoT)
 
Zuletzt bearbeitet:
Magst du mehr zu deinem Setup schreiben?

Verwenden deine Container macvlan, host oder ein bridge Netzwerk? Da die NAS-IP für Zugriff auf DNS und Anwendungen verwendet wird, ist es wohl host oder bridge.

Wenn in der FB AdGuard als DNS in der Internet-Einstellung konfiguriert ist (primär und sekundär DNS gibt es nur dort), dann sollten Deine Clients nach wie den DNS-Server der FB verwenden. Der Upstream DNS/Resolver von AdGuard darf dann natürlich nicht der FB DNS-Server sein.

Wenn in der FB AdGuard als DNS in der Netzwerk-Einstellung und DHCP konfiguriert wurde, dann sollten ja alle Clients über DHCP die AdGuard als DNS erhalten. Die AdGuard könnte dann die FB als Upstream DNS/Resolver nutzen. Dann darf in der FB Internet-Einstellungen aber nicht mehr AdGuard als DNS-Server gesetzt sein.

Hast du in den Situationen, in den es nicht mehr geht, mal ein Ping auf die Domain gemacht? Da sieht man dann ja, ob er auf eine ipv4 oder ipv6 auflöst.

Vielleicht denke ich aber auch einfach nur zu naiv...
 
Zuletzt bearbeitet:
Vielleicht ist IPv6 sogar der richtige Hinweis! Auf der Startseite der Fritzbox sehe ich, dass folgende DNS-Server genutzt werden:
  • 192.168.178.218 (aktuell genutzt für Standardanfragen)
  • 2a02:8100:c0:221::4:1101
  • 2a02:8100:c0:229::4:1101
Das kann es sehr gut sein. Die FritzBox wechselt zyklisch durch alle ihr bekannten DNS-Server durch und erklärt immer einen anderen zu "bevorzugen" DNS-Server. Dann trag doch auch als IPv6 Deinen lokalen DNS-Server ein, dann sollte das Problem gelöst sein.

Ich habe bei mir auch das lokale DNS-Cluster sowohl per IPv4 als auch IPv6 hinterlegt für die FritzBox.
 
Magst du mehr zu deinem Setup schreiben?

Verwenden deine Container macvlan, host oder ein bridge Netzwerk? Da die NAS-IP für Zugriff auf DNS und Anwendungen verwendet wird, ist es wohl host oder bridge.

Bei meinem NAS handelt es sich um eine Synology Diskstation 218+. Dort gibt es über das Synology-Betriebssystem auch eine Docker-GUI, die ich jedoch nicht verwende. Ich verwalte alle Container via Portainer und ausschließlich über Stacks/docker-compose (natürlich mit Ausnahme von Portainer selbst).
Die meisten Docker-Container lasse ich über Bridge laufen, einige wenige müssen aufgrund von sonst zu erwartenden Einschränkungen über Host laufen. Sowohl bei den lokal als auch übers Internet verfügbaren Anwendungen ist jeweils beides dabei.

Alle Docker-Container werden mithilfe folgender Labels via Traefik bereitgestellt:
  • traefik.enable=true
  • traefik.http.routers.app1.rule=Host(`app1.meine.domain.de`)
  • traefik.http.routers.app1.entrypoints=websecure
  • traefik.http.routers.app1.tls=true
  • traefik.http.routers.app1.tls.certresolver=le
  • traefik.http.services.app1.loadbalancer.server.port=1337

Traefik selbst ist folgendermaßen konfiguriert:
  • providers.docker
  • providers.docker.exposedbydefault=false
  • entrypoints.web.address=:80
  • entrypoints.websecure.address=:443
  • certificatesresolvers.le.acme.tlschallenge=true
  • certificatesresolvers.le.acme.email=***.***@***.com
  • certificatesresolvers.le.acme.storage=acme.json

Das Fritzbox-Modell steht im Betreff, ISP ist Vodafone. Die Konfigurationsmöglichkeiten im Router sind, soweit ich das ausmachen kann, an einigen Stellen eingeschränkt.
Es ist folgende Freigabe eingestellt:

Gerät: Diskstation​
IPv4-Adresse: 192.168.178.218​
IPv6 Interface-ID: ::211:32ff:fe83:386a​
Keine der folgenden Optionen ist aktiv:​
[ ] Selbstständige Portfreigaben für dieses Gerät erlauben​
IPv4-Einstellungen​
[ ] Dieses Gerät komplett für den Internetzugriff über IPv4 freigeben (Exposed Host).​
IPv6-Einstellungen​
[ ] PING6 freigeben.​
[ ] Firewall für delegierte IPv6-Präfixe dieses Gerätes öffnen.​
[ ] Dieses Gerät komplett für den Internetzugriff über IPv6 freigeben (Exposed Host).​
Freigaben​
TCP 80​
TCP 443​

AdGuard
Upstream-DNS-Server:​
Bootstrap DNS-Server:​
  • 9.9.9.10
  • 149.112.112.10
  • 2620:fe::10
  • 2620:fe::fe:10
AdGuard.png

Die rot umrandete Option habe ich wohlgemerkt erst gestern früh in meiner Verzweiflung aktiviert (seitdem ist das Problem noch nicht wieder aufgetreten, aber ich möchte den Tag hier noch nicht vor'm Abend loben).​


Wenn in der FB AdGuard als DNS in der Internet-Einstellung konfiguriert ist (primär und sekundär DNS gibt es nur dort), dann sollten Deine Clients nach wie den DNS-Server der FB verwenden. Der Upstream DNS/Resolver von AdGuard darf dann natürlich nicht der FB DNS-Server sein.
s. o.

Wenn in der FB AdGuard als DNS in der Netzwerk-Einstellung und DHCP konfiguriert wurde, dann sollten ja alle Clients über DHCP die AdGuard als DNS erhalten. Die AdGuard könnte dann die FB als Upstream DNS/Resolver nutzen. Dann darf in der FB Internet-Einstellungen aber nicht mehr AdGuard als DNS-Server gesetzt sein.
In erster Linie war mir wichtig, dass ich meine Docker-Anwendungen über Domains erreichen kann. Wenn ich Dich richtig verstehe, dann wäre das auch weiterhin möglich, selbst wenn ich in AdGuard die FB als Upstream DNS-Server eintrage. Ich könnte zumindest mal testen, ob das einen Unterschied macht, aber prinzipiell finde ich auch den Gedanken nicht verkehrt, ein Stückchen "unabhängiger" vom ISP zu sein.

Hast du in den Situationen, in den es nicht mehr geht, mal ein Ping auf die Domain gemacht? Da sieht man dann ja, ob er auf eine ipv4 oder ipv6 auflöst.
Ich meine ja, aber dooferweise habe ich mir nicht gemerkt geschweige denn notiert, was das Ergebnis war. Jetzt warte ich gerade nur darauf, dass es wieder nicht funktioniert... 😅

Das kann es sehr gut sein. Die FritzBox wechselt zyklisch durch alle ihr bekannten DNS-Server durch und erklärt immer einen anderen zu "bevorzugen" DNS-Server. Dann trag doch auch als IPv6 Deinen lokalen DNS-Server ein, dann sollte das Problem gelöst sein.

Ich habe bei mir auch das lokale DNS-Cluster sowohl per IPv4 als auch IPv6 hinterlegt für die FritzBox.

Ich glaube das Problem hierbei ist, dass die Fritzbox an der Stelle dann auch eine IPv6-Adresse erwartet und meines Wissens läuft mein Docker nur über IPv4. Da müsste ich mich vorher wohl nochmal etwas tiefer ins Detail einarbeiten.


Schon witzig, dass das Problem zwischen Mittwoch und Freitagfrüh 3-4 Mal aufgetreten ist, jetzt aber seit über 24 Stunden genauso läuft, wie es soll... Das macht die Fehlersuche schwierig 😕
 
Die Entscheidung mit Portainer und die Compose Deployments über Stacks zu machen ist genau richtig. Traefik statt den Syno-RP zu verwenden finde ich auch besser. [Offtopic]: Zu den Traefik Labels fällt mir ein: schau man bei https://www.ssllabs.com/ssltest/ nach, was für ein Ranking Du bekommst, ggf. solltest Du mal in der Doku und zumindest mal die sts-header mit zu den Labels hinzufügen. Mit wenig Aufwand kann man das härten und ein A+ Ranking erzielen.[/Offtopic]

In erster Linie war mir wichtig, dass ich meine Docker-Anwendungen über Domains erreichen kann. Wenn ich Dich richtig verstehe, dann wäre das auch weiterhin möglich, selbst wenn ich in AdGuard die FB als Upstream DNS-Server eintrage. Ich könnte zumindest mal testen, ob das einen Unterschied macht, aber prinzipiell finde ich auch den Gedanken nicht verkehrt, ein Stückchen "unabhängiger" vom ISP zu sein.
Mein Setup ist recht ähnlich (VF/FB5691/Unbound statt AdGuard/Traefik 1.7.x statt Traefik 2.x.y), als Upstream Revolver verwende ich die CloudFlare Resolver für ipv4/ipv6 und DOT, statt den ISP-Resolvern.

Dank der Privaten Inverse DNS Einstellung in AdGuard kann man sich es sparen die FB, als Upstream zu verwenden. So eine Einstellung ist mir weder bei PiHole noch bei Unbound aufgefallen.
Ich meine ja, aber dooferweise habe ich mir nicht gemerkt geschweige denn notiert, was das Ergebnis war. Jetzt warte ich gerade nur darauf, dass es wieder nicht funktioniert... 😅
Dann wäre es Dir doch bestimmt schon aufgefallen sein, wenn die Domains auf eine ipv6 aufgelöst worden wären :D
 
Die Entscheidung mit Portainer und die Compose Deployments über Stacks zu machen ist genau richtig. Traefik statt den Syno-RP zu verwenden finde ich auch besser. [Offtopic]: Zu den Traefik Labels fällt mir ein: schau man bei https://www.ssllabs.com/ssltest/ nach, was für ein Ranking Du bekommst, ggf. solltest Du mal in der Doku und zumindest mal die sts-header mit zu den Labels hinzufügen. Mit wenig Aufwand kann man das härten und ein A+ Ranking erzielen.[/Offtopic]
Cool, vielen Dank für den Link! Vom Prinzip her kannte ich das, aber hatte es mal so gar nicht auf dem Schirm!
Habe aktuell ein B Ranking - bedingt dadurch, dass mein Server noch TLS 1.0 und 1.1 unterstützt. Hatte bereits versucht, etwas an der Traefik-Konfiguration zu ändern, aber habe es bisher leider noch nicht hingekriegt. Das werde ich aber definitiv noch nachholen!

Mein Setup ist recht ähnlich (VF/FB5691/Unbound statt AdGuard/Traefik 1.7.x statt Traefik 2.x.y), als Upstream Revolver verwende ich die CloudFlare Resolver für ipv4/ipv6 und DOT, statt den ISP-Resolvern.

Dank der Privaten Inverse DNS Einstellung in AdGuard kann man sich es sparen die FB, als Upstream zu verwenden. So eine Einstellung ist mir weder bei PiHole noch bei Unbound aufgefallen.

Dann wäre es Dir doch bestimmt schon aufgefallen sein, wenn die Domains auf eine ipv6 aufgelöst worden wären :D

Also tatsächlich muss ich sagen, dass es jetzt seit Freitag durchgängig läuft und nicht wieder zu dem oben beschriebenen Problem kam.
Ich schätze, dass es tatsächlich an der im letzten Bild rot umrandeten Option lag (IPv6 deaktivieren). Jedenfalls habe ich in der Zwischenzeit sowohl Traefik als auch Portainer, mein NAS und die Fritzbox neu gestartet - vorerst scheint das Problem gelöst :)

Vielen Dank für eure schnellen Rückmeldungen!
Sollte das Problem doch wieder auftreten, werde ich erstmal versuchen mithilfe von tracert mehr Erkenntnis zu gewinnen, andernfalls melde ich mich nochmal.

Einen schönen Abend noch!
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
5.609
Beiträge
55.143
Mitglieder
5.454
Neuestes Mitglied
stoehry
Zurück
Oben