Conditional Forwarding unter mehreren Netzen

Hi zusammen,

ich bin dabei das Netzwerk etwas umzugestalten und muss im PiHole mehrere Netze hinterlegen.
Folgende beispielhafte Situation:
10.0.0.0/24 Servernetz
10.1.0.0/24 Clientnetz
10.2.0.0/24 Gästenetz

Den DHCP & ADDNS intern übernimmt ein Domänencontroller aus dem Servernetz.
Ansonsten soll der PiHole ran.

Solange ich nur in einem Netz bleibe und conditional forwarding über die Weboberfläche aktiviere, funktioniert es, wenn ich aber z.B. 20-myVlans.conf unter /etc/dnsmasq.d/ anlege und wie folgt befülle:
rev-server=10.0.0.0/24,10.0.0.10
server=/meineDomain.de/10.0.0.10
rev-server=10.1.0.0/24,10.0.0.10
server=/meineDomain.de/10.0.0.10
rev-server=10.2.0.0/24,10.0.0.10
server=/meineDomain.de/10.0.0.10

dann erscheinen die Clients als IP Adressen und neuere interne Namen können nicht aufgelöst werden, lediglich vom DC funktioniert es.

Der DHCP verteilt als DNS an erster stelle PiHole an 2 Stelle sich selbst.
Aktuell ist lediglich 10.0.0.0/24 aktiv, die anderen Netze werden erst in sehr kurzer Zukunft aktiviert, aber bis dahin wollte ich den PiHole vernünftig zum Laufen bekommen.

Habt ihr eine Idee, wie ich mehrere Netze für conditional forwarding aktiviere? Dabei soll lediglich der eine DHCP Server verwendet werden und auch nur ein PiHole.

Ich danke euch =)

Dann ist es Deinen Clients möglich, Pi-hole über diesen zweiten DNS-Server zu umgehen.
Grundsätzlich muss Pi-hole der einzige DNS-Server für Dein Netzwerk sein.

Ausgeführt auf einem Client, was geben folgende Kommandos zurück?

nslookup 10.0.0.1 pi.hole
nslookup 10.0.0.1 10.0.0.10

Ja, schon, aber so kann ich vernünftig mit der Domäne kommunizieren. Das Blocken klappt auch soweit gut.

Führt zu folgendem Ergebnis:

nslookup 10.0.0.1 pi.hole
Server:  pi.hole
Address:  10.0.0.11

DNS request timed out.
    timeout was 2 seconds.

Führt zu folgendem Ergebnis:

nslookup 10.0.0.1 10.0.0.10
Server:  UnKnown
Address:  10.0.0.10

*** 10.0.0.1 wurde von UnKnown nicht gefunden: Non-existent domain.

Generell findet er den DC-DNS nicht:

nslookup 10.0.0.10
Server:  pi.hole
Address:  10.0.0.11

*** 10.0.0.10 wurde von pi.hole nicht gefunden: Non-existent domain.

Sich selbst schafft er aufzulösen:

nslookup 10.0.0.11
Server:  pi.hole
Address:  10.0.0.11

Name:    pi.hole
Address:  10.0.0.11

Wie gesagt, irgendwie funktioniert das conditional forwarding nur, wenn ich das für ein Netz in der WebOF mache. Da ich aber demnächst mehrere VLANs haben werde, wollte ich, dass das für alle Netze funktioniert.

Pi-hole kann eine DNS-Anfrage nur dann beantworten, wenn ein Client seine DNS-Anfrage an Pi-hole sendet.
In Deiner Konfiguration werden Clients Pi-holes Filterung nach eigenem Ermessen umgehen. Das Ergebnis einer DNS-Anfrage ist so nicht mehr vorhersagbar.

Grundsätzlich muss Pi-hole der einzige DNS-Server für Dein Netzwerk sein.
Die Einbindung des DC sollte über Pi-hole erfolgen.

Der DNS-Server unter 10.0.0.10 kennt keinen Namen für 10.0.0.1.
Da Pi-hole diesen DNS-Server über Conditional Forwarding befragen wird, kann es auch nur diese Antwort zurückliefern.

Vorausgesetzt, dass Pi-hole für CF auf 10.0.0.10 eingerichtet ist, deutet en Timeout auf eine blockierende Firewall oder auf einen DNS-Loop hin.

Bitte lade ein Debug Log hoch und poste hier anschließend nur die Token-URL.
Das Token generierst Du über

pihole -d

wobei Du die Frage nach dem Upload bejahst, oder Du machst das über die Weboberfläche:
Tools > Generate Debug Log

Sofern das über CF funktioniert, werde ich das so umstellen. Sinnvoll ist es auf jeden Fall.

Die 0.1 ist die FritzBox, der 0.10 ist der Domänencontroller.
Aber ja, du hast Recht. Irgendwie funktioniert es auf jeden Fall nicht so, wie es soll.

Sollte er ja, den Inhalt der 20-myVlans.conf habe ich im Startpost gepostet. Habe ich sie soweit richtig konfiguriert?
Die Win-FW ist ausgeschaltet (hab auch gedacht, dass es daran liegen könnte), aber wie gesagt, sie ist aus.

Ich hoffe, Debug Log lässt etwas mehr Licht ins Dunkle bringen:
https://tricorder.pi-hole.net/rRJXwiHF/

Danke dir auf jeden Fall.

Die Konfiguration im Debug Log sieht soweit zumindest syntaktisch korrekt aus.

Die Zeile

braucht allerdings nur einmal notiert zu werden.

Außerdem verwendest Du einen von der FritzBox abweichenden lokalen Domänennamen (die FB gibt dafür ja fest fritz.box vor).

Wie sorgst Du dafür, dass Clients diese lokale Domäne verwenden?

Dein Debug Log zeigt, dass Dein DHCP-Server weder einen DNS-Server noch eine lokale Domäne verteilt:

*** [ DIAGNOSING ]: Discovering active DHCP servers (takes 10 seconds)
   Scanning all your interfaces for DHCP servers
   
   * Received 300 bytes from enp1s0:10.0.0.10
     Offered IP address: 10.0.0.47
     Server IP address: 10.0.0.10
     DHCP options:
      Message type: DHCPOFFER (2)
      netmask: 255.255.255.0
      renewal-time: 129600 ( 1d 12h )
      rebinding-time: 226800 ( 2d 15h )
      lease-time: 259200 ( 3d )
      server-identifier: 10.0.0.10
      --- end of options ---

Ist das beabsichtigt?

Woher wissen dann Deine Clients, welchen DNS-Server und welche Search-Domäne sie verwenden sollen?

Wird u.U. doch noch der DHCP-Server der FritzBox verwendet?

Ok.
Dann wäre es immerhin denkbar. dass Dein DC/DHCP-Server den Hostnamen der FritzBox nicht kennt, weil diese ja kein DHCP-Lease über den DHCP-Server bezieht.

Dein Debug Log zeigt aber, dass auch Rückwärtsanfragen/reverse lookups für andere IP-Adressen von 10.0.0.10 mit NXDOMAIN beantwortet werden, z.B.:

*** [ DIAGNOSING ]: Pi-hole log
-rw-r----- 1 pihole pihole 6.7M Jun 15 11:51 /var/log/pihole/pihole.log
   -----head of pihole.log------
(...)
   Jun 15 00:00:03 dnsmasq[485]: query[PTR] 169.0.0.10.in-addr.arpa from 10.0.0.10
   Jun 15 00:00:03 dnsmasq[485]: forwarded 169.0.0.10.in-addr.arpa to 10.0.0.10
   Jun 15 00:00:03 dnsmasq[485]: query[PTR] 169.0.0.10.in-addr.arpa from 10.0.0.10
   Jun 15 00:00:07 dnsmasq[485]: reply 10.0.0.169 is NXDOMAIN

Außerdem zeigt diese Sequenz Hinweise auf einen möglichen DNS-Loop:
Eine Anfrage von 10.0.0.10 wird von Pi-hole an 10.0.0.10 weitergeleitet.

Woher soll denn der DNS-Server auf Deiner 10.0.0.10 planmässig das Wissen über lokale Namenszuordnungen beziehen?
Gibst Du Namenszuordnungen dort manuell vor?

Möglicherweise muss hier das Zusammenspiel zwischen dem DHCP-Server und dem DNS-Server auf Deiner 10.0.0.10 noch konfiguriert werden.

Ja genau, Active Directory Domain.

In dem sie in meiner Domäne sind, daher der zweite DNS Eintrag.
Sobald ich "Domäne beitreten" klicke und den Namen eingebe, muss ich nur noch authentifizieren und es funktioniert.

Viele Optionen habe ich nicht gesetzt. Lediglich 3, 4, 5, 6 und die 15.

Glücklicherweise nicht.
image

Ne, die .10 ist ja der Domänencontroller (also auch DHCP & DNS). Was lokal in der Domäne ist, sollte er wissen und dementsprechend sollte PiHole den lediglich befragen, wenn es sich um Intranet-Clients handelt.
Die .11 ist der PiHole. Daher habe ich dem Client an die erste Stelle den PiHole als DNS Server gegeben und an der zweiten Stelle den AD-DNS, also die .10.

Jedoch kriegen die Clients lokal nicht wirklich alles aufgelöst und das ist merkwürdig. Mal geht es, mal nicht. Der PiHole soll lediglich die internen Anfragen vom AD-DNS befragen und mir zurückliefern. Wenn es ins Internet geht, dann gerne die eingetragenen DNS Server 1.1.1.1 und 1.0.0.1.
Aber irgendwie funktioniert das Zusammenspiel nicht so.

Der DC hat an erster Stelle sich selbst als DNS, an zweiter Stelle den PiHole.
Die Clients haben an erster Stelle den PiHole als DNS und an zweiter Stelle den AD-DNS (DC).

Deshalb vermute ich, dass irgendwie das CF noch nicht so funktioniert, wie ich es vor hatte.

Dann schau Dir nochmal die DHCPOFFER-Antwort Deines DHCP-Servers im Debug Log an (/var/log/pihole/pihole_debug.log).
Keine der von Dir genannten Optionen (router, time server, name server, domain server, domain name) wurde darin geliefert.

Das muss nicht notwendigerweise etwas mit Deinem eigentlichen Problem zu tun haben, ist aber trotzdem auffällig.

Zurück zu eben diesem Problem bei Auflösung lokaler Namen:
Für Rückwärtsanfragen haben Deine nslookups und Dein Debug Log bereits erste Bestätigungen für den Verdacht geliefert, dass Dein DC diese nicht beantworten kann bzw. fälschlicherweise mit NXDOMAIN beantwortet.

Wie sieht es denn mit normalen Anfragen aus?
Was antwortet Dein 10.0.0.10 DC, wenn Du einen bekannten Hostnamen anfragst, z.B.:

nslookup fritz.box 10.0.0.10

Und zusätzlich ist auch Pi-holes Conditonal Forwarding aktiviert.
Dadurch kann es tatsächlich zu einem partiellen DNS-Loop kommen, in dem DNS-Anfragen zwischen Pi-hole und Deinem DC endlos hin- und hergeschickt werden.
Wie erwähnt, finden sich hierfür auch Anzeichen in Deinem Debug Log.

Um das zu vermeiden, solltest Du versuchen, Deine DNS-Auflösung schleifenfrei zu konfigurieren.
Dein DC sollte Pi-hole zwar als lokalen DNS-Server verteilen, aber selbst nicht Pi-hole als Upstream-DNS-Server verwenden.

Das stimmt, aber ich denke, dass ich das wohl später erst in den Griff kriegen sollte (hoffentlich).

So sah es aus, bevor ich was verändert habe:
PS C:\Users\MaxK> nslookup smartbfnsrv 10.0.0.10
Server: UnKnown
Address: 10.0.0.10

Name: smartbfnsrv.HEIM.AT
Address: 10.0.0.9

PS C:\Users\MaxK> nslookup smartbfnsrv 10.0.0.11
Server: pi.hole
Address: 10.0.0.11

*** smartbfnsrv wurde von pi.hole nicht gefunden: Non-existent domain.

Dann habe ich sowohl auf dem DC-DNS den Pihole rausgehauen und nur localhost gelassen, als auch auf dem PiHole meine eigene Konfig rausgehauen und vorerst CF nur für 10.0.0.0/24 über die WebOf eingetragen

PS C:\Users\MaxK> nslookup smartbfnsrv 10.0.0.10
Server: UnKnown
Address: 10.0.0.10

Name: smartbfnsrv.HEIM.AT
Address: 10.0.0.9

PS C:\Users\MaxK> nslookup smartbfnsrv 10.0.0.11
Server: pi.hole
Address: 10.0.0.11

Name: smartbfnsrv.HEIM.AT
Address: 10.0.0.9

Das habe ich versucht mit der oberen Einstellung zu erreichen.

Ich hab mal im weiten Web die Einstellungen für ADDS & PiHole gefunden und die umgesetzt. Das hat eigentlich auch soweit funktioniert, nur habe ich jetzt PiHole neu erstellt (migriert) und den DC migriert... gleichzeitig wollte ich mehrere VLANs einführen, daher die ganze Komplikation / Umstellung.

Das sieht doch schon ganz gut aus.

Du könntest jetzt noch einmal versuchen, Deine 20-myVlans.conf wieder anzulegen (pihole restartdns nicht vergessen).

Dann solltest Du jeweils eine normale und eine Rückwärts-DNS-Anfrage sowohl gezielt an Pi-hole als auch an Deinen DC schicken und die Ergebnisse abgleichen.

Meine Erwartung wäre, dass es dabei jetzt nicht mehr zu Abweichungen kommt.

Hey,
danke für deine Unterstützung. Es scheint zu funktionieren.

PS C:\Users\MaxK> nslookup diva 10.0.0.10
Server: UnKnown
Address: 10.0.0.10

Name: DIVA-42.HEIM.AT
Address: 10.0.0.167
Aliases: diva.HEIM.AT

PS C:\Users\MaxK> nslookup diva 10.0.0.11
Server: pi.hole
Address: 10.0.0.11

Name: DIVA-42.HEIM.AT
Address: 10.0.0.167
Aliases: diva.HEIM.AT

Ende nächster Woche / Anfang übernächster Woche werde ich dann das Netzwerk auf VLANs umstellen und werde dann sehen, ob die DNS Auflösung und PiHole-Blockaden soweit funktionieren.

Witzig ist, dass im Dashboard des PiHoles, egal ob ich die .conf-Datei verwende oder CF über die WebOF, nur die IP Adressen und keine Namen sehe.
Meinst du, dass man das ggf. auch noch gelöst kriegt?

Liebe Grüße und noch ein schönes, restliches Wochenende. :slight_smile:

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