Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03405.jsonl.gz/1636

Ziemlich oft hört man in der Systemtechnik über die sogenannten "DNS-Server". Was ist das aber überhaupt genau und wie funktionieren diese Server? Dies erfährst du in diesem Beitrag.
Grob zusammengefasst
DNS ist die Abkürzung für "Domain Name System". Ein DNS Server übersetzt Anfragen, die wir als Client an den Server schicken. Solche Anfragen passieren, wenn wir einen Domain Namen in einem Browser eingeben, wie zum Beispiel "mysign.ch". Hinter jedem Domain Namen steckt eine IP-Adresse. Da es aber viel zu kompliziert wäre, sich von jeder Webseite die IP-Adresse zu merken, gibt es Domains. Der DNS sucht bei jeder Anfrage die IP-Adresse, die zu der eingegebenen Domain gehört. Er betreibt also Namensauflösung.
Im Detail erklärt
Der Namensraum des Internets wird durch einen hierarchischen Verzeichnisdienst verwaltet, der auf Tausende von Servern verteilt ist: Das Domain Name System (DNS). Dieser Namensraum ist in Zonen unterteilt.
Lokal (z.B. innerhalb eines Firmennetzes) kann auch ein vom Internet unabhängiger DNS betrieben werden.
Die Hauptaufgabe des DNS ist der forward lookup, was soviel bedeutet, dass die Domainnamen in IP-Adressen umgesetzt werden. Das ist vergleichbar mit einem Telefonbuch, dass die Namen der Teilnehmer in ihre Telefonnummer auflöst. Das Umgekehrte, also der reverse lookup, ist ebenfalls möglich. Dann werden einfach IP-Adressen in Namen aufgelöst.
DNS zeichnet sich aus durch:
- dezentrale Verwaltung
- hierarchische Strukturierung des Namensraums in Baumform
- Eindeutigkeit der Namen
- Erweiterbarkeit
Die Hauptvorteile:
- Wir müssen uns keine komplizierten IP-Adressen merken, sondern können Anhand einfacher Domainnamen unsere Ziel-Webseite finden
- IP-Adressen können relativ risikolos geändert werden, da der Internetteilnehmer nur den unveränderten DNS Namen anspricht und somit die Änderungen auf der untergeordneten IP-Ebene weitgehend verborgen bleiben
Komponenten
Domain-Namensraum
Der Domain-Namensraum hat eine baumförmige Struktur. Die Blätter und Knoten des Baumes werden als Labels bezeichnet. Ein kompletter Domainname besteht aus der Verkettung aller Labels.
Ein Domainname wird immer von rechts nach links aufgelöst. Das heisst also: Das Label ganz rechts steht im Baum am weitesten oben und dann gehts hierarchisch immer weiter nach unten.
Nameserver
Der Nameserver bietet Namensauflösung an. Namensauflösung ist das Verfahren, welches die Namen von Rechnern bzw. Diensten in eine vom Computer bearbeitbare Adresse auflöst. Die meisten Nameserver sind Teil des Domain Systems, welches auch im Internet verwendet wird.
Unterschieden werden die Nameserver in autoritativen und nicht-autoritativen Nameservern:
Autoritativer Nameserver
Dieser Nameserver ist verantwortlich für eine Zone und deshalb werden seine Informationen über diese Zone als gesichert angesehen. Jede Zone hat mindestens einen autoritativen Server, der Primary-Nameserver. Dieser wird im SOA Ressource Record einer Zonendatei aufgeführt. Meistens wird dieser Nameserver in einem Server-Cluster realisiert, der aus Primary und Secondary Nameserver besteht. Die Synchronisation dieser Server geschieht per Zonentransfer.
Nicht-autoritativer Nameserver
Dieser Nameserver bezieht seine Informationen von anderen Nameservern, die für eine Zone zuständig sind. Er bezieht seine Informationen also über eine zweite oder dritte Hand. Deshalb werden seine Informationen als nicht gesichert angesehen. Der nicht autoritative Server speichert die Anfragen, die an in gesendet werden, im RAM. So sind sie bei erneuter Anfrage schneller erreichbar. Dieser Vorgang wird auch als Caching bezeichnet. Jeder dieser zwischengespeicherten Einträge besitzt eine sogenannte TTL (time to live) was nichts anderes als ein Verfallsdatum ist. Nach Ablauf der TTL werden die Einträge wieder aus dem Cache gelöscht. Diese TTL wird vom Nameserver anhand der Änderungswahrscheinlichkeit festgelegt. Sich häufig ändernde Einträge erhalten eine niedrige TTL und sich wenig ändernde Einträge eine hohe TTL. Das kann aber auch bedeuten, dass der Nameserver falsche Daten liefert, wenn die TTL noch nicht abgelaufen ist, aber eine Änderung vorgenommen wurde, da er diese dann nicht darstellt.
Caching Only Nameserver
Dieser Nameserver ist ein Spezialfall. Er ist für keine Zone zuständig und muss alle eintreffenden Anfragen über weitere Nameserver auflösen.
Resolver
Resolver sind einfach aufgebaute Software-Module, die auf dem Rechner eines DNS-Teilnehmers installiert sind und die Informationen des Nameservers abrufen können. Sie bilden also die Schnittstelle zwischen Anwendung und Nameserver. Wenn eine Anfrage reinkommt, ergänzt der Resolver sie, falls Informationen fehlen und leitet sie einem normalerweise fest zugeordneten Nameserver weiter.
Ein Resolver kann entweder rekursiv oder iterativ arbeiten:
Rekursiv Modus
Im rekursiven Modus schickt der Resolver eine rekursive Anfrage an den zugeordneten Nameserver. Wenn dieser die gewünschten Informationen nicht im Datenbestand vorhanden hat, kontaktiert der Nameserver weitere Server bis er eine positive Antwort erhält, oder eine negative von einem autoritativen Server. Rekursiv arbeitende Resolver überlassen also den gesamten Prozess der Namensauflösung ihrem Nameserver.
Iterativ Modus
Bei einer iterativen Anfrage bekommt der Resolver entweder den gewünschten Resource Record (Angefragter Datensatz) oder einen Verweis auf weitere Nameserver. Anhand des Verweises sucht er dann weiter und fragt diese Nameserver an. So arbeitet sich der Resolver von Nameserver zu Nameserver durch, bis er eine verbindliche Antwort erhält.
Die gewonnene Antwort übergibt der Resolver dann an das Programm, welches die Daten angefragt hat (z.B. an den Webbrowser). Resolver von Clients arbeiten normalerweise immer rekursiv. Diese werden auch als "Stub-Resolver" bezeichnet. Nameserver besitzen eigene Resolver, welche iterativ arbeiten.
Bekannte Programme zur Überprüfung der Namensauflösung sind: nslookup, host und dig.
Protokoll
Die Anfragen des DNS Servers werden normalerweise über den UDP Port 53 zum Nameserver gesendet. Jedoch hat der DNS-Server standardmässig auch die Möglichkeit, ein TCP-Protokoll anzufragen, falls die angeforderten Daten zu gross für ein UDP-Protokoll sind.
TCP
Das TCP/IP beruht auf zwei Schichten. Durch die obere Schicht, das TCP, wird eine Nachricht oder Datei in kleinere Pakete zerlegt. Nachdem diese übertragen wurden, werden sie beim Empfänger ebenfalls durch eine TCP-Schicht wieder so zusammengesetzt, dass diese kleinen Päckchen schließlich wieder die ursprüngliche Nachricht oder Datei ergeben.
Die untere Schicht ist das IP (das Internet Protocol). Es sorgt dafür, dass jedes Paket auch beim richtigen Ziel ankommt.
Beim TCP/IP kommt das Client-Server-Modell zum Einsatz. Das bedeutet, von einem Computer-Nutzer (Client) wird ein bestimmter Dienst angefordert. Dieser Dienst wird von einem anderen Computer im Netzwerk (Server) bereitgestellt. Das heißt, jede Kommunikation verläuft von einem Punkt zu einem anderen oder von einem Host-Computer zum anderen im Netzwerk.
UDP
UDP steht für User Datagram Protocol. Es ist ein verbindungsloses Transportprotokoll. Das UDP hat zwar ähnliche Aufgaben zu erfüllen wie das TCP, dabei Arbeitet es aber – im Gegensatz zum TCP – verbindungslos und unsicher. Das heißt, als Absender weiß man hier nie, ob das versendete Datenpaket angekommen ist, da keine Empfangsbestätigungen gesendet werden. UDP wird hauptsächlich bei DNS-Anfragen, VPN-Verbindungen und Audio- und Videostreaming verwendet, da es durch seine vereinfachte Arbeitsweise schneller ist.
Aufbau der DNS-Datenbank
Beim Internet-DNS liegen die Daten auf einer Vielzahl von Servern, die weltweit verstreut sind. Diese Server sind über Verweise (Delegierungen) untereinander Verknüpft. Diese Verweise sind die sogenannten Zonendaten. In den Zonendaten sind jeweils alle relevanten Daten enthalten. Diese Daten sind Listen von Resource Records, die sich in folgende Record-Typen unterteilen:
- SOA Resource Records, mit denen Parameter der Zone, wie z.B. Gültigkeitsdauer oder Seriennummern festgelegt werden
- NS Resource Records, mit denen die Verknüpfung (Delegierung) der Server untereinander realisiert wird
- A Resource Records, die einem Namen eine IPv4-Adresse zuweisen
- AAAA Resource Records, die einem Namen eine IPv6-Adresse zuweisen
- CNAME Resource Records, die von einem Namen auf einen anderen Verweisen
- MX Resource Records, die einem Namen einen Mailserver zuweisen
- PTR Resource Records, die einer IP-Adresse einen Namen zuweisen (reverse-lookup)
- TXT Resource Records, die einem Namen einen frei definierbaren Text zuweisen (z.B. für die Abwehr von Spam)
Im Laufe der Zeit sind neue Typen definiert worden, mit deren Erweiterungen der DNS realisiert wurde. Dieser Prozess ist noch immer in Arbeit.
Auflösung eines DNS-Requests
Wenn ein Rechner eine Domain erreichen will, passiert immer derselbe Ablauf:
1. Der Rechner sucht in seiner Host-Datei, ob die IP-Adresse für die zu erreichende Domain dort hinterlegt ist. Falls nicht, schickt er eine Anfrage an den DNS-Server. Dieser ist entwerder fest eingetragen, oder per DHCP (Dynamic Host Configuration Protocol) automatisch zugewiesen.
2. Hat der DNS-Server vom Rechner eine IP-Adresse für den angefragten Namen zwischengespeichert, antwortet er damit und die Anfrage kommt zum Ende (siehe Punkt 8.) Andernfalls fragt er einen der 13 Root-Nameserver nach der gewünschten Namensauflösung
3. Der Root-Nameserver findet heraus, in welcher Zone die Auflösung weitergeht und sendet den Namen und die IP-Adresse des Servers, der für die Zone verantwortlich ist, zum DNS Server des Rechners, der die Anfrage geschickt hat
4. Nun fragt der DNS Server des Rechners einen der Nameserver nach der gefragten Domain
5. Der Nameserver sendet ihm die Namen der Nameserver, (und deren IP-Adressen, insofern sie zur gleichen Top-Level-Domain gehören) für die Zone, in der die angefragte Domain liegt
6. Anschliessend fragt der DNS-Server des Rechners einen Nameserver, der Domain die er sucht, wie die IP-Adresse dieser Domain ist
7. Mit dieser Adresse wird an den DNS-Server des Rechners geantwortet und der...
8. ...sendet sie an den Rechner, welcher die Anfrage an die IP-Adresse der gewünschten Domain senden kann
Falls du jetzt noch Fragen hast, lass doch einen Kommentar da und ich antworte dir gerne.
Cheryl, 5. März 2020