DNS Grundlagen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(3 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.
  
==Hierarchischer Aufbau==
+
= Domain Name Service =
*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-hierarchie}}
+
{{#drawio:dns-1}}
  
{| 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
 
|-
 
| Subdomain || www.xinux.de || Administrator des Domains
 
|}
 
  
==Verwaltung des DNS==
+
=== Programm ===
*Die Verwaltung des DNS ist dezentral organisiert.
+
* Das Programm (z. B. Browser oder Mailclient) benötigt die IP-Adresse eines Hostnamens.
*Jede Organisation verwaltet die eigene Zone selbstständig.
+
* Es ruft dafür den lokalen '''Resolver''' auf.
*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}}
+
=== 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.
  
==Zonen und Delegation==
+
=== DNS-Cache ===
*Eine '''Zone''' ist der Teil des Namensraums, für den ein DNS-Server autoritativ ist.
+
* Der Cache speichert bereits aufgelöste Namen für eine begrenzte Zeit ('''Time To Live – TTL''').
*Eine Zone enthält Resource Records (RR), z. B. A, AAAA, MX, NS, CNAME.
+
* Dadurch können häufig genutzte Namen schnell beantwortet werden, ohne erneut eine Anfrage ins Internet zu senden.
*Zonen werden von übergeordneten Zonen an untergeordnete delegiert.
 
*Die Delegation erfolgt durch NS-Records und Glue-Records.
 
  
Beispiel einer Delegation:
+
=== Root-DNS-Server ===
<pre>
+
* Kennt die Adressen der Top-Level-Domain-Server (z. B. für .com, .de, .org).
xinux.de.    IN NS    ns1.xinux.de.
+
* Beantwortet selbst keine Hostnamen, sondern verweist auf den zuständigen '''TLD-Server'''.
xinux.de.    IN NS    ns2.xinux.de.
 
ns1.xinux.de. IN A    194.59.156.164
 
ns2.xinux.de. IN A    194.59.156.165
 
</pre>
 
  
==Rollen der DNS-Server==
+
=== Top-Level-Domain-Server (TLD) ===
{| class="wikitable"
+
* Verantwortlich für eine bestimmte Domain-Endung.
! Serverrolle !! Aufgabe !! Typische Software
+
* Liefert die Adressen der autoritativen Nameserver einer konkreten Domain (z. B. xinux.net).
|-
 
| 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==
+
=== Autoritativer DNS-Server ===
*Ein Client (Stub Resolver) fragt den lokalen Resolver an (z. B. 127.0.0.53).
+
* Enthält die tatsächlichen DNS-Einträge (A, AAAA, MX, CNAME usw.) der jeweiligen Domain.
*Dieser fragt, falls der Eintrag nicht im Cache liegt, die übergeordneten Server in folgender Reihenfolge:
+
* Gibt die endgültige Antwort auf die DNS-Anfrage zurück.
**Root-Server → TLD-Server → autoritativer Server der Domain.
 
*Die Antwort wird zwischengespeichert (Caching), um zukünftige Anfragen schneller zu beantworten.
 
  
{{#drawio:dns-rollenzusammenspiel}}
+
[[Datei:Dns-2.drawio.png|800px]]
  
==Wichtige DNS-Ressourcentypen==
+
== Ablauf einer DNS-Anfrage ==
{| class="wikitable"
 
! Record !! Bedeutung !! Beispiel
 
|-
 
| 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==
+
=== Übersicht ===
*DNS-Administrator: Pflegt Zonen und Einträge.
+
* Das '''Programm''' sendet eine DNS-Anfrage an den '''Resolver''' des Betriebssystems.
*Netzwerkadministrator: Verantwortlich für Serververfügbarkeit.
+
* Der '''Resolver''' prüft, ob die Antwort im lokalen Cache vorhanden ist.
*Registrar/Provider: Verwaltet Registrierung und Delegation der Domain.
+
* Falls nicht, wird die Anfrage an einen externen DNS-Server (oft beim Provider) weitergeleitet.
*Registry: Betreibt die TLD-Infrastruktur.
+
* Dieser DNS-Server fragt bei Bedarf die '''Root-DNS-Server''' ab, um den zuständigen '''TLD-Server''' zu ermitteln.
*ICANN/IANA: Globale Koordination und Vergabe der Namensräume.
+
* 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.
  
==Fazit==
+
=== Beispiel ===
*DNS ist hierarchisch, redundant und dezentral aufgebaut.
+
* Anfrage: '''www.google.com'''
*Jede Zone ist eigenständig verwaltet und über Delegation verbunden.
+
* Ablauf: Resolver → Root-DNS → .com-TLD → Google-Authoritative-DNS → Rückgabe IPv4-Adresse 142.250.x.x
*Die Rollen reichen vom Root-Server bis zum lokalen Resolver.
+
 
*Diese Struktur garantiert die weltweite Konsistenz der Namensauflösung.
+
= 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(<span style="color:#FF0000">127.0.0.53</span>) 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(<span style="color:#FF0000">g.root-servers.net</span>) 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(<span style="color:#FF0000">n.de.net</span>) 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(<span style="color:#FF0000">nyxia.tuxmen.de</span>) 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

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