Forum: PC-Programmierung Warum 13 root nameserver - wiki Erklärung irgendwie nicht ganz klar


von Tom (Gast)


Lesenswert?

Hi,

hoffe mal, dass einer von euch das weiß.

Warum genau 13 root nameserver (DNS)

wiki -->Ursprünglich wurde die Anzahl auf 13 beschränkt
Da nicht mehr Server inklusive der Zusatzinformationen in ein 512 Byte 
großes Paket passen



Meine Frage ist jetzt:  Ja und ?   -  bei den Nameservern ist die Datei 
root... mit den IP's der 13 Server doch fest vorgegeben.

Wann brauche ich überhaupt ein UDP-Paket mit den Adressen, bzw. woher 
würde ich es denn bekommen  -  die root-server sind ja die oberste 
Instanz ?


irgendwie hab ich da ne Lücke...

wäre nett, wenn jemand was weiß und das kurz schreiben könnte...

Gruß

Tom

von B. M. (Gast)


Lesenswert?

> Warum genau 13 root nameserver (DNS)
>
> wiki -->Ursprünglich wurde die Anzahl auf 13 beschränkt
> Da nicht mehr Server inklusive der Zusatzinformationen in ein 512 Byte
> großes Paket passen
>
>
>
> Meine Frage ist jetzt:  Ja und ?   -  bei den Nameservern ist die Datei
> root... mit den IP's der 13 Server doch fest vorgegeben.
>
> Wann brauche ich überhaupt ein UDP-Paket mit den Adressen, bzw. woher
> würde ich es denn bekommen  -  die root-server sind ja die oberste
> Instanz ?
>

Die Rootserver brauchst du dann, wenn du einen eigenen DNS-Server 
aufsetzen willst. Das kanns du mit jeder Unix-Box ohne grossen Aufwand 
machen. Die jeweiligen Root-Server bekommst du beispielsweise ueber 
"dig". Viele Admins setzen das dig -Command in ihre crontab und haben so 
den aktuellen Stand.

Es sind zwar 13 IP-Adressen, aber mehr Server da diese "anycasted" sind. 
DNS-Anycasting machen übrigens auch ISPs hier in den USA, da die Server 
geographisch in verschiedenen Regionen verteilt sind. Auch welchen 
Server man dann wirklich landet haengt von dem Durchsatz und Entfernung 
ab (cost) und wird ueber Routing-Protokolle wie OSPF entschieden.

von Peter (Gast)


Lesenswert?

Olibert E. schrieb:
> Die Rootserver brauchst du dann, wenn du einen eigenen DNS-Server
> aufsetzen willst. Das kanns du mit jeder Unix-Box ohne grossen Aufwand
> machen.

nein her hat schon recht, die root server kann man nicht ermitteln. Sie 
müssen in jedem Server fest eingetragen werden. Ich kann mir nur 
vorstellen das man mit hilfes eines root servers die liste der anderen 
root server ermitteln kann. Somit würde sich die root datei bei 
änderungen der root server mit anpassen.

von Tom (Gast)


Lesenswert?

Hi,

DANKE !!!!

hab auch noch was gefunden, vielleicht fragt das Gleiche sich ja auch 
ein anderer.... bei netplanet.org

Die Root-Zone
Damit ein Nameserver zur Adressauflösung verwendet werden kann, muss er 
die Adressen der Nameserver kennen, die in der Hierarchie des Domain 
Name System zentral oben stehen. Diese Root-Zone enthält alle Adressen 
der Root-Server, also der Server, die die Informationen aller 
Top-Level-Domains enthalten.

Da ein Nameserver beim Start die aktuelle DNS-Hierarchie nicht kennt 
(die kann er ja nicht kennen, wenn er nicht die Adressen der Nameserver 
der obersten Hierarchie kennt), muss er zunächst einmal in den 
Grundzustand gebracht werden, diese oberste Hierarchie zu kennen und 
mindestens einmal kontaktiert zu haben. Dazu liegt die Root-Zonendatei 
im Internet an mehreren bekannten Stellen bereit, ist aber auch der 
meisten Nameserver-Software beigelegt. Abrufbar ist diese Datei zum 
Beispiel unter der Adresse ftp://ftp.rs.internic.net/domain/named.root.

Diese Zone, die sich, abgesehen von wenigen Details, technisch nicht von 
anderen Zonendateien unterscheidet, wird von einem startenden Nameserver 
eingelesen und jeder der dort eingetragenen Nameserver wird kontaktiert, 
um von diesen die jeweils dort abgelegte Kopie der Root-Zonendatei 
abzurufen. Hat dies ein Nameserver einmal vorgenommen, "kennt" er die 
oberste Hierarchie des Domain Name System und kann Domain-Adressen 
entsprechend der hierarchischen Ordnung im DNS auflösen.

Interessant ist an der Root-Zone, dass die TTL-Zeit sehr hoch liegt; die 
angegebenen 3,6 Millionen Sekunden entsprechen 41 Tagen und 16 Stunden. 
Dies ist zum einen zur Schonung der Root-Server gedacht, zum anderen ist 
eine häufigere Aktualisierung der Root-Server-Informationen bei den 
einzelnen Nameservern auch nicht notwendig, da die Adressen der 
Root-Server selten geändert werden.

von B. M. (Gast)


Lesenswert?

Peter schrieb:
> nein her hat schon recht, die root server kann man nicht ermitteln. Sie
> müssen in jedem Server fest eingetragen werden.

Wer hat dir denn das erzaehlt ? Selbstverstaendlich kann und muss man 
die Root-Server ermitteln koennen. Siehe hier:

dig @a.root-servers.net ns .

; <<>> DiG 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2 <<>> @a.root-servers.net 
ns .
; (2 servers found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 25068
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14

;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       518400  IN      NS      m.root-servers.net.
.                       518400  IN      NS      c.root-servers.net.
.                       518400  IN      NS      l.root-servers.net.
.                       518400  IN      NS      e.root-servers.net.
.                       518400  IN      NS      g.root-servers.net.
.                       518400  IN      NS      k.root-servers.net.
.                       518400  IN      NS      d.root-servers.net.
.                       518400  IN      NS      j.root-servers.net.
.                       518400  IN      NS      b.root-servers.net.
.                       518400  IN      NS      f.root-servers.net.
.                       518400  IN      NS      a.root-servers.net.
.                       518400  IN      NS      i.root-servers.net.
.                       518400  IN      NS      h.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.     3600000 IN      A       198.41.0.4
a.root-servers.net.     3600000 IN      AAAA    2001:503:ba3e::2:30
b.root-servers.net.     3600000 IN      A       192.228.79.201
c.root-servers.net.     3600000 IN      A       192.33.4.12
d.root-servers.net.     3600000 IN      A       128.8.10.90
e.root-servers.net.     3600000 IN      A       192.203.230.10
f.root-servers.net.     3600000 IN      A       192.5.5.241
f.root-servers.net.     3600000 IN      AAAA    2001:500:2f::f
g.root-servers.net.     3600000 IN      A       192.112.36.4
h.root-servers.net.     3600000 IN      A       128.63.2.53
h.root-servers.net.     3600000 IN      AAAA    2001:500:1::803f:235
i.root-servers.net.     3600000 IN      A       192.36.148.17
i.root-servers.net.     3600000 IN      AAAA    2001:7fe::53
j.root-servers.net.     3600000 IN      A       192.58.128.30

von B. M. (Gast)


Lesenswert?

Tom schrieb:
> Abrufbar ist diese Datei zum
> Beispiel unter der Adresse ftp://ftp.rs.internic.net/domain/named.root.

Das ist veraltet und macht kein Mensch mehr. Falls du dich mehr in die 
Materie einarbeiten willst, besorg dir das O'Reilly -Buch "DNS and 
BIND".

von Dummy (Gast)


Lesenswert?

Olibert E. schrieb:
> Wer hat dir denn das erzaehlt ? Selbstverstaendlich kann und muss man
> die Root-Server ermitteln koennen. Siehe hier:

So aus Neugierde würde ich gerne mal folgende Frage dazu stellen:

Eigentlich zeigst Du ja lediglich, das man die Root-Server ermitteln 
kann , erklärst aber noch nicht, warum man das tun können "muss".

Magst Du das mal ergänzen für Dummies?
An sich, könnte das ja so geregelt sein, das irgendeine feste IP (oder 
ein Satz IPs) die IPs der sekundären DNS-Server verteilt.

von B. M. (Gast)


Lesenswert?

Dummy schrieb:
> Eigentlich zeigst Du ja lediglich, das man die Root-Server ermitteln
> kann , erklärst aber noch nicht, warum man das tun können "muss".

Du brauchst die Root-Server selbstverstaendlich nur, wenn unter einen 
eigenen Master-Server fuer eine DNS-Zone betreibst. Also nicht fuer 
einen DNS client.

Der Domain Name Space hat eine umgedrehte Baumstruktur und ganz oben 
sind die Root-Server. Siehe..

http://de.wikipedia.org/wiki/Domain_Name_System

..besonders hier:

http://de.wikipedia.org/wiki/Datei:Dns-raum.svg

Nehmen wir an du rufst http://de.wikipedia.org vom DE-Namespace auf und 
der Nameserver deines Providers hat den Lookup nicht im Cache.

Wenn soll er fragen, welcher Nameserver fuer wikipedia.org zustaendig 
ist ?
Na, den der sich damit auskennt, also Root -> org -> wikipedia, um 
schliesslich die Aufloesing vom autoritiven Nameserver zu bekommen.

von Dummy (Gast)


Lesenswert?

Vielen Dank, Olibert, für die Erklärung.

Olibert E. schrieb:
> Du brauchst die Root-Server selbstverstaendlich nur, wenn unter einen
> eigenen Master-Server fuer eine DNS-Zone betreibst. Also nicht fuer
> einen DNS client.

OK. Ist klar.

> Der Domain Name Space hat eine umgedrehte Baumstruktur und ganz oben
> sind die Root-Server. Siehe..

Auch klar.

> Nehmen wir an du rufst http://de.wikipedia.org vom DE-Namespace auf und
> der Nameserver deines Providers hat den Lookup nicht im Cache.
>
> Wenn soll er fragen, welcher Nameserver fuer wikipedia.org zustaendig
> ist ?
> Na, den der sich damit auskennt, also Root -> org -> wikipedia, um
> schliesslich die Aufloesing vom autoritiven Nameserver zu bekommen.

Das ist genau die Frage. Wen soll er fragen? Du schreibst: "Root", aber 
woher weiss er, welche IP Root hat? Auch wenn er jemanden tiefer in der 
Hierarchie fragt: Er muss ja die dig-Anfrage an jemanden senden?

Deswegen schien mir die Annahme Peters, dass die Root-IPs irgendwo fest 
eingetragen sind, plausibel und deswegen die Frage, warum man 
Root-Server-IPs abfragen können "muss", gerade wenn ja garnicht klar 
ist, wen man da abfragen könnte.

von Karl H. (kbuchegg)


Lesenswert?

Olibert E. schrieb:

> Na, den der sich damit auskennt, also Root -> org -> wikipedia, um
> schliesslich die Aufloesing vom autoritiven Nameserver zu bekommen.

Schon.
Aber darum ging es ja weiter oben nicht.

Die Frage ist doch:
Du hast einen jungfräulichen Server, der nichts von seiner Umgebung 
weiß. Wie kommt der zur IP der root-Server.

Und da das offenbar nicht möglich ist, auch ein Nameserver kann sich 
nicht an den Haaren aus dem Sumpf ziehen, muss man ihm die IP mitteilen.

> Wer hat dir denn das erzaehlt ? Selbstverstaendlich kann und muss
> man die Root-Server ermitteln koennen. Siehe hier:

Das beweist aber nur, dass dies geht, wenn alles erst einmal läuft.

1
dig @a.root-servers.net ns .
Aha, und wen befragt dig um die IP für a.root-servers.net wenn der 
lokale DNS nicht läuft, weil es noch nicht einmal seine root-Server 
kennt?

von Dummy (Gast)


Lesenswert?

@Olibert:

Ich lese gerade im Wikipedia-Artikel:

"Auflösung über die Root-Server
    Falls kein Weiterleitungsserver konfiguriert wurde oder dieser nicht 
antwortet, werden die Root-Server befragt. Dazu werden in Form einer 
statischen Datei die Namen und IP-Adressen der Root-Server hinterlegt. 
Es gibt 13 Root-Server (Server A bis M). Die Root-Server beantworten 
Anfragen ausschließlich iterativ (der Server antwortet mit einem Verweis 
auf andere Nameserver), da diese sonst mit der Anzahl der Anfragen 
überlastet wären."

Also doch statische Eintragung!?!? Auch die Weiterleitungsserver werden 
als "fest konfiguriert" bezeichnet?!?!

Magst Du das mal in Zusammenhang mit Deiner Aussage stellen? 
Wahrscheinlich hast Du Dich doch auf einen anderen Teilbereich bezogen, 
in dem meine Frage, bzw. Peters Aussage so keinen Sinn macht, vermute 
ich, oder?

von Dummy (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Und da das offenbar nicht möglich ist, auch ein Nameserver kann sich
> nicht an den Haaren aus dem Sumpf ziehen, muss man ihm die IP mitteilen.

Hmm. Das kommt mir auch so vor.
Ich habe keine Ahnung von der DNS-Materie, aber Logik bleibt Logik ;-)

von Karl H. (kbuchegg)


Lesenswert?

Dummy schrieb:

> Ich habe keine Ahnung von der DNS-Materie

Ich doch auch nicht :-)
Vielleicht gibts da ja auch so etwas wie einen Broadcast.

von B. M. (Gast)


Lesenswert?

Karl heinz Buchegger schrieb:
> Aha, und wen befragt dig um die IP für a.root-servers.net wenn der
> lokale DNS nicht läuft, weil es noch nicht einmal seine root-Server
> kennt?

Das ist relativ einfach zu erklaeren. Du setzt einen neuen Server in 
einem funktionierden Umfeld (kickstart, jumpstart und als DNS client) 
auf. Also kannst du die Datei einfach ueber dig erstellen.

Falls das nicht geht, koennte man es immer noch von einer anderen 
Maschine erstellen lassen und kopieren.

Also das Problem stellt sich ueberhaupt nicht.

von B. M. (Gast)


Lesenswert?

Dummy schrieb:
> Die Root-Server beantworten
> Anfragen ausschließlich iterativ (der Server antwortet mit einem Verweis
> auf andere Nameserver), da diese sonst mit der Anzahl der Anfragen
> überlastet wären."

Richtig, wie ich oben im Beispiel erwaehnt hatte:

"also Root -> org -> wikipedia, um
schliesslich die Aufloesing vom autoritiven Nameserver zu bekommen."


> Also doch statische Eintragung!?!? Auch die Weiterleitungsserver werden
> als "fest konfiguriert" bezeichnet?!?!


Nein nicht unbedingt, da ein Teil der Server anycasted sind. Also 
Routing zu dem Server mit der niedrigsten cost. Hinter einer IP-Adresse 
verbirgt sich nicht unbedingt ein Server, aber eine Gruppe von Maschinen 
im gleichen Anycast pool.

von Karl H. (kbuchegg)


Lesenswert?

Olibert E. schrieb:

> Das ist relativ einfach zu erklaeren. Du setzt einen neuen Server in
> einem funktionierden Umfeld (kickstart, jumpstart und als DNS client)
> auf. Also kannst du die Datei einfach ueber dig erstellen.
>
> Falls das nicht geht, koennte man es immer noch von einer anderen
> Maschine erstellen lassen und kopieren.

Also doch.
Irgendwo muss der Urzustand einmal herkommen.
Und wenn ich sonst nichts habe, gehts nicht anders als durch Einspielen 
dieser ominösen Datei, die ich mir irgendwie anderweitig besorgen muss 
(oder mitgeliefert bekomme).

von Dummy (Gast)


Lesenswert?

Olibert E. schrieb:
> Nein nicht unbedingt, da ein Teil der Server anycasted sind. Also
> Routing zu dem Server mit der niedrigsten cost. Hinter einer IP-Adresse
> verbirgt sich nicht unbedingt ein Server, aber eine Gruppe von Maschinen
> im gleichen Anycast pool.

Nun gut, aber das ist ja nur ein Seitenproblem. Irgendeine IP muss er ja 
haben, auch wenn die dann auf eine aus einer Reihe weiterer Server 
umgelenkt wird.

Olibert E. schrieb:
> Das ist relativ einfach zu erklaeren. Du setzt einen neuen Server in
> einem funktionierden Umfeld (kickstart, jumpstart und als DNS client)
> auf. Also kannst du die Datei einfach ueber dig erstellen.

Das aber steht im Widerspruch zu Deiner ursprünglichen Aussage, die der 
Diktion und dem Zusammenhang nach impliziert, das man die Root-Server 
eben nicht_ kennen muss sondern _ermitteln können muss.

Olibert E. schrieb:
> Peter schrieb:
>> nein her hat schon recht, die root server kann man nicht ermitteln. Sie
>> müssen in jedem Server fest eingetragen werden.
>
> Wer hat dir denn das erzaehlt ? Selbstverstaendlich kann und muss man
> die Root-Server ermitteln koennen.

Es ist also keine grundsätzliche Eigenschaft einer DNS-Server 
Konfiguration, das die Root-Server ermittelt werden können müssen 
sondern diese Voraussetung ist erst erfüllt, wenn eine statische Tabelle 
vorhanden ist. Insofern hatte Peter also recht.

von Dummy (Gast)


Lesenswert?

Was man so für Zeit verschwenden kann. ;-)

von B. M. (Gast)


Lesenswert?

Dummy schrieb:
> Das aber steht im Widerspruch zu Deiner ursprünglichen Aussage, die der
> Diktion und dem Zusammenhang nach impliziert, das man die Root-Server
> eben nicht_ kennen muss sondern _ermitteln können muss.

Bitte seit mir nicht boese, ich arbeite bei einem groesseren ISP als 
Sysadmin und habe schon einige DNS-Server aufgesetzt, aber das wird mir 
hier jetzt echt zu anstrengend.

Wie gesagt, O'Reilly's DNS & Bind beantwortet die meisten Fragen im 
Zusammenhang mit DNS.

von Dummy (Gast)


Lesenswert?

Olibert E. schrieb:
> Bitte seit mir nicht boese, ich arbeite bei einem groesseren ISP als
> Sysadmin und habe schon einige DNS-Server aufgesetzt, aber das wird mir
> hier jetzt echt zu anstrengend.

Es mag ja sein, das Du im Endeffekt recht hast, aber erkennbar ist das 
aufgrund der logischen Struktur Deiner Aussagen eben nicht. Mein Hinweis 
auf die Widersprüchlichkeit Deiner Aussagen, sollte lediglich eine 
Aufforderung zur Klärung sein, aber...

... bitte Sei mir nicht böse, aber Leute die eine Diskussion Ihrer 
Aussagen, die zu ihren Ungunsten verläuft, mit der Anführung Ihrer 
Erfahrungen abschliessen wollen, ...

Du bist ja an sich auch nicht das Thema, also lassen wir das und lesen 
noch ein wenig Wikipedia.

von Bartli (Gast)


Lesenswert?

Tja, bind9 oder dig oder wer auch immer (ich kenne mich mit dieser 
Materie gar nicht aus) kennt die Rootserver tatsächlich ohne die ominöse 
Datei...

...aber auch nur, weil deren Inhalt in den bind9 Quellcode eingebacken 
ist.

1. Quellcode runterladen: ftp://ftp.isc.org/isc/bind9/9.7.1
2. Entpacken
3. Blick in lib/dns/rootns.c werfen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.