3. DNS - Die technische Seite

3.1 Resource-Records

Die Daten im DNS, die durch die Nameserver zur verfügung gestellt werden, werden in sogenannten Resource-Records gespeichert. Diese stehen im einfachsten Fall in einer einfachen Textdatei, einer pro zeile.

Ein Record besteht aus folgenden Teilen:

Der Name ist der Name des Rechners oder Knotens, zu dem der Ressource-Record gehört. Typ beschreibt die Art der gespeicherten Daten, wobei folgendde Typen verwendet werden:

Klasse ist eigentlich immer IN für Internet. Die TTL gibt an, wie lange die Information in einem Zwischenspeicher liegen darf, bevor die Quelle der Information erneut befragt werden sollte.

3.2. Nachrichten

Alle Daten, die im DNS ausgetauscht werden, befinden sich in einem einheitlichen Format, daß einfach Nachricht genannt wird.

Eine Nachricht besteht aus den 5 Teilen Kopf, Frage, Antwort, Autorität, Zusatz. Wobei einige Sektionen unter Umständen auch leer sein können.

Der Kopf ist in jedem Fall vorhanden, er enthält Felder, die festlegen, welche der verbleibenden Teile vorhanden sind und ob es sich um eine Standardanfrage, eine Antwort oder eine andere Opertaion handelt.

Die Namen der übrigen Bereiche sind aus deren Verwendung in einer Standardanfrage abgeleitet. Demnach enthält der Frage-Bereich Felder für den Namen, den Typ und die Klasse der gewünschten Information. Die restlichen 3 Teile sind identisch aufggebaut, sie enthalten eine eventuell leere Liste von Ressource-Records. Die Antwort-Sektion enthält diejenigen RRs, die die Frage beantworten, die RRs in der Autoritäts-Sektion zeigen in Richtung des verantwortlichen Nameservers und der Zusatz-Bereich enhält informationen. die zwar nicht in direktem Zusammenhang mit der Frage stehen, aber Potentiell nützlich sind. So findet man hie zum Beispiel die IP-Adressen der verantwortlichen Nameserver, da man diese sonst wahrscheinlich in einer erneuten Anfrage erfragen müßte.

3.3. Nameserver und Resolver

Ein Namesserver ist nichts weiter als ein Prozess, der auf einem (entfernten) Rechner läuft und auf Anfragen, die ihm gestellt werden, antwortet. Ein Nameserver heißt Authorative, wenn er die vollständige Zonen-Datei für die jeweilige Zone besitzt. Der Nameserver besitzt einen Zwischenspeicher, in den die Antworten entsprechend ihrer TTL vorgehalten werden und sofern sie nochmals benötigt weden schneller zur Verfügung stehen.

Der Resolver fungiert wie bereits erwähnt als Schnittstelle zwischen Benutzer und DNS. Er ist meist als Systemaufruf implementiert oder in die Laufzeitungebung integriert, so daß der Benutzer, der letztendlich den Namen eingibt, eigentlich keine richtige Notiz vom ihm nimmt. Alles was der Resolver über seine umgebung wissen muß, sind die Adressen eines oder besser mehrerer Nameserver, bei denen er seine Anfrage beginnen soll.

3.4. Anfragetypen

Anfragen an einen Nameserver können auf unterschiedliche Arten gestellt werden. Prinzipiell liegt der Unterschied darin, wer letztendlich die Hauptarbeit übernehmen muß.

Bei einer rekursiven Anfrage, liegt die Hauptarbeit beim Nameserver. Dieser muß seinerseits durch den Namensraum laufen und die nötigen Anfragen an übergeordnete Nameserver stellen, bis die geforderte Information entweder gefunden wurde oder die Anfrage entgältig fehlschlägt. Bei einer nicht-rekursiven Anfrage hingegen liefert der Nameserver nur einen Verweis auf den nächsten zuständigen Nameserver zurück und der Resolver muss selbst weitere Anfragen selbst stellen.

Ein Nameserver ist nicht dazu verpflichtet, rekursive Anfragen zu beantworten, er verhält sich dann einfach so, als hätte er eine nicht-rekursive Anfrage erhalten. Zu diesem Zweck gibt es im Kopf der Nachrichten zwei Flags. RD (recursion desired) wird vom Resolver gesetzt, wenn dieser eine rekursive Anfrage stellen will. RA (recursion available) wird vom Nameserver gesetzt, wenn dieser rekursive Anfragen beantworten kann bzw. will.

Bei den bisherigen Anfragen waren die an den Nameserver geschickten Nachrichten so aufgebaut, daß die Frage im Frage-Teil der Nachricht stand. Es gibt aber auch die Möglichkeit inverse Anfragen an den Naameserver zu stellen, dabei ist dann der Frage-Teil der Nachricht leer und die "Frage" stegt im Antwort-Teil. Der Nameserver liefert dann, sofern er diese Art der Anfrage unterstützt, quasi die zu dieser Antwort passende Frage.

3.5. Reverse Lookup

Mit einer wie oben beschriebenen inversen Anfrage könnte man doch auch den Namen eines Rechners vom dem nur die Adresse bekannt ist bestimmen, oder? Dieses Vorgehen ist in der Praxis jedoch nicht besonders sinnvoll, da man hierfür zuerst den zuständigen Nameserver kennen müßte. Das ist ein ebenso hoffnungsloses Unterfangen wie der Versuch den Namen einer einem unbekannten Person anhand der Telefonnummer im Telefonbuch herauszufinden.

An dieser Stelle kommt die ARPA-Domain ins Spiel. Hier werden die IP-Adressen auf die Rechnernamen abgebildet. Dazu existiert untehalb von IN-ADDR.ARPA für jedes Netzwerk eine Zone mit den verantwortlichen Nameservern und PTR-Records auf den primären Namen der der IP zugeodrdnet ist.




Zurück zum Inhalt Weiter