Das DNS (Domain Name System) ist der Dienst, der das Internet; wie wir es heute kennen; erst möglich macht.

Es ist ein verteiltes, hierarchisches System zur Auflösung von Computernamen in IP-Adressen und umgekehrt. Ohne DNS wäre eine Suchanfrage bei Google bedeutend schwerer, denn wir könnten nicht einfach www.google.de in die Adresszeile unseres Browsers eingeben, sondern müssten den Server von Google über eine seiner IP-Adressen ansprechen (z.B. 209.85.135.147). Da Menschen sich Namen weitaus besser als Zahlenkolonnen merken können, hat sich dieses System etabliert.

Am einfachsten lässt sich DNS also mit einem Telefonbuch vergleichen und jeder ISP (Internet Service Provider) hat zur Beantwortung seiner Kundenanfragen einen DNS-Server stehen. Jedesmal, wenn Sie also eine Internetadresse wie www.google.de eintippen und auf Enter drücken, fragt Ihr Computer diesen Namen bei Ihrem Provider ab (sehr vereinfacht gesagt). Erst nach der Übersetzung des Namens vom DNS-Server des Providers geht die Anfrage an die IP-Adresse des Zielrechners weiter. Eine vollständige Abfrage würde so aussehen:

Bild der vollständigen DNS Abfrage

Fully Qualified Domain Name (FQDN) - Vollqualifizierter Domänenname

Damit die ganze Abfrage auch funktionieren kann, braucht es eine exakte Namensgebung, um Verwechslungen auszuschliessen. Ein sogenannter FQDN setzt sich folgendermaßen zusammen:

3rd-level-label . 2nd-level-label . Top Level Domain . root-label

www .                    the-netbrain .                     de                          .

Die Darstellung des DNS-Namensraumes erfolgt als "Wurzelbaum". Jeder Knoten dieses Baumes besitzt einen Namen, der ohne die Angabe eines vollständigen Namens nicht eindeutig ist. Jeder Domain-Name besteht also aus mehreren Namensteilen (Labels), die durch Punkte voneinander getrennt sind. Der ganz rechts stehende Name steht in der Hierarchie des Wurzelbaums am höchsten, der ganz linke Knotenname am niedrigsten. Die höchste Ebene in der DNS-Hierarchie hat dabei die sogenannte Root-Domain. Sie hat per keinen Knotennamen, sondern heisst einfach"." (Punkt) (im Fachjargon: Null-Label genannt).

Unterhalb und damit links von der Root-Domain aufgeführt, folgt der Name einer Top Level Domains (TLD). Die Top Level Domain bezeichnet entweder das Land, in dem der Domain-Name registriert wurde (z. B. .at für Österreich, .de für Deutschland, .ch für Schweiz), einen Staatenverbund (z. B. .eu für die Europäische Union) oder einen Bereich des praktischen Lebens (z. B. .org, .com oder .biz). Topologisch unterhalb bzw. im Name links der Top Level Domain folgen die Namen der sogenannten Second Level Domains gefolgt von Third Level Domains.

Unterhalb der Second-Level-Domain können weitere Sub-Level-Domains (Subdomains) vorhanden sein, für die der Inhaber der Second-Level-Domain verantwortlich ist. An letzter Stelle, jedoch nicht zwingend erforderlich, steht der Computername oder Hostname, der meistens auf einen Dienst hindeutet. Die einzelnen Unterteilungen bzw. Ebenen werden durch Punkte voneinander getrennt. Zur Vervollständigung hat eine URL ein vorangestelltes Kürzel, das den verwendeten Dienst kennzeichnet (http:// oder ftp://). Es handelt sich dabei um eine optionale Angabe, die auch nur für Anwendungsprogramme wichtig ist.

DNS-Server / Nameserver

Ein DNS-Server tritt niemals alleine auf. Es gibt immer einen Primary und einen Secondary Nameserver. Sie sind voneinander unabhängig und redundant ausgelegt, so dass mindestens immer ein Server verfügbar ist. Der Secondary Nameserver gleicht in regelmäßigen Abständen seine Daten mit dem Primary Nameserver ab und dient so als Backup-Server.

Damit nicht bei jeder DNS-Anfrage das Netzwerk belastet werden muss, hat jeder DNS-Server einen Cache, in dem er erfolgreiche DNS-Anfragen abspeichert. Bei nochmaligen Aufruf holt er bereits erfolgreich aufgelöste Domain-Namen aus dem Cache. Die gespeicherten Daten haben eine Lebensdauer (Time-To-Live, TTL) von ca. 2 Tagen. Wird eine IP-Adresse durch den Umzug eines Domain-Namens geändert, ist die Domain nach spätestens 2 Tagen wieder im ganzen Internet erreichbar. Neben den ganz normalen DNS-Servern gibt es auch die Root-Server, von denen es weltweit nur 13 Stück gibt. 10 davon stehen in den USA. Die 3 anderen befinden sich in London, Stockholm und Tokyo.

DNS-Client / Resolver

Der DNS-Client (Resolver) ist direkt in TCP/IP integriert und steht dort als Software-Bibliothek für die DNS-Namensauflösung zu Verfügung. Der DNS-Client wird als Resolver bezeichnet und ist der Mittler zwischen DNS und dem Anwendungsprogramm. Der Resolver wird mit den Funktionen gethostbyname und gethostbyaddr angesprochen. Er liefert die IP-Adresse eines Domain-Namens bzw. dem Haupt-Domain-Namen einer IP-Adresse zurück. Damit der Resolver arbeiten kann benötigt er die IP-Adresse von einem, besser von zwei DNS-Server, die in den TCP/IP-Einstellungen eingetragen oder über DHCP angefordert werden müssen.

Ablauf der Namensauflösung

Grundsätzlich wird zwischen der rekursiven und der iteraativen Namensauflösung unterschieden. Einer der beiden Abfragetypen wird zusammen mit dem Domain-Namen an den Resolver übermittelt.

Die Rekursion

Die Rekursive Abfrage ist für den Resolver die einfachste Art der Namensauflösung. Er übergibt diese Aufgabe komplett an den angesprochenen DNS-Server. Wenn dieser den Domain-Namen nicht auflösen kann, fragt er selber bei weiteren DNS-Servern nach, bis der Domain-Name aufgelöst ist und die Antwort zurückgeliefert werden kann. Der Resolver übergibt die Antwort dann an das Anwendungsprogramm.

Die Iterative Abfrage

Die Iterative Abfrage an den angesprochenen DNS-Server liefert nur die Adresse des nächsten abzufragenden DNS-Servers zurück. Der Resolver muss sich dann selber um die weiteren Anfragen kümmern, bis der Domain-Name vollständig aufgelöst ist.

Das Protokol - ja, wo isses denn, das DNS?

DNS ist auf der Anwendungsschicht des OSI-Schichtenmodells angeordnet. Deshalb nutzt es zur Übertragung TCP und UDP auf dem Port 53. In der Regel verwendet der Resolver das UDP-Protokoll. Wenn die Antwort größer als 512 Byte ist, werden nur 512 Byte übertragen. Anschließend muss der Resolver seine Anfrage nochmal über TCP wiederholen, damit die Antwort in mehrere Segmente aufgeteilt werden kann. Der Datenaustausch zwischen dem Primary und Secondary DNS-Server wird ausschließlich mit TCP geregelt.

Das korrekte Aufsetzen eines DNS Servers

Im DNS Server Special zeige ich die korrekten Schritte zum Aufsetzen eines DNS Servers. Was gilt es da zu beachten? Sehen Sie selbst.


Weiter zum DNS Server-Special...