Domain Name System
Anwendung | DNS | |||
Transport | UDP | TCP | ||
Netzwerk | IP | |||
Netzzugang | Ethernet | Token Ring | FDDI | ... |
Das DNS (Domain Name System) wurde 1983 von Paul Mockapetris entworfen und im RFC 882 beschrieben. Der RFC 882 wurde inzwischen von den RFCs 1034 und 1035 abgelöst.
Das DNS löste die hosts-Dateien ab, die bis dahin für die Namensauflösung zuständig waren. Das DNS zeichnet sich aus durch
- dezentrale Verwaltung
- hierarchische Strukturierung des Namensraums in Baumform
- Eindeutigkeit der Namen
- Erweiterbarkeit
Table of contents |
2 Erweiterung des DNS 3 DynDNS 4 DNS-Security 5 Domain-Registrierung 6 Weblinks |
Das DNS besteht aus drei Hauptkomponenten
Der Domänennamensraum hat eine baumförmige Struktur. Die Blätter und Knoten des Baumes werden als Labels bezeichnet. Ein kompletter Domänennamenname eines Objektes besteht aus der Verkettung aller Labels.
Label sind Zeichenketten (alphanumerisch, als einziges Sonderzeichen ist '-' erlaubt) die mindestens ein Zeichen und maximal 63 Zeichen lang sind. Die einzelnen Label werden durch Punkte voneinander getrennt.
Ein Domänenname wird mit einem Punkt abgeschlossen (Der hinterste Punkt wird normalerweise weggelasssen, gehört rein formal aber zu einem vollständigen Domänennamen dazu).
Ein korrekter, vollständiger Domänenname lautet z. B. www.wikipedia.de. (der Punkt gehört zum Domänennamen).
Ein Domänenname darf inklusive aller Punkte maximal 255 Zeichen lang sein.
Ein Domänenname wird immer von rechts nach links delegiert und aufgelöst, d.h. je weiter rechts ein Label steht, umso höher steht es im Baum. Der Punkt ganz rechts wird auch als root (Wurzel) im Namensraum bezeichnet.
Das erste Label (das, das ganz rechts steht) wird im allgemeinen auch als Top Level Domain (TLD) bezeichnet.
Die DNS-Objekte einer Domäne (zum Beispiel die Rechnernamen) werden als Satz von Resource Records in einer Zonendatei gehalten, die auf einem oder mehreren autoritativen Nameservern abliegt. Anstelle von Zonendatei wird meist der etwas allgemeinere Ausdruck Zone verwendet.
Nameserver sind Programme, die einen oder mehrere Teile des Namensraumes kennen und diese auf Anfrage weitergeben. Nameserver werden von der höheren Ebene im Baum delegiert und sind dann für den Teilnamensraum unterhalb der delegierten Ebene zuständig (und können u.U. weitere Teilnamensräume unterhalb dieser Ebene delegieren). Die Baumstruktur stellt die eindeutige Zuordnung eines Nameservers zu einem Teil des Namensraum sicher.
Normale DNS-Anfragen werden auf Port 53 UDP beantwortet. Transfers kompletter Zonen werden auf Port 53 TCP durchgeführt.
Man unterscheidet zwischen autoritativen und nicht-autoritativen Nameservern.
Ein autoritativer Nameserver ist ein Nameserver, der gesicherte Informationen über eine Zone besitzt. Dem gegenüber hat ein nicht-autoritativer Nameserver Informationen über eine Domäne sozusagen aus zweiter oder dritter Hand. Er kann deshalb nicht sicher sein, dass seine Daten aktuell und nicht veraltet sind. Aus Redundanz- und Lastverteilungsgründen werden autoritative Nameserver fast immer als Server-Cluster realisiert, wobei die Zonendaten identisch auf einem Master (auch: Primary Server) und auf einem oder mehreren Slaves (auch: Secondary Server) liegen. Die Synchronisation zwischen Master und Slaves erfolgt per Zonentransfer.
Nameserver speichern die einmal von einem Resolver angefragten Informationen im lokalen RAM ab, damit diese bei einer erneuten Anfrage schneller vorliegen. Diese Technik wird als Caching bezeichnet. Caching ist möglich, da sich DNS-Daten normalerweise nur sehr selten ändern. Die Daten im Cache des Nameservers verfallen nach der TTL (time to live). Das kann u.U. aber auch bedeuten, dass der Nameserver in dieser Zeit falsche Informationen liefern kann, wenn sich die Daten zwischenzeitlich geändert haben. Nameserver können auch als caching only Nameserver agieren. Sie besitzen dann selbst keine gesicherten (autoritative) Informationen sondern lösen alle eintreffenden Anfragen rekursiv auf.
Damit ein Nameserver Informationen über andere Teile des Namensraumes finden kann, werden ihm Informationen über die sog. Root-Server in Form einer statischen Datei hinterlegt. Diese Cachedateien enthalten die Namen und IP Adressen der Root-Server. Derzeit gibt es 13 Root-Server (Server A bis M).
Nameserversoftware
Resolver sind Programme, die Informationen aus den Nameservern abrufen können. Sie bilden die Schnittstelle zum Nameserverdienst. Resolver sind entweder eigene Programme, oder sie sind in Applikationen (z.B. einen Browser) eingebunden.
Ein Resolver arbeitet entweder iterativ oder rekursiv.
Bei einer rekursiven Anfrage schickt der Resolver eine Anfrage an einen ihm bekannten Nameserver und bekommt als Antwort entweder den gewünschten Resource Record (wenn der befragte Nameserver selber rekursiv arbeitet) oder "gibt es nicht". Rekursiv arbeitende Resolver überlassen also die Arbeit anderen und funktionieren so wie manches andere im Internet: Ich weiß ein bisschen was und ich kenne jemanden der mehr weiß.
Bei einer iterativen Anfrage bekommt der Resolver entweder den gewünschten Resource Record oder einen weiteren Nameserver, den er als nächsten fragt. Der Resolver hangelt sich so von Nameserver zu Nameserver bis er bei einem autoritativen Nameserver landet. Die so gewonnene Antwort gibt der Resolver dann weiter.
Die Root-Server arbeiten ausschließlich iterativ.
Sie wären sonst mit der Anzahl der Anfragen schlicht überlastet.
Bekannte Resolver sind die Programme nslookup und dig. Weitere Informationen zur iterativen/rekursiven Namensauflösung finden sich unter rekursive und iterative Namensauflösung.
Bisher waren die Label – wie beschrieben – auf alphanumerische Zeichen und das Zeichen '-' eingeschränkt. Dies hängt vor allem damit zusammen, dass das DNS (wie auch das Internet ursprünglich) in den USA entwickelt wurde.
Allerdings gibt es in vielen Ländern Zeichen, die nicht in einem Label verwendet werden durften (in Deutschland zum Beispiel die Umlaute) oder Zeichen aus komplett anderen Schriftsystemen (z.B. Chinesisch). Namen mit diesen Zeichen waren bisher nicht möglich.
Dies hat sich durch die Einführung von IDNA (RFC 3490) geändert. Seit März 2004 können deutsche, lichtensteinische, österreichische und schweizer Domains mit Umlauten registriert und verwendet werden. Um das neue System mit dem bisherigen kompatibel zu halten, werden die erweiterten Zeichensätze mit erlaubten Zeichen kodiert, also auf derzeit gültige Namen abgebildet.
Die erweiterten Zeichensätze werden dabei zunächst gemäß dem Nameprep-Algorithmus (RFC 3491) normalisiert, und anschließend per Punycode (RFC 3492) auf den für DNS verwendbaren Zeichensatz abgebildet.
Das Voransetzen des durch die IANA festgelegten IDNA-Prefix xn-- vor das Ergebnis der Kodierung ergibt das vollständige IDN-Label.
Eine weitere aktuelle Erweiterung des DNS stellt ENUM (RFC 2916) dar. Diese Anwendung ermöglicht die Addressierung von Internet-Diensten über Telefonnummern, also das "Anwählen" von per Internet erreichbaren Geräten mit dem aus dem Telefonnetz bekannten Adressschema.
Aus dem breiten Spektrum der Einsatzmöglichkeiten bietet sich insbesondere die Verwendung für Voice over IP Services an.
Es kann nur Rechnern mit fester, sich also nur sehr selten ändernden IP-Adresse ein fester Rechnername zugeordnet werden. Da jedoch sehr viele Nutzer mit Heimrechnern eine variable IP-Adresse haben (mit jeder Einwahl in das Internet wird eine andere IP-Adresse aus einem Pool zugeteilt), gibt es inzwischen DynDNS-Betreiber, die dafür sorgen, dass man auch mit solch rasch ändernden Adressen möglichst immer über den selben Rechnernamen erreichbar ist.
Siehe auch: Liste der TCP/IP-basierten Netzwerkdienste
Das DNS ist ein zentraler Bestandteil einer vernetzten IT Infrastruktur. Eine Störung kann erhebliche Kosten nach sich ziehen und eine Verfälschung von DNS-Daten Ausgangspunkt von Angriffen sein. Mehr als zehn Jahre nach der ursprünglichen Spezifikation wurde DNS um Security-Funktionen ergänzt. Folgende Verfahren sind verfügbar:
Um DNS-Namen im Internet bekanntmachen zu können, muss der Besitzer die Domain, die diese Namen enthält, registrieren. Durch eine Registrierung wird sichergestellt, dass bestimmte formale Regeln eingehalten werden und dass Domain-Namen weltweit eindeutig sind. Domain-Registrierungen werden von Organisationen (Registrars) vorgenommen, die dazu von der IANA bzw. ICANN autorisiert wurden. Registrierungen sind gebührenpflichtig.
Detaillierte Informationen finden sich unter Domain-Registrierung.
Komponenten des DNS
Domänennamensraum
Nameserver
Resolver
Erweiterung des DNS
DynDNS
DNS-Security
Domain-Registrierung
Weblinks