DNS - Domain Name System

Um einen Server im Internet adressieren zu können benötigt man seine IP-Adresse. Üblicherweise sind aber nur Domain-Namen und Computernamen der Server bekannt. Das Domain Name System, kurz DNS, ist ein System zur Auflösung von Computernamen in IP-Adressen und umgekehrt.

DNS - Domain Name System
Möchte man zum Beispiel die Webseite www.elektronik-kompendium.de besuchen, dann fragt der Browser zuerst seinen DNS-Server. Bei einem normalen Internet-Nutzer ist das der DNS-Server des Internet-Providers. Unternehmen mit großen Netzen betreiben häufig einen eigenen DNS-Server. Wenn der angefragte DNS-Server die IP-Adresse zu diesem Domain-Namen weiß, dann liefert er sie zurück. Wenn nicht, dann befragt der DNS-Server weitere DNS-Server. Das macht er so lange, bis er die IP-Adresse des Domain-Namens an den Browser zurückliefern kann.
Da ohne DNS das Internet praktisch nicht existieren kann, gibt es viele tausend DNS-Server auf der ganzen Welt, die zusätzlich hierarchisch angeordnet sind und sich gegenseitig über Änderungen informieren.

DNS geht auf die Datei hosts zurück, deren Inhalt zur Namensauflösung im ARPANET diente und händisch gepflegt wurde. Mit zunehmender Anzahl der Hosts im ARPANET wuchst der Bedarf für ein verteiltes und hierarchisches System zur Auflösung von Computernamen in IP-Adressen und umgekehrt.
DNS kennt keine zentrale Datenbank. Die Informationen sind auf vielen tausend Nameservern (DNS-Server) verteilt.

Domain-Name

Domain-Namen dienen dazu, um Computer, die mit kaum merkbaren IP-Adressen adressiert sind, richtige Namen zu geben und gleichzeitig in eine hierarchische Struktur zu unterteilen. Das DNS kümmert sich im Hintergrund um die Zuordnung von IP-Adresse zu Domain-Name.

Domain-Namen haben eine bestimmte Struktur und sind Teil einem Uniform Resource Locator (URL). Der URL (nicht die) ist eine "einheitliche Angabeform für Ressourcen" in Netzwerken. Die für DNS verwendete Struktur (URL) besteht aus drei oder mehr Teilen:

Computername (Host oder Dienst) Second-Level-Domain (SLD) Top-Level-Domain (TLD)
www.
ftp.
elektronik-kompendium.
elektronik-kompendium.
de
de

Manchmal befindet sich zwischen der Second-Level-Domain (SLD) und dem Computernamen eine Sub-Level-Domain (Subdomain).

Computername (Host oder Dienst) Sub-Level-Domain (Subdomain) Second-Level-Domain (SLD) Top-Level-Domain (TLD)
www. dse-faq. elektronik-kompendium. de

Eine URL wird immer von hinten nach vorne gelesen. Dort beginnt die Adresse mit der Top-Level-Domain (TLD). Man unterscheidet zwischen zwei Typen von Top-Level-Domains. Geografische Top-Level-Domains, die Ländercodes die nach ISO 3166-1 definiert und in Englisch als Country-Code Top-Level-Domains (ccTLD) bekannt sind. Dann gibt es noch die organisatorischen oder generischen Top-Level-Domains (Generic Top-Level-Domain, gTLD).
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.

Organisatorische Top-Level-Domains (Auszug)

Domain (gTLD) Organisationsform
.aero Lufttransportindustrie
.arpa Alte Arpanet Domäne
.biz Business, für große und kleinere Unternehmen
.com Kommerzielle Domain
.coop Kooperationen, Genossenschaften
.edu Schulen, Universitäten, Bildungseinrichtungen
.gov Regierungsstellen der Vereinigten Staaten von Amerika
.info Informationsdienste
.int International tätige Institutionen
.mil Militär der Vereinigten Staaten von Amerika
.museum Museen
.name Privatpersonen
.net Netzspezifische Dienste und Angebote
.org Nichtkommerzielle Unternehmungen und Projekte
.pro Professionals, spezielle Berufsgruppen
...

Geografische Top-Level-Domains (Auszug)

Domain (ccTLD) Land
.at Österreich
.au Australien
.cc Kokos-Inseln
.ch Schweiz
.de Deutschland
.fr Frankreich
.gb Großbritannien
.ie Irland
.it Italien
.li Lichtenstein
.nl Niederlande
.no Norwegen
.ru Russland
.to Tonga
.uk Vereinigtes Königreich
...

Nach der Top-Level-Domain (TLD) folgt die Second-Level-Domain (SLD), die einen beliebigen, aber unter der Top-Level-Domain einzigartigen Namen haben kann. Das jeweilige, für die Top-Level-Domain verantwortliche NIC verwaltet die Second-Level-Domains. Für .de (Deutschland) ist das die Denic. Einige Länder bilden Second-Level-Domains unterhalb des Ländercodes ähnlich der generischen Top-Level-Domains (z. B. .co.uk).
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.

Nameserver / DNS-Server

Ein DNS-Server tritt selten 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 speichert. Bei wiederholtem Aufruf holt er die IP-Adressen bereits erfolgreich aufgelöste Domain-Namen aus dem Cache. Die gespeicherten Informationen 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 Tokio.

Resolver / DNS-Client

Der DNS-Client (Resolver) ist direkt in TCP/IP integriert und steht dort als Software-Bibliothek für die DNS-Namensauflösung zur 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 mit DNS

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

Damit ein beliebiger Server, über den nur der Domain-Name bekannt ist, kontaktiert werden kann, muss seine IP-Adresse bekannt sein. Dazu befragt der Resolver des TCP/IP-Clients den hinterlegten DNS-Server (1.).

Rekursion

Rekursive DNS-Abfrage
Bei der rekursiven Abfrage übergibt der Resolver (Client) die Namensauflösung an einen DNS-Server (1.). Wenn dieser den Domain-Namen nicht auflösen kann, fragt der DNS-Server bei weiteren DNS-Servern nach (2.), bis der Domain-Name aufgelöst ist (3.) und die Antwort vom DNS-Server an den Resolver zurückgeliefert werden kann (4.). Der Resolver übergibt die Antwort dann an das Anwendungsprogramm.

Iteration

Iterative DNS-Abfrage
Bei der iterativen Abfrage liefert der DNS-Server nur die Adresse des nächsten abzufragenden DNS-Servers zurück (2.). Der Resolver muss sich dann um die weiteren Anfragen kümmern (3.), bis der Domain-Name vollständig aufgelöst ist (4.).

DNS-Protokoll

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 noch mal ü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.

OpenDNS

OpenDNS ist ein kostenloser Dienst, der DNS-Abfragen beantwortet. OpenDNS bietet Auflösung von DNS-Namen für Privatpersonen und Firmen an. Es handelt sich dabei um eine Alternative zur Nutzung des DNS-Servers des eigenen Internet Service Providers (ISP).

Übersicht: Namensauflösung