Bitte beachte diese Vorlage, damit wir dir bestmöglich helfen können!
Beobachtetes und erwartetes Verhalten
Wenn der localhost die DNS Auflösung macht kommt bei der Adressehttp://dispatcher.rdnfk.com/ eine stale answer und die Verbindung schlägt fehl. Wenn die Auflösung über z.b. Cloudflare kommt geht es. Das ist in sofern ärgerlich weil es gefühlt zufällig ist. In der Regel ruft Alexa die Adresse zum Radiohören ab (ARD Audiothek). Alles andere wird wunderbar aufgelöst. Wenn ich in den Einstellungen alle anderen DNS Server deaktivieren und nur den localhost auflösen lasse geht auch alles bis auf diese Adresse. Hat vielleicht jemand eine Idee?
Diese Domäne existiert und wird von Pi-hole auch aufgelöst; allerdings wird ein Aufruf der von Dir vorgegebenen URL http://dispatcher.rndfnk.com in jedem Browser bei mir vom zuständigen Webserver zuverlässig mit der Anzeige von 404 Not Found quittiert.
Falls das bei Dir anders ist, was hätte da stattdessen eigentlich auftauchen sollen? Und wo wird bei Dir 'stale answer' angezeigt?
Die Alexa verwendet wahrscheinlich den selben Link (zumindest entsteht dann der selbe Eintrag) , kann dann nicht Verbinden und mäkelt rum. Andere Radiosender die nicht zur ARD Audiothek gehören funktionieren natürlich.
Ok, stale answer wird also nicht ständig beim Aufruf der URL http://dispatcher.rndfnk.com/ im Browser angezeigt, sondern sporadisch bei der Anfrage der Domain dispatcher.rndfnk.com in der Antwort von Pi-holes Upstream geliefert und entsprechend im Query Log dargestellt.
Ich vermute mal, es handelt sich bei diesem Upstream um unbound?
Wie sieht denn die Konfiguration dafür aus?
Diese Zeilen deuten darauf hin, dass unbound bei Dir als Docker-Container mvance/unbound läuft.
Das von mir angegebene grep-Kommando ist so konzipiert, dass es die vollständige Konfiguration von unbound zurückgeben würde, wenn unbound gemäß unserer Anleitung eingerichtet wurde.
mvance/unbound verwendet allerdings ein eigenes Layout für unbound-Konfigurationsdateien, so dass wir hier nur Teile Deiner Konfiguration sehen.
Wie bereits erläutert, liefert unbound die von Dir beobachtete stale answer.
Dein unbound ist so konfiguriert, dass er auch abgelaufene DNS-Antworten ausliefern darf:
Entsprechend markiert unbound veraltete DNS-Antworten als abgelaufen (stale) und liefert diese mit einer TTL von 30 Sekunden aus. Das erlaubt eine sofortige Antwort aus dem Cache, ohne auf die (u.U. wesentlich) langsamere Antwort von öffentlichen DNS-Servern warten zu müssen.
Du müsstest also serve-expired: yes aus Deiner unbound-Konfiguration entfernen, damit Pi-hole seinerseits nicht 30 Sekunden lang veraltete Informationen ausliefert.
Pi-hole selbst verwendet seit Version 6 übrigens einen ähnlichen Mechanismus (klicken für Details)
Pi-holes Cache Optimiser kann weiterhin DNS-Antworten aus dem Cache sofort ausliefern, auch wenn deren TTL bereits abgelaufen sein sollte.
Gleichzeitig leitet Pi-hole die DNS-Anfrage im Hintergrund an die Upstream-DNS-Server weiter und aktualisiert den zugehörigen Cache-Eintrag, sobald eine Antwort vorliegt.
Allerdings setzt Pi-hole dabei eine TTL von 0, so dass ein Client seine DNS-Anfrage sofort wiederholen kann.
Ein Client würde damit also höchstens so lange veraltete Daten verwenden, bis die aktuelle DNS-Antwort von Pi-holes Upstream eingetroffen ist (und ist damit also in etwa vergleichbar mit dem Verhalten ohne Cache Optimiser).
Durch das Abschalten von serve-expired in unbound verlierst Du also nichts.
Außerdem sollte Dir bewusst sein, dass mvance/unboundunboundnicht als rekursiven Resolver konfiguriert, sondern als DoT-Forwarder: