DNS - Namensauflösung
Willemers Informatik-Ecke

Namensauflösung

Benutzer rufen Webseiten über Namen auf, wie etwas www.hs-flensburg.de für die Hochschule Flensburg. Tatsächlich werden die Pakete an eine IP-Adresse gesandt. Das lässt sich durch einen einfachen Ping-Befehl ermitteln.
$ ping www.hs-flensburg.de
PING hs-flensburg.de (193.175.191.141) 56(84) bytes of data.
64 bytes from hs-flensburg.de (193.175.191.141): icmp_seq=1 ttl=52 time=23.7 ms
64 bytes from hs-flensburg.de (193.175.191.141): icmp_seq=2 ttl=52 time=23.2 ms
64 bytes from hs-flensburg.de (193.175.191.141): icmp_seq=3 ttl=52 time=23.2 ms
^C
--- hs-flensburg.de ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 23.216/23.380/23.694/0.221 ms
Der Webserver der Hochschule Flensburg residiert offenbar auf der IP-Adresse 193.175.191.141.

Pakete werden im Internet nicht über ihren Namen, sondern über die numerische IP-Adresse versendet. In der Version IPv4 sind die Adressen 4 Byte lang. Und selbst in der neuesten Version IPv6 sind die Adressen mit 16 Byte immer noch kleiner als so mancher Domain-Namen.

Für die Umsetzung des Domain-Namens muss das Internet-Wörterbuch befragt werden. Dieses nennt sich Domain Name System und liefert für den Domain-Namen die passende IP-Adresse.

Protokoll-Steckbrief

DNS liefert folgende Informationen:

Namensauflösungsanfragen

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.

DNS-Client

Ein Arbeitsplatz-Computer benötigt notwendig die IP-Adresse eines DNS-Servers, um ins Internet zu gelangen. Die Adresse erfährt er heutzutage in der Regel automatisch per DHCP. Alternativ kann die IP-Adresse des DNS-Server manuell eingetippt werden.

Üblicherweise stellt der Internet-Provider einen DNS-Server zur Verfügung. Dessen Adresse verteilt der Router mit seinem DHCP auf die lokalen PCs.

Logischerweise muss der DNS-Server als IP-Adresse bekannt sein. Ansonsten müsste zu deren Auflösung zunächst ein DNS-Server bemüht werden und die Katze beißt sich in den Schwanz.

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

Es gibt zwei verschiedene Arten, die Anfragen an den lokalen DNS-Server weiterzureichen: rekursiv und iterativ.

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.

Beispiel: Ein PC reicht die DNS-Anfrage an den Router weiter.

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.

Beispiel: Der Client fragt den Router nach mail.gmx.net

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