Domain Name System (DNS) Es hat sich ziemlich früh herausgestellt, daß menschliche Benutzer die numerischen IP-Adressen nicht benutzen wollen, sondern aussagekräftige und vor allem merkbare Namen bevorzugen. Außerdem ist es ein großer Nachteil der IP-Adressen, daß aus ihnen keinerlei geographische Information zu entnehmen ist. Man sieht einer Zieladresse nicht an, ob sie in Australien oder im Nebenzimmer lokalisiert ist, außer man kennt zufällig die gewählten Zahlen. Es wurde daher das Domain Name System entwickelt, das den Aufbau von Rechnernamen regelt. Es ordnet jedem (weltweit eindeutigen) Namen eine IP-Adresse zu. Dabei gibt es einige Varianten. Eine Maschine mit einer IP-Adresse kann mehrere Funktionen haben und daher auch mehrere Namen, die auf diese Funktionen hinweisen. Genauso kann eine Maschine (z. B. ein Router) viele IP-Adressen haben aber nur einen Namen. Beim "Domain-Name-System" (DNS) handelt es sich um einen Dienst, der zu einem Rechnernamen die zugehörige IP-Nummer liefert und umgekehrt. Das ist in etwa mit der Funktionsweise einer Telefonauskunft vergleichbar: Der Kunde ruft bei einer bestimmten Telefonnummer an und fragt nach der Rufnummer eines Teilnehmers. Nachdem er Name und Wohnort der gesuchten Person durchgegeben hat, erhält er als Antwort die gewünschte Nummer aus einem Verzeichnis. Genauso läuft eine DNS-Abfrage ab. Gibt ein Benutzer in seinem Webbrowser zum Beispiel die Adresse http://www.VereinGegenZuLangeDomainnamenEV.de ein, dann sorgt ein Teil der Netzwerk-Software auf seinem lokalen Rechner dafür, daß ein Name-Server nach der IP-Adresse des Rechners www.vereingegenzulangedomainnamenev.de gefragt wird. Dieser Softwareteil wird als Resolver bezeichnet und entspricht in obigem Beispiel dem Kunden, der die Auskunft anruft. Welche IP-Adresse dieser Server hat, muß dem Klientenrechner natürlich bekannt sein, genauso wie der Kunde eine einzige Telefonnummer wissen muß, nämlich die der Auskunft selbst. Auf der Serverseite arbeitet eine Software, die als "Domain-Name-Server" oder kurz "Name-Server" bezeichnet wird und anhand einer Datenbank ("Zone-File") die passende IP-Nummer zum Rechnernamen liefert, oder einen anderen Name-Server fragt, wenn die Adresse unbekannt ist. DNS ist ein typisches Beispiel für einen Verzeichnisdienst. Seine Aufgaben sind:
Damit das DNS funktioniert muß es Instanzen geben, die Namen in IP-Adressen und IP-Adressen in Namen umwandeln ('auflösen') können. Diese Instanzen sind durch Programme realisiert, die an größeren Maschinen ständig (meist im Hintergrund) im Betrieb sind und 'Nameserver' heißen. Jeder Rechner, der an das Internet angeschlossen wird, muß die Adresse eines oder mehrerer Nameserver wissen, damit die Anwendungen auf diesem Rechner mit Namen benutzt werden können. Die Nameserver sind für bestimmte Bereiche, sogenannte 'domains' oder 'Zonen', zuständig (Institute, Organisationen, Regionen) und haben Kontakt zu anderen Nameservern, so daß jeder Name aufgelöst werden kann. Domänen-Konzept In den Anfängen des ARPA-Nets, aus dem das Internet entstand, wurde die Namensauflösung über eine einzige Datei erledigt. Jeder Rechner kopierte sich Nachts per FTP diese Datei von einem Master-Server auf die lokale Platte. Dieses Konzept funktioniert natürlich nur, solange die Anzahl der Namen nicht groß ist. Die benötigte Bandbreite ist proportinal zum Quadrat der beteiligten Rechner. B ~ N2 Als Relikt aus dieser Zeit kennt fast jedes Betriebssystem auch heute noch eine Hosts-Datei, in der für kleine Netze Rechner/Nummern-Zuordnungen abgelegt werden können. (Bei Windows im Verzeichnis \WINDOWS\HOSTS, bei Unix unter /etc/hosts, bei Novell unter SYS:SYSTEM/ETC/HOSTS, etc.) Die Syntax aller dieser Hosts-Dateien ist einfach. Für jeden Rechner gibt es eine eigene Zeile mit dem Inhalt: IP-Nummer Hostname Alias Alias .... Zum Beispiel: 192.168.112.1 chef dumpfbacke 192.168.112.2 Snow-White 192.168.112.3 Doc 192.168.112.4 Happy 192.168.112.5 Bashful 192.168.112.6 Sneezy 192.168.112.7 Sleepy 192.168.112.7 Grumpy 192.168.112.8 Dopey Der Begriff Alias läßt sich dabei am besten durch "Spitzname" (oder englisch Nickname) ersetzen; also ein weiterer Name für ein und den selben Rechner. Bei einer kleinen Menge von Rechnern ist die Namensverwaltung mit einer Datei noch möglich; für einen so großen und ständig wechselnden Verbund wie das Internet ist sie aber nicht geeignet. Hier ist eine dezentrale Verwaltung mit einem eigens darauf abgestimmten Namensraum nötig. Der Namensraum des DNS ist in sogenannte Domänen eingeteilt. Die Domänen sind hierarchisch als Baum angeordnet,
Ausgehend von der Wurzel (=Root) des Baumes ist der Namensraum in sogenannte "Toplevel-Domains" eingeteilt. Man unterscheidet dabei zwischen zwei verschiedenen Klassen von Toplevel-Domänen: Den generischen und den länderspezifischen.
Unterhalb der Toplevel-Domänen folgen Subdomänen, die wiederum Domänen enthalten können und schliesslich, als Blatt des Baumes, ein einzelner Rechner. Der Name www.netzmafia.de ist also so zu verstehen. In der Toplevel-Domäne ".de" ist die Subdomain "Netzmafia" bekannt. Innerhalb der Subdomain "netzmafia" gibt es einen Rechner namens "www". Analog zu unserem Beispiel mit der Telefonauskunft, ist mit "de" das Land, mit "netzmafia" der Ort und die Straße und mit "www" der Name eines Teilnehmers bestimmt. Die komplette Adresse eines Rechners in der beschriebenen Notation (z.B. (www.netzmafia.de) bezeichnet man als FQDN (Full-Qualified-Domain-Name) Für die Aufnahme einer Verbindung zwischen zwei Rechnern muß in jedem Fall der Rechnername in eine zugehörige IP-Adresse umgewandelt werden. Aus Sicherheitsaspekten ist es manchmal wünschenswert, auch den umgekehrten Weg zu gehen, nämlich zu einer sich meldenden Adresse den Namen und damit die organisatorische Zugehörigkeit offenzulegen. Komponenten des DNS Insgesamt sind es drei Hauptkomponenten, aus denen sich das DNS zusammensetzt:
Der Nameserver des DNS verwaltet also einzelne Zonen, die einen Knoten im DNS-Baum und alle darunterliegenden Zweige beinhalten. Auf jeder Ebene des DNS-Baums kann es Namesever geben, wobei jeder Nameserver seinen nächsthöheren und nächstniedrigeren Nachbarn kennt. Aus Sicherheitsgründen gibt es für jede Zone in der Regel mindestens zwei Nameserver (primary und secondary), wobei beide die gleiche Information halten. Nameservereinträge können nicht nur die Zuordnung Rechnername - IP-Adresse enthalten, sondern (neben anderem) auch weitere Namenseinträge für einen einzigen Rechner und Angaben für Postverwaltungsrechner einer Domain (MX, mail exchange). Basis des Nameservice bilden die "Root-Nameserver", die für die Top-Level-Domains zuständig sind. Federführende Organistation ist hier die ICANN (=Internet Corporation for Assigned Names and Numbers , Adresse: http://www.icann.org). Gründung 1998. ICANN beauftragt die Verwalter der Zone "." (Wurzel des DNS-Baumes) mit 13 Servern. Bis auf die Server I (Stockholm), K (London) und M (Tokio) stehen alle Server in den USA.
Der Server A ist der primäre Server, alle anderen sind seine Secondaries. Eine Liste dieser Root-Server muss jeder DNS-Server haben (Ausnahme: Cache-Only-Server). Erzeugung der Liste mit dem Kommando: dig @rs.internic.net . ns > root.servers Die Namen, die im Internet verwendet werden müssen dabei einige Spezifikationen erfüllen:
Ein wichtiger Bestandteil des DNS-Konzeptes ist die Aufteilung der benötigten Datenbank auf viele verschiedene Rechner. Da das Gesamtsystem voll funktionsfähig bleiben muß, auch wenn ein Server ausgefallen ist, wir die Datenhaltung mit Hilfe von Zuständigkeiten gelöst: Zu jeder Domain gibt es mindestens einen zugehörigen Server, der verantwortlich die darin enthaltenen Subdomains oder Rechner verwaltet, oder die Verwaltung an einen weiteren Server weiterdelegiert. Am Stamm des DNS-Baumes sitzen dazu die "Root-Server", die alle einträge ihrer jeweiligen Domain kennen. Das heißt, daß der Root-Nameserver der Domäne ".de" einen Eintrag für den Named-Server der Domain "netzmafia.de" besitzt. Dieser Server hat wieder eine Liste der in "netzmafia.de" enthaltenen Rechner und Subdomains. Die Frage eines Clients nach der IP-Nummern eines Rechners wird wie folgt abgewickelt:
DNS-Typen Man unterscheidet folgende DNS-Typen
DNS Resource Records Im Standardfall generiert ein DNS-Server seine interne Datenbank aus einer Textdatei, der sogenannten "Zonen-Datei". Damit er funktioniert, müssen bestimmte Einträge korrekt eingetragen worden sein. An dieser Stelle sollen nur ein paar grundlegende Eigenschaften der wichtigsten Typen von Resource Records betrachtet werden. Es gibt verschiedene Record-Typen:
Aufbau der Zonendatei Beispiel des Primary DNS "aella.serverzwerge.de": ; Zonendatei fuer die Domaene serverzwerge.de ; $TTL 1D @ in SOA aella.serverzwerge.de. dnsadmin.aella.serverzwerge.de. ( 2002051505 ; Seriennummer 10800 ; Refresh : 3 Stunden 3600 ; Retry : 1 Stunde 604800 ; Expire : 1 Woche 86400) ; Min. TTL: 1 Tag NS aella.serverzwerge.de. MX 10 aella.serverzwerge.de. MX 50 mail.irgendeinprovider.de. aella A 10.23.200.100 snowwhite A 10.23.200.17 doc A 10.23.200.18 happy A 10.23.200.19 bashful A 10.23.200.20 sneezy A 10.23.200.21 sleepy A 10.23.200.22 grumpy A 10.23.200.23 dopey A 10.23.200.24 HINFO "Hexium 7.5" "Linux" beispiel CNAME aella Der SOA-Record Jede Zone muss einen SOA-Record (Start of Authority) enthalten. Dort sind wichtige Informationen über die Zone abgelegt. Hier ein Beispiel: $TTL 1D @ in SOA aella.serverzwerge.de. dnsadmin.aella.serverzwerge.de. ( 2002051505 ; Seriennummer 10800 ; Refresh : 3 Stunden 3600 ; Retry : 1 Stunde 604800 ; Expire : 1 Woche 86400) ; Min. TTL: 1 Tag Das Semikolon leitet Kommentare ein, die natürlich nicht vorhanden sein müssen.
Um die Last auf den für eine Zone authoritativen Nameservern zu verringern, speichern die von den Internetbenutzern verwendeten Forwarder die Auskünfte, die sie von den authoritativen Nameservern erhalten haben, für eine bestimmte Zeit zwischen. Der für die Zone zuständige Administrator kann das Caching der Forwarder in manchen Grenzen beeinflussen. Wird eine Nameserver-Anfrage positiv beantwortet, übermittelt der authoritative Nameserver zusammen mit dem angefragten Resource Record die gewünschte Lebenszeit des Eintrags in Form der TTL. Ist im Zonefile für den Resource Record keine TTL angegeben, so übermittelt der authoritative Nameserver den mit $TTL im Zonefile gesetzten Defaultwert. Der Forwarder übermittelt die Antwort weiter an die Quelle der Anfrage und speichert die Antwort für die übermittelte Zeitdauer zwischen, so dass weitere Anfragen nach dem gleichen Resource Record innerhalb dieser Zeitdauer ohne erneuten Zugriff auf den authoritativen Server beantwortet werden können. Bevor man zeitkritische Änderungen an einer Zone vornimmt (z.B. Umzug eines Web- oder Mailservers auf eine andere IP-Adresse), ist zu empfehlen, zuerst einen oder beide TTL-Werte herunterzusetzen. Dies sollte mindestens einen TTL-Zeitraum vor der eigentlichen Änderung geschehen, damit die kürzere TTL sich herumgesprochen hat. Nachdem die Änderung erfolgreich durchgeführt wurde, kann die TTL wieder heraufgesetzt werden. Der MX-Record Nimmt eine Domain am E-Mailverkehr teil, so wird einer oder mehrere MX-Records in die Zone eingetragen. MX-Records haben zusätzlich zu ihrem Ziel eine Prioritätsangabe. soll eine E-Mail an die Domain zugestellt werden, versucht der absendende Mailserver zuerst den MX-Record niedrigster Priorität. Kann er die E-Mail dort nicht ausliefern, versucht er der Reihe nach die MX-Records höherer Priorität. Gibt es für einen Domainnamen keinen MX-Record, sondern nur einen A-Record, wird die Mail an diesen zugestellt. Dieses Verhalten ist historisch bedingt und nicht mehr sinnvoll. Trotzdem wird es immer noch so gehandhabt. Soll eine Domain nicht am E-Mailverkehr teilnehmen, so ist es sinnvoll, einen MX-Record auf ein System zu setzen, das für den Domainnamen eingehende E-Mail mit einem permanenten Fehler ablehnt. |