Netzwerke:DNS:Domain Name System

Aus ITWiki
Zur Navigation springen Zur Suche springen

Das Domain Name System (DNS) spielt eine essentielle Rolle in IP-basierten Netzwerken. Seine Hauptaufgabe ist die Beantwortung von Anfragen zur Namensauflösung.

Das DNS funktioniert ähnlich wie eine Telefonauskunft. Der Benutzer kennt die Domain (den für Menschen merkbaren Namen eines Rechners im Internet) – zum Beispiel itw-berlin.net. Diese sendet er als Anfrage in das Internet. Die Domain wird dann dort vom DNS in die zugehörige IP-Adresse (die „Anschlussnummer“ im Internet) umgewandelt – zum Beispiel eine IPv4-Adresse der Form 88.99.60.173 oder eine IPv6-Adresse wie 2a01:4f8:10a:cec::2, und führt so zum richtigen Rechner.


1 Überblick

Das DNS ist ein weltweit auf Tausenden von Servern verteilter hierarchischer Verzeichnisdienst, der den Namensraum des Internets verwaltet. Dieser Namensraum ist in sogenannte Zonen unterteilt.

Hauptsächlich wird das DNS zur Umsetzung von Domainnamen in IP-Adressen (forward lookup) benutzt. Dies ist vergleichbar mit einem Telefonbuch, das die Namen der Teilnehmer in ihre Telefonnummer auflöst. Das DNS bietet somit eine Vereinfachung, weil Menschen sich Namen weitaus besser merken können als Zahlenketten. Dieser Punkt gewinnt im Zuge der Einführung von IPv6 noch mehr an Bedeutung, denn dann werden einem Namen jeweils IPv4- und IPv6-Adressen zugeordnet. So löst sich beispielsweise der Name www.itw-berlin.net in die IPv4-Adresse 88.99.60.173 und die IPv6-Adresse 2a01:4f8:10a:cec::2 auf.

Mit dem DNS ist auch eine umgekehrte Auflösung von IP-Adressen in Namen (reverse lookup) möglich. In Analogie zum Telefonbuch entspricht dies einer Suche nach dem Namen eines Teilnehmers zu einer bekannten Rufnummer, was innerhalb der Telekommunikationsbranche unter dem Namen Inverssuche bekannt ist.

Das DNS wurde 1983 von Paul Mockapetris entworfen und in RFC 882 und RFC 883 (RFC = Request for Comments) beschrieben. Beide wurden inzwischen von RFC 1034 und RFC 1035 abgelöst und durch zahlreiche weitere Standards ergänzt.


2 Komponenten

2.1 Domain-Namensraum

Schematische Darstellung der DNS-Hierarchie
  • hat eine baumförmige Struktur
  • Blätter und Knoten werden als Labels bezeichnet
  • ein kompletter Domainname besteht aus einer Verkettung aller Labels eines Pfades
  • einzelne Labels werden durch einen Punkt voneinander getrennt
  • ein Domainname wird mit einem Punkt abgeschlossen

2.2 Fully Qualified Domain Name (FQDN)

Der vollständige Name einer Domain wird als ihr Fully Qualified Domain Name (FQDN) bezeichnet. Der Domain-Name ist in diesem Fall eine absolute Adresse und darf inklusive aller Punkte maximal 255 Bytes lang sein.

Der FQDN www.itw-berlin.net. ergibt sich durch:

3rd-level-label. | 2nd-level-label. | Top-Level-Domain. | root-label
------------------------------------------------------------------
www.             | itw-berlin.      | net               |

Ein Domainname wird immer von rechts nach links delegiert und aufgelöst, das heißt je weiter rechts ein Label steht, umso höher steht es im Baum.

.net.itw-berlin.www

root-label. | Top-Level-Domain. | 2nd-level-label. | 3rd-level-label.
------------------------------------------------------------------
            | net               | .itw-berlin      | .www

2.3 Nameserver

  • bietet Namensauflösung an
    • autoritativ
      • verantwortlich für eine Zone
      • wird als gesichert angesehen
      • redundant
        • primärer Nameserver
        • sekundärer Nameserver
        • Zonentransfer
    • nicht-autoritativ
      • bezieht Informationen von anderen Nameservern
      • wird als nicht gesichert angesehen
      • speichert Informationen im RAM (caching)

2.3.1 Zusammenarbeit der einzelnen Nameserver

Ein nicht-autoritativer Nameserver bedient sich folgender Strategien um Informationen über andere Teile des Namensraumes zu finden:

  • Delegierung
    • leitet Anfragen an Subdomain Nameserver weiter
  • Weiterleitung (forwarding)
    • bei ausserhalb liegenden Namensräumen, Weiterleitung an fest konfigurierten Nameserver
    • oder Auflösung über die Root-Nameserver (ausschliesslich Beantwortung iterativer Anfragen)

2.4 Resolver

Schematische Darstellung DNS-Auflösung

Resolver sind einfach aufgebaute Software-Module, die auf dem Rechner eines DNS-Teilnehmers installiert sind und die Informationen von Nameservern abrufen können. Sie bilden die Schnittstelle zwischen Anwendung und Nameserver. Der Resolver übernimmt die Anfrage einer Anwendung, ergänzt sie, falls notwendig, zu einem FQDN und übermittelt sie an einen normalerweise fest zugeordneten Nameserver. Ein Resolver arbeitet entweder rekursiv oder iterativ.

rekursiv

  • Resolver schickt Nameserver die Anfrage
  • kennt der Nameserver die Antwort erhält der Resolver die Antwort direkt, sonst schickt er die Anfrage weiter (s. Zusammenarbeit der einzelnen Nameserver)
  • am Ende erhält der Resolver die endgültige ANtwort

iterativ

  • Resolver erhält entweder die Antwort vom ersten Nameserver oder den Verweis zum nächsten Nameserver
  • in diesem Fall fragt der Resolver den nächsten Nameserver
  • dies geschieht so lange, bis er eine Antwort hat

Bekannte Programme zur Überprüfung der Namensauflösung sind nslookup und dig.

2.5 Protokoll

  • DNS-Anfragen normalerweise per UDP-Port 53 zum Namensserver
  • bei DNS-UDP-Packeten grösser als 512 Bytes werden die Antworten abgeschnitten
  • Clienst wird dann per Truncate-Flag informiert und kann Anfrage per TCP-Port 53 wiederholen
  • Zonentransfers immer über TCP-Port 53, Auslösung aber per UDP.