Zum Hauptinhalt springen
24ef

12. Domain-Name-System

Hosts-Datei​

@

IP-Adressen kann man sich schlecht merken. Trotzdem braucht man sie, wenn man auf einen anderen Rechner, z.B. einen Webserver zugreifen will. Was also tun?

Wir verwenden gut merkbare Namen als Platzhalter fĂĽr die eigentlichen IP-Adressen. Sie sagen ja auch "Ich telefoniere mit meiner Mam" und nicht ich telefonieren mit "Ich telefonieren mit 078 123 45 67".

Jetzt brauchen wir nur noch einen Ort, wo wir die IP-Adresse zu einem bestimmten Namen nachschlagen können, also ein Verzeichnis.

In den Anfängen des Internets wurde dazu auf jedem Rechner eine Textdatei mit dem Namen hosts abgespeichert. Darin sind die Namen von allen anderen Rechnern und deren IP-Adressen gespeichert.

Diese Datei gibt es noch heute auf allen Rechnern.

Aufgabe

Lassen Sie sich in einem Cmd- oder Terminal-Fenster die hosts-Datei auf Ihrem Notebook anzeigen. Der Befehl dazu lautet:

# Windows: 
type C:\Windows\System32\drivers\etc\hosts

# Mac
cat /etc/hosts
  1. Wieviele Einträge finden Sie (alles, was mit # beginnt, ist nur Kommentar und zählt nicht)?

  2. Heute gibt es ca. 1 Milliarde Rechner, welche über einen Namen erreicht werden können. Wie gross würde die hosts-Datei in GB, wenn wir pro Namen mit ca. 50B Speicherplatz rechnen?

  3. Welches sind die Nachteile des Systems mit der hosts-Datei?

SSR

Grundlagen​

Sie haben in der letzten Aufgabe gesehen, dass die hosts-Datei kein taugliches Mittel fĂĽr unser Problem "Welche IP-Adresse hat der Server mit dem Namen www.gbsl.ch?" ist.

Was Sie da gerade gelesen haben ist ein Domain-Name.

In dieser Aufgabe lernen Sie, wie Domain-Namen, welche die Basis des Domain-Name-System (kurz DNS) sind, gebildet werden. In der nachfolgenden Aufgabe erfahren Sie dann, wieso das DNS der Lösung mit den hosts-Dateien so überlegen ist.

Aufgabe
  1. Lesen Sie auf der Seite https://www.elektronik-kompendium.de/sites/net/0901141.htm Die Abschnitte Domain oder Domainname bis und mit Geografisch Toplevel-Domains.

  2. Folgende Abbildung zeigt einen Ausschnitt des DNS-Namensraumes:

@

Eine solche Darstellung wird in der Informatik als Baum bezeichnet. Die Wurzel ist dabei zuoberst. Diese entspricht der Root-Domain, dargestellt durch den Punkt. Zuunterst sind die Blätter des Baums. Diese entsprechen den verschiedenen Host-Namen.

  1. Zeichnen Sie den Baum fĂĽr die folgenden Domain-Namen:

www.gbsl.ch
www.instagram.com
mail.sunrise.ch
matrix.distop.ie

Machen Sie eine Foto von Ihrer Zeichnung und laden Sie diese als Antwort hoch.

DNS-Zonen und -Server​

Die Informationen des DNS (Domain- / Host-Namen und zugehörige IP-Adressen) werden auf Servern gespeichert, sogenannten Nameservern. Dabei gibt es nicht nur einen solchen Server im Internet, sondern ganz viele. Jeder Server ist für eine bestimmten Bereich des DNS-Namensraumes zuständig, man spricht von Zonen. Wie das Genau funktioniert und welche Arten von Servern es gibt, lernen Sie hier.

Domain vs. Zone​

Im obigen Bild sehen Sie nochmals einen Namensraum. Der gestrichelt umramte Bereich entspricht der Domain edu. Sie umfasst alle Subdomains (berkley, nwu, purdue). Die Punkte stellen die Domain-Namen dar. Zuoberst, d.h. der Domain edu ĂĽbergeordnet, befindet sich die Root-Domain "."

FĂĽr die Verwaltung der Domain-Namen werden nun Zonen gebildet (graue Bereiche). Jede Zone verfĂĽgt ĂĽber einen eigenen Nameserver. Jeder Nameserver kann Auskunft ĂĽber seine eigene Zone geben.

Delegation​

Damit ein Nameserver nicht alle Domain-Namen und IP-Adressen seiner Zone kennen muss, kann er die Verwaltung von Subdomains an untergeordnete Nameserver delegieren. Z.B. delegiert der Nameserver der Zone edu die Verwaltung der Namen aus der Domain berkley an den Nameserver der Zone berkley.edu. Auf diese Weise entsteht eine Hierarchie von Nameservern.

Erhält nun ein Nameserver eine Anfrage für die IP-Adresse zu einem Domain-Namen, welcher in einer untergeordneten Zone verwaltet wird, so verweist er den Anfrager an den Nameserver der untergeordneten Zone weiter.

Root-Server​

Im obigen Bild ist keine Zone fĂĽr die Root-Domain "." eingezeichnet. Es gibt aber trotzdem Nameserver, welche fĂĽr diese Zone verantwortlich sind, die Root-Server. Sie kenne alle Nameserver welche die Top-Level-Domain-Zonen (edu, ch, de, org, ...) verwalten und delegieren Anfragen an diese.

Im Prinzip wĂĽrde ein einziger Root-Server ausreichen. Da dieser aber sehr viele Anfragen beantworten mĂĽsste und ein Ausfall praktisch das gesamte Internet lahmlegen wĂĽrde, gibt es ĂĽber 100 Root-Server, welche auf der ganzen Welt verstreut sind. Allerdings teilen sich diese Root-Server genau 13 fest reservierte IP-Adressen.

Autoritativer Server und Resolver​

Ein Nameserver, welcher für die Verwaltung einer Zone zuständig ist, wird autoritativer Nameserver genannt. Daneben gibt es auch Nameserver, welche ihre Informationen von autoritativen Nameservern beziehen und bei sich zwischenspeichern (Caching). Das erhöht die Verfügbarkeit des DNS und senkt die Antwortzeiten bei einer Abfrage. Solche Nameserver werden oft als Resolver bezeichnet.

Der bei Ihrem Notebook als DNS-Server eingetragene Server ist ein solcher Resolver. Der eingetragene DNS-Server wird von Ihrem Netzwerk automatisch konfiguriert, kann aber auch angepasst werden. (Achtung: Im Schulnetzwerk funktionieren selber eingtragene DNS-Server nicht, da diese von der Firewall geblockt werden.)

Resource-Records​

Die DNS-Informationen werden als lesbarer Text in sogenannten Zonendateinen konfiguriert. Ein Nameserver kann dann in dieser Zonendatei nachschauen, welche IP-Adresse zu einem bestimmten Domain-Namen gehört.

Die Einträge in der Zonendatei werden als Resource-Records bezeichnet. Es gibt eine ganz Reihe von unterschiedlichen Recordarten. Zwei davon sind für uns wichtig:

A-Record

Er enthält die IP-Adresse zu einem bestimmten Host-Namen

Beispiel:

gbsl.ch. 3600 IN A 95.128.37.7

NS-Record

Er verweist auf einen anderen Nameserver (Delegation)

Beispiel:

gbsl.ch. 3600 IN NS ns.namespace4you.de.

Selbsttest

Sicherheit und Datenschutz​

Seit einigen Jahren wurde bekannt, dass DNS-Daten fĂĽr Werbezwecke verwendet wurden. Diese Metadaten (Daten ĂĽber Daten) geben ja an, auf welche Webseiten ein Benutzer zugreift. Zudem ist die Sicherheit von DNS gering: die erste Antwort auf eine Anfrage gilt. Ein Angreifer kann deshalb, wenn er nahe dem Opfer ist, diesem falsche IP-Adressen ĂĽbergeben und es auf eine falsche Site lenken (Man in the Middle).

Aus diesen Gründen gibt es drei neue Konzepte, die diese Probleme lösen sollen. DNS over HTTPS (DOH) und DNS over TLS (DOT) sowie DNSSEC sollen sicherstellen, dass die Daten vertraulich und kryptografisch gesichert ausgetauscht werden. Sie werden in aktuellen Browsern schon eingesetzt. Allerdings weiss der Anbieter der DNS-Dienste immer noch, auf welche Sites der User gegangen ist – potentiell sind das wieder nutzbare Daten.

Ablauf DNS-Abfrage​

Sie haben nun die Struktur des DNS kennengelernt und gesehen, dass es zur Verwaltung in Zonen aufgeteilt wird. Jede Zone steht unter der Aufsicht eines autoritativen Name-Servers. Doch wie funktioniert das nun, wenn Ihr Notebook einen Domain-Name zu einer IP-Adresse auflösen muss? Das werden Sie in dieser Aufgabe herausfinden.

Aufgabe
  1. Gehen Sie auf die Seite 👉 https://tools.keycdn.com/dig Geben Sie den Domain-Name www.gbsl.ch ein, klicken Sie Trace an und lassen Sie den Namen auflösen.

Erklärungen​

Was passiert hier genau?

Die Webseite stellt einen Resover zur Verfügung, über welchen Abfragen des DNS getätigt werden können. Dabei kann der Auflösungsprozess im Detail verfolgt werden.

Der Resolver frägt zunächst einen wohlbekannten, aber nicht autoritativen Webserver im Internet an. Zum Beispiel denjenigen von Google, der unter der IP-Adressse 8.8.8.8 erreichbar ist oder Cloudflare, der unter 1.1.1.1 zu finden ist.

Dieser kennt den angefragten Domain-Name nicht und leitet den Resolver an die Root-Server weiter.

Der Resolver wählt nun einen der Root-Server aus und wiederholt die Abfrage bei diesem.

Der ausgewählte Root-Server kann zwar den angefragten Domain-Name auch nicht auflösen, aber er kann sagen, welches die autoritativen Name-Server für die Top-Level-Domain sind. Hier wird die Delgation sichtbar.

Der Resolver wendet sich nun an einen der TLD-Name-Server und das Spiel wiederholt sich, bis der autoritative Name-Server für die unterste Subdomain im Domain-Name gefunden ist. Dieser kann nun den Domain-Name auflösen und die gesuchte IP-Adresse zurückgeben.

  1. Zeichnen Sie ein Sequenzdiagramm, welches die Nachrichten vom Resolver zu den verschiedenen Name-Server, sowie deren Antworten zeigt. Beachten Sie, dass die Webseite aus Teil 1 der Aufgabe, jeweils nur die Antworten von den einzelnen Name-Server zeigt. Die Abfrage selber sieht man nicht. Sie können diese durch einen Pfeil mit der Beschriftung DNS-Request([abgefragter Domain-Name]) darstellen.

    Die Antwortpfeile können Sie dann mit DNS-Response(…) beschriften, wobei Sie die Punkte durch einen der erhaltenen DNS-Resource-Records ersetzen (idealerweise derjenige DNS-Resource-Record, der dann in der nächsten Abfrage verwendet wird).

Laden Sie Ihr Sequenzdiagramm als Antwort zu dieser Aufgabe hoch.