Moin,
Martin Schuchardt kruemeltee@gmx.de (So 21 Aug 2016 21:46:18 CEST):
Hoi Kollegen,
ich bräuchte mal etwas Aufklärung, unter Linux ist ja viel machbar, aber ich such mir grad nen Wolf.
Folgendes Projekt: ich baue meinen eigenen internen DNS Server (um einfach mal etwas mehr in die Materie einzusteigen). Nun will ich den auch nutzen, aber nur für meine interne Domain. Diese endet auf .home. Soweit so gut.
DNS-Server… man sollte mit der Begrifflichkeit aufpassen. Der kann wirklich ein authoritativer *Server* sein, oder ein Forwarder:
DNS-„Server“: - Authoritive Server (er hat die Zonendaten) - Master - Slave - Forwarder (er kennt andere Server, an die die Fragen weitergleitet werden) - Resolver (er kennt keine anderen Server und muss sich über die Root-Server kümmern)
Ich unterstelle mal, dass Du es mit einem BIND versuchst.
Wenn ich nun auf einem Client in die resolv.conf den Nameserver als erstes eintrage, dann fragt mein Client diesen DNS Server ja alles, u.a. auch Zonen für die er nicht verantwortlich ist (z.B.: www.web.de). Resultat: er antwortet etwas wie "keine Ahnung". Ergo ich kann die URLS des WWW nicht auflösen, meine eigenen jedoch schon.
Wie ist die Ausrede des Forwarders (Verwende `dig`, um ihn zu fragen. REFUSED oder SERVFAIL, oder was anderes).
Als authoritive Server (Master oder Slave) antwortet er auf alle Queries (außer, AXFR/IXFR (Zonentransfer, inkrementeller Zonentransfer).
Der BIND als Forwarder/Resolver antwortet nicht, wenn die Query aus keinem der angeschlossenen Netze kommt und die Default-ACL noch gültig ist. Wie er mit der Frage umgeht, also ob er sich selbst über die Root-Server kümmert oder einen anderen Forwarder befragt, hängt von der Konfiguration ab. Auch, was passiert, wenn der befragte Forwarder nicht antwortet (Options „forwarders“ und „forward“).
Wenn ich jetzt 2 Server in die resolv.conf eintrage, wird ja der zweite erst dann genutzt, wenn der erste (nach einem Timeout) nicht erreichbar ist; er fragt also grundsätzlich meinen.
Ja, zwei Server in der resolv.conf sollten dort nur stehen, wenn Du 100%(!) sicher bist, dass die die selbe Information haben. (Es ist nicht zwingend, dass immer erst der erste und dann, nach einem Timeout der 2. gefragt wird, guckst Du resolv.conf(5) [rotate])
ist es möglich, einem Linux-Client beizubringen, nur beim Auflösen einer (oder mehrerer Zonen) einen bestimmten DNS Server zu verwenden, ansonsten den Standard?
Wenn Du mit Client den Stub-Resolver der libc meinst, dann „nein“. Wenn Du auf dem Linux-Client aber z.B. DNSMASQ oder UNBOUND oder BIND (vielleicht genügt auch LWRES) installierst, dann ja.
Aber warum? Ich würde den von Dir aufgesetzten „Server“ so konfigurieren, dass er halt alles auflösen kann.