Checkmark on Circle.png

DNS

Aus KGS-Wiki

graph TD root(("­")) --> 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