Domain Name Service

1 Was ist DNS?

1.1 Geschichte

In den Anfangszeiten des Internets wurden die Informationen über die angeschlossenen Rechner in einer zentralen Datei (hosts.txt) beim (Ur - ) Network Information Center (NIC) gespeichert. Jeder Teilnehmer an diesem Netz musste sich die neueste Version dieser Datei auf seinen Rechner holen, damit dieser alle teilnehmenden hosts erreichen konnte. Ein weiterer Nachteil dieser Methode waren die unterschiedliche Antwortzeiten bei einer Anfrage, da diese von der Position des Eintrags in der Datei abhing.
Durch das unaufhaltsame Wachstum des Internets wurde das aufwendige Katalogsystem schnell zu langsam und kompliziert und damit untragbar. Im Jahr 1984 entwickelte Paul Mockapetris ein neues Verfahren, das die Speicherung der Informationen erleichterte: das Domain Name System

1.2 Begriffsklärung

Das DNS ist ein verteiltes Directory - System. Aufgabe eines Directory - Systems ist das Verwalten von Informationen über Objekte, in unserem Fall über Objekte der Datenkommunikation. Als zentrale Komponente dieses Systems wird die hierarchische Strukturierung des Domainnamensraums betrachtet, welche die dezentralisierte Verwaltung der Informationen ermöglicht.
Obwohl das DNS unter dem Druck des schnell wachsenden Internet konzipiert wurde, ist es mächtig genug, um unterschiedliche Netzprotokolle zu unterstützen. Hier wird es jedoch als Teil des Internet betrachtet.
Prinzipiell kann ein DNS jegliche Art von Informationen speichern. Im Internet, die gängigste Anwendung für ein DNS, ist es für die Abbildung Hostname auf IP - Adresse zuständig.

Komponenten des Domainsystem

2.1 Domainnamespace

Ziel des DNS ist es, die dezentrale Verwaltung von Informationen (z.B. IP - Adressen) über teilnehmende Rechner zu ermöglichen. Diese dezentrale Verwaltung der Informationen, sowie die Eindeutigkeit der Objektnamen kann nur durch eine baumartige Struktur des Domainnamespace erreicht werden; dies stellt somit die zentrale Komponente des DNS dar.

Eine Domain ist ein kompletter Ast dieser baumartigen Struktur. Der volle Domainname eines Rechners besteht aus der Verkettung aller Domainnamen auf dem Pfad vom Rechner zu der Wurzel des Baums. Die einzelnen Namen werden dabei durch Punkte getrennt. Beispielsweise lautet der volle Namen des Rechners cssun im Internet cssun.rrze.uni - erlangen.de (siehe Abbildung)
Abbildung: Beispiel für die Baumstruktur des Domainnamespace

Von dem Network Information Centers (NIC) werden die ersten Domains unter der root - Domain, die sogenannten Top - level Domains, verwaltet. Dies sind im Moment sieben (amerikanische) Domains, die benannt wurden nach der Art der Organisationen, denen die Rechner dieser Domains gehören:
Top - level Domains:

com
Commercial organizations
edu
Educational organizations
gov
Government organizations
mil
Military organizations
net
Networking organizations
org
Non - commercial organizations
int
International organizations


Daneben gibt es noch Top - Level Domains, die in Länder aufgeteilt werden:
Länder - Domains:

de
Deutschland
fr
Frankreich
uk
Großbritannien
at
Österreich
au
Australien
eu
Europa

Die einzelnen (Top - Level - ) NICs verwalten die Second - level Domains. Diese können die Verwaltung der Third - level Domains dann weiter delegieren oder selbst erledigen.

2.2 Resource Records (RR)

Wie schon beschrieben speichert das DNS nicht nur die IP - Adresse eines Rechners. Sämtliche Daten werden als ein Satz von Resource Records dargestellt.

Name
Der Domainname des Objekts zu dem der RR gehört.
Class
Protokollgruppe (IN = Internet).
Type
RR - Typ.
TTL
time to live (in Sekunden); Zeit wie lang dieser RR gültig ist und gecached werden darf.
Rdata
Daten, die das Objekt beschreiben, zu dem dieses RR gehört.

Die Datenformate sind abhängig vom RR - Typ (s.u.).
In folgender Tabelle sind die wichtigsten RR - Typen aufgeführt.

RR
Funktionalitaet
RDATA - Feld
A
Die Adresse eines Hosts
32 - bit IP - Adresse
CNAME
Definition eines Aliasnamen zu einem Canonical Name
Domainname (Canonical Name)
HINFO
Host - Info wie Typ und Betriebssystem
CPU und Betriebssystem
MX
Mail - Exchange
16 - bit preference, Name des Mailhost
NS
Ein autoritativer Nameserver
Hostname
PTR
Zeiger (pointer) zu einem Domainnamen
Domainname
SOA
Definiert "Start Of Authority'" fuer eine Zone
mehrere Felder (NS - Name, Fehler - Mailbox, Serial - Nr. der Zonendaten, mehrere Timer)

Beispiel für einen RR - Satz:

Name
Class
Type
TTL
Rdata
www.informatik.uni - erlangen.de
IN
A
86400
131.188.3.14

IN
CNAME
21600
wwwcip.informatik.uni - erlangen.de

IN
HINFO
86400
HP840 UNIX
14.3.188.131.in - adrr.arpa
IN
PTR
3600
www.informatik.uni - erlangen.de

2.3 Nameserver

Ein Nameserver ist ein Programm, das über Informationen eines Teils des Namensraums verfügt, und in der Lage ist, Fragen (Queries) über diese Informationen zu beantworten. Es gibt verschiedene Kategorien von NS:

2.3.1 Root - Server

Als oberste Authorities verfügen sie über komplette Informationen für alle Top - Level Domains und sind in der Lage, den zuständigen NS für eine beliebige Subdomain zu ermitteln.

2.3.2 Top - level Domainserver

Sie kennen alle NS für die Second - level Domains in ihrer Zone.

2.3.3 Master - Server

Sie sind immer "autorisiert" für eine oder mehrere Zonen. Ein Masterserver teilt seine Arbeit auf mehre Server auf: Die Primary Nameserver und die Secondary Nameserver.
Die Primary - NS laden ihre Zonendaten von einer Datei, während die Secondary - NS vom Primary - NS ihre Daten erhalten, welche (optional) in eigenen Backup - Dateien abgespeichert werden.

2.3.4 Caching - Server

Nameserver sind normalerweise Caching - Server, d.h. sie speichern die aus anderen NS erworbenen Kenntnisse über den Domainnamensraum. Diese Daten bleiben solange erhalten, wie das ttl - Feld (time to live) in dem entsprechenden RR angibt. Ein Caching - Only - Server ist ein Nameserver ohne Autorität über eine Domain und somit ohne eigene Daten. Er beantwortet Anfragen mit Informationen aus seinem Cache oder durch Fragen von "autoritativen" Nameservern. Solche Server sind zur Entlastung der Hauptserver da.

2.3.5 Forwarder - Server

Sie sind NS mit voller Internet - Konnektivität, d.h. sie können problemlos Informationen von den Root - Servern oder anderen Master - Servern holen. Sie werden von anderen Nameservern zur "Erledigung" von Abfragen benutzt, die diese nicht beantworten können oder "wollen".

2.4 Resolver

Resolver sind Programme, die in der Lage sind, Informationen aus Nameservern abzufragen. Sie stellen eine aufrufbare Schnittstelle zum NS - Dienst dar.

Resolver können Bibliotheken sein, die in die Internetapplikationen eingebunden sind.
Resolver können auch eigenständige Programme sein (Beispiel: nslookup, dig)

IP - Adressen

Jeder Rechner im Internet braucht eine gültige Adresse mit der er angesprochen werden kann, die IP - Adresse.

3.1 IP4

IP - Adressen werden in vier Zahlen, die durch Punkte getrennt werden, notiert (dotted quad notation). Jede Zahl repräsentiert dabei ein Byte, darf also Werte zwischen 0 und 255 annehmen. In dieser gruppenweisen Notation spiegelt sich die Aufteilung in Subnetze wider: Jeweils ein Teil der Adresse kennzeichnet das Netz dieser Adresse, und der andere stellt den "privaten" Anteil des Netzes dar. Am Beispiel der Uni - Erlangen (131.188.x.x) wäre 131.188 der Netzteil und x.x der private Teil über den die Organisation frei bestimmen kann. Die Organisation kann dann ihrerseits wieder Subnetze bilden. Die einzelne Subnetze werden in unterschiedliche Netzklassen aufgeteilt:

Netzanteil
Klasse
Privatanteil
Maximalanzahl
1 Byte
A
3 Byte
16 Millionen
2 Byte
B
2 Byte
65 000
3 Byte
C
1 Byte
254

3.2 IPv6

Durch den "Einzug der Massen" in das Internet verringert sich die Anzahl der verfügbaren Adressen immer mehr. Zum anderen werden die Routing - Tabellen zunehmend unhandlicher, da mit der Anzahl der Rechner auch die Komplexität der Routing - Tabellen steigt.
Das neue Protokoll sieht eine Notation vor, die aus acht, durch Doppelpunkte getrennten, vierstelligen Hexadezimalzahlen besteht. Mit den dadurch theoretische 3,4 x 1038(2128) zur Verfügung stehenden Adressen könnte jedem Quadratmeter Erde 1500 IPv6 - Adressen zugewiesen werden. Adreßteile, die nur aus Nullen bestehen, können der Einfachheit halber durch zwei aufeinanderfolgende Doppelpunkte dargestellt werden. Eine Adresse mit 145A:45:8:0:0:0:251:4 kann auch als 145A:45:8::251:4 dargestellt werde. Führende Nullen können ebenso entfernt werden.
Die alten IP4 - Adressen werden durch ein eigenes Subnetz integriert, das 4 führende Nullen hat. Die IP4 - Adresse 131.188.3.4 wuerde beispielsweise als ::131.188.3.4 dargestellt.
Neben einem verbesserten routing, stellt das neue Protokoll nicht nur Adressen sondern auch unterschiedlich Adressierungsarten zur Verfügung. Vorgesehen sind im Moment Multicast, Anycast und Unicast, wobei das erstere vor allem für Multimedia - Anwendungen prädestiniert ist.

Funktionsweise des DNS

4.1 Dezentralisierung

Die Grundidee des DNS ist die Verteilung der Daten auf verschiedene Server, die jeweils für ihre (Unter - ) Domain zuständig sind.

4.2 Resolution

Bei einer Anfrage eines Resolver an einen Nameserver versucht dieser die IP - Adresse in seiner Datenbank zu finden. Gelingt ihm dies nicht, so kennt er den Namen eines anderen Servers, der bei diesem Problem weiterhelfen kann.
Die Anfrage an den Nameserver kann auf zwei Arten geschehen, rekursiv oder iterativ.

4.2.1 Rekursive Anfrage

Bei der rekursiven Variante fragt der Resolver einen Nameserver nach der IP - Adresse eines bestimmten hosts. Der Nameserver hat nun die Aufgabe die IP - Adresse eigenständig herauszufinden, indem er selbstständig die zuständigen Nameserver abfragt. Falls er die Information findet, liefert er diese zurück, ansonsten kommt eine Fehlermeldung.

4.2.2 Iterative Anfrage

Stellt der Resolver nur eine iterative Anfrage, dann bekommt er von den Nameservern wie schon erwähnt die richtige IP - Adresse, oder die Adresse anderer Nameserver. Nun muss der Resolver selbst die anderen Nameserver befragen, bis er eine Antwort bekommt.

4.3 Caching

Um den Prozeß der Resolution zu beschleunigen, versuchen die meisten Nameserver die Daten früherer Anfragen zu cachen. Dadurch muss bei ähnlichen Anfragen kein anderer Nameserver bemüht werden.
Natürlich ist es nicht sinnvoll Informationen ewig zu speichern, deshalb gibt es den RR - Typ TTL. In der "Time To Live" wird festgehalten, wie lange die Daten im Speicher gehalten werden dürfen.

4.4 Reverse Mapping

Das Auffinden der IP - Adresse eines Rechners ist durch das DNS verhältnismäßig leicht. Umgekehrt ist das Auffinden des Namens eines Rechners, dessen IP - Adresse bekannt ist, im Prinzip nur möglich, wenn der ganze Baum durchsucht wird.
Um Letzteres zu erleichtern, wurde eine Domain eingeführt, welche IP - Adressen als Teil eines (pseudo - ) hostnames benutzt, der wiederum zu dem Domainnamen des gesuchten Rechner zeigt. Die Domain, mit der das "IP - Adresse zum Namen" - Mapping verwirklicht wird, heißt IN - ADDR.ARPA und wird ebenfalls vom NIC verwaltet.
Sucht man beispielsweise nach dem hostnamem des Rechners mit der IP - Adresse 131.188.3.4 so fragt man den Nameserver einfach nach der IP - Adresse des Rechners 4.3.188.131.in - addr.arpa. Das DNS liefert dann den cname des zurück.







5 Literatur


    ALBITZ, P.: DNS and BIND in a nutshell;
    Sebastopol, CA, O’Reilly 1993 KIRCH, OLAF: Networkers Administration Guide
    http://www.uni - paderborn.de/linux/mdw/LDP/nag/nag.html HOSENFELD FRIEDHELM: Next Generation
    C’t 11/96; Heise Verlag

1714 Worte in "deutsch"  als "hilfreich"  bewertet