Dnsmasq.d custom Datei wird nicht geladen

Hallo,

ich betreibe Pihole auf meinem Qnap NAS in der Container Station, bisher immer nur für IPv4 und das Standardnetzwerk meiner Fritzbox.
In den letzten Wochen habe ich vermert gelesen man solle dies tunlichst auch für IPv6 aktivieren, da ansonsten eine Reihe an Anfragen am Pihole vorbeigehen würden, außerdem würde ich den Pihole auch gern für mein Gastnetz nutzen.

Nun läuft Pihole auch für IPv6 und auch fürs Gastnetz, ich habe mich weitestgehend an die offiziellen Dokumentationen gehalten.
Die Pihole IPs sind in der Fritzbox unter Netzwerk jeweils als DNS eingetragen und unter Internetzugangsdaten auch. Außerdem sind auch unter IPv6 die ULAs aktiviert. Im Pihole selbst habe ich die DNS Server meines Anbieter hinterlegt.

Soweit funktioniert das auch erstmal, jedoch stelle ich nun diverse Auffälligkeiten fest:

Es kommt des öfteren ein Fehler "Maximum number of concurrent DNS queries reached", das ist vermutlich auf 2 Domains zurückzuführen:
hpfcadd4.0.178.168.192.in-addr.arpa wird z.b. sehr oft nacheinander abgefragt und es kommt keine Antwort.

Ich schätze das hängt mit meiner Änderung, das Gastnetz mit über den pihole laufen zu lassen, zusammen. Vorher war im Pihole die Fritzbox unter DNS eingetragen, nun hat sich die Richtung ja geändert und die Fritzbox fragt immer den pihole.
Im Pihole ist unter DNS auch conditional forwarding aktiviert, die Einträge wurden für IPv4 erstellt, da hier keine weiteren Felder für IPv6 sind, habe ich versucht die Datei "90-reverse-ipv6.conf" im dnsmasq.d Ordner anzulegen, wie in diesem Thread beschrieben.(How to Configure Conditional Forwarding with IPv4 and IPv6 Simultaneously)
Ich bin mir nun nicht sicher ob ich das richtig gemacht habe, den sie wird einfach nicht geladen.

Wenn der Pihole bootet, steht dort [✓] Installed /etc/dnsmasq.d/01-pihole.conf, dasselbe hätte ich jetzt auch für meine neu angelegte Datei erwartet, steht dort aber nicht, also gehe ich davon aus, sie wurde nicht geladen.

Ich habe im OSX Textedit die .conf Datei erstellt, auf meine NAS kopiert und dort in den vom Pihole gemappten Ordner gelegt. (/Container/pihole/dnsmasq ---> /etc/dnsmasq.d)
Dieses Mapping ist ja dazu gedacht, wenn man den Pihole Container neu erstellt, das die ganzen Statistiken und Settings nicht verloren gehen. Ich habe also den Container auch neu erstellt, da ich davon ausgehe, dass dann eben alle Dateien aus dem Ordner geladen werden, wenn ich per ssh direkt im Container schaue, liegt die Datei auch im dnsmasq.d Ordner.

Ist das vorgehen falsch? Wie sehe ich den nun ob die Datei geladen wurde oder nicht?

In der Clientliste wird bei einigen Geräten nun auch nicht mehr der Name sondern irgendwelche kryptischen Zahlen Buschtaben Kombinationen angezeigt, ich schätze das wird auch das fehlende IPv6 conditional Forwarding sein?

Ich hoffe ihr könnt mir helfen.

Das ist primär eine Frage der Routerkonfiguration, und erst sekundär eine für Pi-hole.

Sofern der Router keine IPv6-Adresse als DNS-Server verteilt, kann Pi-hole auch nicht über IPv6 umgangen werden.

Fritzboxen lassen sich so konfigurieren, dass sie nur eine IPv4 als lokalen DNS-Server verteilen, s. z.B. Unresolved ipv6 adress in my top list - #4 by Bucking_Horn.

In dieser Konstellation würde Deine Custom-Konfiguration für IPv6-Rückwärtsanfragen auch einfach entfallen.

Das wird wohl in der Tat durch die Verwendung von Pi-hole als Upstream der Fritzbox zur Filterung des Gastnetzes verursacht. Da gleichzeitig Conditional Forwarding aktiv ist, kommt es hier zu einer partiellen DNS-Schleife, s.a. Maximum number of concurrent DNS queries reached - #8 by Bucking_Horn.

IPv6 zu deaktivieren möchte ich eigentlich vermeiden.

Deine verlinkte Erklärung zur DNS Schleife ist zunächst einleuchtend.

Ich habe mir die Einträge die ständig auftauchen nochmal angesehen.

2023-12-31 22:37:40 AAAA hpfcadd4.0.178.168.192.in-addr.arpa fritz.box OK (sent to fritz.box#53) N/A
2023-12-31 22:37:40 A hpfcadd4.0.178.168.192.in-addr.arpa fritz.box OK (sent to fritz.box#53) N/A

Client der anfragt ist jeweils die Fritzbox (also vermutlich ein Gerät aus dem Gastnetz?) und bekommt von der Fritzbox dann auch Informationen zurück.
Diesen Eintrag gibt es z.B. ca. 100x innerhalb einer Sekunde, da ja Informationen zurückkommen, verstehe ich nicht warum das eine Schleife sein soll, es ist ja nicht so, dass hier eine unbeantwortete Abfrage im Kreis läuft. Andererseits, warum sollte ein Gerät aus dem Gastnetz eine Abfrage nach meinem Drucker starten?

Wie erkennt man den ob Pihole die custom config nun geladen hat oder nicht? Müsste ich beim booten des Container eine Bestätigung wie für die anderen Dateien bekommen?

Das ist auch nicht mein Vorschlag (und das wäre in der Tat das letzte Mittel).
Für DNS-Antworten ist es egal, ob sie über IPv4 oder IPv6 transportiert werden. Das gilt insbesondere auch für AAAA-Daten. Clients können also ohne Probleme IPv6-Ziele kontaktieren, auch wenn sie den DNS-Server über IPv4 befragt haben. :wink:

Für die andere Frage würde es helfen, wenn Du entsprechende Logauszüge teilen würdest.

So wie ich die Beschreibung in der Fritzbox verstehe, bezieht sich das mit dem abschalten des IPv6 DNS nur auf das Heimnetz, im Gastnetz hätte das keine Auswirkungen. Wenn ich den Pihole also auch im Gastnetz haben möchte, wäre das keine gute alternative schätze ich.

Alternative zu was?

Die Fritzbox lässt die Konfiguration des lokalen DNS-Servers ausschließlich im Heimnetz zu.

Das Unterdrücken einer IPv6-DNS-Server-Adresse führt hier dazu, dass Clients ihre Anfragen nur noch von ihrer IPv4-Adresse schicken können.
Die Rückwärtsauflösung von IPv6-Adressen für lokale Clients ist damit nicht mehr notwendig.

Im Gastnetz verteilt die Fritzbox sich selbst als lokalen DNS-Server.
Wenn Du das Gastnetz filtern möchtest, bleibt Dir bei Fritzboxen also nur die Möglichkeit, den Upstream der FB unter Internet | Zugangsdaten | DNS-Server auf Pi-hole einzustellen.

Damit kommt es aber wie erläutert zu einer partiellen DNS-Schleife.
Diese kann über die beschriebenen Filterregeln unterbunden werden.

Die zwei Zeilen aus Deinem Log zeigen hier, dass Pi-hole keine Antwort erhalten hat (N/A). Die weiteren Zeilen aus dem Log würden zeigen, dass die Fritzbox die Anfragen hier direkt zurück an Pi-hole zurückschickt, was bei einer Latenz von 1ms innerhalb von weniger als einer Sekunde zum "Maximum number of concurrent DNS queries reached" führt.
Wie im verlinkten Topic erläutert:

DNS-Anfragen aus dem Gastnetz kommen also immer von einer IP der Fritzbox.
Sie ist damit der einzige Client, der potentiell noch DNS-Anfragen von einer IPv6-Adresse stellt (sofern Pi-holes IPv6-Adresse (LLA oder ULA) als Upstream der Fritzbox konfiguriert ist).

Da die FB ihre LLA und ULA nach EUI-64 erzeugt und diese damit fix sind, lässt sich der entsprechende Eintrag für LLA oder ULA in Pi-holes Local DNS Records anlegen, für den sich auch ein aussagekräftiger Namen vergeben lässt (z.B. Gastnetz).

Ich habe mich erstmal dazu entschlossen den pihole nur im normalen Netz laufen zu lassen.

In der Zwischenzeit habe ich mein Netzwerk nochmal angepasst und bin einer für mich perfekten Lösung relativ nah.

Es lag noch eine alte Fritzbox4040 im Schrank, die habe ich nun kaskadiert angeschlossen und einen eigenen IP Bereich erstellt. Hier werden meine privaten Clients angeschlossen wie eben auch die QNAP NAS.
Im Netz der vorgelagerten 6660 verbleiben im Endeffekt nur die Smarthome Geräte und eben auch der pihole. Die QNAP ist also hinter dem 2. Router und stellt den pihole im Bereich des ersten Router per macvlan zur Verfügung. Nun haben alle Clients einwandfrei Zugriff auf den pihole, sowohl per ipv4 als auch ipv6.
Mein einziges Problem in der Config ist eine Fehlermeldung des pihole "Cannot resolve DNS", nun scheinen also alle bis auf der pihole glücklich zu sein.
Den Fehler beheben konnte ich indem ich in der Qnap fest verdrahtet die IP des pihole als DNS Server eingetragen habe.

Mein Setup sieht folgendes vor:
Geräte hinter der 4040 ->Client DNS IP = fb4040 -> DNS Upstream fb4040 = IP pihole
Geräte hinter der 6660 -> Client DNS IP = pihole -> DNS Upstream 6660 = z.b. Cloudflare
Der pihole hat als Upstream die IPs der 6660 hinterlegt.

Aber warum macht das einen Unterschied ob ich die pihole ip in der QNAP als DNS eintrage oder die der fb4040? die fb4040 zeigt doch ohnehin auf den pihole?!?!

Andere Frage wäre noch ob es eine Möglichkeit gibt in dem Setup die Geräte hinter der 4040 im pihole auch einzeln aufgeführt zu bekommen, die werden aktuell alle unter fb4040 zusammengefasst. Ich hatte probiert jedem client direkt die pihole IP zu geben, aber das hat nicht geholfen, es wurde trotzdem alles unter fb4040 angezeigt.

This topic was automatically closed 21 days after the last reply. New replies are no longer allowed.