Da sich ein Mensch IP-Nummern schlecht merken kann, benutzt man
lieber Namen. Nun braucht man einen Dienst, der diese irgendwie
in IP-Adressen übersetzen kann.
Zunächst führte man (auf jedem Host) die Datei
/etc/hosts ein, in der,
durch Whitespace getrennt, eine IP-Adresse, ein Name und beliebig
viele Aliasnamen stehen. Der Name ist der "erste, wirkliche, echte
Systemname", die Aliasnamen sind zusätzliche. In der Praxis kann
das natürlich auch umgekehrt sein, denn manche Administratoren
verwechseln die Namen und geben dem System mit dem Kommando
hostname einen
Namen, der eigentlich "nur" ein Alias ist. Dies kann unter
Umständen zu Problemen führen.
Eine /etc/hosts kann zum Beispiel so aussehen:
/etc/hosts |
127.0.0.1 localhost
192.168.1.1 ns1.selflinux.de
192.168.1.2 ns2.selflinux.de
192.168.1.3 rebecca.selflinux.de www.selflinux.de
|
Neben dem localhost Eintrag, der stets eingetragen sein sollte,
sind hier noch zwei Namesserver und ein Webserver eingetragen.
Der Webserver heißt eigentlich rebecca, www ist ein Zweit-
oder Aliasname.
Damit Namen auf allen Maschinen bekannt sind, müssen die Einträge
in allen /etc/hosts auf allen
Maschinen stehen.
In den Anfängen des ARPA-Net wurde diese Datei als
hosts.txt
dann auf alle Maschinen verteilt. Diese wurde schnell groß und
unübersichtlich. Um Konflikte zu vermeiden, kam man auf die
Idee, jeder Organisation einen Namen zu geben, der durch einen
Punkt dahinter geschrieben wurde. Damit blieben die Namen
eindeutig, auch wenn zwei Organisationen einen Host Namens
FTP haben wollten, denn hinter dem Punkt waren sie
unterschiedlich.
Später kam noch eine weitere Unterteilung hinzu, nämlich die
nach Ländern. So gibt es jetzt einen Server www in der
Organisation selflinux in Deutschland, kurz www.selflinux.de. Die
Organisation bezeichnet man allgemeiner als
Domain, was im mathematischen Sinne das
"Gemeinsame" bedeutet.
Da das für tausende von Maschinen nicht mehr wartbar ist, erfand
man eine verteilte Datenbank, die das verwaltet, und nannte es
das Domain Name System, kurz
DNS.
Verteilte Datenbank bedeutet, dass jeder nur einen Teil
verwaltet. Eine einfache und hier günstige Struktur ist die
Baumstruktur, die angewendet wird.
An der Wurzel stehen die
sogenannten Top Level Domains,
TLDs, z.B.
de, com, org. Diese werden
von Wurzelservern bedient, also dem Teil der Datenbank, der
darüber Informationen hat. Englisch heißen diese
ROOT-SERVERS.
Darunter kommen dann die Server, welche die
TLD-Datenbanken haben, es sind mehere, um ausfallsicher zu sein
und die Last zu verteilen. Diese haben dann Informationen über
die Organisations-Domains, die man zusammen mit der TLD kurz mit
Domain bezeichnet, eine Domain wäre z.B.
selflinux.de.
Eine Domain hat in der Regel einen Namensserver, der nun endlich
die Namen wie www kennt. Das nennt man
Delegation.
Da DNS-Server aus Performancegründen Namen cachen (also
zwischenspeichern), kann es auch sein, dass ein anderer
Namensserver www.selflinux.de kennt, aber er hat die
Information "aus zweiter Hand". Die Server, die die
Daten wirklich haben, meist eine Datei auf einer Platte, und
deren Antwort verbindlich ist, nennt man
autoritativ. Bekommt man von einem
DNS-Server eine Antwort aus dem Cache, so ist sie als
non-autorativ gekennzeichnet, d.h, sie
ist vielleicht nicht mehr gültig.
Ein TLD Server ist für eine TLD (z.B. de) autoritativ.
|
Die "Rootdomain", die Vater/Mutterdomain, nennt man
".".
Ein ROOT-SERVER ist also für "." autoritativ.
|
Die ROOT-SERVER delegieren nun die Autorität zu den TLD-Servern.
Der ROOT-SERVER "weiß" (und bestimmt), welcher
DNS-Server für z.B. de autoritativ ist. Ein
de-Server enthält nun auch nicht die Daten über
www der Domain selflinux, sondern er
delegiert die Autorität zu einem anderen DNS-Server, der nun
unter selflinux.de; eintragen kann, was er will,
z.B. www.
|