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:- de: Die Top-Level-Domain. Dazu gehören die landesspezifischen TLDs wie de, fr oder dk, aber auch com (commercial) oder edu (education - Universitäten).
- willemer: Die Domain unterhalb der TLD. Wer willemer.de hat, hat noch lange nicht willemer.edu.
- www: Dies ist der Hostname des Computers, der den Webserver stellt.
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.- name=: Der Name der Anfrage bzw. Antwort
- value=: Der Wert zu diesem Namen, beispielsweise die IP-Adresse
- type=: Was soll aufgelöst werden?
- A name: Host, value: IPv4-Adresse
- AAAA name: Host, value: IPv6-Adresse
- NS Suche nach einem Name-Server. name: Der gesuchte Hostname, value: Der Name des autotitativen DNS-Server der Domain
- CNAME name: Alias-Name für einen canonical Namen, value: der canonical Name
- MX name: Die Domain, value: Der der Domain zugeordnete Mailserver
- ttl=: Maximale Zeit, um den Eintrag zu cachen
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) |
- Flags: query/reply, recursion desired, recursion available, reply is authoritative
- Die folgenden vier Einträge werden benötigt, weil mehrere Anfragen und Antworten möglich sind.
- In den nachfolgenden Einträgen befinden sich die Texte der Fragen und Antworten
- Ein autoritativer Server ist der DNS der DNS-Server der Organisation, der für die Mapping des Hostnames mit der IP zuständig ist.
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.deDanach 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.