Definition Was ist DNS (Domain Name System)?
Das Domain Name System (DNS) verknüpft sprechende URLs mit kryptischen IP-Adressen und zählt zu den wichtigsten Diensten IP-basierter Netzwerke – weil aussagekräftige Namen leichter zu merken sind als nackte Zahlenkolonnen.
Anbieter zum Thema

Das auf Anwendungsebene angesiedelte Domain Name System löst meist an natürliche Sprache angelehnte Hostnamen auf und liefert eine dazugehörige IP-Adresse. Endanwender brauchen damit also nur den Begriff www.vogel.de zu kennen, um einen unter 78.137.101.47 verfügbaren Server zu erreichen. Per Reverse Lookup funktioniert das übrigens auch umgekehrt: Dann werden IP-Adressen in Namen aufgelöst.
Dank des DNS merken sich nicht nur menschliche Endnutzer einfacher die Adressen in IP-Netzen allgemein sowie dem Internet als deren prominentesten Vertreter. Zudem erlaubt das DNS, IP-Adressen von Servern vergleichsweise risikolos zu ändern: Hantieren Anwender lediglich mit einem DNS-Namen, bleiben Änderungen an der zugehörigen IP-Adresse weitgehend unbemerkt. Ein mögliche Anwendung hierfür ist die Ablösung von klassischer IP-Adressen durch IPv6. Zudem können einzelne DNS-Namen auch mehreren IP-Adressen zugeornet werden – das Ergebnis wäre dann eine einfache Lastverteilung per DNS (Load Balancing).
Geschichte
Die Vorläufer von DNS als verteiltem, hierarchischen Verzeichnis waren einfache Textdateien, in denen Hostnamen mit ihren Netzwerkadressen verzeichnet waren. Zu Zeiten des Arpanet wurden die Informationen in einer mehr oder weniger zentral gepflegten Datei host.txt vorgehalten, die einmal pro Tag (respektive in der Nacht) von den Hosts im Netz abgerufen wurde. Erscheint dieses Verfahren für überschaubare Infrastrukturen mit einigen Hundert Großrechnern noch recht praktikabel, kommt der Ansatz bei größeren Netzen an seine Grenzen: Namenskonflikte werden wahrscheinlicher, die Größe der zu pflegenden host.txt unhandlich.
Dieser Herausforderung widmete sich Paul Mockapetris mit den auf Ende 1983 datierenden Requests for Comments RFC 882 „DOMAIN NAMES - CONCEPTS and FACILITIES“ und RFC 883 „DOMAIN NAMES - IMPLEMENTATION and SPECIFICATION“. Die mittlerweile veralteten Dokumente wurden unter anderem von den RFCs 1034, 1035 und 2181 abgelöst und ergänzt.
Beim DNS werden Namen und IP-Adressen nicht mehr in einer Textdatei vorgehalten, sondern in einer verteilten Datenbank. Auf Client-Seite werden Anfragen über einen Resolver genannten Prozess an Nameserver weitergeleitet. Die lösen die DNS-Adresse schließlich direkt oder über zusätzlichen Schritte der Delegierung und Weiterleitung auf.
Zum DNS gehören verschiedene Komponenten: Namensraum, Datenbank und Name Server.
Der Namensraum: DNS Name Space
In gewisser Weise lässt sich das DNS als Equivalent zu postalischen Anschriftenverzeichnissen auffassen. Das DNS bedient sich dabei eines hierarchischen Adressierungssystems; statt Postleitzahlen, Straßen und Hausnummern gibt es Top-Level-Domänen, die ihrerseits wieder in weitere Subdomänen unterteilt sind. Diese Struktur lässt sich als Baum mit darstellen. Dessen Blätter und Knoten werden als Labels bezeichnet; im vollständigen Domänennamen werden die Labels per Punkt voneinander getrennt. Beispiel:
www.vogel.de.
Der letzte Punkt gehört übrigens formal zum vollständigen Domänennamen und trennt somit die erste Hierarchieebene der Top-Level-Domains (hier: „de“) von der Wurzel. Dem entsprechend werden Domänennamen stets von rechts nach links delegiert respektive aufgelöst. Je weiter rechts ein Label, desto höher steht es auch in der baumförmigen DNS-Hierarchie.
Bei den Top-Level-Domains werden Länderkennungen und generische Bezeichnungen unterschieden. Die Länderkennungen – wie das im Beispiel angeführte „de“ – entsprechen den Definitionen von ISO 3166; Bezeichner mit nicht lateinischen Buchstaben wurden 2010 eingeführt. Zu den generischen Bezeichnungen gehören die 1985 eingerichteten „com“ und „edu“; zu den neueren Vertretern „museum“ (2002) und das für Anbieter erotischer Inhalte vorgesehene „xxx“ (2010).
Als oberste Instanz wacht die 1998 eingerichtete ICANN (Internet Corporation for Assigned Names and Numbers) über die Namenshierarchie. Die Top-Level-Domains werden von Registraren betrieben, die von der ICANN ernannt wurden. Diese vergeben ihrerseits die darunter angesiedelten Second-Level-Domains.
Die Datenbank: Domain Resource Records
Die DNS-Datenbank ist in Form von Resource Records organisiert. Jeder einzelne Host und jede Top-Level Domain kann mit mehreren dieser Datensätze verknüpft werden. Ein Resource Record besteht aus fünf Einträgen:
- Domain_name: Name der Domäne auf die sich der Eintrag bezieht.
- Time_to_live: Gültigkeitsdauer des Eintrags in Sekunden. Der Wert gibt an, wie lange der Record in Caches zwischengespeichert werden kann („cached records“) bevor die Daten wieder aus einem – stets aktuellen – „authoritative record“ aktualisiert werden müssen.
- Class: Für Informationen zum Internet wird die Klasse stets auf „IN“ gesetzt. Andere Felder sind zwar möglich, werden aber selten verwendet.
- Type: Gibt die Art des Datensatzes an. Beispiele sind „A“ für einen IPv4-Adresse, „AAAA“ für eine IPv6-Adresse oder „NS“ für Name Server.
- Value: Der Wert des Eintrags richtet sich nach dem „Type“ des Records und kann verschiedenste Werte annehmen, darunter eine Zahl, einen Domain-Namen oder einen ASCII-String.
Die Akteure: Name Server
Ein einziger Name Server könnte theoretisch zwar die komplette DNS-Datenbank vorhalten und alle Anfragen darauf beantworten – das wäre aber genau das Gegenteil dessen, was man mit der Ablösung der oben erwähnten host.txt bezweckt hat.
Dem entsprechend ist der DNS-Namespace in Zonen aufgeteilt. Jede dieser – sich nicht überlappenden – Zonen deckt einen Bereich des Addressbaums ab und wird mit einem oder mehreren Name Servern verknüpft, welche die entsprechende DNS-Datenbank für diese Zone abdecken. Am Beginn der Hierarchie stehen 13 Root-Server.
Das Verfahren: Name Resolution
Um die zum DNS-Namen passende IP-Adresse zu beziehen, wendet sich der Resolver des Clients zunächst an einen lokalen Name Server. Dieser beantwortet die Anfrage auf jeden Fall komplett, sendet dem Client also die IP-Adresse zurück. Dieses Verfahren wird als „Recursive Query“ bezeichnet.
Damit ein lokaler Name Server eine Anfrage komplett beantworten kann, muss er die Antwort freilich kennen. Das ist dann der Fall, wenn er die zugehörige Zone-Datenbank selbst verwaltet und damit einen „authoritative record“ senden kann – ein authoritative record stammt stets von der Autorität, die eine Zone verwaltet und ist damit auch stets aktuell. Alternativ könnte der lokale Name Server auch auf einen zwischengespeicherten cached record zurückgreifen – sofern vorhanden und aktuell.
Kann der lokale Name Server ad hoc keine Antwort geben, wendet er sich seinerseits an einen der – im Falle des Internet – 13 Root Name Server. Der kennt garantiert die Informationen aller Top-Level-Domains und kann die Anfrage zumindest teilweise beantworten – mit dem Verweis auf einen für die jeweilige Top-Level-Domain zuständigen Name Server.
Über diesen hangelt sich der lokale Name Server nun schrittweise weiter, bis er die gewünschte IP-Information vollständig erhalten hat. Anders als der Client muss der lokale Name Server bei dem Verfahren auch mit unvollständigen Antworten vorlieb nehmen und die Auflösung eigenständig sukzessive vorantreiben. Dieses Verfahren wird als „iterative query“ bezeichnet.
Das Protokoll: UDP und TCP
In der Regel verwendet DNS als Kommunikationsprotokoll UDP. Empfängt der Name Server zeitnah keine Antwort, wiederholt er die Anfrage oder wendet sich an einen alternativen Server. Um Antworten verlässlich zuordnen zu können, verwenden die Querys einen 16 Bit langen Schlüssel, der auch in den Responses wieder auftaucht. Alternativ sind auch Anfragen per TCP möglich.
Die Erweiterungen
Im Laufe seines Bestehens wurde das DNS bereits auf verschiedenste Weise erweitert. Einige Beispiele:
Mit dem Dynamischen DNS (DDNS, DynDNS) existiert eine Technik, um Domains dynamisch zu aktualisieren – sinnvoll bei Systemen deren IP sich recht oft ändert, weil sie beispielsweise per DSL-Modem mit regelmäßiger Zwangstrennung durch den Provider mit dem Internet verbunden sind.
Mit RFC 3490 und RFC 5890 wurden zudem der für DNS verfügbare Zeichenvorrat vergrößert und die Internationalisierung vorangetrieben. RFC 2916 beschreibt derweil einen Ansatz, um Internetdienste mit dem vom Telefonnetz bekannten Nummerierungsschema anzusprechen.
(ID:44501341)