19. Mai 2009, 12:23
In der aktuellen Diskussion rund um Internet-Sperren taucht häufig der Begriff "DNS" auf. Grund genug, einmal etwas genauer nachzusehen, warum man das Domain Name System eigentlich benötigt und wie es arbeitet.
Dabei möchte ich mich, wie hier im Blog üblich, eines Beispiels aus dem "richtigen Leben" bedienen: dem Telefonsystem.
Wenn ich jemanden anrufen möchte, so muss ich dessen Telefonnummer wissen. Eine Telefonnummer ist dabei nicht unbedingt das, was ich als "Benutzerfreundlich" bezeichnen würde. Ihren Ursprüng hat sie in der frühen Telefontechnik, namentlich den Hebdrehwählern, die seinerzeit die elektrische Verbindung zum gewünschten Gesprächspartner herstellten. Würde man heute das Telefonsystem neu erfinden, dann würden sicherlich leichter zu merkende Namen verwendet werden (z.B. "der Gerhards, Rainer aus Großrinderfeld").
Auch im Internet gibt es "Telefonnummern", sie heissen dort allerdings "IP-Adressen". Ihre Funktion ist jedoch exakt die gleiche: wenn Sie eine Web-Seite auf Ihrem Computer anzeigen wollen, dann muss Ihr Computer mit dem Server "sprechen" und die Seiten dort abrufen. Dazu muss ihr Computer die "Telefonnummer" (IP-Adresse) des Servers kennen. Erst mit dieser Adresse kann er anrufen. Die IP-Adresse ist dabei auch nicht gerade leicht zu merken. Üblicherweise besteht sie heute aus vier durch Punkte getrennte Zahlen (beispielsweise 192.0.2.2).
Die Telefonnummern unserer besten Freunde und der Familie kennen wir vielleicht auswendig. Ebenso könnte man sich sicherlich eine Reihe von IP-Adressen merken. Was aber, wenn es zu viele werden? Man könnte sich eine Liste machen und dort dann nachschauen. Im Telefonsystem wird eine solche Liste, für die nähere Umgebung, tatsächlich "offiziell" herausgegeben - und heisst dann Telefonbuch. Das hilft uns aber nichts, wenn ich die Telefonnummern von jemandem benötige, der weiter weg wohnt.
"Klar", heisst es jetzt, "dann schaue ich eben im Internet nach.". Geht natürlich. aber versetzen wir uns 'mal bewusst in die Vor-Internet-Zeit. Um die gewünschte Nummer zu finden gibt es die Telefonauskunft! Dort kann ich "einfach" anrufen, gebe die Adresse des gewünschten Partners an, und die Telefonauskunft wird mir seine Telefonnummer mitteilen. Dessen Nummer schreibe ich mir dann auf, am besten in mein persönliches Telefonbuch, und muss fortan die Auskunft nicht mehr bemühen (ausser, mein Gesprächspartner zieht um oder bekommt aus anderen Gründen eine neue Telefonnummer, und zwar jeweils, ohne mir das mitzuteilen). Als (wichtiges) Detail am Rande sei angemerkt, das die Auskunft nicht jede Telefonnummer kennt und mir selbst dann auch nicht jede mitteilen würde.
Dieses Problem tritt z.B. bei Sperrnummern auf. Das stellt mich übrigens zwar vor Probleme, allerdings meist nicht unlösbare: vielleicht kenne ich ja Jemanden, der in seinem persönlichen Telefonbuch die Sperrnummer desjenigen hat, den ich anrufen möchte. Dann muss ich den nur noch überreden, mir die Nummer mitzuteilen. Die Wahrscheinlichkeit, dass ich so jemanden kenne und er mir die Nummer sagt, steigt rapide an, wenn wir uns bereits kennen und alle beteiligten Personen ein gemeinsammes Interesse (z.B. Hobby) verfolgen.
Aber zurück zur Auskunft: innerhalb eines Landes funktioniert dieses System sehr gut. Auslandsnummern lassen sich so allerdings nicht ermitteln. Benötige ich einen Gesprächsparter aus, z.B. den USA, so habe ich zwei Möglichkeiten:
- ich rufe die Auslandsauskunft an
- ich rufe die Auskunft direkt in dem betreffenden Land an
Im ersteren Fall bediene ich mich also eines Vermittlers, nämlich der in meinem Land beheimateten Auskunft, die somit auch sicher meine offzielle Landessprache spricht. Die schaut dann in den ihr zugänglichen Auslandsverzeichnissen nach. Idealerweise kann ich das Problem der "Nummernfindung" sogar vollständig delegieren, so dass letztlich die Auslandsauskunft selbst Schritt zwei übernimmt und bei der Landesauskunft meines gewünschten Gesprächspartners nachfragt (ob der Service in der Praxis wirklich so weit geht, kann ich nicht sagen, aber immerhin ist es denkbar - das soll uns hier reichen). Wie genau die Auslandsauskunft arbeitet, ist mir dabei ziemlich egal. Für mich ist nur wichtig, dass ich letztlich die gewünschte Rufnummer erhalten.
Oder aber - Fall 2 - ich rufe direkt die Auskunft im Zielland an. Die verfügt oft über aktuellere Daten. Ausserdem reduziert sich so das Problem der "stillen Post" - denn je weniger Stellen bei der Suche beteiligt sind, desto sicherer ist es, dass ich tatsächlich die richtige Nummer erhalte. Voraussetzung für diesen Anruf ist aber, dass ich die Sprache des Ziellandes spreche.
So, genug des Telefonsystems. Jetzt wissen wir eigentlich auch schon, wie DNS arbeitet. Die Fragestellung ist hier die gleiche wie bei meiner Telefonnummernsuche, nur sind die Teilnehmer diesmal Rechner. Der Fragende ist mein Computer. Gebe ich z.b. www.example.net in meinen Browser ein, fragt der beim Betriebssystem nach, wie denn die tatsächliche Adresse der Seite ist. Denn ohne Adresse keine Verbindungsaufnahme (analog: "ohne Telefonnummer kein Anruf"). Das Betriebssystem ist nun so eine Art "Full-Service Agentur". Es wird jetzt aller möglichen Anstrengungen unternehmen, um die gewünschte IP-Adresse heraus zu finden. Im praktischen Leben mag man das mit dem stereotypen Beispiel "Sekretärin soll für Ihren Chef eine wichtige Telefonnummer finden" vergleichen.
Das Betriebssystem schaut nun zunächst einmal in seinem "Telefonbuch" nach, in dem alle Adresse stehen, die bisher bereits bekannt und wahrscheinlich noch gültig sind. Findet es dort die Adresse, ist die Suche beendet. Anderenfalls wird der nächstgelegene DNS-Server bemüht. Der kann durchaus auf dem eigenen Rechner installiert sein. Kenn der DNS-Server selbst den gewünschten Rechner, teil er das dem Betriebssystem mit und die Suche ist wieder beendet. Kennt er ihn nicht, gibt es analog zur Telefonauskunft zwei Möglichkeiten: Entweder der DNS-Server nutzt so eine Art "Auslandsauskunft", also einen DNS-Server, der alle anderen anderen Internet-Adressen kennt oder aber zumindest weiß, wie man die raus bekommt. Oder aber, analog zum eigenen Anruf bei der ausländischen Auskunft, mein DNS-Server bemüht sich selbst darum, die Adresse zu finden.
Das ist im DNS immer möglich. DNS hat eine hierarchiche Struktur. Es gibt 13 sogenannte Root-Server. Diese sind in der Lage, die jeweils zuständigen Server für die einzelnen Domänen (die Internet-Namen, z.b. example.net) zu finden. Mit den entsprechenden standardisierten Verfahren ist sichergestellt, dass jeder Name innerhalb nur sehr weniger Schritte (meist nicht mehr als vier) gefunden werden kann.
Unser DNS-Server wird also die IP-Adresse finden, sofern dies im DNS überhaupt möglich ist. Das gibt er dann an das Betriebssystem weiter, und das teilt es wiederum dem Browser mit. Der weiß damit dann, dass z.B. www.example.net die Adresse 192.0.2.2 besitzt. Erst jetzt kann der Browser die Verbindung zu diesem Server aufnehmen und die gewünschte Seite von dort herunter laden. DNS wird dabei übrigens überhaupt nicht mehr benutzt. DNS ist nur erforderlich, um überhaupt die IP-Adresse zu finden. Das gilt (mit gewissen Einschränkungen) übrigens auch, wenn der Browser ein paar Minuten später wieder auf die Seite zugreifen soll - dann benutzt er weiter die ihm bereits bekannte Seite (Browser "vergessen" die Adresse aber meist, wenn das Browserfenster geschlossen wird).
Geben Sie gar die Adresse 192.0.2.2 von Hand ein (weil Sie die aus irgendeinem Grund zufällig wissen), so findet überhaupt keine Anfrage beim DNS statt, und der Browser verbindet Sie direkt mit dem gewünschten Server. Das erfordert allerdings eine bestimmte Konfiguration des Servers und ist heute meist nur auf grossen Seiten möglich. Sie können einmal einen Selbstversuch machen: versuchen Sie http://78.35.36.94 - zum Zeitpunkt der Erstellung dieses Blogpostings war das die Adresse eines Servers des Bundesjustizministeriums.
Und jetzt denken Sie noch einmal kurz über das "reale Leben" nach. Dort ist es genau so. Oder rufen Sie bei der Telefonauskunft an, wenn Sie die Telefonnummer bereits kennen?
Ich hoffe, dieses Posting hat Ihnen einen kleinen Einblick ins DNS beschert. Ich bin meinen Vorsätzen aber gleich doppelt untreu geworden: zum Einen haben Sie doch ein bisschen warten müssen, zum anderen ist das Posting doch wieder länger... geht aber irgendwie nicht kürzer. Im nächsten Posting werde ich mich dann Anhand des heutigen Beispiels aufmachen, über die Zuverlässigkeit von DNS-Sperren nachzudenken. Selbst weniger aufmerksame Leser werden die Zielrichtung meiner Aussagen aber wohl bereits ahnen...
Geschrieben in
Grundlagen
Kommentare:
(4).
Trackbacks:
(0).
Permalink