DNS: Unterschied zwischen den Versionen

Aus KGS-Wiki
Keine Bearbeitungszusammenfassung
K (Mermaid auf Diagrams umgestellt)
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
[[DNS|DNS (Domain Name System)]] ist ein System, das verwendet wird, um die [[Domain|Domain-Namen]] von Websites und anderen Netzwerkressourcen in auffindbare [[IP-Adresse]]n umzuwandeln. Z.B.: wird die Domain <code>rickastley.com</code> zur IP-Adresse <code>69.25.142.5</code> aufgelöst.
{{Thumbnailbox|INHALT=<mermaid>
graph TD
  root(("&shy;")) --> de & com & gs
  de --> uni-kiel
  com --> facebook & x & apple
gs --> kah
uni-kiel --> www & informatik & klassalt
kah --> wiki & spicker & infprofil
informatik --> algo & se & zs
zs --> git
</mermaid>
|CAPTION=Ein kleiner Ausschnitt aus dem Baum aller Domains}}
[[DNS|DNS (Domain Name System)]] ist ein System, das verwendet wird, um die [[Domain|Domain-Namen]] von Websites und anderen Netzwerkressourcen in auffindbare [[IP-Adresse]]n umzuwandeln. Zum Beispiel wird die Domain <code>rickastley.com</code> zur IP-Adresse <code>69.25.142.5</code> aufgelöst. Ohne DNS müssten Benutzer stattdessen die IP-Adressen der Ressourcen eingeben, was schwieriger und zeitaufwändiger wäre.


Jeder DNS-[[Server]] hat eine [[Datenbank]] mit Informationen über die Namen und IP-Adressen der Domains, die er verwaltet.  
Die Domains sind im Domain Name System in einer [[Baum (Datenstruktur)|Baum]]struktur organisiert, von der rechts ein kleiner Teil skizziert ist. Der Wurzelknoten an der Spitze ist leer, jeder Weg den Baum hinab entspricht einer Domain. Für jede Teil-Domain gibt es damit einen eigenen Teilbaum, etwa einen Teilbaum, der alle Domains enthält, die auf <code>.xyz</code> enden, oder einen Teilbaum für alle Domains, die auf <code>.jimdo.com</code> enden. Jedem Baumknoten kann wiederum ein so genannter '''autoritativer''' Nameserver zugeordnet werden, der Informationen über die Subdomains dieser Domain hat. In der Regel kennen die Nameserver nur die unmittelbar darunterstehenden Domains. Der autoritative Nameserver für die Domain <code>.gs</code> weiß also, welcher Nameserver Informationen über die Subdomains von <code>kah.gs</code> haben sollte, kennt aber vermutlich nicht die konkrete IP-Adresse von <code>wiki.kah.gs</code>.


Der Prozess der Namensauflösung bei DNS-Servern besteht aus mehreren Schritten:
Der Prozess der Namensauflösung bei DNS-Servern läuft folgendermaßen ab:


# Der DNS-[[Client]] sendet eine Anfrage an den lokalen DNS-Server, der als erster Anlaufpunkt für die Namensauflösung dient.
# Der Client erfragt bei einem DNS-Server die IP-Adresse zu einer Domain
# Der lokale DNS-Server prüft, ob er die gewünschte Adresse in seinem Cache gespeichert hat. Wenn ja, gibt er die Adresse an den Client zurück und der Prozess ist abgeschlossen. Wenn nicht, leitet der Server die Anfrage an einen höherrangigen DNS-Server weiter.
# Falls der DNS-Server die IP-Adresse kennt, liefert er sie zurück
# Der höherrangige DNS-Server überprüft ebenfalls seinen Cache und fragt gegebenenfalls weitere DNS-Server nach der gewünschten Adresse. Dieser Prozess wiederholt sich, bis entweder die Adresse gefunden wurde oder es keine weiteren Server mehr gibt, an die die Anfrage weitergeleitet werden kann.
# Falls nicht, liefert er den Namen eines anderen Nameservers, der dem Client weiterhelfen kann.
# Wenn die Adresse gefunden wurde, wird sie an den Client zurückgegeben und der Prozess ist abgeschlossen. Wenn die Adresse nicht gefunden wurde, gibt der DNS-Server eine Fehlermeldung zurück, die angibt, dass der Host nicht gefunden werden konnte.
 
Dieser Prozess beginnt dabei in der Regel bei einem der dreizehn weltweit verteilten '''Root-Nameservern''', die jedoch nur die Nameserver für die so genannten Top-Level-Domains wie <code>.de</code> oder <code>.net</code> kennen. Das folgende [[Sequenzdiagramm]] veranschaulicht den Ablauf einer solchen Anfrage:
 
{{:DNS/Sequenzdiagramm}}


Ohne DNS müssten Benutzer stattdessen die IP-Adressen der Ressourcen eingeben, was schwieriger und zeitaufwändiger wäre.
[[Kategorie:Netzwerke]]
[[Kategorie:Netzwerke]]

Aktuelle Version vom 31. Januar 2024, 13:42 Uhr

graph TD root(("&shy;")) --> de & com & gs de --> uni-kiel com --> facebook & x & apple gs --> kah uni-kiel --> www & informatik & klassalt kah --> wiki & spicker & infprofil informatik --> algo & se & zs zs --> git

Ein kleiner Ausschnitt aus dem Baum aller Domains

DNS (Domain Name System) ist ein System, das verwendet wird, um die Domain-Namen von Websites und anderen Netzwerkressourcen in auffindbare IP-Adressen umzuwandeln. Zum Beispiel wird die Domain rickastley.com zur IP-Adresse 69.25.142.5 aufgelöst. Ohne DNS müssten Benutzer stattdessen die IP-Adressen der Ressourcen eingeben, was schwieriger und zeitaufwändiger wäre.

Die Domains sind im Domain Name System in einer Baumstruktur organisiert, von der rechts ein kleiner Teil skizziert ist. Der Wurzelknoten an der Spitze ist leer, jeder Weg den Baum hinab entspricht einer Domain. Für jede Teil-Domain gibt es damit einen eigenen Teilbaum, etwa einen Teilbaum, der alle Domains enthält, die auf .xyz enden, oder einen Teilbaum für alle Domains, die auf .jimdo.com enden. Jedem Baumknoten kann wiederum ein so genannter autoritativer Nameserver zugeordnet werden, der Informationen über die Subdomains dieser Domain hat. In der Regel kennen die Nameserver nur die unmittelbar darunterstehenden Domains. Der autoritative Nameserver für die Domain .gs weiß also, welcher Nameserver Informationen über die Subdomains von kah.gs haben sollte, kennt aber vermutlich nicht die konkrete IP-Adresse von wiki.kah.gs.

Der Prozess der Namensauflösung bei DNS-Servern läuft folgendermaßen ab:

  1. Der Client erfragt bei einem DNS-Server die IP-Adresse zu einer Domain
  2. Falls der DNS-Server die IP-Adresse kennt, liefert er sie zurück
  3. Falls nicht, liefert er den Namen eines anderen Nameservers, der dem Client weiterhelfen kann.

Dieser Prozess beginnt dabei in der Regel bei einem der dreizehn weltweit verteilten Root-Nameservern, die jedoch nur die Nameserver für die so genannten Top-Level-Domains wie .de oder .net kennen. Das folgende Sequenzdiagramm veranschaulicht den Ablauf einer solchen Anfrage:

sequenceDiagram participant c as Client participant s1 as l.root-servers.net participant s2 as a.nic.de participant s3 as ns2.neumuenster.de c->>+s1: www.neumuenster.de IN A note over c, s1: Client erfragt beim Root-Server<br>die IP-Adresse von www.neumuenster.de s1->>-c: de NS IN a.nic.de note over c, s1: Root-Server liefert eine Liste<br>von Nameservern,<br>die für .de zuständig sind. c->>+s2: www.neumuenster.de IN A note over c, s2: Client erfragt bei diesem Server<br>die IP-Adresse von www.neumuenster.de s2->>-c: www.neumuenster.de NS IN ns2.neumuenster.de note over c, s2: Server liefert eine Liste von Nameservern,<br>die für neumuenster.de zuständig sind. c->>+s3: www.neumuenster.de IN A note over c, s3: Client erfragt bei diesem Server<br>die IP-Adresse von www.neumuenster.de s3->>-c: www.neumuenster.de A IN 176.52.247.205 note over c, s3: Server liefert die IP-Adresse von www.neumuenster.de