Windows DNS - interne Zone wird nicht aufgelöst
-
Hallo,
Ich habe mir hier eine Testumgebung aufgebaut wo die pfsense mehre interne Netze verbindet.
In einem der Netze ist der Windows Domain Controller der auch DNS Server ist.Jetzt möchte ich das die Pfsense mittels DNS Resolver aktivierten Forwarding Modus den Windows DNS nutzt.
Dies habe ich in den General Setup auch so eingestellt.Ich sehe auch auf dem Log des Windows Server das anfragen von der pfsense reinkommen und übergeben werden.
Für externe Anfragen funktioniert das schon einmal gut.
So das die Pfsense halt nicht ihre root dns server verwendet sondern alles an den WIndwos DNS weiterleitet.Jetzt erwarte ich aber da alles von der Pfsense an den Windows DNS weitergeleitet wird das auch die internen Zonen wie z.b. dc01.test.lan bei den clients hinter der pfsense ordnungsgemäß aufgelöst werden.
Dies ist aber nicht der Fall wenn ein Client die Windows Maschine anfragen will.
Im DNS Resolver Log auf der Pfsense bekomme ich dann nur ein "dc01.test.lan. A IN SERVFAIL".
Wenn ich jetzt aber in der PFsense selbst mittels DNS-Lookup "dc01.test.lan" auflöse klappt alles problemlos.
DIe PFsense scheint die auflösung nur nicht an den Client weiterzuleiten.
Firewall Regeln sind bis jetzt noch alles auf "any <-> any" in alle angeschlossene Netze eingestellt.
Wenn ich jetzt aber z.b. in den DNS Resolver in der Domain override die "test.lan" Domain eintrage und hier als Zielserver wieder den Windows DNS Eintrage (Halt der selbe Eintrag noch einmalder schon unter General Setup -> DNS Server Settings steht) funktioniert die Auflösung der internen zone vom Windows DNS.
Dies ist aber ja nicht die optimale Lösung da man ja quasi alles unnöttig doppelt eintragen muss wenn sich Zonen berändern und das Ziel (der Windows DNS) ja sowieso der gleiche ist.Wie gesagt,... sehe ich im Windows DNS Log das die Pfsense die DNS anfragt aber die Pfsense gibt den erhaltenen einrag ohne "Domain override" im DNS Resolver nicht an den Client weiter.
Wo liegt hier der Fehler?
Ist das ein Bug?Den Pfsense DNS-Resolver habe ich mittels folgenden "Custom options" übrigens dazu gebracht mir mehr auszugeben:
server:
#log-queries: yes
log-replies: yes
#log-tag-queryreply: yesIch hoffe jemand kann mir erklären warum die pfsense sich hier so komisch verhält.
PS. Mit DNS Resolver deaktiviert und den DNS Forwarder aktiviert habe ich es auch schon probiert.
Selbes verhalten,.. ohne "test.lan" in den "Domain Overrides" einzutragen geht es auch hier nicht.Ich bitte um Hilfe,... Ich verstehe es einfach nicht.
-
@holger852
Ich denke ein "private-domain" in der Resolver Konfig sollte da helfen.
Also in den Custom Options für dein Beispiel:server: private-domain: "test.lan"
Wenn du da schon einen Bereich "server" hast, kannst den Eintrag da hinzufügen.
-
Erst einmal Danke für die schnelle Antwort.
Das ist ja ein ähnlicher Ansatz wie mit dem eintragen der Domain in die Domain-Override im DNS-Resolver.So ganz gefällt mir das aber nicht da ich später automatisiert entwicklungs/testumgebung mittels pipelines haben werde die eine Zone automatisch erstellen im Windows-DNS und nach abschluss des Projektes auch wieder abräumen.
Das würde dazu führen das ich immer wieder den "private-domain" Eintrag ändern muss.
Hionzu kommt das ich gerade auch nicht weiß ob man bei private-domain mehrere Domains einfach kommasepariert angeben kann.Es wäre schon wünschenswert das Pfsense den Windows DNS und alle darin befindlichen lokalen Zonen selbständig erkennt.
Wie gesagt scheint das Pfsense Hostsystem dies ja zu tun da mittels DNS-Lookup ohne zusätzliche Einträge eine Auflösung möglich ist.Woran könnte es denn noch liegen das die Pfsense diese Anfragen (die Sie ja für sich selbst auflösen kann) nicht an die Clients in den verbunden Subnetzen weiterreicht?
Es muss doch eine möglichkeit geben das dies funktioniert.
Oder habe ich hier irgendwo noch ein GROßEN Denkfehler drinn?
Gruß Holger
-
@holger852 Nutze doch den Windows Domain Controller direkt für DNS für die Clients und lasse ihn alles externe über die Sense auflösen?
-
@holger852 said in Windows DNS - interne Zone wird nicht aufgelöst:
So ganz gefällt mir das aber nicht da ich später automatisiert entwicklungs/testumgebung mittels pipelines haben werde die eine Zone automatisch erstellen im Windows-DNS und nach abschluss des Projektes auch wieder abräumen.
Hionzu kommt das ich gerade auch nicht weiß ob man bei private-domain mehrere Domains einfach kommasepariert angeben kann.
Nein. Man kann aber mehrere derartiger Einträge machen.
Wie gesagt scheint das Pfsense Hostsystem dies ja zu tun da mittels DNS-Lookup ohne zusätzliche Einträge eine Auflösung möglich ist.
Das ist der DNS client von pfSense.
Du möchtest aber einen DNS Resolver (unbound) für andere Geräte bereitstellen. Der folgt nun mal bestimmte Regeln.Wenn das ein Problem ist und deine Anforderungen mit dem Windows DNS umzusetzen sind, frag ich mich, warum du überhaupt den Resolver dazwischen schalten möchtest.
-
@Bob-Dig und @viragomann
Ich möchte später auch das alle Systeme aus den (nennen wir es mal Labornetz) keinen eigenen alternativen DNS-Server selbständig setzen können und die Pfsense mittels DNS-redirekt alle alternative DNS Server umleitet um so alles über den einen Punkt (Windows-DNS) zu führen.
Also soll keine direkte Kommunikation aus dem Labornetz auf Port 53 mit der Windows Maschiene möglich sein.
Daher DNS-Resolver oder meinet wegen auch DNS-Forwarder.Aber ich verstehe dann trotzdem noch nicht wenn der DNS-Client des Pfsense Hostsystem alles anfragen und auflösen kann warum dies dann bei dem DNS-Resolver oder DNS-Forwarder nur für die externen Einträge über den Windows-DNS geht?
Ich sehe ja das die PFsense den Windows anfragt für z.b. "forum.netgate.com" und dies dann von der Windows Maschine von den 13 Root Servern oder aus dem Cache geholt und an die Pfsense übermittelt wird die es dann wieder an die Clients ins Labornetz schickt. Nur eben bei selbst gehostete Zonen auf der Windows Seite macht er das nicht automatisch.Im Notfall muss ich wirklich schauen wo diese "Custom options" in der Pfsense als Config liegen und dann etwas skripten was mittels SSH die Einträge automatisch setzt.
Aber dann muss ja bei jedem setzen der DNS-Resolver oder DNS-Forwarder neu gestartet werden.
Das ist ja auch übel. -
@holger852 said in Windows DNS - interne Zone wird nicht aufgelöst:
Ich möchte später auch das alle Systeme aus den (nennen wir es mal Labornetz) keinen eigenen alternativen DNS-Server selbständig setzen können und die Pfsense mittels DNS-redirekt alle alternative DNS Server umleitet um so alles über den einen Punkt (Windows-DNS) zu führen.
Also soll keine direkte Kommunikation aus dem Labornetz auf Port 53 mit der Windows Maschiene möglich sein.
Daher DNS-Resolver oder meinet wegen auch DNS-Forwarder.Ist kein Argument, den Redirect kannst Du auch auf den Windowsserver machen... Aber Du machst das schon.
-
@holger852 said in Windows DNS - interne Zone wird nicht aufgelöst:
Also soll keine direkte Kommunikation aus dem Labornetz auf Port 53 mit der Windows Maschiene möglich sein.
Dann leite Port 53 auf deinen DNS Server um und blockiere ggf. DoT und DoH.
Daher DNS-Resolver oder meinet wegen auch DNS-Forwarder.
Der DNS Forwarder hat diese Restriktionen vermutlich eh nicht. Kannst es ja damit versuchen, nachdem du eh nur forwarden möchtest.
Aber ich verstehe dann trotzdem noch nicht wenn der DNS-Client des Pfsense Hostsystem alles anfragen und auflösen kann warum dies dann bei dem DNS-Resolver oder DNS-Forwarder nur für die externen Einträge über den Windows-DNS geht?
Noch einmal: Das sind zwei völlig unterschiedliche Funktionen. Die stehen in keinem Zusammenhang.
Im Notefall muss ich wirklich schauen wo diese "Custom options" in der Pfsense als Config liegen und dann etwas skripten was mittels SSH die Einträge automatisch setzt.
Die Idee würde ich rasch wieder verwerfen. Daran sind schon andere Leute kläglich gescheitert.
Alles, was du ggf. beschreiben kannst, wird beim Neustart wieder überschrieben. -
@Bob-Dig
Das ist ja wirklichh schade :(Aber sind wir uns dann sicher das dieses Verhalten so wirklich gewünscht ist?
Erwartet man von einem, bleiben wir mal beim DNS-Forwarder nicht das dieser einfach alle Anfragen (egal was rein kommt) stumpf an den angegebenen dahinter liegenden DNS-Server weiterleitet?
In diesem Fall ja das Windows System mit internen Zonen und der Möglichkeit externe Anfragen mittels Rootserver aufzulösen.Ist dieses Verhalten in der Pfsense dann nicht grundlegend ein BUG?
Als "dummer" DNS-Forwarder sollte die Pfsense hier doch gar keine eigenen Entscheidungen treffen.
Oder sehe ich hier etwas grundlegend falsch?
Bin zugegebener maßen auch kein Network Engineer und hab mir mein Halbwissen auch nur angelesen^^ -
@holger852 said in Windows DNS - interne Zone wird nicht aufgelöst:
Erwartet man von einem, bleiben wir mal beim DNS-Forwarder nicht das dieser einfach alle Anfragen (egal was rein kommt) stumpf an den angegebenen dahinter liegenden DNS-Server weiterleitet?
Genau das macht ein simples Port Forwarding.
Wenn du etwas derartiges "stumpfes" haben möchtest, dann richte es doch ein. Das braucht weder DSN Resolver noch Forwarder.Wenn du aber deren Funktionen verwenden möchtest, musst du die Tools deinen Bedürfnissen entsprechend konfigurieren. Von selbst können sie leider noch nicht für dich denken.
-
Dann erklär mir bitte wie ich das in Pfsense so "stumpf" einrichte?
Es funktioniert ja irgendwie nicht ohne "Domain-Overide" oder euer erwähntes "private-domain" als zusätzliche Angaben.
Ich bin gerne bereit zu lernen aber so geht es einfach nicht.
Ich brauche ein Ansatzpunkt. -
@holger852 said in Windows DNS - interne Zone wird nicht aufgelöst:
Dann erklär mir bitte wie ich das in Pfsense so "stumpf" einrichte?
Die zugehörige Frage habe ich schon mal gestellt, wurde aber nicht beantwortet. Also nochmal: Warum möchtest du DNS auf der pfSense nutzen, wenn du eigentlich einen anderen DNS Server verwenden möchtest?
Wenn es dafür keinen Grund gibt bzw. der einzige Grund ist, dass die Requests auf die pfSense treffen könnten, dann kannst du diese einfach weiterleiten. -
Der Grundgedanke war da später auch einige der Systeme in Zweigniederlassungen stehen werden so eine Art kleinen lokalen Cache zu haben und nicht alles immer wieder über den Tunnel laufen zu lassen.
Aber das ist noch nicht entschieden.
Erst einmal geht es nur um die Machbarkeit.
Und da möchte ich geren erst einmal unabhängig von der Sinnhaftigkeit des Aufbaus geklärt haben warum dieses "stumpfes" Weiterleiten nicht wie erwartet funktioniert.
Alles weitere wird sich dann erst noch ergeben.Daher ja auch meine Frage vorhin in einem vorherigen Post ob dieses Verhalten mit dem "stumpfen" weiterleiten mittels DNS-Forwarder oder DNS-Resolver im Forwarding Modus dann doch wirklich ein BUG in der Pfsense ist?
Erste einmal möchtes ich das gerne verstehen bevor ich an einem anderen Aufbau oder Lösungsweg denke.
-
@holger852
Ein stumpfes Weiterleiten macht ein Port Forwarding. Schon mehrmals vorgeschlagen.
DNS Resolver und DNS Forwarder prüfen jede Anfrage und leiten sie nur bedingt weiter oder beantworten sie auch selbst. Im Fall des Forwarders zumindest auf existierende Overrides.
Also kann hier wohl kaum von einem Bug die Rede sein.Ich denke nicht, dass der Forwarder ein Problem mit der lokalen Domain hat, ich habe es aber nicht getestet. Das überlasse ich dir. Angemerkt habe ich das schon mal hier.
Für den Resolver gibt es möglicherweise noch andere Einstellungen, die deinen Bedürfnissen besser gerecht werden. "private-domain" ist das, was mir zu deinem Beispiel bekannt war, das dir aber nun zu wenig Flexibilität bietet.
Vielleicht hat jemand anders eine Lösung, oder du recherchierst im Netz. Für diesen Zweck hatte ich zuvor schon den eigentlichen Namen des Tools erwähnt: unbound. Das ist nichts pfSense-eigenes, das ist OpenSource, die in pfSense integriert wurde. -
Aber wenn ich dann z.b. ein Aufbau hätte wo das Labornetz 90% der Anfragen an den Windows DNS mit den sich ändernden lokalen Zonen schicken soll und zusätzlich noch ein weiteren DNS Server hätte der eine unabhängige Zone betreibt diese dann aber mittels "Domain-Override" oder "private-domain" hier auch zu verfügung stellen möchte funktioniert ein einfaches port forwarding schon nicht mehr.
Dann müsste der DNS-Forwarder oder das unbound (wie du ja sagtest was darunter liegt) genau so agieren wie ich es eigentlich erwarten würde (was es ja nicht tut) ohne die Overrides für den Windows DNS mit den sich dynamisch ändernden lokalen Zonen alle immer händisch nachzupflegen.
Also meinst das geht,... wenn es nicht Richtung BUG geht,... ehr in richtung Feature Request?
So oder so scheint das Pfsense es ja nicht zu machen ohne händisch einzugreifen in diesen symbolischen Aufbau.Wenn jemand anderes noch einen Tip hätte wäre ich natürlich sehr dankbar.
-
So,... Ich bin es noch einmal.
Die ganze Sache hat mir keine Ruhe gelassen.
Ich habe die Lösung gefunden warum Zonen des Windows DNS nicht aufgelösst werden bei den Clients.Es war nicht direkt der DNS-Resolver oder DNS-Forwarder schuld sondern allgemeine Einstellungen der Pfsense.
Unter "System -> Advanced" ist der Punke "DNS Rebind Check" versteckt.
Und wenn man sich die Beschreibung durchliest ist es genau das was mir Probleme macht.
Auflösung von internen IP Bereichen von einen externen DNS Server.
Wegenfalls aus sicht der PFsense ist mein Windows DNS ja ein externer Server^^
"Disable DNS Rebinding Checks" gesetzt und siehe da es funktioniert wie gewünscht.Damit kann dieses Anfrage aus meiner Sicht geschlossen werden.
Ich danke euch für die Tips die schlussendlich dafür gesort haben das man anderweitig noch einmal nachgeforscht hat und so auf die doch im endefekt ganz simple Lösung mit dem Rebinding gekommen ist.
Gruß Holger
-
@holger852 said in Windows DNS - interne Zone wird nicht aufgelöst:
Es war nicht direkt der DNS-Resolver oder DNS-Forwarder schuld sondern allgemeine Einstellungen der Pfsense.
Unter "System -> Advanced" ist der Punke "DNS Rebind Check" versteckt.
Und wenn man sich die Beschreibung durchliest ist es genau das was mir Probleme macht.
Auflösung von internen IP Bereichen von einen externen DNS Server.In diesem Zusammenhang hatte ich diese Funktion noch gar nicht als Abhilfe gesehen, nur für den Zugriff auf die WebGUI selbst via Hostnamen. Aber ja, steht dort so beschrieben.
Danke für die Rückmeldung.
-
@holger852 said in Windows DNS - interne Zone wird nicht aufgelöst:
Wegenfalls aus sicht der PFsense ist mein Windows DNS ja ein externer Server^^
Nein ist er nicht. Es geht um einen externen Server der für die IPs externe IPs rückliefert statt interne IPs. Das ist Rebind Checking. Das hat mit dem beschriebenen Punkt nicht viel zu tun. Der DNS Forwarder wurde schlicht vor - für ihn - falsche Informationen geschützt, die es nicht geben würde, wenn man das entsprechend als Domain oder Host Override definiert. Den Punkt abzuschalten bringt aber auch die Gefahren mit sich, dass ein extern/intern Problem beim Zugriff auf die Sense UI selbst nicht mehr detektiert wird. Darum ist es in der Sektion System/Advanced, weil es um die Sense selbst bzw. deren Schutz vor Rebinds geht, dass sie plötzlich mit Namen oder IPs angesprochen wird, die sie gar nicht hat/sein soll und das abgefangen wird. Der Schutz hat aber seinen Grund.
Das ganze Setting sieht für mich etwas verschoben aus und falsch aufgezogen aber das kann auch nur mein Eindruck sein. Wenn es für dich im Labor funktioniert - auch gut, ich würde das in der Praxis allerdings nicht ausrollen. :)
Cheers
-
Ich verstehe was du sagen willst.
Ich habe auch heute noch einmal drüber nachgedacht und glaube das ich es dann doch mit dem "private-domain" Eintrag machen werde und die dynamischen DNS Zonen für die Entwicklungsumgebungen dann in einer Sub-Zone ins Windows-DNS packe alla "host.lab1.dev.lan".
So kann ich automatisiert quasi unendliche "host.XXX.dev.lan" Sub-Zonen erzeugen.
In der Pfsense muss ich dann nur "dev.lan" als "private-domain" Eintragen und er lösst all meine zukünftigen Sub-Zonen auch auf.Ich glaube das wäre so wirklich schlauer.
Ich muss dann halt nur die Zonen im Root des Windows DNS unangetastet lassen bzw. bei dortigen Änderungen diese doch händisch auf der Pfsense nachpflegen. -
@holger852 Wenn du tatsächlich noch mehr und größere Zonen erstellen und verwalten willst, kannst du am Ende immer noch hergehen, und das Bind Package auf der Sense installieren - dann kannst du da deine kompletten Zonen mit verwalten wie du möchtest :) Dann muss man natürlich sehen, ob und wie man das zusammen mit dem Resolver o.ä. betreibt (andere Ports etc.) aber gehen tut es :)