Namensauflösung

Eine der Hauptaufgaben des Domain Name Systems ist die Namensauflösung:

Weil sich Menschen Namen besser merken können als IP-Adressen (vorallem besser als IPv6-Adressen), wurden Domainnamen eingeführt. Daher müssen Domainnamen durch eine Client-Server-Anfrage am DNS-Server oder Nameserver in eine IP-Adresse aufgelöst werden (forward lookup). Analogie zur Telefonauskunft: es wird die Nummer zu einem Namen geliefert. Neben dieser Hauptaufgabe kann DNS aber auch umgekehrt die jeweiligen IP-Adressen zu einem Domainnamen liefern (reverse lookup).

DNS beantwortet eine Anfrage zur Namensauflösung

DNS beantwortet eine Anfrage zur Namensauflösung

Ein weiterer Vorteil ist, dass ein Dienst (im obigen Beispiel der Web Server) so problemlos auf einen neuen Hostrechner mit einer anderen IP-Adresse umgezogen werden kann. Es muss lediglich der Eintrag im DNS-Server geändert werden.

Zudem kann ein Domainname auch mit mehreren IP-Adressen assoziert werden, so dass auch eine einfache Lastverteilung per DNS möglich ist.


DNS-Hierarchie

DNS-Hierarchie

DNS-Hierarchie

Der DNS-Namensraum hat eine baumartige Struktur (umgedreht). Die Elemente werden als Label bezeichnet. Ein Domainname (FQDN - Fully Qualified Domain-Name) setzt sich aus Labels zusammen, die durch einen Punkt getrennt werden:

h.eick-at.de.

Ein Domainname wird von rechts nach links aufgelöst. Der Punkt am rechten Ende eines Domainnamens trennt das Label für die erste Hierarchieebene, der Top-Level-Domain TLD von der Wurzel (englisch root). Er kann normalerweise weggelassen werden.


Nameserver

In einer Zone (Domain) werden die DNS-Objekte (z.B. Rechnernamen) in sog. Zonendateien bzw. -datenbank als Datensätze (Resource Records) auf mindestens einem oder mehreren autoritativen Nameservern gespeichert.  Wenn Nameserver eine Anfrage nicht beantworten können, arbeiten sie zusammen, indem sie entweder Anfragen

  • an die untergeordneten Nameserver der jeweiligen Subdomain delegieren (Lastverteilung).
  • außerhalb des eigenen Namensraums, bzw. der eigenen Domaine an einen anderen fest konfigurierte Nameserver weiterleitet (forwarding).
  • an einen Root Nameserver weiterleitet, falls das "Forwarding" zum fest konfigurierten Nameserver fehlschlägt.

Die Antworten werden zum Client zurückgegeben und aus Performance-Gründen im RAM zwischengespeichert (caching), um eine gleiche Anfrage beim nächsten Mal direkt beantworten zu können. Der Eintrag wird erst nach einer bestimmten Zeit (TTL time to live), die ein nicht-autoritativer Nameserver bei einer Anfrage vom autoritativen Nameserver erhalten hat, aus dem Cache gelöscht. Daher können Antworten vom DNS-Server durchaus nicht mehr aktuell sein.


Resolver

Der eigentliche DNS-Client heißt Resolver (Auflöser) und bildet die Schnittstelle zwischen Anwendungsprogramm und Nameserver.

Resolver in rekursivem und iterativen Modus

Resolver in rekursivem und iterativen Modus (Von Hank van Helvete - Eigenes Werk, CC BY-SA 2.5, https://commons.wikimedia.org/w/index.php?curid=556730)

Der Resolver eines PC arbeitet normalerweise rekursiv, d.h. er stellt nur eine Anfrage an einen fest konfigurierten Nameserver und überlässt diesem die weitere Arbeit. Findet dieser Nameserver die Antwort nicht im eigenen Datenbestand oder Cache, wird iterativ (wiederholend) die Anfrage entweder delegieren oder weiterleiten, bis er die Antwort erhalten hat.

Um nicht überlastet zu werden, beantworten Root Nameserver ausschließlich iterative Anfragen.






Last modified: Tuesday, 9 March 2021, 10:26 PM