DNS Grundlagen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
[[Kategorie:DNS]]
 
[[Kategorie:DNS]]
= Domain Name System (DNS – Hierarchie, Verwaltung, Rollen) =
+
= DNS-Allgemeines =
  
==Einleitung==
+
* Jeder mit dem Internet verbundene Rechner besitzt eine IP-Adresse, über die er weltweit erreichbar ist.
*Das Domain Name System (DNS) dient der Auflösung von Domainnamen in IP-Adressen und umgekehrt.
+
* Den meisten Menschen fällt es schwer, sich IP-Adressen zu merken.
*Es ist ein hierarchisches, verteiltes System aus Nameservern und Zonen.
+
* Aus diesem Grund werden sprechende Namen wie z.B. www.xinux.com vergeben.
*Jeder DNS-Server verwaltet einen Teil des globalen Namensraums und ist für diesen Bereich autoritativ.
+
* Vor dem Aufbau einer Verbindung müssen diese Namen in IP­Adressen umgewandelt werden, was heute die DNS­Server erledigen.
*DNS ist einer der zentralen Dienste des Internets.
+
* Das DNS besteht aus eine dezentralen Datenbank.
 +
* Jeder Administrator sollte für die Namensgebung seiner eigenen Rechner verantwortlich sein
 +
* Man spricht hier vom Namensraum oder Zone.
 +
* Desweiteren sollte er für die Namensauflösung der anderen Computer auf die Datenbanken der anderen Administratoren zugreifen.
 +
* Um unterscheiden zu können, welche Rechnernamen lokal und welche Rechnernamen zu einem anderen Administrator gehören, wurde das Domänenkonzept eingeführt.
 +
* Hierzu wird ein hierarchisch geordneter Baum verwendet, mit dessen Hilfe der richtige Datenbankserver schnell gefunden werden kann.
 +
* Der Rechnername wird dabei nach rechts durch den entsprechenden Pfad im Baum erweitert.
 +
 
 +
= Domain Name Service =
  
==Hierarchischer Aufbau==
 
*Das DNS ist baumförmig organisiert.
 
*An der Spitze steht die '''Root-Zone''', darunter folgen die '''Top-Level-Domains (TLDs)''', dann '''Second-Level-Domains''' und schließlich '''Subdomains'''.
 
*Jede Ebene wird durch einen Punkt getrennt, z. B.:
 
www.xinux.de.
 
*Die Hierarchie liest sich von rechts nach links.
 
 
{{#drawio:dns-1}}
 
{{#drawio:dns-1}}
{{#drawio:dns-hierarchie}}
 
  
{| class="wikitable"
+
= Ablauf einer Namensauflösung =
! Ebene !! Beispiel !! Verantwortlich
+
==Comic==
|-
+
[[Datei:Dns-query.png]]
| Root-Zone || . || ICANN / IANA
+
==Schaubild==
|-
+
{{#drawio:dns-2}}
| Top-Level-Domain (TLD) || .de, .com, .org || jeweilige Registry (z. B. DENIC, Verisign)
+
= Beteiligte Akteure =
|-
+
 
| Second-Level-Domain || xinux.de || Domaininhaber / Provider
+
=== Programm ===
|-
+
* Das Programm (z. B. Browser oder Mailclient) benötigt die IP-Adresse eines Hostnamens.
| Subdomain || www.xinux.de || Administrator des Domains
+
* Es ruft dafür den lokalen '''Resolver''' auf.
|}
+
 
 +
=== Resolver ===
 +
* Der Resolver ist Teil des Betriebssystems.
 +
* Er nimmt DNS-Anfragen von Programmen entgegen und leitet sie an einen DNS-Server weiter.
 +
* Er prüft zunächst den lokalen Cache und entscheidet, ob eine Anfrage ins Netzwerk gesendet werden muss.
 +
 
 +
=== DNS-Cache ===
 +
* Der Cache speichert bereits aufgelöste Namen für eine begrenzte Zeit ('''Time To Live – TTL''').
 +
* Dadurch können häufig genutzte Namen schnell beantwortet werden, ohne erneut eine Anfrage ins Internet zu senden.
 +
 
 +
=== Root-DNS-Server ===
 +
* Kennt die Adressen der Top-Level-Domain-Server (z. B. für .com, .de, .org).
 +
* Beantwortet selbst keine Hostnamen, sondern verweist auf den zuständigen '''TLD-Server'''.
 +
 
 +
=== Top-Level-Domain-Server (TLD) ===
 +
* Verantwortlich für eine bestimmte Domain-Endung.
 +
* Liefert die Adressen der autoritativen Nameserver einer konkreten Domain (z. B. xinux.net).
 +
 
 +
=== Autoritativer DNS-Server ===
 +
* Enthält die tatsächlichen DNS-Einträge (A, AAAA, MX, CNAME usw.) der jeweiligen Domain.
 +
* Gibt die endgültige Antwort auf die DNS-Anfrage zurück.
 +
 
 +
[[Datei:Dns-2.drawio.png|800px]]
 +
 
 +
== Ablauf einer DNS-Anfrage ==
 +
 
 +
=== Übersicht ===
 +
* Das '''Programm''' sendet eine DNS-Anfrage an den '''Resolver''' des Betriebssystems.
 +
* Der '''Resolver''' prüft, ob die Antwort im lokalen Cache vorhanden ist.
 +
* Falls nicht, wird die Anfrage an einen externen DNS-Server (oft beim Provider) weitergeleitet.
 +
* Dieser DNS-Server fragt bei Bedarf die '''Root-DNS-Server''' ab, um den zuständigen '''TLD-Server''' zu ermitteln.
 +
* Der '''Root-DNS-Server''' antwortet mit der Adresse des passenden '''TLD-Servers'''.
 +
* Der '''TLD-Server''' verweist auf den '''autoritativen Nameserver''' der gesuchten Domain.
 +
* Der '''autoritative DNS-Server''' liefert die endgültige Antwort (z. B. IPv4- oder IPv6-Adresse).
 +
* Der DNS-Server speichert die Antwort im '''Cache''' (für schnellere Folgeanfragen).
 +
* Der '''Resolver''' gibt die ermittelte Adresse an das '''Programm''' zurück.
 +
 
 +
=== Beispiel ===
 +
* Anfrage: '''www.google.com'''
 +
* Ablauf: Resolver → Root-DNS → .com-TLD → Google-Authoritative-DNS → Rückgabe IPv4-Adresse 142.250.x.x
 +
 
 +
= Konzept =
 +
 
 +
* Jeder Nameserver besitzt eine statische Root Zonen Datei
 +
* Diese hier gekürzt
 +
 
 +
.                        3600000      NS    A.ROOT-SERVERS.NET.
 +
A.ROOT-SERVERS.NET.      3600000      A    198.41.0.4
 +
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:ba3e::2:30
 +
...
 +
* In dieser stehten die sogenannten Root Nameserver statisch drin.
 +
* Wenn ein Nameserver einen DOMAIN Namen nicht auflösen kann, fragt er bei einem Rootserver nach.
 +
* Diese kennen alle Nameserver aller Toplevel Domains.
 +
* Er verweist nun je nach Toplevel Domain an einen der zuständigen Server
 +
* Nun wird der Toplevel Domain Server nach der Second Level Domain befragt.
 +
* Dieser kennt alle Nameserver aller seiner Secondlevel Domain und verweist auf den entsprechenden.
 +
* Nun wird der Second Level Domain Server nach der Third Level Domain befragt.
 +
* Dieser gibt auskunft über die IP Adresse
 +
 
 +
= Beispiel einer Abfrage mit dig =
 +
 
 +
* '''dig +trace +nocomments +nocrypto +nodnssec -t a www.xinux.de'''
  
==Verwaltung des DNS==
+
== Locale Befragung des Nameservers ==
*Die Verwaltung des DNS ist dezentral organisiert.
 
*Jede Organisation verwaltet die eigene Zone selbstständig.
 
*Die Vergabe der Domains erfolgt über Registrare, die mit den TLD-Registrys zusammenarbeiten.
 
*Die oberste Koordination liegt bei der '''ICANN''' (Internet Corporation for Assigned Names and Numbers).
 
*Die ICANN delegiert an regionale Organisationen wie:
 
**IANA (Internet Assigned Numbers Authority)
 
**DENIC (Registry für .de)
 
**AFNIC (.fr), NIC.at (.at), SWITCH (.ch), usw.
 
  
{{#drawio:dns-verwaltung}}
+
; <<>> DiG 9.16.1-Ubuntu <<>> -4 +trace +nocomments +nocrypto +nodnssec -t a xinux.de
 +
;; global options: +cmd
 +
.          6811    IN  NS  m.root-servers.net.
 +
.          6811    IN  NS  i.root-servers.net.
 +
.          6811    IN  NS  b.root-servers.net.
 +
.          6811    IN  NS  h.root-servers.net.
 +
.          6811    IN  NS  e.root-servers.net.
 +
.          6811    IN  NS  f.root-servers.net.
 +
.          6811    IN  NS  l.root-servers.net.
 +
.          6811    IN  NS  g.root-servers.net.
 +
.          6811    IN  NS  c.root-servers.net.
 +
.          6811    IN  NS  d.root-servers.net.
 +
.          6811    IN  NS  j.root-servers.net.
 +
.          6811    IN  NS  a.root-servers.net.
 +
.          6811    IN  NS  k.root-servers.net.
 +
;; Received 239 bytes from 127.0.0.53#53(<span style="color:#FF0000">127.0.0.53</span>) in 0 ms
  
==Zonen und Delegation==
+
== Befragung eines Root Nameserver nach den Nameservern der Top Level Domain ==
*Eine '''Zone''' ist der Teil des Namensraums, für den ein DNS-Server autoritativ ist.
 
*Eine Zone enthält Resource Records (RR), z. B. A, AAAA, MX, NS, CNAME.
 
*Zonen werden von übergeordneten Zonen an untergeordnete delegiert.
 
*Die Delegation erfolgt durch NS-Records und Glue-Records.
 
  
Beispiel einer Delegation:
+
de.         172800  IN NS s.de.net.
<pre>
+
de.         172800  IN NS f.nic.de.
xinux.de.     IN NS   ns1.xinux.de.
+
de.         172800  IN  NS  l.de.net.
xinux.de.     IN NS   ns2.xinux.de.
+
de.        172800  IN NS  a.nic.de.
ns1.xinux.de. IN A    194.59.156.164
+
de.         172800  IN  NS  n.de.net.
ns2.xinux.de. IN A    194.59.156.165
+
de.        172800  IN NS  z.nic.de.
</pre>
+
;; Received 437 bytes from 192.112.36.4#53(<span style="color:#FF0000">g.root-servers.net</span>) in 120 ms
  
==Rollen der DNS-Server==
+
== Befragung eines Top Level Nameserver nach den Nameservern der Second Level Domain ==
{| class="wikitable"
 
! Serverrolle !! Aufgabe !! Typische Software
 
|-
 
| Root-Server || Kennt alle TLD-Server weltweit || BIND (Root-Edition), NSD
 
|-
 
| TLD-Server || Kennt autoritative Server der jeweiligen Second-Level-Domains || Cluster der Registrys (z. B. DENIC)
 
|-
 
| Autoritativer Server || Beantwortet Anfragen für seine Zone mit Originaldaten || BIND, Knot, PowerDNS, NSD
 
|-
 
| Caching Resolver || Stellt Anfragen im Auftrag von Clients und speichert Ergebnisse || Unbound, systemd-resolved, dnsmasq
 
|-
 
| Forwarder || Leitet DNS-Anfragen an andere Resolver weiter || dnsmasq, BIND Forwarder
 
|-
 
| Stub Resolver || Bestandteil des Betriebssystems, leitet lokale Anfragen weiter || glibc, nss-dns
 
|}
 
  
==Ablauf einer Namensauflösung==
+
xinux.de.      86400  IN  NS  gaius.tuxmen.de.
*Ein Client (Stub Resolver) fragt den lokalen Resolver an (z. B. 127.0.0.53).
+
xinux.de.      86400  IN  NS  nyxia.tuxmen.de.
*Dieser fragt, falls der Eintrag nicht im Cache liegt, die übergeordneten Server in folgender Reihenfolge:
+
;; Received 116 bytes from 194.146.107.6#53(<span style="color:#FF0000">n.de.net</span>) in 220 ms
**Root-Server → TLD-Server → autoritativer Server der Domain.
 
*Die Antwort wird zwischengespeichert (Caching), um zukünftige Anfragen schneller zu beantworten.
 
  
{{#drawio:dns-rollenzusammenspiel}}
+
== Befragung eines Seconf Level Nameserver nach der gesuchten IP zum Namen ==
  
==Wichtige DNS-Ressourcentypen==
+
www.xinux.de.       10  IN A   194.59.156.162
{| class="wikitable"
+
xinux.de.       10 IN NS gaius.tuxmen.de.
! Record !! Bedeutung !! Beispiel
+
xinux.de.       10  IN NS  nyxia.tuxmen.de.
|-
+
;; Received 130 bytes from 194.59.156.164#53(<span style="color:#FF0000">nyxia.tuxmen.de</span>) in 88 ms
| A || IPv4-Adresse || www.xinux.de. IN A 194.59.156.162
 
|-
 
| AAAA || IPv6-Adresse || www.xinux.de. IN AAAA 2001:db8::1
 
|-
 
| MX || Mail-Server || xinux.de. IN MX 10 mail.xinux.de.
 
|-
 
| NS || Nameserver || xinux.de. IN NS ns1.xinux.de.
 
|-
 
| CNAME || Alias-Name || ftp.xinux.de. IN CNAME www.xinux.de.
 
|-
 
| PTR || Reverse Mapping || 162.156.59.194.in-addr.arpa. IN PTR www.xinux.de.
 
|-
 
| SOA || Start of Authority || xinux.de. IN SOA ns1.xinux.de. admin.xinux.de. (...)
 
|}
 
  
==Verwaltungsrollen in Organisationen==
+
= Eintragung einer Domain =
*DNS-Administrator: Pflegt Zonen und Einträge.
 
*Netzwerkadministrator: Verantwortlich für Serververfügbarkeit.
 
*Registrar/Provider: Verwaltet Registrierung und Delegation der Domain.
 
*Registry: Betreibt die TLD-Infrastruktur.
 
*ICANN/IANA: Globale Koordination und Vergabe der Namensräume.
 
  
==Fazit==
+
* Wenn man eine Domain eintragen will braucht man einen Provider, der dies für einen macht.
*DNS ist hierarchisch, redundant und dezentral aufgebaut.
+
* Man braucht einen primären und sekundären Nameserver in der, die Zone eingrichtet ist.
*Jede Zone ist eigenständig verwaltet und über Delegation verbunden.
+
* Diesen Nameserver werden beispielsweise bei Denic in die Top Level Domain Server statisch eingetragen
*Die Rollen reichen vom Root-Server bis zum lokalen Resolver.
+
* Name der Nameserver zu der IP
*Diese Struktur garantiert die weltweite Konsistenz der Namensauflösung.
+
* Zone zu dem Nameserver

Aktuelle Version vom 5. November 2025, 16:34 Uhr

DNS-Allgemeines

  • Jeder mit dem Internet verbundene Rechner besitzt eine IP-Adresse, über die er weltweit erreichbar ist.
  • Den meisten Menschen fällt es schwer, sich IP-Adressen zu merken.
  • Aus diesem Grund werden sprechende Namen wie z.B. www.xinux.com vergeben.
  • Vor dem Aufbau einer Verbindung müssen diese Namen in IP­Adressen umgewandelt werden, was heute die DNS­Server erledigen.
  • Das DNS besteht aus eine dezentralen Datenbank.
  • Jeder Administrator sollte für die Namensgebung seiner eigenen Rechner verantwortlich sein
  • Man spricht hier vom Namensraum oder Zone.
  • Desweiteren sollte er für die Namensauflösung der anderen Computer auf die Datenbanken der anderen Administratoren zugreifen.
  • Um unterscheiden zu können, welche Rechnernamen lokal und welche Rechnernamen zu einem anderen Administrator gehören, wurde das Domänenkonzept eingeführt.
  • Hierzu wird ein hierarchisch geordneter Baum verwendet, mit dessen Hilfe der richtige Datenbankserver schnell gefunden werden kann.
  • Der Rechnername wird dabei nach rechts durch den entsprechenden Pfad im Baum erweitert.

Domain Name Service

Ablauf einer Namensauflösung

Comic

Dns-query.png

Schaubild

Beteiligte Akteure

Programm

  • Das Programm (z. B. Browser oder Mailclient) benötigt die IP-Adresse eines Hostnamens.
  • Es ruft dafür den lokalen Resolver auf.

Resolver

  • Der Resolver ist Teil des Betriebssystems.
  • Er nimmt DNS-Anfragen von Programmen entgegen und leitet sie an einen DNS-Server weiter.
  • Er prüft zunächst den lokalen Cache und entscheidet, ob eine Anfrage ins Netzwerk gesendet werden muss.

DNS-Cache

  • Der Cache speichert bereits aufgelöste Namen für eine begrenzte Zeit (Time To Live – TTL).
  • Dadurch können häufig genutzte Namen schnell beantwortet werden, ohne erneut eine Anfrage ins Internet zu senden.

Root-DNS-Server

  • Kennt die Adressen der Top-Level-Domain-Server (z. B. für .com, .de, .org).
  • Beantwortet selbst keine Hostnamen, sondern verweist auf den zuständigen TLD-Server.

Top-Level-Domain-Server (TLD)

  • Verantwortlich für eine bestimmte Domain-Endung.
  • Liefert die Adressen der autoritativen Nameserver einer konkreten Domain (z. B. xinux.net).

Autoritativer DNS-Server

  • Enthält die tatsächlichen DNS-Einträge (A, AAAA, MX, CNAME usw.) der jeweiligen Domain.
  • Gibt die endgültige Antwort auf die DNS-Anfrage zurück.

Dns-2.drawio.png

Ablauf einer DNS-Anfrage

Übersicht

  • Das Programm sendet eine DNS-Anfrage an den Resolver des Betriebssystems.
  • Der Resolver prüft, ob die Antwort im lokalen Cache vorhanden ist.
  • Falls nicht, wird die Anfrage an einen externen DNS-Server (oft beim Provider) weitergeleitet.
  • Dieser DNS-Server fragt bei Bedarf die Root-DNS-Server ab, um den zuständigen TLD-Server zu ermitteln.
  • Der Root-DNS-Server antwortet mit der Adresse des passenden TLD-Servers.
  • Der TLD-Server verweist auf den autoritativen Nameserver der gesuchten Domain.
  • Der autoritative DNS-Server liefert die endgültige Antwort (z. B. IPv4- oder IPv6-Adresse).
  • Der DNS-Server speichert die Antwort im Cache (für schnellere Folgeanfragen).
  • Der Resolver gibt die ermittelte Adresse an das Programm zurück.

Beispiel

  • Anfrage: www.google.com
  • Ablauf: Resolver → Root-DNS → .com-TLD → Google-Authoritative-DNS → Rückgabe IPv4-Adresse 142.250.x.x

Konzept

  • Jeder Nameserver besitzt eine statische Root Zonen Datei
  • Diese hier gekürzt
.                        3600000      NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:ba3e::2:30
...
  • In dieser stehten die sogenannten Root Nameserver statisch drin.
  • Wenn ein Nameserver einen DOMAIN Namen nicht auflösen kann, fragt er bei einem Rootserver nach.
  • Diese kennen alle Nameserver aller Toplevel Domains.
  • Er verweist nun je nach Toplevel Domain an einen der zuständigen Server
  • Nun wird der Toplevel Domain Server nach der Second Level Domain befragt.
  • Dieser kennt alle Nameserver aller seiner Secondlevel Domain und verweist auf den entsprechenden.
  • Nun wird der Second Level Domain Server nach der Third Level Domain befragt.
  • Dieser gibt auskunft über die IP Adresse

Beispiel einer Abfrage mit dig

  • dig +trace +nocomments +nocrypto +nodnssec -t a www.xinux.de

Locale Befragung des Nameservers

; <<>> DiG 9.16.1-Ubuntu <<>> -4 +trace +nocomments +nocrypto +nodnssec -t a xinux.de
;; global options: +cmd
.           6811    IN  NS  m.root-servers.net.
.           6811    IN  NS  i.root-servers.net.
.           6811    IN  NS  b.root-servers.net.
.           6811    IN  NS  h.root-servers.net.
.           6811    IN  NS  e.root-servers.net.
.           6811    IN  NS  f.root-servers.net.
.           6811    IN  NS  l.root-servers.net.
.           6811    IN  NS  g.root-servers.net.
.           6811    IN  NS  c.root-servers.net.
.           6811    IN  NS  d.root-servers.net.
.           6811    IN  NS  j.root-servers.net.
.           6811    IN  NS  a.root-servers.net.
.           6811    IN  NS  k.root-servers.net.
;; Received 239 bytes from 127.0.0.53#53(127.0.0.53) in 0 ms

Befragung eines Root Nameserver nach den Nameservern der Top Level Domain

de.         172800  IN  NS  s.de.net.
de.         172800  IN  NS  f.nic.de.
de.         172800  IN  NS  l.de.net.
de.         172800  IN  NS  a.nic.de.
de.         172800  IN  NS  n.de.net.
de.         172800  IN  NS  z.nic.de.
;; Received 437 bytes from 192.112.36.4#53(g.root-servers.net) in 120 ms

Befragung eines Top Level Nameserver nach den Nameservern der Second Level Domain

xinux.de.       86400   IN  NS  gaius.tuxmen.de.
xinux.de.       86400   IN  NS  nyxia.tuxmen.de.
;; Received 116 bytes from 194.146.107.6#53(n.de.net) in 220 ms 

Befragung eines Seconf Level Nameserver nach der gesuchten IP zum Namen

www.xinux.de.       10  IN  A   194.59.156.162
xinux.de.       10  IN  NS  gaius.tuxmen.de.
xinux.de.       10  IN  NS  nyxia.tuxmen.de.
;; Received 130 bytes from 194.59.156.164#53(nyxia.tuxmen.de) in 88 ms

Eintragung einer Domain

  • Wenn man eine Domain eintragen will braucht man einen Provider, der dies für einen macht.
  • Man braucht einen primären und sekundären Nameserver in der, die Zone eingrichtet ist.
  • Diesen Nameserver werden beispielsweise bei Denic in die Top Level Domain Server statisch eingetragen
  • Name der Nameserver zu der IP
  • Zone zu dem Nameserver