DNS - Namensauflösung
Willemers Informatik-Ecke
DNS (Domain Name Service) ist ein Dienst, der die textuellen URLs des Internets in numerische IP-Adressen umwandelt. Der Browser benötigt für die Kommunikation mit dem Webserver IP-Adressen, während der Benutzer lieber Namen wie www.willemer.de verwendet.

Selbst die relativ einfachen 4-gliedrigen IPv4-Adressen können sich Menschen nicht leicht merken, schon gar nicht in großer Zahl. Die Webseite der Hochschule Flensburg findet man unter der IP-Adresse 193.175.191.141, aber obwohl man mehr tippen muss, werden die meisten Menschen die Adresse www.hs-flensburg.de vorziehen. ubuntu.com, startpage.de oder wikipedia.org sind leichter zu merken als IP-Adressen.

Bevor ein Rechner also den Webserver der Hochschule anrufen kann, muss er per DNS-Anfrage aus www.hs-flensburg.de erst die IP-Adresse 193.175.191.141 ermitteln.

Namensauflösungsanfragen

Ein zentraler DNS-Server für das Internet würde der Anfragelast nicht standhalten. In einer URL wird der Name des PCs von hinten nach vorn aufgelöst. www.willemer.de wird aufgeglieder in: Es ist auch möglich, weitere Subdomains zu bilden. Ein DNS-Server ist immer für eine Domain zuständig. Am bekanntesten dürfte Wikipedia sein, die die verschiedenen Sprachversionen als Subdomain ihrer Domain pflegen, also de.wikipedia.org für die deutsche Wikipedia oder en.wikipedia.org für die englische.

Für die Auflösung der TLDs ist das Root-DNS zuständig, das zu Anfang von 13 Root-DNS-Servern A.root-servers.net bis M.root-servers.net übernommen wurde. Heute sind es deutlich mehr. Sie werden von der ICANN verwaltet.

Für die Verwaltung der deutschen Domains unter der TLD de ist die DENIC zuständig.

Lokale DNS-Server

Lokale DNS-Server sind in der Regel als Default Name Server konfiguriert und werden den PC des LANs per DHCP mitgeteilt. Sie lösen die lokalen Namen des LANs auf und arbeiten ansonsten als Proxy und leiten weitergehende Fragen an den übergeordneten DNS-Server weiter.

Rekursive und iterative Namensauflösung

rekursiv

Bei einer rekursiven Namensauflösung werden Anfragen, die ein lokaler DNS-Server nicht beantworten kann an dessen übergeordneten Server weitergeleitet, bis der oberste gemeinsame Server gefunden ist. Von dort werden nun für die jeweilige Domain verantwortlichen Server aufgesucht, bis die IP-Adresse gefunden ist. Diese wird dann auf dem umgekehrten Weg zurückgereicht.

iterativ

Beim iterativen Ansatz leitet der angefragte DNS-Server die Anfrage nicht weiter, sondern informiert den Anfrager, welcher DNS-Server für die weitere Auflösung des Namens zuständig ist. Der Anfrager muss also mehrere Anfragen stellen, bis die IP-Adresse gefunden ist.

Caching

Die Last der Namensauflösung wird dadurch erleichtert, dass jeder DNS-Server auch gleichzeitig als Cache arbeitet, der einmal gefundene Namenszuordnungen zwischenspeichert. Solche Einträge werden allerdings nach einer gewissen Zeit gelöscht, um eine Aktualität zu gewährleisten. Da aber viele Informationen in den lokalen Name-Servern gespeichert werden, werden die übergeordneten Server entlastet.

RR: Der Resource Record

Die Informationen des DNS werden in RRs (Resource Record) gespeichert und auch verteilt.

Das DNS-Paketformat

Zufällige 16-Bit-ID Flags
Anzahl der Fragen Antwort-RRs
Authority-RRs Zusätzliche RRs
Anfrage(n) an DNS-Server
Antworte(n) von den DNS-Servern
Autoritative-Server
Zusätzliche Info (z. B. canonical name)

Namensauflösung verfolgen

Der Befehl nslookup kann den Weg der Namensauflösung verfolgen. Dieser Befehl ist aber inzwischen deprecated. Stattdessen sollte der Befehl dig oder host verwendet werden.
$ host www.willemer.de
www.willemer.de has address 217.160.0.27

Angriff auf DNS

Mit dem Tool dnsspoof lassen sich DNS-Pakete umlenken. Dazu wird eine /etc/hosts-ähnliche Datei mit dem umzulenkenden Namen auf eine andere IP eingetragen:
192.168.1.10   www.willemer.de
Danach wird ein Aufruf von www.willemer.de auf den Rechner 192.168.1.100 im lokalen Netzwerk gehen.
dnsproof -f umlenkdatei udp port 53

DANE

DNS-Based Authentication of Named Entities (DANE) wird in RFC 6698 festgelegt.

DANE basiert auf DNSSEC. Bei der Namensauflösung erhält der Client einen Fingerabdruck des Mailservers, den er nutzt, um eine verschlüsselte Verbindung anzufordern.

Links

Öffentliche DNS-Server