[toc]
Ist es nicht herrlich einfach das Internet „zu bedienen“? Man gibt einfach einen Domainnamen, wie z.B. addis-techblog.de, in die Adresszeile des Browsers ein und schon landet man auf der entsprechenden Seite. Das war allerdings nicht immer so. Und die Infrastruktur, der sogenannte Domain Name Service (DNS), welche diese Einfachheit erst möglich macht, ist doch einen ganzen Tick komplexer als es zunächst den Anschein macht. Darum hier mal ein kleiner Blick auf einen Teil der Internet Infrastruktur, die uns allen das Leben mit dem Web doch um einiges einfacher macht. Wie funktioniert das Ganze? Wie läuft ein DNS Request ab? Und warum gehört an das Ende eines Domainnamens eigentlich ein Punkt (den wir alle immer weglassen)?
Der Domain Namensraum
Um letztendlich zu verstehen, wie dein DNS Request abläuft, muss man zunächst einmal schauen, wie sich ein Domainname zusammensetzt. Die Vorgabe macht hier der sogenannte Domain Namensraum, welcher eine Baumstruktur aufweist. Die Knoten und Blätter dieses Baumes ergeben die sogenannten Labels. Einzelne Labels werden dabei durch Punkte getrennt.
FQDN und Root Domain
Und jetzt kommen wir zu der Sache mit dem Punkt am Ende: Denn ein vollständiger Domainname, dieser wird als Fully Qualified Domain-Name (FQDN) bezeichnet, schließt mit einem Punkt ab. Das schließt auch die in Deutschland üblichen de domain names ein.
Der FQDN für Addis Techblog lautet also „addis-techblog.de.“ Der Punkt am Ende wird allerdings gewöhnlich weggelassen. Dabei bezeichnet dieser die Root Domain, welche noch über den sogenannten TopLevel Domains „.de, .com, .org usw“ steht. Dies ist wichtig zu wissen, wenn es um die Auflösung und Delegierung eines Domainnames geht. Dies geschieht nämlich immer von rechts nach links.
Die Nameserver
Für die einzelnen DNS Objekte (TopLevel Domain, Rechnername, Subdomain) sind Einträge in sogenannten Zonendateien meist auf mehreren autoritativen Nameservern vorhanden, welche die jeweiligen Zonen verwalten. Für jede Zone existiert dabei mindestens ein Nameserver.
Die Nameserver sind nun die Rechner, die für die eigentliche Namensauflösung verantwortlich sind. Diese Namensauflösung sorgt dafür, dass eingebene Domains (z.B. addis-techblog.de) in eine für den Computer verarbeitbare IP Adresse „aufgelöst“ wird.
Der Resovler
Der Resolver schließlich ist für die Anfragen an einen Nameserver zuständig. Im Grunde ist ein entsprechendes Resolver Softwaremodul auf jedem Rechner als Schnittstelle zwischen Anwendung und Nameserver vorhanden. Als solche übernimmt das Modul die Anfrage einer Anwendung, ergänzt sie ggf zu einem FQDN und sendet sie an einen fest zugeordneten Nameserver.
Ablauf eines DNS Request
Um das ganze einen Tick verständlicher zu machen, hier mal der Ablauf eines sogenannten DNS Requests Schritt für Schritt. Nehmen wir also mal ich möchte mit meinem Rechner, nennen wir ihn mal „toller Computer“ die Seite addis-techblog.de aufrufen, dann passiert folgendes:
- Mein Rechner „toller Computer“ schaut als erstes in seiner eigenen Hosts Datei (befindet sich auf dem Rechner) nach, ob sich hier ein Eintrag für „addis-techblog.de“ mit der entsprechenden IP Adresse findet. In der Regel dürfte dies nicht der Fall sein, also sendet mein Rechner „toller Computer“ die Anfrage weiter an einen DNS-Server (meist fest eingetragen oder per DHCP zugewiesen).
- Hat mein angefragter DNS Server die IP Adresse für addis-techblog.de zwischengespeichert, antwortet er damit und der gesamte Vorgang ist damit beendet. Falls die Adresse nicht zwischengespeichert ist, fragt der DNS Server einen der 13 Root Nameserver nach „addis-techblog.de“
- Der Root Nameserver stellt fest, dass die Auflösung des Names in der „.de“ Zone weitergehen muss und sendet meinem DNS Server die Namen und IP Adressen der „.de“-Nameserver.
- Nun fragt mein DNS Server den „.de“-Nameserver nach „addis-techblog.de“
- Der „.de“-Namerserver sendet meinem DNS Server die Namen und IP Adresse der Nameserver für die Zone „addis-techblog.de“.
- Nun fragt mein DNS Server den entsprechenden Nameserver nach der IP Adresse für „addis-techblog.de“
- Mein DNS Server erhält als Antwort die entsprechende IP Adresse
- Mein Rechner „toller Computer“ erhält von meinem DNS Server nun die IP Adresse für „addis-techblog.de“ und kann die http Anfrage an diese IP Adresse senden.
Man merkt also, auch wenn der beschriebene Vorgang etwas vereinfacht war, dass das simple Aufrufen einer Webseite per Browser ein durchaus komplexer Vorgang ist. Und wenn hier an einer Stelle „Sand ins Getriebe“ kommt, wird es mit dem Surfen im Web mehr als schwierig. Dies ist unter anderem ein Grund, warum Hacker in letzter Zeit auch gerne mal DNS Server ins Visier nehmen. Denn so lassen sich weite Teile des Webs massiv stören.
Aber auch im kleineren Masstab mit der Hosts-Datei auf euren Rechnern lässt sich viel Schindluder treiben (allerdings auch sinnvolle Dinge bewerkstelligen). Wird hier zum Beispiel für „google.com“ eine IP Adresse eingetragen, welche zu einer völlig anderen Webseite gehört, wird der Rechner immer diese eingetragene IP Adresse nutzen. Das hat zur Folge, dass dann immer die falsche Webseite aufgrufen wird und nicht google.com.