Softwareentwicklung und Managed Hosting
ANEXIA
SEP
3
2015

K-Root DNS Server, powered by ANEXIA

Geschrieben am  3. September 2015 von Stephan Peijnik

ANEXIA stellt seit einigen Tagen im Zuge des K-root Programms der RIPE NCC einen Internet Domain Name System Root Server in Wien bereit.

In diesem Post werde ich eine Einführung in das Internet Domain Name System (DNS) geben, erklären wie DNS funktioniert und die Rolle der DNS Root Server aufzeigen.

Zusätzlich werde ich, für den technisch geneigten Leser, einen kurzer Überblick über das K-Root System, welches von RIPE betrieben wird, geben.


DNS

Kurz gesagt ist das DNS eine der Säulen auf denen das moderne Internet aufbaut. DNS wird gerade in diesem Moment von Ihrem Computer verwendet, möglicherweise ohne dass Sie es merken.

Die deutsche Wikipedia enthält eine kurze, prägnante Zusammenfassung was dieses DNS eigentlich ist:

 

Das Domain Name System (DNS) ist einer der wichtigsten Dienste in vielen IP-basierten Netzwerken. Seine Hauptaufgabe ist die Beantwortung von Anfragen zur Namensauflösung.

Quelle: DNS Artikel, Deutsche Wikipedia

 

Dies mag sehr technisch klingen, weshalb wir uns im Zuge dieses Posts ein Beispiel ansehen, wie Ihr Browser gerade eben das DNS verwendet hat:

Sie lesen diesen Artikel gerade auf https://anexia.com/blog. Wie hat jedoch Ihr Browser den Post abrufen können?

Entfernt man den HTTP-spezfisichen Teil von obiger URL, bleibt anexia.com über. Dieser Teil wird als Hostname bezeichnet.

Den Abruf einer Website kann man mit einem Telefonanruf vergleichen.  Im ersten Moment ist Ihnen nur der Firmen Name bekannt – welcher mit dem Hostnamen in unserem Beispiel verglichen werden kann – was jedoch fehlt ist die zugehörige Telefonnummer.

Im Internet ist eine solche Telefonnummer eine IP Adresse. Dies ist eine eindeutige Nummer, welche einen Computer im Internet identifiziert, so wie eine Telefonnummer ein Telefon bezeichnet.

Kommen wir wieder zu unserem Beispiel des Telefonanrufes zurück. Ist nur der Name des gewünschten Gesprächspartners bekannt, greift man zum Telefonbuch, um die Rufnummer zu finden. Genau dieses Problem wird von DNS gelöst und als solches kann DNS angesehen werden: Das Telefonbuch des Internet.

Das DNS hat noch weitere Aufgaben, welche wir aber in diesem Artikel nicht beleuchten werden. Wir konzentrieren uns fürs Erste auf die Name-zu-Nummer Übersetzung.

Wenn wir unser Beispiel nochmals ansehen, wird recht schnell klar was Ihr Computer machen muss. Er kontaktiert das DNS um die IP Adresse – also die Rufnummer – des Hostnamens anexia.com zu finden.

Dies geschieht indem der Computer einen lokalen DNS Resolver kontaktiert. Dies ist ein System, welches von Ihrem Internet-Anbieter oder durch Ihre Organisation, betrieben wird. Dieser DNS Resolver kann als eine lokale Kopie der jüngst angefragten Hostnamen, zusammen mit deren IP Adresse, angesehen werden. Dies wird landläufig auch als DNS Cache bezeichnet.

Hat eine andere Person, die den selben DNS Resolver verwendet, kürzlich bereits anexia.com angesteuert, so kann die Anfrage direkt aus diesem Cache beantwortet werden und Ihr Computer erhält die zugehörige IP Adresse. Aber was geschieht, wenn der Resolver die Antwort noch nicht kennt?


Funktionsweise von DNS

Wenn ein DNS Resolver eine Anfrage nicht aus seinem Cache beantworten kann, kontaktiert er den DNS Server für die angefragte Domain.

Um das zugrunde liegende Konzept zu verstehen, sollte man das DNS als Baum-Struktur ansehen, wie die folgende Illustration zeigt.

DNS structure
By Jane Kruch (Own work) [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0)], via Wikimedia Commons

 

Das DNS besteht also aus mehreren Ebenen. Von oben nach unten angesehen, delegiert jede Ebene zur nächsten weiter und beinhaltet Informationen dazu wie die nächste Ebene kontaktiert werden kann.

Die oberste Ebene wird „root“ genannt. Um hier ins Detail gehen zu können, müssen wir unser Beispiel etwas anpassen.
Jeder Hostname beinhaltet eigentlich einen Punkt am Schluss, welcher üblicherweise weg gelassen wird.
Also ist der Hostname, für welchen wir die IP Adresse erfragen möchten, anexia.com. – inklusive dem Punkt am Ende.

Hostnamen werden von rechts nach links gelesen, was bei unserem Beispiel folgendes ergibt: Punkt – com – Punkt – anexia-it – Punkt – www

Der erste Teil dieses Hostnamens, den der DNS Resolver auswertet, ist also ein einzelner Punkt. Dies ist die „root“ Ebene in vorher gezeigten Grafik.
Der zweite Teil ist „.com“, welches durch die zweite Ebene – die Top Level Domain – dargestellt wird.
Und so weiter, bis wir am letzten Teil, „.www“, ankommen.

Wie bereits erwähnt beinhaltet jede Ebene Informationen um die darunter liegende Ebene zu kontaktieren. Was uns in diesem Moment jedoch fehlt ist die Information wie die oberste „root“ Ebene angesprochen werden kann.
Dies ist genau der Punkt, in dem die DNS Root Server genutzt werden.

Kurz gesagt beinhaltet jeder DNS Resolver die IP Adressen dieser DNS Root Server.
Diese bilden den Startpunkt einer jeden Abfrage.
In unserer Telefonbuch Analogie könnte man die DNS Root Server also als weltweites Telefonbuch ansehen. Dieses Telefonbuch beinhaltet jedoch nicht alle Telefonnummern die es auf diesem Planeten gibt, sondern nur Informationen darüber, in welchem spezialisierten Telefonbuch man nachsehen muss.
Diese spezialisierten Telefonbücher entsprechen der DNS Server der zweiten Ebene – der Top Level Domains.
Diese enthalten wiederum Hinweise darauf, welche DNS Server für die nächste Ebene, also die jeweilige Domain, zuständig sind.

Eine vollständige Namens-Auflösung, durchgeführt vom DNS Resolver, würde also wie folgt aussehen:

  1. Frage den DNS Root Server, wo man Informationen über „com.“ bekommt.
    Dieser antwortet mit der IP Adresse eines für „com.“ zuständigen DNS Servers (zum Beispiel 192.5.6.30)
  2. Frage den „com.“ DNS Server, wo man Informationen über „anexia-it.com.“ bekommt.
    Dieser antwortet mit der IP Adresse des „anexia-it.com.“ DNS Servers (zum Beispiel 194.1.206.2).
  3. Frage den „anexia-it.com.“ DNS Server, welche IP Adresse „anexia.com.“ hat, was die IP Adresse dieses Webservers, 217.146.26.172, zurück liefert.

Dieses Beispiel ist etwas vereinfacht, da jede Ebene aus mehreren DNS Servern aufgebaut ist, um Ausfalls-Sicherheit und Lastverteilung zu ermöglichen.

Sobald der DNS Resolver die Antwort aus Schritt 3 erhält, aktualisiert er seinen Cache mit der Information, dass anexia.com auf 217.146.26.172 zu finden ist. Dieser Cache-Eintrag wird dazu verwendet um zukünftige DNS Anfragen für anexia.com direkt beantworten zu können, ohne bei mehreren DNS Servern anfragen zu müssen.
Zum Schluss leitet der DNS Resolver die Antwort an Ihren Browser weiter, welcher nun in der Lage ist die Website abzurufen.

Dies mag auf den ersten Blick den Anschein erwecken, dass dieses System zu komplex gehalten ist. Jedoch erlaubt eine solche Architektur, dass die im DNS enthaltenen Informationen, auf viele Computer verteilt sind. Eine solche Verteilung bedeutet, dass es nicht einen einzelnen Rechner gibt, der alle Informationen vorhalten muss, sondern viele Rechner, die spezialisierte Informationen halten.
Weiters bedeutet dies ebenfalls, dass die durch Abfragen generierte Last auf viele Systeme aufgeteilt ist und bei einer möglichen Änderung nicht alle Systeme im DNS kontaktiert werden müssen.

Als nächstes betrachten wir die Rolle der DNS Root Server genauer, und sehen uns an wie diese organisiert sind.


DNS Root Server

Wie im Beispiel oben gezeigt, sind die DNS Root Server die erste Anlaufstelle, wenn eine Namensauflösung durchgeführt wird. Ohne diese Root Server, würde das DNS also nicht funktionieren.

IANA – die Internet Assigned Names Authority – ist für das DNS als ganzen Verantwortlich, und im speziellen auch für die „Root Zone“, welche die IP Adressen der DNS Root Server beinhaltet.

Es gibt gesamt 13 Root Server, welche alphabetisch von „a“ bis „m“ bennant sind. Diese werden von verschiedenen Organisationen, verteilt auf den Erdball, betrieben. Jeder dieser DNS Root Server ist nicht ein einzelnes System, sondern eine vielzahl von Computern, welche in einem Verbund zusammengschlossen sind und somit Fehlertoleranz umsetzen.

Durch Entwicklungen der letzten Jahre wird die Rolle dieser DNS Root Server immer wichtiger, da Technologien wie DNSSEC, eine vollständige Validierung nur durch die Verwendung der Root Server durchführen kann.


K-Root

Einer dieser 13 DNS Root Server, der K-Root Server, wird von RIPE NCC betrieben. Wie auch die übrigen 12 DNS Root Server, ist dies genau genommen ein Verbund von mehreren Computern. ANEXIA nimmt seit kurzem am Programm zur Betrieb dieser Server teil und stellt die Infrastruktur für einen dieser Server in Wien bereit.

Wie bereits am Beginn dieses Posts versprochen, tauchen wir nun etwas in die technischen Details der K-Root Server ein.

Die K-Root Server werden an einer vielzahl von Standorten weltweit betrieben. Auf einer technischen Ebene kommen IPv4 und IPv6 Anycast zum Einsatz, um den Datenverkehr zu diesem K-Root Servern über den – von einem Netzwerk-Standpunkt gesehen – kürzesten Weg und somit nähestem K-Root Server zu ermöglichen.

Dies wird erreicht, indem die einzelnen K-Root Server direkt mit deren „Gastgebern“, wie ANEXIA, peeren und die Anycast Prefixe vom K-Root AS25152 announcen.

Durch die Bereitstellung der Infrastruktur für einen K-Root Server in Österreich, versucht ANEXIA einen Teil zur Stabilität, Performance und Ausfalls-Sicherheit der K-Root Server beizutragen.
Das System selbst wird durch RIPE NCC selbst administriert, wobei alle Hosting-Dienste, wie Rack-Platz und Netzwerk-Anbindung, wie auch die Hardware selbst, durch ANEXIA bereitgestellt werden.

Mehr Informationen zum K-Root Programm finden Sie auf http://k.root-servers.org/.