Domain Name System

17.12.2001 von Konstantin Pfliegl
Namen statt Zahlen: Durch das Domain Name System muss sich der Anwender beim Zugriff auf Internet-Server nicht mit schwer zu merkenden und fehlerträchtigen IP-Adressen befassen. tecCHANNEL zeigt, was hinter '.de' steckt.

Alle Rechner in einem TCP/IP-Netz werden über eine eindeutige IP-Adresse identifiziert. Diese 32 Bit lange Zahl ist kompliziert und anfällig für Tippfehler.

Aus diesem Grund wurde bereits 1984 das Domain Name System (DNS) geschaffen. Es ermöglicht, Hosts über den zugehörigen Domainnamen, etwa tecchannel.de, zu erreichen. Das DNS ist eine verteilte Datenbank, deren zentrale Komponenten die Nameserver sind. Sie verwalten die Mapping-Informationen, in denen die IP-Adressen und die Rechnernamen einander zugeordnet sind.

Als es das Internet in heutigen Sinne noch nicht gab und das Arpanet gerade einmal ein paar Hundert Rechner miteinander verknüpfte, waren alle Host-Informationen in einer einzigen Datei abgelegt. Diese musste auf jedem angeschlossenen Rechner vorhanden sein und enthielt alle Mapping-Informationen.

Das Domain Name System behebt die großen Schwachpunkte dieser dateibasierten Rechnertabellen:

Hierarchische Struktur des DNS

Das Domain Name System ist ein verteiltes, hierarchisches System zur Konvertierung von Rechnernamen in IP -Adressen. Es kennt keine zentrale Datenbank mit der gesamten Information über die Rechner im Internet. Die Informationen werden über Tausende von so genannten Nameservern verteilt.

Die DNS-Datenbank weist eine in Zonen aufgeteilte baumförmige Struktur auf, die Wurzel entspricht dabei dem Root-Verzeichnis. Man findet Informationen über eine Domain, indem man Zeigern (Pointer) von der Root-Domain durch die untergeordneten Domains bis zur Ziel-Domain folgt. Jeder Domainname entspricht einem Knotenpunkt in der DNS-Hierarchie.

Direkt unterhalb der Root-Domain befinden sich die Top Level Domains (TLDs). Man unterscheidet dabei zwei Typen: geographische (nach ISO 3166-1, so genannte ccTLDs) wie beispielsweise .de und organisatorische. Die sieben ursprünglichen organisatorischen Domains werden auch als generische TLDs bezeichnet.

Die sieben generischen Top Level Domains

Domain

Beschreibung

.com

Kommerzielle Unternehmen, zum Beispiel SuSE (suse.com)

.edu

Bildungseinrichtungen wie Universitäten und Schulen, z.B. MIT (mit.edu)

.gov

Staatliche Institutionen, beispielsweise NASA (nasa.gov)

.mil

Militärische Einrichtungen, zum Beispiel US Army (army.mil)

.org

Nicht kommerzielle Organisationen, z.B. W3-Konsortium (w3.org)

.net

Netzwerkeinrichtungen, beispielsweise RIPE-NCC (ripe.net)

.int

Internationale Organisationen, zum Beispiel WHO (who.int)

Einige Länder bilden Second Level Domains unterhalb des Ländercodes ähnlich den generischen Top Level Domains. Zum Beispiel .co.uk für kommerzielle Unternehmen im Vereinigten Königreich.

Auf den Seiten des Denic finden Sie eine Sammlung von Links zur historischen Entwicklung der Top Level Domains.

Domainnamen

Domainnamen schreibt man von der untersten Ebene, dem Rechnernamen, zur obersten Ebene, der Top Level Domain. Die Root-Domain wird als ein einziger Punkt geschrieben.

Einen solchen Domainnamen bezeichnet man als Absolute Domain Name oder Fully Qualified Domain Name (FQDN). tecchannel.de. ist somit der FQDN der Second Level Domain tecchannel in der Top Level Domain .de. Der abschließende Punkt steht für die Root-Domain. Domainnamen werden nur selten als Fully Qualified Domain Names geschrieben. Der Punkt für die Root-Domain wird in der Regel weggelassen.

Die Vergabe von Domainnamen ist auf zahlreiche Firmen und Institutionen verteilt. Den Ländern selbst überlassen wird die Verwaltung geographischer Top Level Domains. Für .de-Domains ist die Denic in Frankfurt zuständig.

Die generischen Top Level Domains wie .com oder .edu sind jedoch fest in den Händen der Vereinigten Staaten. Zahlreiche dieser Domainnamen dürfen darüber hinaus auch nur von Institutionen innerhalb der USA registriert werden. So steht beispielsweise .edu nur amerikanischen Bildungseinrichtungen zur Verfügung. Eine deutsche Universität kann diese Endung nicht registrieren.

Domainregistrierung

Wer eine .de-Domain registriert, erwirbt lediglich die Nutzungsrechte. Der Antragssteller ist dafür verantwortlich, dass nicht Rechte Dritter verletzt werden.

Zudem gibt es verschiedene Spielregeln, die es zu beachten gilt. Die Domainnamen dürfen nicht mit Bindestrichen beginnen oder enden. Zusätzlich muss jeder Domainname mindestens drei Zeichen lang sein. Auch deutsche KFZ-Kennzeichen sind nicht zulässig.

Vor einigen Jahren war die Registrierung von zwei Zeichen langen .de-Domains noch möglich. Diese Domains werden allerdings wegen der Verwechslungsgefahr mit den geographischen Top Level Domains nicht mehr vergeben. Es gibt noch einige zweistellige Domains, welche aus historischen Gründen weiterhin verfügbar sind. Hinzu kommt für zweistellige Domains die Überlegung, dass derartige Domains wegen ihrer Kürze den Inhabern Wettbewerbsvorteile verschaffen würden.

Auf Grund eines Fehlers in einer stark verbreiteten DNS Resolver-Software kann es zudem bei der Auflösung von Domains des Musters "TLD.TLD" zu technischen Schwierigkeiten kommen, die sich auch auf die Erreichbarkeit unbeteiligter Webseiten erstrecken. Eine detaillierte Beschreibung des Problems finden Sie in RFC1535.

Die ausführlichen Vergaberichtlinien für .de-Domains finden Sie hier. Weitere Informationen zur Registrierung von Domainnamen finden Sie im tecCHANNEL-Artikel Domain-Registrierung ohne juristischen Ärger.

Nameserver

Ein Antrag für einen Domainnamen muss die Adresse von mindestens zwei Nameservern, einem Primary und einem Secondary Nameserver, enthalten. Diese übernehmen den Name-Service für die Domain. Wenn der Antrag genehmigt wird, werden im Domain Name System Zeiger auf die entsprechenden Nameserver eingetragen.

Nameserver enthalten die Mapping-Informationen der Domains, für die sie den Name-Service übernehmen. Darin werden IP-Adressen und Rechnernamen einander zugeordnet, ähnlich den früheren Host-Dateien.

Der Primary Name Server und die Secondary Name Server müssen dabei voneinander unabhängig und redundant ausgelegt sein, so dass immer mindestens ein Server verfügbar ist. Der Unterschied zwischen beiden Arten von Nameservern besteht darin, dass der Secondary Name Server alle relevanten Daten vom Primary Name Server bezieht und somit als Back-up-Server arbeitet.

Änderungen an den Daten müssen so nur am Primary Name Server durchgeführt werden. Die anderen zuständigen Server gleichen ihre Daten in regelmäßigen Abständen ab, in der Regel alle drei Stunden.

Ablauf einer Nameserver-Abfrage

Wenn man beispielsweise im Webbrowser einen aufzurufenden Domainnamen eingibt, stellt der eigene Rechner eine Anfrage an einen Nameserver zur Auflösung des Domainnamens in eine IP-Adresse. In der Regel ist dies der Nameserver des Internet-Providers, über den man ins Internet geht.

Aber was passiert nun, wenn auf dem Nameserver die angeforderten Daten nicht verfügbar sind? - Dieser muss die Anfrage an einen anderen Nameserver umleiten. Dabei weiß ein Nameserver nicht zwangsläufig, welcher andere Server für die Anfrage zuständig ist beziehungsweise die notwendigen Daten gespeichert hat. Es ist ausreichend, wenn jeder Nameserver weiß, wie die so genannten Root-Server kontaktiert werden. Diese kennen die Adressen aller autoritativen Nameserver für alle Second Level Domains.

Um die Netzwerkbelastung zu minimieren, setzen alle Nameserver einen Cache ein. Dieser speichert einmal gestellte DNS-Abfragen. Fordert ein Rechner einen bereits aufgelösten Namen an, so greift der Nameserver auf den Cache zurück. Diese zwischengespeicherten Daten weisen eine Lebensdauer (Time To Live / TTL) auf. Ist die definierte Zeitspanne, in der Regel zwei Tage, abgelaufen, muss eine Anfrage für die jeweilige Domain erneut im DNS abgefragt werden.

Der Cache im Nameserver hat aber auch einen Nachteil: Wechselt man mit seiner Domain den Provider, so ändern sich in der Regel auch die Nameserver-Adressen.

Nun kann es unter Umständen passieren, dass manche Nameserver noch bis zu zwei Tage nach dem Provider-Wechsel die alten Nameserver-Adressen im Cache gespeichert haben. Somit führen Anfragen bei den Nameservern mit den alten Daten ins Leere.

Root-Server

Wie bereits erwähnt, muss jeder Primary Name Server die IP-Adressen aller Root-Server gespeichert haben. Derzeit gibt es weltweit 13 Root-Server:

Übersicht aller Root-Server

Name

Organisation

Standort

A

Network Solutions

Herndon, VA, USA

B

Information Sciences Institute, University of Southern California

Marina Del Rey, CA, USA

C

PSINet

Herndon, VA, USA

D

University of Maryland

College Park, MD, USA

E

National Aeronautics and Space Administration (NASA)

Mountain View, CA, USA

F

Internet Software Consortium

Palo Alto, CA, USA

G

Defense Information Systems Agency

Vienna, VA, USA

H

Army Research Laboratory

Aberdeen, MD, USA

I

NORDUNet

Stockholm, Schweden

J

TBD

Herndon, VA, USA

K

RIPE-NCC

London, UK

L

TBD

Marina Del Rey, CA, USA

M

WIDE

Tokyo, Japan

Eine geographische Übersicht aller Root-Server finden Sie hier.

Auffällig daran ist, dass sich nur drei Root-Server außerhalb der Vereinigten Staaten befinden. Auch daran sieht man, wie die USA versuchen, weit gehend die Kontrolle über das Internet zu behalten.

DNS-Resolver

Jeder Netzwerk-Client, der auf einen Internet-Host zugreifen möchte, aber nur dessen Domain-Adresse kennt, muss wie bereits erwähnt einen Nameserver konsultieren. Dies geschieht mittels eines so genannten Resolvers.

Dabei existiert der Resolver nicht als eigenständiges Programm. Vielmehr besteht er aus einer Bibliothek von Software-Routinen, dem Resolver-Code, die zu jedem Programm gelinkt wird, das Adressen nachschlagen muss. Diese Bibliothek weiß, wie Anfragen über Rechner an den Nameserver formuliert werden.

Der Resolver übernimmt im Wesentlichen folgende drei Aufgaben:

Unter Unix und Windows wird der Resolver primär über die beiden Funktionen gethostbyname und gethostbyaddr aufgerufen. Die erste Funktion ermittelt die IP-Adresse eines Domainnames, die zweite den Haupt-Domainnamen einer bekannten IP-Adresse.

Rekursive und iterative Namensauflösung

Man unterscheidet grundsätzlich zwischen zwei Abfragetypen: rekursive und iterative Namensauflösung. Der Client übermittelt in beiden Fällen den Hostnamen und legt den Abfragetyp fest.

Für den Client ist es am einfachsten, eine rekursive Anfrage an einen Nameserver zu stellen. In diesem Fall ist der angesprochene Server für die komplette Namensauflösung zuständig. Er fragt der Reihe nach selbst bei allen Servern an, bis der Name vollständig aufgelöst ist. Der Vorteil dieses Abfragetyps: Der Resolver muss lediglich die eine Abfrage initiieren, die Antwort entgegennehmen und an die Anwendung weiterleiten.

Bei der iterativen Auflösung teilt der Nameserver lediglich die Adresse des als nächstes abzufragenden Servers mit. Der Resolver muss anschließend weitere Anfragen an die entsprechenden Nameserver selbst richten, bis der Name vollständig aufgelöst ist.

Resource Records

Das Domain Name System speichert die Informationen über Hosts in so genannten Resource Records (RRs). Es gibt bis zu 20 verschiedene Typen.

Wichtige Resource Records

Typ

Beschreibung

A

Definiert eine IP-Adresse

CNAME

Canonical Name: Beinhaltet den Domainnamen

HINFO

Host Information: Zwei Strings spezifizieren die CPU und das Betriebssystem. Diese Funktion wird kaum unterstützt.

NS

Name Server: Definiert den autoritativen Nameserver für eine Domain

PTR

Pointer: Wird fast ausschließlich mit der .in-addr.arpa-Domain verwendet, um Reverse Lookups zu ermöglichen, d.h., man sucht den Domainnamen einer bekannten IP-Adresse.

Die Resource Records werden bei einer Anfrage an den Client übermittelt. Dazu werden diese an den DNS-Header angehängt.

Der RR einer DNS-Antwort enthält folgende sechs Felder:

Resource Records im Detail

Typ

Beschreibung

Domain Name

Enthält den Domainnamen, der aufgelöst werden soll

Type

Spezifiziert den RR-Typ

Class

In diesem Feld steht in der Regel 1 für Internet-Daten

Time To Live

Enthält die Anzahl in Sekunden, wie lange ein anderer Nameserver das Ergebnis zwischenspeichert; meistens sind dies zwei Tage

Resource Data Length

Gibt die Länge des Feldes "Resource Data" an

Resource Data

Enthält die IP-Adresse

Zusätzlich gibt es so genannte Mail Exchange Records (MX Records), die für das Versenden von E-Mails von Bedeutung sind. Wie die E-Mail-Funktion im Detail funktioniert, zeigen wir in einem späteren Beitrag.

DNS-Nachrichten

Über DNS-Nachrichten tauschen Resolver und Server Abfragen und Antworten aus. DNS-Nachrichten weisen ein einheitliches Format auf: einen 12 Bytes langen Header und die Resource Records.

DNS-Nachricht im Detail

Feld

Größe (in Bit)

Beschreibung

Identification

16

Ein vom Client erzeugter Wert zur Identifikation des Resolvers

QR

1

Ist die Nachricht eine Anfrage, steht im Feld 0; bei einer Antwort 1

Opcode

4

Der Standardwert ist 0 (rekursive Anfrage); weitere mögliche Werte sind 1 für eine iterative Anfrage und 2 für eine Anfrage des Server-Status

AA

1

Authoritive Answer: Der Nameserver ist autoritativ für die aufzulösende Domain

TC

1

Truncated: Bei UDP bedeutet dies, dass die Antwort größer als 512 Bytes ist und auch nur diese übermittelt werden

RD

1

Recursion Desired: Wenn der Client das Bit auf 1 setzt, ist dies eine rekursive Anfrage

RA

1

Recursion Available: Wenn der Nameserver rekursive Anfragen unterstützt, wird das Bit auf 1 gesetzt

(zero)

3

Dieses Flag muss immer auf Null gesetzt werden

Rcode

4

Beinhaltet einen Rückgabe-Code: 000 bedeutet keine Fehler, 111 bedeutet, dass der Domainname nicht existiert. Nur autoritative Nameserver können Fehlercodes zurückliefern.

Number of Questions

16

Anzahl der DNS-Anfragen im Question-Feld

Number of Answer RRs

16

Anzahl der Resource Records im Answer-Feld

Number of Authority RRs

16

Anzahl der Recource Records im Authority-Feld

Number of Additional RRs

16

Anzahl der Resource Records im Additional-Feld

Questions

200

Enthält die DNS-Anfrage

Die Felder Answers und Authority enthalten einen oder mehreren Resource Records mit einer Größe von je 128 Bit. Das Feld Additional Information wird in der Regel nicht verwendet.

.in-addr.arpa-Domain

Mit .arpa wurde die erste Top Level Domain eingerichtet, die später durch weitere Domains (.com, .net etc.) abgelöst wurde. Die Top Level Domain .arpa führt jedoch bis heute ihr Eigenleben mit der Second Level Domain in-addr. Unterhalb von .in-addr.arpa sind die DNS-Einträge für das so genannte Reverse Mapping angelegt, mit dessen Hilfe man bekannte IP-Adressen in Domainnamen auflöst. Reverse Mapping-Anfragen werden auch als Pointer Queries bezeichnet.

Die .in-addr.arpa-Domain bezeichnet man auch als inverse Domain. Diese bildet man, in dem die IP-Adresse rückwärts gelesen und der String .in-addr.apra angehängt wird. Somit findet man die Reverse-Mapping-Informationen für die IP-Adresse 62.96.227.70 im Domainnamen 70.227.96.62.in-addr.arpa.

Bei der Auflösung einer IP-Adresse in einen Domainnamen muss der Resolver eine Anfrage in der Form Query Type = PTR, Query Class = 1 und Query Name = 70.227.96.62.in-addr.arpa stellen. Als Antwort übermittelt der Nameserver 70.227.96.62.in-addr.arpa. = PTR tecchannel.de.

Protokolle: TCP oder UDP?

Das Domain Name System unterstützt sowohl das TCP- als auch das UDP-Protokoll, jeweils auf Port 53. Doch wann wird welches Protokoll eingesetzt?

Der Resolver stellt Anfragen in der Regel über das UDP-Protokoll. Nun kann es aber passieren, dass eine Antwort größer als 512 Bytes ist. In diesem Fall wird im Header der Antwort das Bit TC gesetzt und es werden nur die ersten 512 Bytes übertragen.

Damit die Antwort nun in mehrere Segmente aufgeteilt und übermittelt werden kann, muss der Resolver seine Anfrage erneut über das TCP/IP-Protokoll stellen.

Zum Datenabgleich zwischen Nameservern wird generell das TCP-Protokoll benutzt. Auf Grund der hohen Datenmengen kommt hier nur dieses Protokoll in Frage.

Neue Top Level Domains

Seit einigen Jahren wird intensiv darüber diskutiert, die bislang vorhandenen Top Level Domains durch neue Endungen zu ergänzen. Vorgeschlagen wurden unter anderem Endungen wie .firm, .shop oder .web.

Die für Domainnamen zuständige Organisation ICANN hat am 16. November 2000 während eines Treffens in Kalifornien die Einführung folgender sieben neuer Top Level Domains beschlossen:

Neue Top Level Domains

Domain

Berechtigt zur Registrierung

Registrierungsstelle

.aero

Luftfahrtindustrie

Société Internationale de Telecommunications Aeronautiques SC (SITA)

.biz

Unternehmen

NeuLevel

.coop

Genossenschaftliche Organisationen

National Cooperative Business Association (NCBA)

.info

ohne Einschränkung

Afilias

.museum

Museen

Museum Domain Management Organization

.name

Privatpersonen

Global Name Registry

.pro

Anwälte, Steuerberater, Ärzte

RegistryPro

Derzeit können nur für die Domains .biz und .info Registrierungen vorgenommen werden. Dabei sollen vorerst nur Markeninhaber zum Zug kommen. (kpf)