DNS

Einführung

Bei DNS (Domain Name System) handelt es sich um das wesentliche im Internet verwendete Protokoll zur Namensauflösung. DNS übernimmt die Auflösung zwischen Hostnamen und Internetadressen. Es bietet die Nutzung von hierarchischen Namen, die Computer und andere Ressourcen innerhalb eines IP-Netzwerks auffinden.
Der folgende Abschnitt beschreibt die Basis des DNS Konzeptes und dessen Funktionen. Wichtig ist auch zu verstehen, das DNS auch in Verbindungen zu DHCP steht.

DNS ist eine verteilte Datenbank, welche die DNS Domain Namen zu IP Adressen zuordnet. Es definiert folgende Funktionen:

DNS definiert innerhalb des RFCs 1034 und 1035 die Namenskonventionen zur Lokalisierung IP basierender Computer. Vor der Implementierung von DNS wurden IP Adressen über die sogenannten HOSTS-Dateien aufgelöst, die jeder Computer lokal hielt und gepflegt werden musste.


Domain Namespace und Domain Name

DNS nutzt sogenannte Namensräume, in denen mehrere Rechnernamen hierarchisch und logisch gruppiert werden. Organisatorische Einheiten lassen sich sowohl im eigenen Netz als auch im Internet abbilden. An oberster Stelle steht die Root-Domain, gefolgt von der Top-Level-Domain, unter denen sich die Organisation anschliesst. Wieder darunter können sich ein oder mehrere Sub-Domains befinden. Am Schluss kommt noch der Hostname (Computername) hinzu.
Jede Organisationseinheit (Sub-Domain) kann einen eigenen Namensraum delegiert bekommen und selbst administrieren.


Namensrestriktionen

Generell sind nur Alphanumerische Zeichen erlaubt (a-z, A-Z, 0-9, "-"). Der beim Programmieren so beliebte Unterstrich "_" ist laut RFC nicht erlaubt, kann aber nachträglich bei nicht veränderbaren Altinstallationen in den meisten DNS-Servers zugelassen werden.


Internet Domain Namespace

Im Internet wurde verschiedene Top-Level-Domain zugelassen, die entweder zu Organisationen zugehörig sind (z.B. .COM) oder geografischen Charakter haben (wie .DE). Zusätzlich gibt es neuere Top-Level Domains, die für bestimmte Gebiete (z.B. .INFO) vorbehalten sind.


Top-Level Domains

Zonen

Eine Zone beschreibt einen Teil eines DNS Namespace. Es beinhaltet eine Serie an Records, die auf dem DNS-Server gehalten werden. Jede Zone ist verankert an einem speziellen Domain Knoten, wobei Zonen keine Domains sind. Eine DNS-Domain beinhaltet alle darunter liegenden Domians bzw. Sub-Domains, welche in verschiedene Partitionen (Zonen) eingeteilt und von verschiedenen DNS Servern gehostet werden können.


DNS Server

DNS Servers speichert Informationen über keine, eine oder mehrere Zonen. Wir bei einem DNS Server eine Anfrage gestartet, so wird diese über die lokal gespeicherte Zone beantwortet. Ist kein Eintrag vorhanden, wird im lokalen Cache nachgesehen oder andere DNS Server befragt.
DNS Server können abhängig vom DNS Design ein oder mehrere Primary und/oder Secondary Zonen halten. Für eine Zone kann ein Server jedoch nur Primary oder Secondary sein.
Primary Zonen werden nur lokal gepflegt (upgedated). Für den Fall einer änderung (Change) innerhalb einer Zone, z.B. bei einer Delegation einer Zone zu einem anderen DNS Server oder dem Einpflegen eines Ressourcen Records, müssen diese Änderungen auf dem Primary DNS Server für diese Zone vollzogen werden.
Im Gegensatz dazu werden Secondary Zonen einem anderen Zonenserver repliziert (kopiert). Hierbei ist im Secondary Server die IP Adresse des Servers zu hinterlegen, von dem aus die Replizierung erfolgen soll. Das Replikat kann von einem Primary oder Secondary erfolgen, welcher auch Master Server genannt wird. Bei Neustart eines Secondary Server wird dieser Master Server kontaktiert, um einen Zonentransfer (Replizierung) zu starten. Zusätzlich wird periodisch ebenfalls der Master Server für Änderungen angefragt.
Für jede Zone wird ein Primary Server benötigt. Zusätzlich sollte mindestens ein Secondary Server bestehen, ansonsten könnte bei einem Ausfall des Primary Servers die gesamte Zone ohne Namensauflösung sein.

Secondary Server haben folgende Vorteile:

Caching-Only Servers

Alle DNS Server unterstützen Caching Mechanismen. Informationen, die von anderen DNS Servern eingeholt wurden, werden lokal für einen bestimmten Zeitraum vorgehalten (caching), um weitere Anfragen nicht nochmals anzufragen. Einige DNS Server (Caching-Only Server) sind zur Performancesteigerung gedacht, die jedoch keine administrativen Tätigkeiten (manuelle Ändererungen von Eintragungen) zulassen. Der Vorteil ist, dass sie keine Zonen verwalten udn austauschen, sondern nur angefragte Namen vorhalten. Bei einem Neustart sind aber alle Informationen gelöscht.


Forwarder

Erhält ein DNS Server eine Anfrage, wird erst in der lokalen Zonendatei bzw. im Cache nachgesehen. Kann der Name nicht aufgelöst werden, muss ein weitere DNS Server angefragt werden. Hierzu wird die Funktion des Forwarders genutzt, die nur bestimmte Server zu weiteren Namensauflösungen zulassen.


Load Sharing

DNS Server nutzen Mechanismen wie Round-Robin oder Load Sharing (RFC 1794), um Hochlasten auf verschiedene Server (nicht DNS Server) zu verteilen. Hierzu wird ein DSN-Name unter verschiedenen IP-Adressen in Records abgelegt. Round-Robin rotiert die Reihenfolge der Einträge, so dass jede Anfrage mit den nächsten Eintrag beantwortet wird. Ist die Liste zu Ende, wird wieder mit dem ersten Eintrag begonnen.


Caching und Time to Live (TTL)

Alle Eintragungen innerhalb eines DNS-Servers werden mit einem Zeitstempel (TTL Time to Live) versehen. Die gecachten Informationen werden dadurch nach einer bestimmten Zeit verworfen und bei Bedarf neu angefragt, um keine veraltete Informationen vorzuhalten. Einmal im Cache wird der TTL Wert dekrementiert, bis es zur Löschung des Eintrags kommt.


Resource Record und Zonen

Aufbau des Recource Records:
Um Namen aufzulösen befragen DNS Server ihre Zonen. Die Zonen beinhalten Resource Records (RRs), die auf verschiedene Dienste innerhalb der Domain hinweisen:
Diese Abhandlung kann nur auf einen kleinen Teil des DNS Dienstes eingehen. Weitergehende Fragen sind durch geeignete Literatur abzudecken.


© kahlhans.de
Stand September 2002