Dieses Dokument beschreibt die Einrichtung eines DNS- Nameservers unter Linux und Windows NT 4.0. Es handelt sich hierbei um eine Zusammenfassung meiner Erfahrungen beim Aufbau eines Nameservers, der für folgende Anforderungen erfüllen sollte:
Durchführung der Namens- Adreßauflösung innerhalb eines lokalen Netzes (z.B. eines firmeneigenen LAN).
Weiterreichen von Nameserver- Anfragen, die nicht das lokale Netz betreffen, über die root- Nameserver ins Internet. Die Kommunikation zwischen Nameservern verwendet den UDP- Port 53, der somit nicht durch eine Firewall gesperrt sein darf!
Vereinfachung der TCP/IP-Konfiguration aller Rechner im lokalen Netzwerk, da nur ein einziger Nameservereintrag in der DNS- Sektion benötigt wird (die IP-Adresse des Rechners, auf dem der Nameserver- Dienst läuft). Dieser bearbeitet sowohl die DNS- Anfragen ins lokale Netzwerk als auch die Anfragen ins Internet. Diese Nameserveradresse kann als Teil einer zentral gepflegten IP- Konfiguration via DHCP übergeben werden.
Der Nameserver soll nicht nur fest vergebene IP-Adressen im lokalen Netz auflösen, sondern zusätzlich auch mit dynamisch (über DHCP) vergebenen Adressen umgehen können.
Hier soll die Implementation eines solchen Nameservers unter Linux (Distribution SuSE 6.3) und Windows NT 4.0 vorgestellt werden. Während die Einbindung von DHCP bei Windows NT 4.0 über WINS- Server Standard ist, können DNS- und DHCP-Server in der Linux- Distribution SuSE 6.3 nicht miteinander kommunizieren. Zwar bietet die Version BIND8 des ISC- DNS-Servers durchaus die Möglichkeit eines Record- Updates gemäß RFC 2136; jedoch kann der ISC- DHCP-Server in der Version 2 dynamische Updates nicht anstoßen. Erst die Version 3, die sich noch in der Betaphase befindet, hat dieses Feature implementiert. Ein schlanker und eleganter Workaround in Form einiger Perl- Scripts wird von Steven Carville unter http://www.cpl.net/~carville/DHCP-DNS/dhcp-dns.html angeboten, alternativ dazu kann man die Quellen der Betaversion 3 des ISC- DHCP-Servers von http://www.isc.org herunterladen und unter Linux kompilieren.
Der vorliegende Text erhebt in keiner Weise den Anspruch, vollständig zu sein, und ich kann auch nicht garantieren, daß die hier vorgestellten Methoden besonders geschickt oder auch nur fehlerfrei sind. Immerhin funktionieren sie in der hier beschriebenen Umgebung, und ich weise im folgenden auf einige Klippen der Nameserverkonfiguration hin, die in den Informationsquellen erster Wahl (Microsoft TechNet, man- Pages von BIND8 usw.) nur beiläufig erwähnt werden und den Aufbau eines Nameservers nachhaltig torpedieren können.
Weitere Anleitungen zur Nameserverkonfiguration sind zahlreich im Internet zu finden, insbesondere ist die BIND- Mailingliste von http://www.isc.org sehr zu empfehlen. Auch wenn lediglich die Einrichtung eines Nameservers unter Windows NT gewünscht wird, ist es sinnvoll, die Linux- Beschreibung ebenfalls durchzugehen, da mit diesem Hintergrund die Microsoft- Implementation des DNS-Serverdienstes um einiges transparenter wird.
Ein DNS- Nameserver ist ein Prozeß oder Dienst, der einen eventuell leicht zu merkenden Domänennamen (www.HomeBase.de) mit der zugehörigen oft wenig sprechenden IP-Adresse (z.B. 194.175.173.243) verbindet. Diese Namens- Adreßauflösung (address- lookup) wird in der englischsprachigen Literatur auch unter den Stichworten the resolver oder configuration of the reslover- libraries beschrieben. Der Nameserver- Dienst überwacht den UDP- sowie den TCP- Port 53 auf DNS- Netzwerkanfragen und beantwortet sie mithilfe der eigenen Konfigurationstabellen oder den Informationen anderer Nameserver. Diese werden aus Performancegründen in einem lokalen Cache gespeichert. Der traditionell verwendete Begriff BIND service (Berkeley Internet Name Domain service) weist auf seine Erstimplementation an UNIX-Workstations der Berkeley University of California hin.