DNS - Domain Name Service

Programme oder Benutzer greifen selten auf Hosts, Mailboxen, Web-Sites und andere Ressourcen mit Hilfe von deren binärer Internetadresse zu. Anstelle von Binärzahlen werden ASCII Zeichenketten benutzt (wie z.B. bei SMTP-Adressen). Da das Netz trotzdem nur binäre Adressen versteht, ist ein Mechanismus erforderlich, um ASCII-Zeichenketten in Netzadressen umzuwandeln. In den Anfängen des Internet und heute noch in kleineren IP-Netzwerken gab/gibt es eine Datei mit Namen hosts in der einfach alle Netzteilnehmer mit der zughörigen Adresse aufgelistet waren bzw. sind. Als im Laufe der Zeit die Anzahl der Rechner in die Tausende ging, wurde dieser Ansatz durch ein hierarchisches Benennungsschema, implementiert durch eine verteilte Datenbank ersetzt. Dieses System ist das DNS. DNS wird vorwiegend zur Umwandlung von Hostnamen in IP-Adressen genutzt. DNS ist in den RFCs 1034 und 1035 definiert.

DNS funktioniert wie folgt: Um einen Namen in eine IP-Adresse zu verwandeln, ruft ein Anwendungsprogramm eine Bibliotheksprozedur mit Namen resolver auf und übergibt ihr den Namen als Parameter. Der Resolver sendet eine UDP-Paket an den (lokalen) ihm bekannten DNS-Server, der in seiner Datenbank den Namen sucht und die zugehörige Adresse zurückgibt. Diese Suche kann den ganzen durch den DNS-Domänennamen des Zielrechners definierten Namensraum rekursiv umfassen.

Domänennamen können absolut oder relativ sein. Ein absoluter Name endet mit einem Punkt (z.B. www.w3.org.) ein relativer nicht. Tanenbaum (Tanenbaum, 1998) gibt folgende Veranschaulichung für diesen hierarchischen baumartigen Namensraum:

Ausschnitt aus der DNS Hierachie

Insgesamt existieren also drei Hauptkomponenten aus denen sich das DNS zusammensetzt (Scheller et al., 1994):

Die Nameserver des DNS verwalten also Zonen (Teilbäume), die einen Knoten im DNS-Baum und alle darunterliegenden Zweige enthalten. Durch die Existenz von Name Servern auf verschiedenen Tiefen des DNS-Baumes, überlappen sich die Zonen der verschiedenen Name Server. Jeder der Name Server kennt seinen nächsthöheren und seinen nächsttieferen Nachbarn (Scheller et al., 1994)

Die Domänen der obersten Ebene (top level domains) sind in zwei Bereiche Allgemein (Generic) und Länder (Countries) unterteilt. Allgemeine Domänen sind z.B. com (commercial), edu (educational), gov (government), int (international), mil (military), net (Netzwerke und Betreiber) und org (non-profit-organisations). Die Länder-Topleveldomains umfassen einen Eintrag für jedes Land und sind in ISO 3166 definiert. Die Domänennamen werden vom NIC (Network Information Center) bzw. den nationalen NICs (z.B. dem DE-NIC) vergeben.

Die Informationen die in einer DNS Datenbank stehen, heissen Ressourcensätze. Eine Ausprägung dieser Ressourcensätze ist die Zuordung von Hostadresse zu Hostnamen.

Jeder Ressourcensatz hat die Struktur:

Domain_Name Time-To-Live Type Class Value

Domain_Name bezeichnet die Domäne auf die sich der Satz bezieht. Das Feld Time-To-Live gibt einen Hinweis darauf, wie lange der Satz im Cache des DNS-Servers leben soll (bei Hostadressen in festinstallierten Netzen normalerweise 86400 Sekunden = 1 Tag). Das Feld Type sagt aus, um welche Art von Satz es sich handelt.

Insgesamt sind folgende Ressourcentypen sind definiert:

Typ Bedeutung Wert
SOA Start of Authority Ein SOA-Satz gibt den Namen der primären Informationsquelle über die Zone des Nameservers, die E-Mail-Adresse des Verwalters, sowie verschiedene Flags und Timeouts an.
A IP-Adresse eines Hostes 32-Bit-Ganzzahl. Dies ist der wichtigste Satztyp. Jeder Internet Host braucht mindestens eine IP-Adresse, damit andere Maschinen mit ihm kommunizieren können. Maschinen mit mehreren Netzanschlüssen haben deshalb mehrere Ressourcensätze vom Typ A.
MX Mail-Exchange Name des Mailservers für diese Domain. Er spezifiziert den Namen der Domäne, die bereit ist für die lokale Domäne E-Mail anzunehmen.
NS Name Server Name eines DNS Servers der betreffenden Domäne.
CNAME Kanonischer Name CNAME-Sätze ermöglichen das Erstellen von Aliasnamen für Domänennamen
PTR Zeiger (Pointer) Alias für eine IP-Adresse.
HINFO Hostbeschreibung CPU und Betriebssystem in ASCII
TXT Text Nicht interpretierter ASCII-Text (Kommentar), dient vor allem zur (freiwilligen) Identifikation der Maschine.

Class trägt im Internet immer den Wert 'IN'. Das Value-Feld kann einen Zahl, ein Domänenname oder eine Zeichenkette sein. Die Semantik ist abhängig vom Satztyp (Tanenbaum, 1998).