Domain Name System: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
(125 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
''' | '''Domain Name System''' (DNS) - Hierarchisch unterteiltes Bezeichnungssystem zur Beantwortung von Anfragen zu Domain-Namen ([[Namensauflösung]]) | ||
== Beschreibung == | == Beschreibung == | ||
{| class="wikitable float" | |||
{| class="wikitable | |||
|- | |- | ||
! | ! colspan="2" font="size:larger"| Domain Name System (DNS) | ||
|- | |- | ||
| | | Familie | ||
| [[ | | [[Internetprotokolle]] | ||
|- | |- | ||
| | | Einsatzgebiet | ||
| [[Namensauflösung]] | | [[Namensauflösung]] | ||
|- | |- | ||
| | | Ports || | ||
53/UDP | : 53/UDP | ||
: 53/TCPTCP (nur mit TLS, RFC 7858) | |||
: 853/UDP (nur mit [[Datagram Transport Layer Security|DTLS]], RFC 8094) | |||
|- | |- | ||
|colspan="2"| | |colspan="2"| | ||
{{Netzwerk-TCP-UDP-IP-Anwendungsprotokoll|DNS|2=class="center"}} | {{Netzwerk-TCP-UDP-IP-Anwendungsprotokoll|DNS|2=class="center"}} | ||
|- | |- | ||
| | | Standards | ||
| | | | ||
RFC 1034 (1987) | RFC 1034 (1987) | ||
RFC 1035 (1987) | RFC 1035 (1987) | ||
|} | |} | ||
; Domain Name System | |||
[[File:howDnsWorks.png|mini|400px]] | |||
''DNS'' ist ein hierarchisch unterteiltes Bezeichnungssystem in einem meist [[Internet Protocol|IP]]-basierten [[Rechnernetz|Netz]] zur Beantwortung von Anfragen zu Domain-Namen ([[Namensauflösung]]). | |||
Ähnlich einer Telefonauskunft | |||
* Der Benutzer kennt die [[Domain (Internet)|Domain]] (den für Menschen merkbaren Namen eines Rechners im Internet) – zum Beispiel <code>example.org</code>. | * Der Benutzer kennt die [[Domain (Internet)|Domain]] (den für Menschen merkbaren Namen eines Rechners im Internet) – zum Beispiel <code>example.org</code>. | ||
* Diese sendet er als Anfrage in das Internet. | * Diese sendet er als Anfrage in das Internet. | ||
* Die Domain wird dann dort vom DNS in die zugehörige [[IP-Adresse]] (die „Anschlussnummer“ im Internet) umgewandelt – zum Beispiel eine [[IPv4]]-Adresse der Form <code>192.0.2.42</code> oder eine [[IPv6]]-Adresse wie <code>2001:db8:85a3:8d3:1319:8a2e:370:7347</code> – und führt so zum richtigen Rechner. | * Die Domain wird dann dort vom DNS in die zugehörige [[IP-Adresse]] (die „Anschlussnummer“ im Internet) umgewandelt – zum Beispiel eine [[IPv4]]-Adresse der Form <code>192.0.2.42</code> oder eine [[IPv6]]-Adresse wie <code>2001:db8:85a3:8d3:1319:8a2e:370:7347</code> – und führt so zum richtigen Rechner. | ||
; Das DNS ist ein weltweit auf Tausenden von [[Server]]n verteilter hierarchischer [[Verzeichnisdienst]], der den [[Namensraum]] des Internets verwaltet | |||
Das DNS ist ein weltweit auf Tausenden von [[Server]]n verteilter hierarchischer [[Verzeichnisdienst]], der den [[Namensraum]] des Internets verwaltet | |||
* Dieser Namensraum ist in sogenannte [[Zone (DNS)|Zonen]] unterteilt, für die jeweils unabhängige Administratoren zuständig sind. | * Dieser Namensraum ist in sogenannte [[Zone (DNS)|Zonen]] unterteilt, für die jeweils unabhängige Administratoren zuständig sind. | ||
* Für lokale Anforderungen – etwa innerhalb eines Firmennetzes – ist es auch möglich, ein vom Internet unabhängiges DNS zu betreiben. | * Für lokale Anforderungen – etwa innerhalb eines Firmennetzes – ist es auch möglich, ein vom Internet unabhängiges DNS zu betreiben. | ||
Hauptsächlich wird das DNS zur Umsetzung von Domainnamen in IP-Adressen ('' | ; Hauptsächlich wird das DNS zur Umsetzung von Domainnamen in IP-Adressen (''forward lookup'') benutzt | ||
* Dies ist vergleichbar mit einem Telefonbuch, das die Namen der Teilnehmer in ihre Telefonnummer auflöst. | * Dies ist vergleichbar mit einem Telefonbuch, das die Namen der Teilnehmer in ihre Telefonnummer auflöst. | ||
* Das DNS bietet somit eine Vereinfachung, weil Menschen sich Namen weitaus besser merken können als Zahlenketten. | * Das DNS bietet somit eine Vereinfachung, weil Menschen sich Namen weitaus besser merken können als Zahlenketten. | ||
Zeile 189: | Zeile 47: | ||
* So löst sich beispielsweise der Name ''www.kame.net'' in die IPv4-Adresse <code>203.178.141.194</code> und die IPv6-Adresse <code>2001:200:dff:fff1:216:3eff:feb1:44d7</code> auf. | * So löst sich beispielsweise der Name ''www.kame.net'' in die IPv4-Adresse <code>203.178.141.194</code> und die IPv6-Adresse <code>2001:200:dff:fff1:216:3eff:feb1:44d7</code> auf. | ||
Ein weiterer Vorteil ist, dass IP-Adressen – etwa von Web-Servern – relativ risikolos geändert werden können | ; Ein weiterer Vorteil ist, dass IP-Adressen – etwa von Web-Servern – relativ risikolos geändert werden können | ||
* Da Internetteilnehmer nur den (unveränderten) DNS-Namen ansprechen, bleiben ihnen Änderungen der untergeordneten IP-Ebene weitestgehend verborgen. | * Da Internetteilnehmer nur den (unveränderten) DNS-Namen ansprechen, bleiben ihnen Änderungen der untergeordneten IP-Ebene weitestgehend verborgen. | ||
* Da einem Namen auch mehrere IP-Adressen zugeordnet werden können, kann sogar eine einfache [[Lastverteilung per DNS]] ('' | * Da einem Namen auch mehrere IP-Adressen zugeordnet werden können, kann sogar eine einfache [[Lastverteilung per DNS]] (''Load Balancing'') realisiert werden. | ||
Mit dem DNS ist auch eine umgekehrte Auflösung von IP-Adressen in Namen (''[[Reverse DNS | ; Mit dem DNS ist auch eine umgekehrte Auflösung von IP-Adressen in Namen (''[[Reverse DNS]]'') möglich | ||
* In Analogie zum Telefonbuch entspricht dies einer Suche nach dem Namen eines Teilnehmers zu einer bekannten Rufnummer, was innerhalb der Telekommunikationsbranche unter dem Namen [[Inverssuche]] bekannt ist. | * In Analogie zum Telefonbuch entspricht dies einer Suche nach dem Namen eines Teilnehmers zu einer bekannten Rufnummer, was innerhalb der Telekommunikationsbranche unter dem Namen [[Inverssuche]] bekannt ist. | ||
Das DNS wurde 1983 von [[Paul Mockapetris]] entworfen und in RFC 882 und RFC 883 (RFC = [[Request for Comments]]) beschrieben | ; Das DNS wurde 1983 von [[Paul Mockapetris]] entworfen und in RFC 882 und RFC 883 (RFC = [[Request for Comments]]) beschrieben | ||
* Beide wurden inzwischen von RFC 1034 und RFC 1035 abgelöst und durch zahlreiche weitere Standards ergänzt. | * Beide wurden inzwischen von RFC 1034 und RFC 1035 abgelöst und durch zahlreiche weitere Standards ergänzt. | ||
* Ursprüngliche Aufgabe war es, die lokalen ''[[hosts]]''-Dateien abzulösen, die bis dahin für die [[Namensauflösung]] zuständig waren und der enorm zunehmenden Zahl von Neueinträgen nicht mehr gewachsen waren. | * Ursprüngliche Aufgabe war es, die lokalen ''[[hosts]]''-Dateien abzulösen, die bis dahin für die [[Namensauflösung]] zuständig waren und der enorm zunehmenden Zahl von Neueinträgen nicht mehr gewachsen waren. | ||
* Aufgrund der erwiesenermaßen hohen Zuverlässigkeit und Flexibilität wurden nach und nach weitere Datenbestände in das DNS integriert und so den Internetnutzern zur Verfügung gestellt (siehe unten: [[#Erweiterungen|Erweiterung des DNS]]). | * Aufgrund der erwiesenermaßen hohen Zuverlässigkeit und Flexibilität wurden nach und nach weitere Datenbestände in das DNS integriert und so den Internetnutzern zur Verfügung gestellt (siehe unten: [[#Erweiterungen|Erweiterung des DNS]]). | ||
DNS zeichnet sich aus durch | ; DNS zeichnet sich aus durch | ||
* dezentrale Verwaltung | * dezentrale Verwaltung | ||
* hierarchische Strukturierung des Namensraums in Baumform | * hierarchische Strukturierung des Namensraums in Baumform | ||
* Eindeutigkeit der Namen, | * Eindeutigkeit der Namen | ||
* | * Erweiterbarkeit | ||
; Zensur und alternative DNS | |||
Seit den Debatten um [[Sperrungen von Internetinhalten in Deutschland]] und [[Zensur im Internet]] im Allgemeinen gibt es eine Reihe von alternativen DNS-Anbietern, die Domains nach eigener Aussage nicht zensieren. | |||
* Beispiele sind Projekte von Organisationen wie [[Digitalcourage]], Freifunk München<ref>[https://ffmuc.net/wiki/doku.php?id=knb:dohdot DNS-over-HTTPS und DNS-over-TLS Unterstützung], auf ffmuc.net</ref> oder [[Digitale Gesellschaft (Schweiz)|Digitale Gesellschaft]]. | |||
* Auch von Privatpersonen werden alternative DNS-Server bereitgestellt.<ref name=":1">{{Internetquelle |url=https://www.privacy-handbuch.de/handbuch_93d.htm |titel=Vertrauenswürdige DNS-Server |abruf=2021-02-19}}</ref><ref>{{Internetquelle |url=https://www.privacytools.io/providers/dns/ |titel=Encrypted DNS Resolvers |abruf=2021-05-03 |sprache=en}}</ref> Der alternative DNS-Server des [[Chaos Computer Club]] wird, aufgrund von fehlenden Sicherheitsaspekten, kritisiert.<ref name=":1" /> | |||
== Komponenten == | == Komponenten == | ||
=== Domain-Namensraum === | === Domain-Namensraum === | ||
* Baumförmige Struktur | |||
* Blätter und Knoten werden als Labels bezeichnet | |||
* | * Kompletter Domainname = Verkettung aller Labels eines Pfades | ||
* | * Labels werden durch Punkt getrennt | ||
* Domainname wird mit Punkt abgeschlossen | |||
=== Fully Qualified Domain Name (FQDN) === | |||
[[Datei:Dns-raum.svg|mini|500px|DNS-Hierarchie]] | |||
; Der vollständige Name einer Domain wird als ''Fully Qualified Domain Name'' (FQDN) bezeichnet | |||
* Der Domain-Name ist eine absolute Adresse | |||
* darf inklusive aller Punkte maximal 255 Bytes lang sein | |||
; de.wikipedia.org. | |||
3rd-level-label. | 2nd-level-label. | Top-Level-Domain. | root-label | |||
------------------------------------------------------------------ | |||
de . wikipedia . org . | |||
Ein Domainname wird immer von rechts nach links delegiert und aufgelöst, das heißt je weiter rechts ein Label steht, umso höher steht es im Baum. | |||
; .de.wikipedia.org | |||
root-label. | Top-Level-Domain. | 2nd-level-label. | 3rd-level-label | |||
------------------------------------------------------------------ | |||
. org . wikipedia . de | |||
=== Protokoll === | |||
; DNS-Anfragen werden normalerweise per [[User Datagram Protocol|UDP]] [[Port (Protokoll)|Port]] 53 zum Namensserver gesendet. | |||
* Der DNS-Standard fordert aber auch die Unterstützung von [[Transmission Control Protocol|TCP]] für Fragen, deren Antworten zu groß für UDP-Übertragungen sind.<ref>[[RFC:7766#section-1|RFC 7766]] – ''DNS Transport over TCP – Implementation Requirements.'' [[Internet Engineering Task Force]] (IETF), S. 3 (Stand: März 2010) {{" |lang=en |Text=This document therefore updates the core DNS protocol specifications such that support for TCP is henceforth a REQUIRED part of a full DNS protocol implementation. […] It should be noted that failure to support TCP (or the blocking of DNS over TCP at the network layer) will probably result in resolution failure and/or application-level timeouts.}}</ref> Falls kein [[Extended DNS]] verwendet wird (EDNS), beträgt die maximal zulässige Länge des DNS-UDP-Pakets 512 [[Byte]]s. Überlange Antworten werden daher abgeschnitten übertragen. | |||
* Durch Setzen des Truncated-Flags wird der anfragende Client über diesen Sachverhalt informiert. | |||
* Er muss dann entscheiden, ob ihm die Antwort reicht oder nicht. | |||
* Gegebenenfalls wird er die Anfrage per TCP Port 53 wiederholen. | |||
; Zonentransfers werden stets über Port 53 TCP durchgeführt. | |||
* Die Auslösung von Zonentransfers erfolgt aber gewöhnlich per UDP. | |||
* | |||
==== Erweiterungen ==== | |||
siehe [[Domain Name System/Erweiterungen]] | |||
=== Nameserver === | |||
; Bieten Namensauflösung an | |||
==== autoritativ ==== | |||
* | ; Verantwortlich für eine Zone | ||
* | * Wird als gesichert angesehen | ||
; Redundanz vorgeschrieben | |||
* Primärer Nameserver | |||
* Sekundärer Nameserver | |||
* Zonentransfer | |||
; | ==== nicht-autoritativ ==== | ||
; Bezieht Informationen von anderen Nameservern | |||
* wird als nicht gesichert angesehen | |||
* speichert Informationen im RAM (caching) | |||
==== Zusammenarbeit der Nameserver ==== | |||
Ein nicht-autoritativer Nameserver bedient sich folgender Strategien, um Informationen über andere Teile des Namensraumes zu finden: | |||
: | |||
; Delegierung | |||
* leitet Anfragen an Subdomain Nameserver weiter | |||
; Weiterleitung (forwarding) | |||
Bei außerhalb liegenden Namensräumen | |||
* Weiterleitung an fest konfigurierten Nameserver | |||
* | * Oder Auflösung über die Root-Nameserver (ausschließlich Beantwortung iterativer Anfragen) | ||
* | |||
=== Aufbau der DNS-Datenbank === | |||
; Das Domain Name System kann als verteilte [[Datenbanksystem|Datenbank]] mit baumförmiger Struktur aufgefasst werden. | |||
== Aufbau der DNS-Datenbank == | |||
Das Domain Name System kann als verteilte [[Datenbanksystem|Datenbank]] mit baumförmiger Struktur aufgefasst werden. | |||
* Beim Internet-DNS liegen die Daten auf einer Vielzahl von weltweit verstreuten Servern, die untereinander über Verweise – in der DNS-Terminologie ''Delegierungen'' genannt – verknüpft sind. | * Beim Internet-DNS liegen die Daten auf einer Vielzahl von weltweit verstreuten Servern, die untereinander über Verweise – in der DNS-Terminologie ''Delegierungen'' genannt – verknüpft sind. | ||
In jedem beteiligten Nameserver existieren eine oder mehrere Dateien – die sogenannten [[Zone (DNS)|Zonendateien]] – die alle relevanten Daten enthalten. | ; In jedem beteiligten Nameserver existieren eine oder mehrere Dateien – die sogenannten [[Zone (DNS)|Zonendateien]] – die alle relevanten Daten enthalten. | ||
* Bei diesen Dateien handelt es sich um Listen von ''[[Resource Record]]s''. | * Bei diesen Dateien handelt es sich um Listen von ''[[Resource Record]]s''. | ||
* Mit dem ''[[SOA Resource Record]]'' werden Parameter der [[Zone (DNS)|Zone]], wie z. B. | Von großer Bedeutung sind sieben Record-Typen: | ||
* Mit dem ''[[SOA Resource Record]]'' werden Parameter der [[Zone (DNS)|Zone]], wie z. B. Gültigkeitsdauer oder Seriennummer, festgelegt. | |||
* Mit dem ''[[NS Resource Record]]'' werden die Verknüpfungen (''Delegierungen'') der Server untereinander realisiert. | * Mit dem ''[[NS Resource Record]]'' werden die Verknüpfungen (''Delegierungen'') der Server untereinander realisiert. | ||
* Mit folgenden Record-Typen werden die eigentlichen Daten definiert: | * Mit folgenden Record-Typen werden die eigentlichen Daten definiert: | ||
Zeile 328: | Zeile 157: | ||
* Eine Einsatzmöglichkeit hier ist die [[Spam|Abwehr von Spam]]. | * Eine Einsatzmöglichkeit hier ist die [[Spam|Abwehr von Spam]]. | ||
Im Laufe der Zeit wurden neue Typen definiert, mit denen Erweiterungen des DNS realisiert wurden. | ; Im Laufe der Zeit wurden neue Typen definiert, mit denen Erweiterungen des DNS realisiert wurden. | ||
* Dieser Prozess ist noch nicht abgeschlossen. | * Dieser Prozess ist noch nicht abgeschlossen. | ||
* Eine umfassende Liste findet sich unter ''[[Resource Record]]''. | * Eine umfassende Liste findet sich unter ''[[Resource Record]]''. | ||
Beispiele: | ; Beispiele | ||
Folgender ''NS Resource Record'' sei in der Zonendatei der Domain „org.“ definiert: | |||
* Die Zonendatei für die Domain „example.org.“ befindet sich auf dem Server „ns0.example.org.“. | |||
* Der Punkt am Ende ist wichtig, da dieser klarstellt, dass kein relativer Name gemeint ist, also hinter „org“ nichts mehr zu ergänzen ist. „IN“ meint, dass der Eintrag die Klasse „Internet“ besitzt und die Zahl davor bedeutet die ''Time To Live (TTL)'' in Sekunden, sie besagt, wie lange diese Information in einem [[Cache]] zwischengespeichert werden könnte, bevor sie neu erfragt werden sollte. | |||
Bei dynamischen IP-Adressen liegt diese Zahl meistens zwischen 20 und 300 Sekunden. | |||
example 86400 IN NS ns0.example.org. | example 86400 IN NS ns0.example.org. | ||
Zeile 348: | Zeile 178: | ||
Letztlich müssen also alle Rechner, die sich mit „de.example.org.“ verbinden möchten, IPv4-Pakete an die IP-Adresse <code>203.0.113.232</code> senden. | Letztlich müssen also alle Rechner, die sich mit „de.example.org.“ verbinden möchten, IPv4-Pakete an die IP-Adresse <code>203.0.113.232</code> senden. | ||
== | === Resolver === | ||
[[Datei: | [[Datei:DnsAufloesungDarstellung.png|mini|500px|DNS-Auflösung]] | ||
; Programme Prüfung der Namensauflösung sind [[dig]] oder [[nslookup]] | |||
; Resolver sind einfach aufgebaute Software-Module, die auf dem Rechner eines DNS-Teilnehmers installiert sind und die Informationen von Nameservern abrufen können. | |||
* Sie bilden die Schnittstelle zwischen Anwendung und Nameserver. | |||
* Der Resolver übernimmt die Anfrage einer Anwendung, ergänzt sie, falls notwendig, zu einem [[#Fully Qualified Domain Name (FQDN)|FQDN]] und übermittelt sie an einen normalerweise fest zugeordneten Nameserver. | |||
* | |||
; Resolver arbeiten rekursiv oder iterativ | |||
'''rekursiv''' | |||
* Resolver schickt Nameserver die Anfrage | |||
* kennt der Nameserver die Antwort erhält der Resolver die Antwort direkt, sonst schickt er die Anfrage weiter (s. [[#Zusammenarbeit der einzelnen Nameserver|Zusammenarbeit der einzelnen Nameserver]]) | |||
* am Ende erhält der Resolver die endgültige ANtwort | |||
'''iterativ''' | |||
* Resolver erhält entweder die Antwort vom ersten Nameserver oder den Verweis zum nächsten Nameserver | |||
* in diesem Fall fragt der Resolver den nächsten Nameserver | |||
* dies geschieht so lange, bis er eine Antwort hat | |||
<code> | === Protokoll === | ||
* | * DNS-Anfragen normalerweise per <code>UDP-Port 53</code> zum Namensserver | ||
* | * bei DNS-UDP-Paketen grösser als 512 Bytes werden die Antworten abgeschnitten | ||
* Client wird dann per Truncate-Flag informiert und kann Anfrage per <code>TCP-Port 53</code> wiederholen | |||
* Zonentransfers immer über <code>TCP-Port 53</code>, Auslösung aber per UDP. | |||
[[Kategorie:Domain Name System]] | |||
== Komponenten == | |||
* | === Domain-Namensraum === | ||
* | [[Datei:Dns-raum.svg|mini|500px|Schematische Darstellung der DNS-Hierarchie]] | ||
Der Domain-Namensraum hat eine baumförmige Struktur. | |||
* Die [[Blatt (Graphentheorie)|Blätter]] und [[Knoten (Graphentheorie)|Knoten]] des Baumes werden als Labels bezeichnet. | |||
* Ein kompletter Domainname eines Objektes besteht aus der Verkettung aller Labels eines Pfades. | |||
Labels sind Zeichenketten, die jeweils mindestens ein [[Oktett (Informatik)|Byte]] und maximal 63 Bytes lang sind (RFC 2181, Abschnitt „11. Name syntax“). | |||
* Einzelne Labels werden durch Punkte voneinander getrennt. | |||
* Ein Domainname wird mit einem Punkt abgeschlossen (der letzte Punkt wird normalerweise weggelassen, gehört rein formal aber zu einem vollständigen Domainnamen dazu). | |||
* Somit lautet ein korrekter, vollständiger Domainname (auch [[Fully Qualified Domain Name|(FQDN)]] genannt) zum Beispiel <code>www.example.com.</code> <!-- sic! siehe [[Fully Qualified Domain-Name]] --> und darf inklusive aller Punkte maximal 255 Bytes lang sein. | |||
Ein Domainname wird immer von rechts nach links delegiert und aufgelöst, das heißt je weiter rechts ein Label steht, umso höher steht es im Baum. | |||
* | * Der Punkt am rechten Ende eines Domainnamens trennt das Label für die erste Hierarchieebene von der Wurzel (englisch ''root''). | ||
Diese erste Ebene wird auch als [[Top-Level-Domain]] (TLD) bezeichnet. | |||
Die DNS-Objekte einer Domäne (zum Beispiel die Rechnernamen) werden als Satz von [[Resource Record]]s meist in einer [[Zonendatei]] gehalten, die auf einem oder mehreren autoritativen Nameservern vorhanden ist. | |||
* | * Anstelle von ''Zonendatei'' wird meist der etwas allgemeinere Ausdruck [[Zone (DNS)|Zone]] verwendet. | ||
{{Siehe auch|Liste länderspezifischer Top-Level-Domains}} | |||
=== Nameserver === | |||
* | Ein '''Nameserver''' ist ein [[Server (Software)|Server]], der [[Namensauflösung]] anbietet. | ||
* Namensauflösung ist das Verfahren, das es ermöglicht, Namen von Rechnern bzw. | |||
* Diensten in eine vom Computer bearbeitbare Adresse aufzulösen (z. B. ''www.wikipedia.org'' in ''91.198.174.192''). | |||
Die meisten Nameserver sind Teil des Domain Systems, das auch im [[Internet]] benutzt wird. | |||
Nameserver sind zum einen Programme, die auf Basis einer DNS-[[Datenbank]] Anfragen zum Domain-Namensraum beantworten. | |||
* Im Sprachgebrauch werden allerdings auch die Rechner, auf denen diese Programme zum Einsatz kommen, als Nameserver bezeichnet. | |||
* Man unterscheidet zwischen autoritativen und nicht-autoritativen Nameservern. | |||
Ein autoritativer Nameserver ist verantwortlich für eine Zone. | |||
* Seine Informationen über diese Zone werden deshalb als ''gesichert'' angesehen. | |||
* Für jede Zone existiert mindestens ein autoritativer Server, der Primary Nameserver. | |||
* Dieser wird im [[SOA Resource Record]] einer [[Zonendatei]] aufgeführt. | |||
* Aus Redundanz- und Lastverteilungsgründen werden autoritative Nameserver fast immer als [[Server]]-[[Computercluster|Cluster]] realisiert, wobei die Zonendaten identisch auf einem oder mehreren Secondary Nameservern liegen. | |||
* Die Synchronisation zwischen Primary und Secondary Nameservern erfolgt per [[Zonentransfer]]. | |||
Ein nicht-autoritativer Nameserver bezieht seine Informationen über eine Zone von anderen Nameservern sozusagen aus zweiter oder dritter Hand. | |||
* Seine Informationen werden als ''nicht gesichert'' angesehen. | |||
* Da sich DNS-Daten normalerweise nur sehr selten ändern, speichern nicht-autoritative Nameserver die einmal von einem Resolver angefragten Informationen im lokalen [[Halbleiterspeicher#Wahlfreier Zugriff|RAM]] ab, damit diese bei einer erneuten Anfrage schneller vorliegen. | |||
* Diese Technik wird als [[DNS-Caching|Caching]] bezeichnet. | |||
* Jeder dieser Einträge besitzt ein eigenes Verfallsdatum ([[Time to live|TTL]] ''time to live''), nach dessen Ablauf der Eintrag aus dem Cache gelöscht wird. | |||
* Die TTL wird dabei durch einen autoritativen Nameserver für diesen Eintrag festgelegt und wird nach der Änderungswahrscheinlichkeit des Eintrages bestimmt (sich häufig ändernde DNS-Daten erhalten eine niedrige TTL). | |||
* Das kann unter Umständen bedeuten, dass der Nameserver in dieser Zeit falsche Informationen liefert, wenn sich die Daten zwischenzeitlich geändert haben. | |||
Ein Spezialfall ist der Caching Only Nameserver. | |||
* In diesem Fall ist der Nameserver für keine Zone verantwortlich und muss alle eintreffenden Anfragen über weitere Nameserver (Forwarder) auflösen. | |||
* Dafür stehen verschiedene Strategien zur Verfügung: | |||
;Zusammenarbeit der einzelnen Nameserver | |||
Damit ein nicht-autoritativer Nameserver Informationen über andere Teile des Namensraumes finden kann, bedient er sich folgender Strategien: | |||
;Delegierung | |||
:Teile des Namensraumes einer Domain werden oft an [[Domain (Internet)#Subdomain|Subdomains]] mit dann eigens zuständigen Nameservern ausgelagert. | |||
* Ein Nameserver einer Domäne kennt die zuständigen Nameserver für diese Subdomains aus seiner Zonendatei und delegiert Anfragen zu diesem untergeordneten Namensraum an einen dieser Nameserver. | |||
;Weiterleitung (forwarding) | |||
:Falls der angefragte Namensraum außerhalb der eigenen Domäne liegt, wird die Anfrage an einen fest konfigurierten Nameserver weitergeleitet. | |||
;Auflösung über die Root-Nameserver | |||
:Falls kein Weiterleitungsserver konfiguriert wurde oder dieser nicht antwortet, werden die [[Root-Nameserver]] befragt. | |||
* Dazu werden in Form einer statischen Datei die Namen und IP-Adressen der Root-Server hinterlegt. | |||
* Es gibt 13 Root-Server (Server A bis M). | |||
* Die Root-Server beantworten ausschließlich [[Rekursive und iterative Namensauflösung|iterative]] Anfragen. | |||
* Sie wären sonst mit der Anzahl der Anfragen schlicht überlastet. | |||
* | |||
* | |||
* Die | |||
* | |||
Anders konzipierte Namensauflösungen durch Server, wie der [[Netware|NetWare Name Service]] oder der [[Windows Internet Naming Service]], sind meistens auf [[Local Area Network]]s beschränkt und werden zunehmend von der [[Internetprotokolle]] verdrängt. | |||
== DNS im lokalen Netz == | == DNS im lokalen Netz == | ||
DNS ist nicht auf das Internet beschränkt | ; DNS ist nicht auf das Internet beschränkt | ||
* Es ist ohne weiteres möglich und mit der Definition verträglich, für die Auflösung lokaler Namen eigene Zonen im Nameserver einzurichten und dort die entsprechenden Adressen einzutragen. | * Es ist ohne weiteres möglich und mit der Definition verträglich, für die Auflösung lokaler Namen eigene Zonen im Nameserver einzurichten und dort die entsprechenden Adressen einzutragen. | ||
* Der einmalige Aufwand zur Installation lohnt sich auch bei relativ kleinen Netzen, da dann alle Adressen im Netz zentral verwaltet werden können. | * Der einmalige Aufwand zur Installation lohnt sich auch bei relativ kleinen Netzen, da dann alle Adressen im Netz zentral verwaltet werden können. | ||
Bei größeren Firmen oder Organisationen ist häufig ein aus lokalem und Internet-DNS bestehendes Mischsystem (Split-DNS) anzutreffen. | ; Bei größeren Firmen oder Organisationen ist häufig ein aus lokalem und Internet-DNS bestehendes Mischsystem (Split-DNS) anzutreffen. | ||
* Die internen Nutzer greifen auf das lokale und die externen auf das Internet-DNS zu. | * Die internen Nutzer greifen auf das lokale und die externen auf das Internet-DNS zu. | ||
* In der Praxis können dadurch sehr komplizierte Konstellationen entstehen. | * In der Praxis können dadurch sehr komplizierte Konstellationen entstehen. | ||
Der DNS-Server [[BIND]] kann auch mit [[Dynamic Host Configuration Protocol|DHCP]] zusammenarbeiten und damit für jeden Client im Netz eine Namensauflösung ermöglichen. | ; Der DNS-Server [[BIND]] kann auch mit [[Dynamic Host Configuration Protocol|DHCP]] zusammenarbeiten und damit für jeden Client im Netz eine Namensauflösung ermöglichen. | ||
Unter Windows gibt es noch einen anderen Dienst zur Namensauflösung – [[Windows Internet Naming Service|WINS]], der eine ähnliche Funktion zur Verfügung stellt, allerdings ein anderes Protokoll verwendet. | ; Unter Windows gibt es noch einen anderen Dienst zur Namensauflösung – [[Windows Internet Naming Service|WINS]], der eine ähnliche Funktion zur Verfügung stellt, allerdings ein anderes Protokoll verwendet. | ||
== DNS-Serververbund == | == DNS-Serververbund == | ||
Es ist möglich, mehrere DNS-Server zu verbinden | ; Es ist möglich, mehrere DNS-Server zu verbinden | ||
* Die als Master bezeichneten Server sind für eine oder mehrere Domains verantwortlich. | * Die als Master bezeichneten Server sind für eine oder mehrere Domains verantwortlich. | ||
* Die Slaves aktualisieren nach einer Änderung selbst die Daten, der Master verteilt diese Daten nicht automatisiert. | * Die Slaves aktualisieren nach einer Änderung selbst die Daten, der Master verteilt diese Daten nicht automatisiert. | ||
* Die Abholung der Daten wird über einen [[Zonentransfer]] realisiert. | * Die Abholung der Daten wird über einen [[Zonentransfer]] realisiert. | ||
Beispielsweise kann eine Firma mit mehreren Standorten an einem Platz einen Master für ihr internes DNS betreiben, der die Server in den Außenstellen versorgt | ; Beispielsweise kann eine Firma mit mehreren Standorten an einem Platz einen Master für ihr internes DNS betreiben, der die Server in den Außenstellen versorgt | ||
* Der Zonentransfer geht bei BIND über TCP (per Default Port 53) und erfordert empfohlenerweise Authentifizierung. | * Der Zonentransfer geht bei BIND über TCP (per Default Port 53) und erfordert empfohlenerweise Authentifizierung. | ||
* Die Slaves aktualisieren sich, wenn sich die Seriennummer für eine Zonendatei ändert oder sie eine entsprechende Nachricht vom Master erhalten. | * Die Slaves aktualisieren sich, wenn sich die Seriennummer für eine Zonendatei ändert oder sie eine entsprechende Nachricht vom Master erhalten. | ||
* Die Freigabe für den Transferport sollte man per Firewall an die IP-Adresse des Masters binden. | * Die Freigabe für den Transferport sollte man per Firewall an die IP-Adresse des Masters binden. | ||
* Bei anderen Softwarepaketen werden die Daten unter Umständen auf anderen Wegen abgeglichen, beispielsweise durch LDAP-Replikation, rsync, oder noch andere Mechanismen. | * Bei anderen Softwarepaketen werden die Daten unter Umständen auf anderen Wegen abgeglichen, beispielsweise durch LDAP-Replikation, rsync, oder noch andere Mechanismen. | ||
== Domain-Registrierung == | == Domain-Registrierung == | ||
[[Domain-Registrierung]] | |||
Um DNS-Namen im Internet bekannt machen zu können, muss der Besitzer die Domain, die diesen Namen enthält, registrieren. | Um DNS-Namen im Internet bekannt machen zu können, muss der Besitzer die Domain, die diesen Namen enthält, registrieren. | ||
* Durch eine Registrierung wird sichergestellt, dass bestimmte formale Regeln eingehalten werden und dass Domain-Namen weltweit eindeutig sind. | * Durch eine Registrierung wird sichergestellt, dass bestimmte formale Regeln eingehalten werden und dass Domain-Namen weltweit eindeutig sind. | ||
* Domain-Registrierungen werden von Organisationen (Registries, z. B. | * Domain-Registrierungen werden von Organisationen (Registries, z. B. | ||
* Verisign oder Afilias) vorgenommen, die dazu von der [[Internet Assigned Numbers Authority|IANA]] bzw. [[Internet Corporation for Assigned Names and Numbers|ICANN]] autorisiert wurden. | * Verisign oder Afilias) vorgenommen, die dazu von der [[Internet Assigned Numbers Authority|IANA]] bzw. [[Internet Corporation for Assigned Names and Numbers|ICANN]] autorisiert wurden. | ||
* Registrierungen sind (von wenigen Ausnahmen abgesehen) gebührenpflichtig. | * Registrierungen sind (von wenigen Ausnahmen abgesehen) gebührenpflichtig. | ||
* Für Domains unter .de ist die [[DENIC]] zuständig. | * Für Domains unter .de ist die [[DENIC]] zuständig. | ||
* In den allermeisten Fällen können Domains bei den Registries nur über Zwischenhändler, sogenannte Registrare wie Godaddy oder 1&1 Internet SE registriert werden, die mit den Registries entsprechende Verträge abgeschlossen haben. | * In den allermeisten Fällen können Domains bei den Registries nur über Zwischenhändler, sogenannte Registrare wie Godaddy oder 1&1 Internet SE registriert werden, die mit den Registries entsprechende Verträge abgeschlossen haben. | ||
== Bonjour bzw. | == Bonjour bzw. Zeroconf == | ||
[[Apple]] hat bei der Entwicklung von [[macOS]] mehrere Erweiterungen am DNS vorgenommen, welche die umfassende Selbstkonfiguration von Diensten in LANs ermöglichen soll. | [[Apple]] hat bei der Entwicklung von [[macOS]] mehrere Erweiterungen am DNS vorgenommen, welche die umfassende Selbstkonfiguration von Diensten in LANs ermöglichen soll. | ||
* Zum einen wurde [[Multicast DNS]] („mDNS“) eingeführt, das die Namensauflösungen in einem [[Local Area Network|LAN]] ohne einen dedizierten Namensserver erlaubt. | * Zum einen wurde [[Multicast DNS]] („mDNS“) eingeführt, das die Namensauflösungen in einem [[Local Area Network|LAN]] ohne einen dedizierten Namensserver erlaubt. | ||
* Zusätzlich wurde noch [[DNS-SD]] (für „DNS Service Discovery“) eingeführt, die die Suche („Browsing“) nach Netzwerkdiensten in das DNS beziehungsweise mDNS ermöglicht. | * Zusätzlich wurde noch [[DNS-SD]] (für „DNS Service Discovery“) eingeführt, die die Suche („Browsing“) nach Netzwerkdiensten in das DNS beziehungsweise mDNS ermöglicht. | ||
* mDNS und DNS-SD sind bisher keine offiziellen [[Request for Comments|RFCs]] des [[Internet Engineering Task Force|IETF]], sind aber trotzdem bereits in verschiedenen (auch freien) Implementierungen verfügbar. | * mDNS und DNS-SD sind bisher keine offiziellen [[Request for Comments|RFCs]] des [[Internet Engineering Task Force|IETF]], sind aber trotzdem bereits in verschiedenen (auch freien) Implementierungen verfügbar. | ||
* Zusammen mit einer Reihe von anderen Techniken fasst Apple DNS-SD und mDNS unter dem Namen „[[Zeroconf]]“ zusammen, als Bestandteil von OS X auch als „Rendezvous“ bzw. „[[Bonjour (Apple)|Bonjour]]“. | * Zusammen mit einer Reihe von anderen Techniken fasst Apple DNS-SD und mDNS unter dem Namen „[[Zeroconf]]“ zusammen, als Bestandteil von OS X auch als „Rendezvous“ bzw. „[[Bonjour (Apple)|Bonjour]]“. | ||
* Die meisten Linux-Distributionen unterstützen diese Erweiterung z. B. | * Die meisten Linux-Distributionen unterstützen diese Erweiterung z. B. | ||
* mit der [[Avahi (Software)|avahi]]-Implementierung von Zeroconf. | * mit der [[Avahi (Software)|avahi]]-Implementierung von Zeroconf. | ||
== Nameserversoftware == | == Nameserversoftware == | ||
; Bekannter Software zur Namensauflösung | |||
{| class="wikitable sortable options" | |||
* Die erste Version von BIND war die erste öffentlich verfügbare Nameserver-Implementierung | |- | ||
! Option !! Beschreibung | |||
|- | |||
| [[BIND9|BIND]] (Berkeley Internet Name Domain) || Meistgebrauchte Nameserver-Software | |||
* Referenzimplementierung der meisten [[Request for Comments|RFCs]] zu DNS | |||
* Die erste Version von BIND war die erste öffentlich verfügbare Nameserver-Implementierung | |||
|- | |||
| CoreDNS || In [[Go (Programmiersprache)|Go]] geschriebener DNS-Server der [[Cloud Native Computing Foundation]] | |||
|- | |||
| djbdns || Bei [[djbdns]] hat der Autor [[Daniel J. Bernstein]] eine Prämie für das Finden von Sicherheitsproblemen ausgeschrieben. | |||
* Djbdns wird von Bernstein nicht mehr weiterentwickelt, weil er es als fertig ansieht. | * Djbdns wird von Bernstein nicht mehr weiterentwickelt, weil er es als fertig ansieht. | ||
|- | |||
* Es werden die Namen aus dem lokalen Netz entsprechend /etc/hosts aufgelöst | | Dnsmasq || Name- und DHCP-Server mit eingeschränkter Funktionalität | ||
* Dnsmasq verfügt über keinen vollständigen Resolver | * Es werden die Namen aus dem lokalen Netz entsprechend /etc/hosts aufgelöst | ||
* Dnsmasq verfügt über keinen vollständigen Resolver | |||
* unbekannte Namensanfragen werden weitergeleitet und im Cache gespeichert | |||
* | |- | ||
| Knot DNS || ist ein autoritativer Nameserver, der von [[CZ.NIC]] entwickelt wird, dem Betreiber von [[.cz]]. | |||
|- | |||
| Microsoft Windows DNS || Kommerzielle Nameserver-Implementierungen als Teil der Produktreihe [[Microsoft Windows Server]]. | |||
* Unterstützt dynamische Updates, Zonentransfers und Notification. | |||
* Zonendaten können in den aktuellen Versionen im [[Active Directory Service|Active Directory]] oder in Zonendateien gespeichert und repliziert werden. | * Zonendaten können in den aktuellen Versionen im [[Active Directory Service|Active Directory]] oder in Zonendateien gespeichert und repliziert werden. | ||
|- | |||
* NSD kompiliert Antworten statisch vor, um die Server-Performance zu optimieren | | Name Server Daemon || Autoritativer Nameserver, der zum Einsatz als Top-Level-Domain- und [[Root-Nameserver]] entwickelt wurde. | ||
* Dynamische Zoneninhalte oder [[Lastverteilung per DNS|Round Robin]] werden nicht unterstützt | * NSD kompiliert Antworten statisch vor, um die Server-Performance zu optimieren | ||
* Dynamische Zoneninhalte oder [[Lastverteilung per DNS|Round Robin]] werden nicht unterstützt | |||
* PowerDNS begann als kommerzielle Implementierung und ist seit 2002 unter der [[GNU General Public License|GPL]] lizenziert | |- | ||
| PowerDNS || Nameserver, der Zonen aus [[SQL]]-Datenbanken, [[Lightweight Directory Access Protocol|LDAP]]-Verzeichnissen und anderen Backends lesen kann | |||
* Unbound kann als Softwarebibliothek in Anwendungen eingebunden werden. | * PowerDNS begann als kommerzielle Implementierung und ist seit 2002 unter der [[GNU General Public License|GPL]] lizenziert | ||
|- | |||
| [[Unbound]] || DNS-Resolver, der DNSSEC-Validierung und Caching unterstützt | |||
* Unbound kann als Softwarebibliothek in Anwendungen eingebunden werden | |||
|} | |||
== Sicherheit == | |||
# [[Domain Name System/Sicherheit]] | |||
==== RFC ==== | |||
{| class="wikitable sortable options big" | |||
|- | |||
! RFC !! Titel | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc1034 1034] || Concepts and Facilities | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc1035 1035] || Implementation and Specification | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc2181 2181] || Clarifications to the DNS Specification | |||
|- | |||
| [https://www.rfc-editor.org/info/rfc2782 2782] || A DNS RR for specifying the location of services (DNS SRV) | |||
|} | |||
== Weblinks == | ==== Weblinks ==== | ||
* [http://multicastdns.org/ Multicast DNS] | * [http://multicastdns.org/ Multicast DNS] | ||
* Funktionsweise und Verwaltung des DNS als [http://www.dubberly.com/maps/domain-name-system.html Poster] | * Funktionsweise und Verwaltung des DNS als [http://www.dubberly.com/maps/domain-name-system.html Poster] | ||
Zeile 769: | Zeile 379: | ||
** Podcast zum Thema DNS: [http://cre.fm/cre099 Chaosradio Express 099 – Domain Name System] | ** Podcast zum Thema DNS: [http://cre.fm/cre099 Chaosradio Express 099 – Domain Name System] | ||
* DNS-Abfrage als [[Comic]]: Julia Evans, [https://wizardzines.com/comics/life-of-a-dns-query/ ''Life of a DNS query''] (Wizard Zines) | * DNS-Abfrage als [[Comic]]: Julia Evans, [https://wizardzines.com/comics/life-of-a-dns-query/ ''Life of a DNS query''] (Wizard Zines) | ||
Aktuelle Version vom 16. März 2024, 17:46 Uhr
Domain Name System (DNS) - Hierarchisch unterteiltes Bezeichnungssystem zur Beantwortung von Anfragen zu Domain-Namen (Namensauflösung)
Beschreibung
Domain Name System (DNS) | |
---|---|
Familie | Internetprotokolle |
Einsatzgebiet | Namensauflösung |
Ports |
|
Standards |
RFC 1034 (1987) RFC 1035 (1987) |
- Domain Name System
DNS ist ein hierarchisch unterteiltes Bezeichnungssystem in einem meist IP-basierten Netz zur Beantwortung von Anfragen zu Domain-Namen (Namensauflösung).
Ähnlich einer Telefonauskunft
- Der Benutzer kennt die Domain (den für Menschen merkbaren Namen eines Rechners im Internet) – zum Beispiel
example.org
. - Diese sendet er als Anfrage in das Internet.
- Die Domain wird dann dort vom DNS in die zugehörige IP-Adresse (die „Anschlussnummer“ im Internet) umgewandelt – zum Beispiel eine IPv4-Adresse der Form
192.0.2.42
oder eine IPv6-Adresse wie2001:db8:85a3:8d3:1319:8a2e:370:7347
– und führt so zum richtigen Rechner.
- Das DNS ist ein weltweit auf Tausenden von Servern verteilter hierarchischer Verzeichnisdienst, der den Namensraum des Internets verwaltet
- Dieser Namensraum ist in sogenannte Zonen unterteilt, für die jeweils unabhängige Administratoren zuständig sind.
- Für lokale Anforderungen – etwa innerhalb eines Firmennetzes – ist es auch möglich, ein vom Internet unabhängiges DNS zu betreiben.
- Hauptsächlich wird das DNS zur Umsetzung von Domainnamen in IP-Adressen (forward lookup) benutzt
- Dies ist vergleichbar mit einem Telefonbuch, das die Namen der Teilnehmer in ihre Telefonnummer auflöst.
- Das DNS bietet somit eine Vereinfachung, weil Menschen sich Namen weitaus besser merken können als Zahlenketten.
- So kann man sich einen Domainnamen wie example.org in der Regel leichter merken als die dazugehörende IP-Adresse
192.0.32.10
. - Dieser Punkt gewinnt im Zuge der Einführung von IPv6 noch mehr an Bedeutung, denn dann werden einem Namen jeweils IPv4- und IPv6-Adressen zugeordnet.
- So löst sich beispielsweise der Name www.kame.net in die IPv4-Adresse
203.178.141.194
und die IPv6-Adresse2001:200:dff:fff1:216:3eff:feb1:44d7
auf.
- Ein weiterer Vorteil ist, dass IP-Adressen – etwa von Web-Servern – relativ risikolos geändert werden können
- Da Internetteilnehmer nur den (unveränderten) DNS-Namen ansprechen, bleiben ihnen Änderungen der untergeordneten IP-Ebene weitestgehend verborgen.
- Da einem Namen auch mehrere IP-Adressen zugeordnet werden können, kann sogar eine einfache Lastverteilung per DNS (Load Balancing) realisiert werden.
- Mit dem DNS ist auch eine umgekehrte Auflösung von IP-Adressen in Namen (Reverse DNS) möglich
- In Analogie zum Telefonbuch entspricht dies einer Suche nach dem Namen eines Teilnehmers zu einer bekannten Rufnummer, was innerhalb der Telekommunikationsbranche unter dem Namen Inverssuche bekannt ist.
- Das DNS wurde 1983 von Paul Mockapetris entworfen und in RFC 882 und RFC 883 (RFC = Request for Comments) beschrieben
- Beide wurden inzwischen von RFC 1034 und RFC 1035 abgelöst und durch zahlreiche weitere Standards ergänzt.
- Ursprüngliche Aufgabe war es, die lokalen hosts-Dateien abzulösen, die bis dahin für die Namensauflösung zuständig waren und der enorm zunehmenden Zahl von Neueinträgen nicht mehr gewachsen waren.
- Aufgrund der erwiesenermaßen hohen Zuverlässigkeit und Flexibilität wurden nach und nach weitere Datenbestände in das DNS integriert und so den Internetnutzern zur Verfügung gestellt (siehe unten: Erweiterung des DNS).
- DNS zeichnet sich aus durch
- dezentrale Verwaltung
- hierarchische Strukturierung des Namensraums in Baumform
- Eindeutigkeit der Namen
- Erweiterbarkeit
- Zensur und alternative DNS
Seit den Debatten um Sperrungen von Internetinhalten in Deutschland und Zensur im Internet im Allgemeinen gibt es eine Reihe von alternativen DNS-Anbietern, die Domains nach eigener Aussage nicht zensieren.
- Beispiele sind Projekte von Organisationen wie Digitalcourage, Freifunk München[1] oder Digitale Gesellschaft.
- Auch von Privatpersonen werden alternative DNS-Server bereitgestellt.[2][3] Der alternative DNS-Server des Chaos Computer Club wird, aufgrund von fehlenden Sicherheitsaspekten, kritisiert.[2]
Komponenten
Domain-Namensraum
- Baumförmige Struktur
- Blätter und Knoten werden als Labels bezeichnet
- Kompletter Domainname = Verkettung aller Labels eines Pfades
- Labels werden durch Punkt getrennt
- Domainname wird mit Punkt abgeschlossen
Fully Qualified Domain Name (FQDN)
- Der vollständige Name einer Domain wird als Fully Qualified Domain Name (FQDN) bezeichnet
- Der Domain-Name ist eine absolute Adresse
- darf inklusive aller Punkte maximal 255 Bytes lang sein
- de.wikipedia.org.
3rd-level-label. | 2nd-level-label. | Top-Level-Domain. | root-label ------------------------------------------------------------------ de . wikipedia . org .
Ein Domainname wird immer von rechts nach links delegiert und aufgelöst, das heißt je weiter rechts ein Label steht, umso höher steht es im Baum.
- .de.wikipedia.org
root-label. | Top-Level-Domain. | 2nd-level-label. | 3rd-level-label ------------------------------------------------------------------ . org . wikipedia . de
Protokoll
- Der DNS-Standard fordert aber auch die Unterstützung von TCP für Fragen, deren Antworten zu groß für UDP-Übertragungen sind.[4] Falls kein Extended DNS verwendet wird (EDNS), beträgt die maximal zulässige Länge des DNS-UDP-Pakets 512 Bytes. Überlange Antworten werden daher abgeschnitten übertragen.
- Durch Setzen des Truncated-Flags wird der anfragende Client über diesen Sachverhalt informiert.
- Er muss dann entscheiden, ob ihm die Antwort reicht oder nicht.
- Gegebenenfalls wird er die Anfrage per TCP Port 53 wiederholen.
- Zonentransfers werden stets über Port 53 TCP durchgeführt.
- Die Auslösung von Zonentransfers erfolgt aber gewöhnlich per UDP.
Erweiterungen
siehe Domain Name System/Erweiterungen
Nameserver
- Bieten Namensauflösung an
autoritativ
- Verantwortlich für eine Zone
- Wird als gesichert angesehen
- Redundanz vorgeschrieben
- Primärer Nameserver
- Sekundärer Nameserver
- Zonentransfer
nicht-autoritativ
- Bezieht Informationen von anderen Nameservern
- wird als nicht gesichert angesehen
- speichert Informationen im RAM (caching)
Zusammenarbeit der Nameserver
Ein nicht-autoritativer Nameserver bedient sich folgender Strategien, um Informationen über andere Teile des Namensraumes zu finden:
- Delegierung
- leitet Anfragen an Subdomain Nameserver weiter
- Weiterleitung (forwarding)
Bei außerhalb liegenden Namensräumen
- Weiterleitung an fest konfigurierten Nameserver
- Oder Auflösung über die Root-Nameserver (ausschließlich Beantwortung iterativer Anfragen)
Aufbau der DNS-Datenbank
- Das Domain Name System kann als verteilte Datenbank mit baumförmiger Struktur aufgefasst werden.
- Beim Internet-DNS liegen die Daten auf einer Vielzahl von weltweit verstreuten Servern, die untereinander über Verweise – in der DNS-Terminologie Delegierungen genannt – verknüpft sind.
- In jedem beteiligten Nameserver existieren eine oder mehrere Dateien – die sogenannten Zonendateien – die alle relevanten Daten enthalten.
- Bei diesen Dateien handelt es sich um Listen von Resource Records.
Von großer Bedeutung sind sieben Record-Typen:
- Mit dem SOA Resource Record werden Parameter der Zone, wie z. B. Gültigkeitsdauer oder Seriennummer, festgelegt.
- Mit dem NS Resource Record werden die Verknüpfungen (Delegierungen) der Server untereinander realisiert.
- Mit folgenden Record-Typen werden die eigentlichen Daten definiert:
- Ein A Resource Record weist einem Namen eine IPv4-Adresse zu.
- Ein AAAA Resource Record weist einem Namen eine IPv6-Adresse zu.
- Ein CNAME Resource Record verweist von einem Namen auf einen anderen Namen.
- Ein MX Resource Record weist einem Namen einen Mailserver zu.
- Er stellt eine Besonderheit dar, da er sich auf einen speziellen Dienst im Internet, nämlich die E-Mailzustellung mittels SMTP, bezieht.
- Alle anderen Dienste nutzen CNAME, A und AAAA Resource Records für die Namensauflösung.
- Ein PTR Resource Record weist einer IP-Adresse einen Namen zu (Reverse Lookup) und wird für IPv4 und IPv6 gleichermaßen benutzt, nur für IPv4 unterhalb der Domain „IN-ADDR.ARPA.“ und für IPv6 unterhalb von „IP6.ARPA.“.
- Ein TXT Resource Record kann einem Namen einen frei definierbaren Text zuweisen.
- Eine Einsatzmöglichkeit hier ist die Abwehr von Spam.
- Im Laufe der Zeit wurden neue Typen definiert, mit denen Erweiterungen des DNS realisiert wurden.
- Dieser Prozess ist noch nicht abgeschlossen.
- Eine umfassende Liste findet sich unter Resource Record.
- Beispiele
Folgender NS Resource Record sei in der Zonendatei der Domain „org.“ definiert:
- Die Zonendatei für die Domain „example.org.“ befindet sich auf dem Server „ns0.example.org.“.
- Der Punkt am Ende ist wichtig, da dieser klarstellt, dass kein relativer Name gemeint ist, also hinter „org“ nichts mehr zu ergänzen ist. „IN“ meint, dass der Eintrag die Klasse „Internet“ besitzt und die Zahl davor bedeutet die Time To Live (TTL) in Sekunden, sie besagt, wie lange diese Information in einem Cache zwischengespeichert werden könnte, bevor sie neu erfragt werden sollte.
Bei dynamischen IP-Adressen liegt diese Zahl meistens zwischen 20 und 300 Sekunden.
example 86400 IN NS ns0.example.org.
Folgender CNAME Resource Record in der Zonendatei der Domain „example.org.“ definiert: Der Name „de.example.org.“ verweist auf den Namen „rr.example.net.“.
de 3600 IN CNAME rr.example.net.
Folgende Resource Records in der Zonendatei der Domain „example.net“ definieren: Der Name „rr.example.net.“ verweist auf den Namen „rr.esams.example.net.“ und diesem wiederum ist die IPv4-Adresse 203.0.113.232
zugewiesen.
rr 600 IN CNAME rr.esams rr.esams 3600 IN A 203.0.113.232
Letztlich müssen also alle Rechner, die sich mit „de.example.org.“ verbinden möchten, IPv4-Pakete an die IP-Adresse 203.0.113.232
senden.
Resolver
- Resolver sind einfach aufgebaute Software-Module, die auf dem Rechner eines DNS-Teilnehmers installiert sind und die Informationen von Nameservern abrufen können.
- Sie bilden die Schnittstelle zwischen Anwendung und Nameserver.
- Der Resolver übernimmt die Anfrage einer Anwendung, ergänzt sie, falls notwendig, zu einem FQDN und übermittelt sie an einen normalerweise fest zugeordneten Nameserver.
- Resolver arbeiten rekursiv oder iterativ
rekursiv
- Resolver schickt Nameserver die Anfrage
- kennt der Nameserver die Antwort erhält der Resolver die Antwort direkt, sonst schickt er die Anfrage weiter (s. Zusammenarbeit der einzelnen Nameserver)
- am Ende erhält der Resolver die endgültige ANtwort
iterativ
- Resolver erhält entweder die Antwort vom ersten Nameserver oder den Verweis zum nächsten Nameserver
- in diesem Fall fragt der Resolver den nächsten Nameserver
- dies geschieht so lange, bis er eine Antwort hat
Protokoll
- DNS-Anfragen normalerweise per
UDP-Port 53
zum Namensserver - bei DNS-UDP-Paketen grösser als 512 Bytes werden die Antworten abgeschnitten
- Client wird dann per Truncate-Flag informiert und kann Anfrage per
TCP-Port 53
wiederholen - Zonentransfers immer über
TCP-Port 53
, Auslösung aber per UDP.
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 eines Objektes besteht aus der Verkettung aller Labels eines Pfades.
Labels sind Zeichenketten, die jeweils mindestens ein Byte und maximal 63 Bytes lang sind (RFC 2181, Abschnitt „11. Name syntax“).
- Einzelne Labels werden durch Punkte voneinander getrennt.
- Ein Domainname wird mit einem Punkt abgeschlossen (der letzte Punkt wird normalerweise weggelassen, gehört rein formal aber zu einem vollständigen Domainnamen dazu).
- Somit lautet ein korrekter, vollständiger Domainname (auch (FQDN) genannt) zum Beispiel
www.example.com.
und darf inklusive aller Punkte maximal 255 Bytes lang sein.
Ein Domainname wird immer von rechts nach links delegiert und aufgelöst, das heißt je weiter rechts ein Label steht, umso höher steht es im Baum.
- Der Punkt am rechten Ende eines Domainnamens trennt das Label für die erste Hierarchieebene von der Wurzel (englisch root).
Diese erste Ebene wird auch als Top-Level-Domain (TLD) bezeichnet. Die DNS-Objekte einer Domäne (zum Beispiel die Rechnernamen) werden als Satz von Resource Records meist in einer Zonendatei gehalten, die auf einem oder mehreren autoritativen Nameservern vorhanden ist.
- Anstelle von Zonendatei wird meist der etwas allgemeinere Ausdruck Zone verwendet.
Nameserver
Ein Nameserver ist ein Server, der Namensauflösung anbietet.
- Namensauflösung ist das Verfahren, das es ermöglicht, Namen von Rechnern bzw.
- Diensten in eine vom Computer bearbeitbare Adresse aufzulösen (z. B. www.wikipedia.org in 91.198.174.192).
Die meisten Nameserver sind Teil des Domain Systems, das auch im Internet benutzt wird.
Nameserver sind zum einen Programme, die auf Basis einer DNS-Datenbank Anfragen zum Domain-Namensraum beantworten.
- Im Sprachgebrauch werden allerdings auch die Rechner, auf denen diese Programme zum Einsatz kommen, als Nameserver bezeichnet.
- Man unterscheidet zwischen autoritativen und nicht-autoritativen Nameservern.
Ein autoritativer Nameserver ist verantwortlich für eine Zone.
- Seine Informationen über diese Zone werden deshalb als gesichert angesehen.
- Für jede Zone existiert mindestens ein autoritativer Server, der Primary Nameserver.
- Dieser wird im SOA Resource Record einer Zonendatei aufgeführt.
- Aus Redundanz- und Lastverteilungsgründen werden autoritative Nameserver fast immer als Server-Cluster realisiert, wobei die Zonendaten identisch auf einem oder mehreren Secondary Nameservern liegen.
- Die Synchronisation zwischen Primary und Secondary Nameservern erfolgt per Zonentransfer.
Ein nicht-autoritativer Nameserver bezieht seine Informationen über eine Zone von anderen Nameservern sozusagen aus zweiter oder dritter Hand.
- Seine Informationen werden als nicht gesichert angesehen.
- Da sich DNS-Daten normalerweise nur sehr selten ändern, speichern nicht-autoritative Nameserver die einmal von einem Resolver angefragten Informationen im lokalen RAM ab, damit diese bei einer erneuten Anfrage schneller vorliegen.
- Diese Technik wird als Caching bezeichnet.
- Jeder dieser Einträge besitzt ein eigenes Verfallsdatum (TTL time to live), nach dessen Ablauf der Eintrag aus dem Cache gelöscht wird.
- Die TTL wird dabei durch einen autoritativen Nameserver für diesen Eintrag festgelegt und wird nach der Änderungswahrscheinlichkeit des Eintrages bestimmt (sich häufig ändernde DNS-Daten erhalten eine niedrige TTL).
- Das kann unter Umständen bedeuten, dass der Nameserver in dieser Zeit falsche Informationen liefert, wenn sich die Daten zwischenzeitlich geändert haben.
Ein Spezialfall ist der Caching Only Nameserver.
- In diesem Fall ist der Nameserver für keine Zone verantwortlich und muss alle eintreffenden Anfragen über weitere Nameserver (Forwarder) auflösen.
- Dafür stehen verschiedene Strategien zur Verfügung:
- Zusammenarbeit der einzelnen Nameserver
Damit ein nicht-autoritativer Nameserver Informationen über andere Teile des Namensraumes finden kann, bedient er sich folgender Strategien:
- Delegierung
- Teile des Namensraumes einer Domain werden oft an Subdomains mit dann eigens zuständigen Nameservern ausgelagert.
- Ein Nameserver einer Domäne kennt die zuständigen Nameserver für diese Subdomains aus seiner Zonendatei und delegiert Anfragen zu diesem untergeordneten Namensraum an einen dieser Nameserver.
- Weiterleitung (forwarding)
- Falls der angefragte Namensraum außerhalb der eigenen Domäne liegt, wird die Anfrage an einen fest konfigurierten Nameserver weitergeleitet.
- Auflösung über die Root-Nameserver
- Falls kein Weiterleitungsserver konfiguriert wurde oder dieser nicht antwortet, werden die Root-Nameserver befragt.
- Dazu werden in Form einer statischen Datei die Namen und IP-Adressen der Root-Server hinterlegt.
- Es gibt 13 Root-Server (Server A bis M).
- Die Root-Server beantworten ausschließlich iterative Anfragen.
- Sie wären sonst mit der Anzahl der Anfragen schlicht überlastet.
Anders konzipierte Namensauflösungen durch Server, wie der NetWare Name Service oder der Windows Internet Naming Service, sind meistens auf Local Area Networks beschränkt und werden zunehmend von der Internetprotokolle verdrängt.
DNS im lokalen Netz
- DNS ist nicht auf das Internet beschränkt
- Es ist ohne weiteres möglich und mit der Definition verträglich, für die Auflösung lokaler Namen eigene Zonen im Nameserver einzurichten und dort die entsprechenden Adressen einzutragen.
- Der einmalige Aufwand zur Installation lohnt sich auch bei relativ kleinen Netzen, da dann alle Adressen im Netz zentral verwaltet werden können.
- Bei größeren Firmen oder Organisationen ist häufig ein aus lokalem und Internet-DNS bestehendes Mischsystem (Split-DNS) anzutreffen.
- Die internen Nutzer greifen auf das lokale und die externen auf das Internet-DNS zu.
- In der Praxis können dadurch sehr komplizierte Konstellationen entstehen.
- Der DNS-Server BIND kann auch mit DHCP zusammenarbeiten und damit für jeden Client im Netz eine Namensauflösung ermöglichen.
- Unter Windows gibt es noch einen anderen Dienst zur Namensauflösung – WINS, der eine ähnliche Funktion zur Verfügung stellt, allerdings ein anderes Protokoll verwendet.
DNS-Serververbund
- Es ist möglich, mehrere DNS-Server zu verbinden
- Die als Master bezeichneten Server sind für eine oder mehrere Domains verantwortlich.
- Die Slaves aktualisieren nach einer Änderung selbst die Daten, der Master verteilt diese Daten nicht automatisiert.
- Die Abholung der Daten wird über einen Zonentransfer realisiert.
- Beispielsweise kann eine Firma mit mehreren Standorten an einem Platz einen Master für ihr internes DNS betreiben, der die Server in den Außenstellen versorgt
- Der Zonentransfer geht bei BIND über TCP (per Default Port 53) und erfordert empfohlenerweise Authentifizierung.
- Die Slaves aktualisieren sich, wenn sich die Seriennummer für eine Zonendatei ändert oder sie eine entsprechende Nachricht vom Master erhalten.
- Die Freigabe für den Transferport sollte man per Firewall an die IP-Adresse des Masters binden.
- Bei anderen Softwarepaketen werden die Daten unter Umständen auf anderen Wegen abgeglichen, beispielsweise durch LDAP-Replikation, rsync, oder noch andere Mechanismen.
Domain-Registrierung
Domain-Registrierung Um DNS-Namen im Internet bekannt machen zu können, muss der Besitzer die Domain, die diesen Namen enthält, registrieren.
- Durch eine Registrierung wird sichergestellt, dass bestimmte formale Regeln eingehalten werden und dass Domain-Namen weltweit eindeutig sind.
- Domain-Registrierungen werden von Organisationen (Registries, z. B.
- Verisign oder Afilias) vorgenommen, die dazu von der IANA bzw. ICANN autorisiert wurden.
- Registrierungen sind (von wenigen Ausnahmen abgesehen) gebührenpflichtig.
- Für Domains unter .de ist die DENIC zuständig.
- In den allermeisten Fällen können Domains bei den Registries nur über Zwischenhändler, sogenannte Registrare wie Godaddy oder 1&1 Internet SE registriert werden, die mit den Registries entsprechende Verträge abgeschlossen haben.
Bonjour bzw. Zeroconf
Apple hat bei der Entwicklung von macOS mehrere Erweiterungen am DNS vorgenommen, welche die umfassende Selbstkonfiguration von Diensten in LANs ermöglichen soll.
- Zum einen wurde Multicast DNS („mDNS“) eingeführt, das die Namensauflösungen in einem LAN ohne einen dedizierten Namensserver erlaubt.
- Zusätzlich wurde noch DNS-SD (für „DNS Service Discovery“) eingeführt, die die Suche („Browsing“) nach Netzwerkdiensten in das DNS beziehungsweise mDNS ermöglicht.
- mDNS und DNS-SD sind bisher keine offiziellen RFCs des IETF, sind aber trotzdem bereits in verschiedenen (auch freien) Implementierungen verfügbar.
- Zusammen mit einer Reihe von anderen Techniken fasst Apple DNS-SD und mDNS unter dem Namen „Zeroconf“ zusammen, als Bestandteil von OS X auch als „Rendezvous“ bzw. „Bonjour“.
- Die meisten Linux-Distributionen unterstützen diese Erweiterung z. B.
- mit der avahi-Implementierung von Zeroconf.
Nameserversoftware
- Bekannter Software zur Namensauflösung
Option | Beschreibung |
---|---|
BIND (Berkeley Internet Name Domain) | Meistgebrauchte Nameserver-Software
|
CoreDNS | In Go geschriebener DNS-Server der Cloud Native Computing Foundation |
djbdns | Bei djbdns hat der Autor Daniel J. Bernstein eine Prämie für das Finden von Sicherheitsproblemen ausgeschrieben.
|
Dnsmasq | Name- und DHCP-Server mit eingeschränkter Funktionalität
|
Knot DNS | ist ein autoritativer Nameserver, der von CZ.NIC entwickelt wird, dem Betreiber von .cz. |
Microsoft Windows DNS | Kommerzielle Nameserver-Implementierungen als Teil der Produktreihe Microsoft Windows Server.
|
Name Server Daemon | Autoritativer Nameserver, der zum Einsatz als Top-Level-Domain- und Root-Nameserver entwickelt wurde.
|
PowerDNS | Nameserver, der Zonen aus SQL-Datenbanken, LDAP-Verzeichnissen und anderen Backends lesen kann
|
Unbound | DNS-Resolver, der DNSSEC-Validierung und Caching unterstützt
|
Sicherheit
RFC
RFC | Titel |
---|---|
1034 | Concepts and Facilities |
1035 | Implementation and Specification |
2181 | Clarifications to the DNS Specification |
2782 | A DNS RR for specifying the location of services (DNS SRV) |
Weblinks
- Multicast DNS
- Funktionsweise und Verwaltung des DNS als Poster
- Beiträge des Chaos Computer Clubs
- Zensur durch DNS-Server: DNS Howto
- Podcast zum Thema DNS: Chaosradio Express 099 – Domain Name System
- DNS-Abfrage als Comic: Julia Evans, Life of a DNS query (Wizard Zines)
- ↑ DNS-over-HTTPS und DNS-over-TLS Unterstützung, auf ffmuc.net
- ↑ 2,0 2,1
- ↑
- ↑ RFC 7766 – DNS Transport over TCP – Implementation Requirements. Internet Engineering Task Force (IETF), S. 3 (Stand: März 2010) Vorlage:"