$Id: aufbau.html 2 2003-11-01 18:23:02Z lb $

Aufbau

Bei DNS wird ein Name von rechts nach links aufgebaut. Der 'Root' (Wurzel, Anfang), ist also die '.' Zone. Dieses Beispiel folgt dem Beispiel des Internets.

Unser Beispiel wird nun folgender Hostname sein:
a.mx.hubermonsch.ch.
Zu beachten ist der abschliessende Punkt. Dieser ist optional, wird jedoch zu einem besseren Verständnis angefügt. Dieser Name wird nun von rechts nach links aufgelöst. Wer dies macht, wird später erklärt. Wir fragen nach dem 'A' RR (Resource Record). Das 'A' steht für 'Address', also eine IP-Adresse.

Root Server

Als erstes fragt man bei den sogenannten Root-Servern an. Dies ist eine iterative Anfrage, auf welche man immer eine Antwort mit AUTHORITIVE 1 zurückbekommen muss. Die Root-Server wissen den A RR von a.mx.hubermonsch.ch. nicht, koennen darauf also nicht authoritiv antworten. Die Root Server wissen jedoch wer für ch. verantwortlich ist. Also antworten sie authoritiv mit den NS (Nameserver) RR's für ch.. Visuell sieht dies so aus:

; <<>> DiG 9.2.2 <<>> a.mx.hubermonsch.ch @a.root-servers.net
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7884
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 7, ADDITIONAL: 7

;; QUESTION SECTION:
;a.mx.hubermonsch.ch.           IN      A

;; AUTHORITY SECTION:
ch.                     172800  IN      NS      NS.APNIC.NET.
ch.                     172800  IN      NS      DOMREG.NIC.ch.
ch.                     172800  IN      NS      MERAPI.SWITCH.ch.
ch.                     172800  IN      NS      DNS.PRINCETON.EDU.
ch.                     172800  IN      NS      RIP.PSG.COM.
ch.                     172800  IN      NS      TULKU.NIC.AR.
ch.                     172800  IN      NS      CCTLD.TIX.ch.

;; ADDITIONAL SECTION:
NS.APNIC.NET.           172800  IN      A       203.37.255.97
DOMREG.NIC.ch.          172800  IN      A       130.59.1.80
MERAPI.SWITCH.ch.       172800  IN      A       130.59.211.10
DNS.PRINCETON.EDU.      172800  IN      A       128.112.129.15
RIP.PSG.COM.            172800  IN      A       147.28.0.39
TULKU.NIC.AR.           172800  IN      A       200.16.97.77
CCTLD.TIX.ch.           172800  IN      A       194.42.48.120

;; Query time: 831 msec
;; SERVER: 198.41.0.4#53(a.root-servers.net)
;; WHEN: Mon Apr 28 11:49:30 2003
;; MSG SIZE  rcvd: 334

Wie man sieht antwortet der Root-Server mit den NS-RR's für ch., und den A-RR's für diese NS-RR's. Wir wissen nun etwas mehr, und werden uns nun daran machen, diese Server zu befragen.

Die TLD Server

Wieder fragen wir einen der ch. Nameserver nach a.mx.hubermonsch.ch. Diese wissen den A RR jedoch auch nicht. Wissen jedoch, wer für hubermonsch.ch. zuständig ist. Also Teilen sie uns dessen NS-RR's mit.

; <<>> DiG 9.2.2 <<>> a.mx.hubermonsch.ch @ns.apnic.net
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22594
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;a.mx.hubermonsch.ch.           IN      A

;; AUTHORITY SECTION:
hubermonsch.ch.         43200   IN      NS      ns1.v-1.ch.
hubermonsch.ch.         43200   IN      NS      ns2.v-1.ch.

;; ADDITIONAL SECTION:
ns1.v-1.ch.             43200   IN      A       157.161.114.35
ns2.v-1.ch.             43200   IN      A       157.161.114.36

;; Query time: 1152 msec
;; SERVER: 203.37.255.97#53(ns.apnic.net)
;; WHEN: Mon Apr 28 11:53:44 2003
;; MSG SIZE  rcvd: 109

Auch diesmal haben wir NS-RR's aund A-RR's bekommen. Also fragen wir nun bei diesen nach.

Die 2nd Level Domain Server

Wir fragen den hubermonsch.ch. Nameserver nach a.mx.hubermonsch.ch.. Sagt dieser uns nun die für mx.hubermonsch.ch. zuständigen Nameserver?
Nein. Denn mx.hubermonsch.ch. wurde nicht weiterdelegiert, also wissen die hubermonsch.ch. Nameserver den A RR. Und antworten auch entsprechend.

; <<>> DiG 9.2.2 <<>> a.mx.hubermonsch.ch @ns1.v-1.ch
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38776
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4

;; QUESTION SECTION:
;a.mx.hubermonsch.ch.           IN      A

;; ANSWER SECTION:
a.mx.hubermonsch.ch.    86400   IN      A       194.147.133.161

;; AUTHORITY SECTION:
hubermonsch.ch.         43200   IN      NS      ns2.v-1.ch.
hubermonsch.ch.         43200   IN      NS      ns1.v-1.ch.

;; ADDITIONAL SECTION:
ns1.v-1.ch.             43200   IN      A       157.161.114.35
ns2.v-1.ch.             43200   IN      A       157.161.114.36

;; Query time: 85 msec
;; SERVER: 157.161.114.35#53(ns1.v-1.ch)
;; WHEN: Mon Apr 28 13:02:18 2003
;; MSG SIZE  rcvd: 182

Delegation durch die 2nd Level DNS Server

Der 2nd Level DNS Server muss nicht unbedingt die Antwort genau wissen, es ist genauso möglich, das mx.hubermonsch.ch. nochmal woanders hin delegiert ist. Dies ist der Punkt, an dem DNS beginnt ziemlich theoretisch und Abstrakt zu werden. Theoretisch hätten bereits die Root-Server unsere Anfrage beantworten können. Doch dazu später mehr.
Gehen wir zuerst einmal davon aus, das die hubermonsch.ch. Nameserver den A-RR für a.mx.hubermonsch.ch. nicht kennen, wohl aber die für mx.hubermonsch.ch. zuständigen Nameserver. Die Antwort dürfte dann ungefähr so aussehen:

; <<>> DiG 9.2.2 <<>> a.mx.hubermonsch.ch @ns.apnic.net
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22594
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;a.mx.hubermonsch.ch.                  IN      A

;; AUTHORITY SECTION:
mx.hubermonsch.ch.             43200   IN      NS      a.ns.mx.hubermonsch.ch
mx.hubermonsch.ch.             43200   IN      NS      b.ns.mx.hubermonsch.ch

;; ADDITIONAL SECTION:
a.ns.mx.hubermonsch.ch.        43200   IN      A       157.24.23.12
b.ns.mx.hubermonsch.ch.        43200   IN      A       157.123.232.123

;; Query time: 1152 msec
;; SERVER: 203.37.255.97#53(ns.apnic.net)
;; WHEN: Mon Apr 28 11:53:44 2003
;; MSG SIZE  rcvd: 109
Nun wissen wir, wer für mx.hubermonsch.ch. verantwortlich ist, und könnten nun diese Server nach a.mx.hubermonsch.ch. befragen. Dies währe das selbe Spielchen wie oben, deswegen lassen wir hier weg.