DNS Grundlagen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(13 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=DNS-Allgemeines=
+
[[Kategorie:DNS]]
*Jeder mit dem Internet verbundene Rechner besitzt eine IP­Adresse, über die er weltweit erreichbar ist.  
+
= DNS-Allgemeines =
*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.  
+
* Jeder mit dem Internet verbundene Rechner besitzt eine IP-Adresse, über die er weltweit erreichbar ist.
*Vor dem Aufbau einer Verbindung müssen diese Namen in IP­Adressen umgewandelt werden, was heute die DNS­Server erledigen.
+
* Den meisten Menschen fällt es schwer, sich IP-Adressen zu merken.
*Das DNS besteht aus eine dezentralen Datenbank.
+
* Aus diesem Grund werden sprechende Namen wie z.B. www.xinux.com vergeben.
*Jeder Administrator sollte für die Namensgebung seiner eigenen Rechner verantwortlich sein  
+
* Vor dem Aufbau einer Verbindung müssen diese Namen in IP­Adressen umgewandelt werden, was heute die DNS­Server erledigen.
*Man spricht hier vom Namensraum oder Zone.
+
* Das DNS besteht aus eine dezentralen Datenbank.
*Desweiteren sollte er für die Namensauflösung der anderen Computer auf die Datenbanken der anderen Administratoren zugreifen.
+
* Jeder Administrator sollte für die Namensgebung seiner eigenen Rechner verantwortlich sein
*Um unterscheiden zu können, welche Rechnernamen lokal und welche Rechnernamen zu einem anderen Administrator gehören, wurde das Domänenkonzept eingeführt.
+
* Man spricht hier vom Namensraum oder Zone.
*Hierzu wird ein hierarchisch geordneter Baum verwendet, mit dessen Hilfe der richtige Datenbankserver schnell gefunden werden kann.
+
* Desweiteren sollte er für die Namensauflösung der anderen Computer auf die Datenbanken der anderen Administratoren zugreifen.
*Der Rechnername wird dabei nach rechts durch den entsprechenden Pfad im Baum erweitert.
+
* 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 =
  
=Domain Name Service=
 
 
{{#drawio:dns-1}}
 
{{#drawio:dns-1}}
=Konzept=
+
 
*Jeder Nameserver besitzt eine statische Root Zonen Datei
+
= Ablauf einer Namensauflösung =
*Diese hier gekürzt
+
==Comic==
<pre>
+
[[Datei:Dns-query.png]]
.                        3600000      NS    A.ROOT-SERVERS.NET.
+
==Schaubild==
A.ROOT-SERVERS.NET.      3600000      A    198.41.0.4
+
{{#drawio:dns-2}}
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:ba3e::2:30
+
= Beteiligte Akteure =
...
+
 
</pre>
+
=== Programm ===
*In dieser stehten die sogenannte Root Nameserver statisch drin.
+
* Das Programm (z. B. Browser oder Mailclient) benötigt die IP-Adresse eines Hostnamens.
*Wenn ein Nameserver diese nicht auflösen kann fragt er bei einem Rootserver nach.
+
* Es ruft dafür den lokalen '''Resolver''' auf.
*Diese kennen alle Namerver aller Toplevel Domains.
+
 
*Er verweist nun je nach Toplevel Domain an einen der zuständigen Server
+
=== Resolver ===
*Nun wird der Toplevel Domain Server nach der Second Level Domain befragt.
+
* Der Resolver ist Teil des Betriebssystems.
*Dieser kennt alle Nameserver aller seiner Secondlevel Domain und verweist auf den entsprechenden.
+
* Er nimmt DNS-Anfragen von Programmen entgegen und leitet sie an einen DNS-Server weiter.
*Nun wird der Second Level Domain Server nach der Third Level Domain befragt.
+
* Er prüft zunächst den lokalen Cache und entscheidet, ob eine Anfrage ins Netzwerk gesendet werden muss.
*Dieser gibt auskunft über die IP Adresse
+
 
=Beispiel einer Abfrage mit dig=
+
=== DNS-Cache ===
*dig +trace +nocomments +nocrypto +nodnssec -t a www.xinux.de
+
* Der Cache speichert bereits aufgelöste Namen für eine begrenzte Zeit ('''Time To Live – TTL''').
==Locale Befragung des Nameservers==
+
* 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'''
 +
 
 +
== Locale Befragung des Nameservers ==
 +
 
 
  ; <<>> DiG 9.16.1-Ubuntu <<>> -4 +trace +nocomments +nocrypto +nodnssec -t a xinux.de
 
  ; <<>> DiG 9.16.1-Ubuntu <<>> -4 +trace +nocomments +nocrypto +nodnssec -t a xinux.de
 
  ;; global options: +cmd
 
  ;; global options: +cmd
  . 6811 IN NS m.root-servers.net.
+
  .           6811   IN NS m.root-servers.net.
  . 6811 IN NS i.root-servers.net.
+
  .           6811   IN NS i.root-servers.net.
  . 6811 IN NS b.root-servers.net.
+
  .           6811   IN NS b.root-servers.net.
  . 6811 IN NS h.root-servers.net.
+
  .           6811   IN NS h.root-servers.net.
  . 6811 IN NS e.root-servers.net.
+
  .           6811   IN NS e.root-servers.net.
  . 6811 IN NS f.root-servers.net.
+
  .           6811   IN NS f.root-servers.net.
  . 6811 IN NS l.root-servers.net.
+
  .           6811   IN NS l.root-servers.net.
  . 6811 IN NS g.root-servers.net.
+
  .           6811   IN NS g.root-servers.net.
  . 6811 IN NS c.root-servers.net.
+
  .           6811   IN NS c.root-servers.net.
  . 6811 IN NS d.root-servers.net.
+
  .           6811   IN NS d.root-servers.net.
  . 6811 IN NS j.root-servers.net.
+
  .           6811   IN NS j.root-servers.net.
  . 6811 IN NS a.root-servers.net.
+
  .           6811   IN NS a.root-servers.net.
  . 6811 IN NS k.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
 
  ;; 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==
+
== 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 s.de.net.
  de. 172800 IN NS l.de.net.
+
  de.         172800 IN NS f.nic.de.
  de. 172800 IN NS a.nic.de.
+
  de.         172800 IN NS l.de.net.
  de. 172800 IN NS n.de.net.
+
  de.         172800 IN NS a.nic.de.
  de. 172800 IN NS z.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
 
  ;; 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.
+
== Befragung eines Top Level Nameserver nach den Nameservern der Second Level Domain ==
  xinux.de. 86400 IN NS nyxia.tuxmen.de.
+
 
 +
  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  
 
  ;; 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
+
== Befragung eines Seconf Level Nameserver nach der gesuchten IP zum Namen ==
  xinux.de. 10 IN NS gaius.tuxmen.de.
+
 
  xinux.de. 10 IN NS nyxia.tuxmen.de.
+
  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
 
  ;; 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 machert.
+
= Eintragung einer Domain =
*Man braucht einen primären und sekundären Nameserver in der die Zone eingrichtet ist.
+
 
*Dies Nameserver werden beispielsweise bei Denic in die Top Level Domain Server statisch eingetragen
+
* Wenn man eine Domain eintragen will braucht man einen Provider, der dies für einen macht.
*Name der Nameserver zu der IP
+
* Man braucht einen primären und sekundären Nameserver in der, die Zone eingrichtet ist.
*Zone zu dem Nameserver
+
* 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