DNS Grundlagen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

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