DNS - Domain Name System

Das Domain Name System, kurz DNS, ist ein System zur Auflösung von Computernamen in IP-Adressen und umgekehrt. Man bezeichnet das als Namensauflösung.

Möchte man zum Beispiel die Webseite www.elektronik-kompendium.de besuchen, dann fragt der Browser einen DNS-Server, der in der IP-Konfiguration hinterlegt ist. Das ist in der Regel der Router des Internet-Zugangs. Kann dieser DNS-Server die DNS-Anfrage nicht beantworten, dann wird eine Kette weiterer DNS-Server befragt, bis auf die DNS-Anfrage eine IP-Adresse an den Browser zurück geliefert werden kann.
Die IP-Adresse wird benötigt, weil nur mit dieser Adresse eine Verbindung zu einem Host in einem anderen Netzwerk aufgebaut werden kann (Routing). Ohne die IP-Adresse ist keine Verbindung möglich. Aus Sicht eines Hosts wäre das Internet kaputt.
Der Nutzer müsste dann die IP-Adresse wissen, um die Namensauflösung zu umgehen.

DNS kennt keine zentrale Datenbank. Die Informationen sind auf vielen tausend Nameservern (DNS-Server) verteilt. Und das DNS enthält nicht nur IP-Adressen, sondern noch mehr Informationen, die zentral verfügbar gemacht werden müssen, aber dezentral verwaltet und verteilt werden sollen. Deshalb wird DNS auch als das "Telefonbuch des Internets" bezeichnet. Ähnlich wie man in einem Telefonverzeichnis nach einem Namen sucht und Telefonnummer erhält, ermittelt man mit DNS mit einem Computer- oder Domainnamen die dazugehörige Dienst- oder Verbindungsinformationen.

Ohne DNS ist die Kommunikation im Netzwerk und im Internet praktisch nicht möglich. Deshalb existieren viele tausend DNS-Server auf der ganzen Welt, die zusätzlich hierarchisch angeordnet sind und sich gegenseitig über Änderungen informieren.
Viele Internet-Anwendungen stützen sich auf das DNS, um Verbindungsinformationen zu erhalten. Deshalb können Ausfälle von DNS-Servern fatal sein.

Wie funktionierte die Namensauflösung vor DNS?

DNS gab es nicht von Anfang an, sondern wurde erst später entwickelt. Davor wurde die Verwaltung der Namen und Adressen von der ICANN zentral organisiert und die Daten in der Datei „hosts“ per E-Mail an die Netzwerk-Administratoren verteilt, die diese Datei in ihre Netzwerke einpflegten. Mit zunehmender Anzahl der Hosts im ARPANET wuchs der Bedarf für ein verteiltes und hierarchisches System zur Auflösung von Computernamen in IP-Adressen und umgekehrt.

Probleme von DNS

DNS-Anfragen und -Antworten sind reine Textinformationen, die sich im Verlauf der Kommunikation abhören, verändern und auch unterbinden lassen.

  1. Jeder auf dem Weg zwischen einem Client und dem DNS-Server kann die DNS-Anfragen und -Antworten sehen.
  2. Derjenige kann auch DNS-Antworten austauschen und somit falsche Antworten auf die DNS-Anfragen anderer schicken.

Privatsphäre (Privacy) und Sicherheit (Security) sind bei DNS ein großes, nur teilweise gelöstes Problem.

Domain oder Domain-Name

Ein Domain-Name, kurz Domain, dient dazu, um Computer, die mit kaum merkbaren IP-Adressen adressiert sind, richtige Namen zu geben und gleichzeitig in eine hierarchische Struktur zu unterteilen. Domain-Namen sind auch häufig Teil eines Uniform Resource Locator (URL). Der URL (nicht die) ist eine "einheitliche Angabeform für Ressourcen" in Netzwerken. Ein URL beginnt mit einem vorangestellten Kürzel, das den verwendeten Dienst kennzeichnet (z. B. http:// oder ftp://). Es handelt sich dabei um eine optionale Angabe, die auch nur für Anwendungsprogramme wichtig ist und kein Teil des Domain-Namens ist.

Die für Domain-Namen verwendete Struktur besteht aus drei oder mehr Teilen. Die einzelnen Teile bzw. Ebenen werden durch Punkte voneinander getrennt.
Zu beachten ist, dass ein Domain-Name ganz rechts mit einem abschließenden Punkt beginnt. Dieser Punkt ist die Wurzel bzw. Root. In der Regel lässt man den Punkt einfach weg, weil er nur symbolischen Charakter hat.

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

Ein Domain-Name 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 als Country-Code Top-Level-Domains (ccTLD) bezeichnet werden. Dann gibt es noch die organisatorischen oder generischen Top-Level-Domains (Generic Top-Level-Domain, gTLD).

Die Second-Level-Domain kann von einer Person oder Organisation beantragt und eingesetzt werden. Die Second-Level-Domain bildet unter der Top-Level-Domain einen Domain-Namensraum, der es der Organisation ermöglicht einen Server mit dem Namen "www" zu betreiben, der im Internet dann zum Beispiel unter "www.elektronik-kompendium.de" zu erreichen ist.
Für weitere Unterteilungen existiert noch eine Third-Level-Domain, die auch als Sub-Level-Domain oder Subdomain bezeichnet wird. Ganz am Ende der Kette (am Anfang des Domain-Namens) wird dann der optionale Hostname des Computers eingesetzt.

Eine so zusammengesetzte Adresse (zum Beispiel www.elektronik-kompendium.de) ist ein sogenannter Fully Qualified Domain Name (FQDN).

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.
In einigen Ländern, wie beispielsweise Großbritannien, gibt es zur besseren Unterscheidung festgelegte Second-Level-Domains (zum Beispiel .co.uk., .ac.uk. oder .gov.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.

Aufgabenteilung im DNS

Eine Aufgabe im Domain Name System ist die Namensauflösung. Eine weitere Aufgabe ist die Verwaltung der DNS-Zonen. An der Spitze stehen die sogenannten Root-Server, die Informationen zu den Top-Level-Domains (TLD) speichern.
Auf den Ebenen darunter tummeln sich weitere Nameserver, die für Domains oder Subdomains zuständig und autoritativ auskunftsberechtigt sind.
Und dann gibt es DNS-Server, die sich nur mit der Namensauflösung beschäftigen und Anfragen weiterleiten und die Antworten erfolgreicher Anfragen zwischenspeichern.
Oder um es anders auszudrücken, ein DNS-Server ist nicht gleich DNS-Server. Jeder hat im DNS eine andere Aufgabe und Zuständigkeit.

DNS-Zonen

DNS-Zonen

Eine DNS-Zone ist ein Verantwortungsbereich oder eine Verwaltungseinheit, die in der Regel an einen Teil eines Domain-Namens gebunden ist. Ein autoritativer DNS-Server ist für eine oder mehrere dieser DNS-Zonen verantwortlich. Das heißt, er ist derjenige, von dem eine DNS-Anfrage eindeutig und korrekt zu seiner Zone beantwortet werden kann.
Die Daten einer Zone liegen in einer lokalen Zonendatei, die vom zuständigen Administrator gepflegt werden muss.

Einträge in einer DNS-Zone bzw. Zonendatei

Die Einträge in einer DNS-Zone werden als Resource Records bezeichnet. Jeder Resource Record bezieht sich auf einen anderen Record-Type, der eine bestimmte Information enthält. Zum Beispiel eine IP-Adresse oder die Mailserver-Adresse eines Domain-Namens bzw. der Zone.

  • Record-Type / Eintrag
  • A / IPv4-Adresse
  • AAAA / IPv6-Adresse
  • CNAME / Verweis, Weiterleitung oder Alias
  • MX / zuständiger Mailserver für die Zone (Mail Exchange)
  • NS / zuständiger Nameserver für die Zone
  • SRV / Server für einen Dienst im Windows-AD
  • TXT / liefert einen Text zurück
  • SOA / Ansprechpartner und Parameter zur abgefragten Zone (SOA: engl. für Start of Authority)

DNS-Server / Nameserver

Die Bezeichnungen DNS-Server und Nameserver benennen das gleiche. Während der Nameserver eine allgemeine Bezeichnung für einen Server ist, der für die Namensauflösung zuständig ist, bezeichnet der DNS-Server einen Nameserver im Domain Name System.

Den einen DNS-Server gibt es nicht. Man unterscheidet zwischen verschiedenen Arten von DNS-Servern, die unterschiedliche Verantwortungsbereiche, Aufgaben und Funktionen haben.

  • DNS-Root-Server
  • Autoritativer Nameserver (für eine DNS-Zone)
  • Nicht-autoritativer Nameserver (Proxy-Server)
    • Cache
    • Forwarder
    • Resolver

DNS-Root-Server

DNS-Root-Server, Root-Name-Server oder auch nur Root-Server sind autoritative Nameserver für die Root-Zone. Sie beantworten Anfragen zur Root-Zone (".") oder geben eine Liste mit autoritativen Namenservern für eine bestimmte Top-Level-Domain (TLD) zurück (".de", ".com", ".org", etc.).
Um Manipulationen der Root-Zone zu verhindern gibt es weltweit über hundert Root-Name-Server, die dem DNS Root Server System Advisory Committee der ICANN unterstehen.

Autoritativer Nameserver

Ein autoritativer Nameserver ist für eine (oder mehrere) Zonen zuständig und beantwortet auch nur Anfragen für diese Zonen. Autoritativ bedeutet, dass die Informationen dieses Nameservers als verbindlich gelten.

Nicht-autoritativer Nameserver

Ein nicht-autoritativer Nameserver ist nicht selbst für eine DNS-Zone verantwortlich und muss deshalb die Informationen zu einer Zone aus zweiter oder dritter Hand mit einer rekursiven oder iterativen DNS-Abfrage ermitteln. Dieser Nameserver und seine DNS-Auskunft ist deshalb nicht-autoritativ.

Proxy-Server

In der Praxis unterscheidet man grob zwischen autoritativen und rekursiven DNS-Servern. Ein rekursiver DNS-Server ist dabei nur ein Proxy-Server. Er holt die angefragten Informationen ab und stellt das Ergebnis den Hosts zur Verfügung. Er hält die Informationen eine Zeit lang vor, damit bei einer erneuten Anfrage diese nicht noch einmal ins Netz geschickt werden muss. Von einem rekursiven DNS-Server erhält man immer "non-authoritative", also nicht autorisierte Antworten. Das bedeutet, dass der Inhalt der Antwort nicht richtig sein muss. Weil er im Prinzip nur das nachplappert, was er von woanders ermittelt hat.

Weitere Eigenschaften von Nameservern sind Caching (speichern) und Forwarding (weiterleiten).

Caching-Server

Ein Caching-Server erhält Informationen von einem anderen Nameserver und speichert die Auskünfte eine Zeit lang zwischen. Dieser Server muss die Information erst dann wieder einholen, wenn sie nicht mehr zur Verfügung steht. Die Lebensdauer (Time-To-Live, TTL) bestimmt der autoritative Nameserver.

Forwarding-Server

Ein Forwarding-Server leitet alle DNS-Anfragen ausnahmslos an einen anderen Nameserver weiter.

Resolver

Die meisten DNS-Server sind keine autoritativen DNS-Server, sondern nur DNS-Resolver mit Caching- und/oder Forwarding-Funktion. Typischerweise sind DNS-Resolver in einem lokalen Netzwerk für die Namensauflösung der Clients zuständig. Ein als Resolver agierender DNS-Server befinden sich lokal auf einem Computer oder auch als Server-Funktion in einem Router im lokalen Netzwerk. Der in der IP-Konfiguration eingetragene DNS-Server ist demnach ein solcher DNS-Resolver. Wobei der lokale DNS-Client auch als Resolver bezeichnet wird.

Resolver (DNS-Client)

Ein Resolver ("to resolve", "auflösen") ist ein Programm, das Informationen aus dem Domain Name System besorgt. Das Programm ist eine Art Vermittlungsstelle zwischen einer Anwendungen und dem DNS.
Der Resolver ist direkt in TCP/IP integriert und steht dort als Software-Bibliothek für die Namensauflösung zur Verfügung. 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-Servern, die in der IP-Konfiguration eingetragen sein müssen. In der Regel erhält ein IP-Host die IP-Adresse des oder der DNS-Server per DHCP oder die IP-Adresse muss manuell eingetragen werden.

Primärer und Sekundärer DNS-Server / Primary und Secondary Nameserver

Damit ein DNS-Server die ganze Last der DNS-Anfrage nicht alleine tragen muss, gibt es sogenannte Primary und 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. Ein zweiter Nameserver ist sinnvoll, weil ein Ausfall des primären Nameservers dazu führt, dass Internet-Verbindungen ohne Namensauflösung nicht mehr möglich sind. Um dann trotzdem Verbindungen aufbauen zu können, müsste man als Anwender die IP-Adressen der kontaktierten Server kennen. Was aber nicht die Regel ist.

Ablauf einer Namensauflösung mit DNS (DNS-Abfrage)

Grundsätzlich unterscheidet man zwischen der rekursiven und der iterativen Namensauflösung. Einer der beiden Abfragetypen wird zusammen mit dem Domain-Namen von einem beliebigen Host an den zuständigen Resolver bzw. DNS-Server übermittelt.
Wie genau der Ablauf der Namensauflösung (rekursiv oder iterativ) erfolgt, kann im Vorfeld nicht bestimmt werden. Es kommt darauf an, wie der Nameserver reagiert, der einen DNS-Request bekommt.

Rekursion

Rekursive DNS-Abfrage

Der Client übergibt seinen DNS-Request an seinen zuständigen Resolver (1.). Wenn dieser den Domain-Namen nicht auflösen kann, dann würde er bei einer rekursiven Namensauflösung weitere DNS-Server befragen (2.), bis der Domain-Name aufgelöst ist (3.) und die Antwort an den Client zurückliefern (4.). Der Resolver würde in dem Fall als Stellvertreter (Proxy) für den Client arbeiten. Der Client würde die erhaltene IP-Adresse an das Anwendungsprogramm übergeben.

Iteration

Iterative DNS-Abfrage

Die iterative Namensauflösung erfolgt meist zwischen DNS-Servern. Die meisten Clients und Resolver können damit nicht umgehen.
Der zuständige DNS-Server übergibt seinen DNS-Request an einen in der Hierarchie höher stehenden DNS-Server (1.). Der beantwortet den DNS-Request mit einem Verweis auf andere Nameserver (2.), die den Namen auflösen können (z. B. autoritative Nameserver). Der DNS-Server muss sich dann um einen erneuten DNS-Request 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 mehreren Segmenten 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).

DNSSEC

In der regulären Kommunikation zwischen einem DNS-Client und DNS-Server ist es nicht vorgesehen, die Kommunikation zu verschlüsseln oder zu prüfen, ob ein DNS-Response von einem vertrauenswürdigen DNS-Server stammt. Hier besteht die Gefahr des DNS-Spoofings. Das heißt, ein Angreifer fängt DNS-Requests ab und beantwortet sie noch vor dem eigentlich kontaktierten DNS-Server.

Mit der Erweiterung DNSSEC gibt es die Möglichkeit zu prüfen, ob ein DNS-Response von einem vertrauenswürdigen DNS-Server stammt und ob der Transport unverfälscht erfolgt ist.

Übersicht: Namensauflösung

Weitere verwandte Themen:

Frag Elektronik-Kompendium.de

Netzwerktechnik-Fibel

Alles was Sie über Netzwerke wissen müssen.

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!

Netzwerktechnik-Fibel

Alles was Sie über Netzwerke wissen müssen.

Die Netzwerktechnik-Fibel ist ein Buch über die Grundlagen der Netzwerktechnik, Übertragungstechnik, TCP/IP, Dienste, Anwendungen und Netzwerk-Sicherheit.

Das will ich haben!

Alles was Sie über Kommunikationstechnik wissen müssen.

Kommunikationstechnik-Fibel

Die Kommunikationstechnik-Fibel ist ein Buch über die Grundlagen der Kommunikationstechnik, Übertragungstechnik, Netze, Funktechnik, Mobilfunk, Breitbandtechnik und Voice over IP.

Das will ich haben!