Domain Name System: Unterschied zwischen den Versionen

Aus Foxwiki
 
(111 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
'''topic''' kurze Beschreibung
'''Domain Name System''' (DNS) - Hierarchisch unterteiltes Bezeichnungssystem zur Beantwortung von Anfragen zu Domain-Namen ([[Namensauflösung]])
 
== Beschreibung ==
== Beschreibung ==
{| class="wikitable float"
|-
! colspan="2" font="size:larger"| Domain Name System (DNS)
|-
| Familie
| [[Internetprotokolle]]
|-
| Einsatzgebiet
| [[Namensauflösung]]
|-
| Ports ||
: 53/UDP
: 53/TCPTCP (nur mit TLS, RFC 7858)
: 853/UDP (nur mit [[Datagram Transport Layer Security|DTLS]], RFC 8094)
|-
|colspan="2"|
{{Netzwerk-TCP-UDP-IP-Anwendungsprotokoll|DNS|2=class="center"}}
|-
| Standards
|
RFC 1034 (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>.
* 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.
; 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.
* Für lokale Anforderungen –&nbsp;etwa innerhalb eines Firmennetzes&nbsp;– 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 <code>192.0.32.10</code>.
* 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 <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 –&nbsp;etwa von Web-Servern&nbsp;– 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: [[#Erweiterungen|Erweiterung des DNS]]).


= Komponenten=
; DNS zeichnet sich aus durch
[[Datei:Schematische Darstellung DNS Hierarchie.png|mini|DNS-Hierarchie]]
* 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<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 ==
=== Domain-Namensraum ===
=== Domain-Namensraum ===
* Baumförmige Struktur
* Baumförmige Struktur
Zeile 11: Zeile 78:
* Domainname wird mit Punkt abgeschlossen
* Domainname wird mit Punkt abgeschlossen


===Fully Qualified Domain Name (FQDN)===
=== Fully Qualified Domain Name (FQDN) ===
Der vollständige Name einer Domain wird als ihr Fully Qualified Domain Name (FQDN) bezeichnet. Der Domain-Name ist in diesem Fall eine absolute Adresse und darf inklusive aller Punkte maximal 255 Bytes lang sein.
[[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


Der FQDN <code>www.itw-berlin.net.</code> ergibt sich durch:
; de.wikipedia.org.
  3rd-level-label. | 2nd-level-label. | Top-Level-Domain. | root-label
  3rd-level-label. | 2nd-level-label. | Top-Level-Domain. | root-label
  ------------------------------------------------------------------
  ------------------------------------------------------------------
  www              . itw-berlin      . net               .
  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.
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.


<code>.net.itw-berlin.www</code>
; .de.wikipedia.org
  root-label. | Top-Level-Domain. | 2nd-level-label. | 3rd-level-label.
  root-label. | Top-Level-Domain. | 2nd-level-label. | 3rd-level-label
  ------------------------------------------------------------------
  ------------------------------------------------------------------
             . net               . itw-berlin      . www
             . 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===
=== Nameserver ===
* bietet Namensauflösung an
; Bieten Namensauflösung an


==== autoritativ ====
==== autoritativ ====
* verantwortlich für eine Zone
; Verantwortlich für eine Zone
* wird als gesichert angesehen
* Wird als gesichert angesehen
* Redundanz vorgeschrieben
; Redundanz vorgeschrieben
* primärer Nameserver
* Primärer Nameserver
* sekundärer Nameserver
* Sekundärer Nameserver
* Zonentransfer
* Zonentransfer


==== nicht-autoritativ ====
==== nicht-autoritativ ====
* bezieht Informationen von anderen Nameservern
; Bezieht Informationen von anderen Nameservern
* wird als nicht gesichert angesehen
* wird als nicht gesichert angesehen
* speichert Informationen im RAM (caching)
* speichert Informationen im RAM (caching)


====Zusammenarbeit der Nameserver====
==== Zusammenarbeit der Nameserver ====
Ein nicht-autoritativer Nameserver bedient sich folgender Strategien, um Informationen über andere Teile des Namensraumes zu finden:
Ein nicht-autoritativer Nameserver bedient sich folgender Strategien, um Informationen über andere Teile des Namensraumes zu finden:
* Delegierung
** leitet Anfragen an Subdomain Nameserver weiter
*W eiterleitung (forwarding)
** bei außerhalb liegenden Namensräumen, Weiterleitung an fest konfigurierten Nameserver
** oder Auflösung über die Root-Nameserver (ausschließlich Beantwortung iterativer Anfragen)


=== Resolver ===
; Delegierung
Programme Prüfung der Namensauflösung sind <code>nslookup</code> und <code>dig</code>.
* leitet Anfragen an Subdomain Nameserver weiter


* Resolver sind einfach aufgebaute Software-Module, die auf dem Rechner eines DNS-Teilnehmers installiert sind und die Informationen von Nameservern abrufen können.
; Weiterleitung (forwarding)
* Sie bilden die Schnittstelle zwischen Anwendung und Nameserver.
Bei außerhalb liegenden Namensräumen
* 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.
* Weiterleitung an fest konfigurierten Nameserver
* Ein Resolver arbeitet entweder rekursiv oder iterativ.
* Oder Auflösung über die Root-Nameserver (ausschließlich Beantwortung iterativer Anfragen)


'''rekursiv'''
=== Aufbau der DNS-Datenbank ===
* Resolver schickt Nameserver die Anfrage
; Das Domain Name System kann als verteilte [[Datenbanksystem|Datenbank]] mit baumförmiger Struktur aufgefasst werden.
* 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]])
* 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.
* am Ende erhält der Resolver die endgültige ANtwort


'''iterativ'''
; In jedem beteiligten Nameserver existieren eine oder mehrere Dateien – die sogenannten [[Zone (DNS)|Zonendateien]] – die alle relevanten Daten enthalten.
* Resolver erhält entweder die Antwort vom ersten Nameserver oder den Verweis zum nächsten Nameserver
* Bei diesen Dateien handelt es sich um Listen von ''[[Resource Record]]s''.
* in diesem Fall fragt der Resolver den nächsten Nameserver
* dies geschieht so lange, bis er eine Antwort hat


[[Datei:DnsAufloesungDarstellung.png|DNS-Auflösung]]
Von großer Bedeutung sind sieben Record-Typen:
* Mit dem ''[[SOA Resource Record]]'' werden Parameter der [[Zone (DNS)|Zone]], wie z.&nbsp;B.&nbsp;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 [[Internetdienste|Dienst]] im Internet, nämlich die E-Mailzustellung mittels [[Simple Mail Transfer Protocol|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 [[Spam|Abwehr von Spam]].


=== Protokoll ===
; 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]]''.


* DNS-Anfragen normalerweise per <code>UDP-Port 53</code> zum Namensserver
; Beispiele
* bei DNS-UDP-Paketen grösser als 512 Bytes werden die Antworten abgeschnitten
Folgender ''NS Resource Record'' sei in der Zonendatei der Domain „org.“ definiert:
* Client wird dann per Truncate-Flag informiert und kann Anfrage per <code>TCP-Port 53</code> wiederholen
* Die Zonendatei für die Domain „example.org.“ befindet sich auf dem Server „ns0.example.org.“.
* Zonentransfers immer über <code>TCP-Port 53</code>, Auslösung aber per UDP.
* 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.  


== Auflösung eines DNS-Requests ==
Bei dynamischen IP-Adressen liegt diese Zahl meistens zwischen 20 und 300 Sekunden.
[[Datei:DNS-query-to-wikipedia.svg|mini|Die Namensauflösung als [[Programmablaufplan|Flussdiagramm]]]]
  example  86400  IN  NS  ns0.example.org.
Angenommen, ein Rechner ''X'' will eine Verbindung zu Rechner aufbauen. Dazu braucht er dessen IP-Adresse. In den folgenden Schritten wird beschrieben, wie dies ablaufen könnte. Falls der Rechner IPv6-fähig ist, läuft der Vorgang zunächst für (Abfrage vonAAAA Resource Record und sofort danach für IPv4 (Abfrage vonA Resource Recordab. Dabei kann eine Anfrage nach einer IPv6-Adresse mittels IPv4-Übertragung an einen IPv4-DNS-Server gerichtet werden. Falls am Ende eine IPv6- und eine IPv4-Adresse für Rechner ''Y'' ermittelt werden, wird in der Regel laut der ''Default Policy Table'' in RFC 6724 die Kommunikation zwischen ''X'' und ''Y'' über IPv6 – ''Default Address Selection for Internet Protocol Version 6 (IPv6).'' Network Working Group of the IETF, S. 7 es sei denn im Betriebssystem oder in den benutzten Anwendungen, wie zum Beispiel demWebbrowser, wurde dieses Verhalten anders eingestellt.


# Der Rechner ''X'' sucht in seiner Hosts-Datei, ob die IP-Adresse für  dort hinterlegt ist. Falls dem nicht so ist, fragt er beim DNS-Server nach. Dieser ist entweder fest eingetragen oder wurde per  bzw. DHCPv6 automatisch zugewiesen und hat die Form ''nameserver 192.0.2.23'' oder ''nameserver 2001:db8::23:cafe:affe:42''.
Folgender ''CNAME Resource Record'' in der Zonendatei der Domain „example.org.“ definiert: Der Name „de.example.org.“ verweist auf den Namen „rr.example.net.“.
# Hat der DNS-Server von Rechner ''X'' eine IP-Adresse für den angefragten Namen zwischengespeichert, antwortet er damit und die Anfrage kommt zum Ende siehe letzter Punkt. Andernfalls fragt er einen der 13 Root-Nameserver nach .
de          3600  IN  CNAME  rr.example.net.
# Der Root-Nameserver findet heraus, dass die Auflösung dieses Namens in der  ''AAAA Resource Record|AAAA' bzw. ' zum DNS-Server von Rechner ''X''.
# Nun fragt der DNS-Server von Rechner ''X'' einen der Nameserver für org.“-Domains nach .
# Der org.“-Nameserver sendet ihm die Namen der Nameserver (und deren IP-Adressen, sofern sie zur selben Top-Level-Domain gehören) für die Zone „wikipedia.org.“.
# Anschließend fragt der DNS-Server von Rechner ''X'' einen .“-Nameserver wie die IP-Adresse des Namens „de.wikipedia.org.“ ist.
# Mit dieser Adresse wird an den DNS-Server von Rechner ''X'' geantwortet und der …
# … sendet sie an den Rechner ''X'', welcher nun zum Beispiel seine -Anfragen an die IP-Adresse von . senden kann.


== A-Records ==
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 <code>203.0.113.232</code> zugewiesen.
stehen für einen Hosteintrag z.B. www. und verweisen auf eine IP Adresse eines Servers z.B. Webserver.
rr          600    IN  CNAME  rr.esams
rr.esams    3600  IN  A      203.0.113.232


Beispiel: Für die Domain deinedomain.com ist ein A-Record gesetzt, der auf die IP Adresse 77.244.243.2 zeigt.
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.


== AAAA ==
=== Resolver ===
steht für die gleiche Art von Eintrag wie für den „normalen“ „A“ Record, dieser Eintrag ist jedoch für die Verwendung von IPv6 Adressen vorgesehen. Bei Verwendung von IPv6 hat dieser Eintrag gegenüber dem normalen "A" Eintrag Priorität.
[[Datei:DnsAufloesungDarstellung.png|mini|500px|DNS-Auflösung]]
Beispiel: Für die Domain deinedomain.com ist ein AAAA-Record gesetzt, der auf die IPv6 Adresse f3b0:1:cb3a:b4b0:7872:5ef9:93bb:e7a2 zeigt.
; Programme Prüfung der Namensauflösung sind [[dig]] oder [[nslookup]]


== ALIAS/ANAME Records ==
; Resolver sind einfach aufgebaute Software-Module, die auf dem Rechner eines DNS-Teilnehmers installiert sind und die Informationen von Nameservern abrufen können.
haben den gleichen Zweck wie CNAME Records, sind allerdings technisch anders aufgebaut. Es geht darum der Domain über einen Hostnamen eine IP zuzuordnen. Sie ermöglichen z.B. den Root Record in der Domain auf einen Zielhostnamen zu verweisen.
* Sie bilden die Schnittstelle zwischen Anwendung und Nameserver.
Beispiel: Für die Domain deinedomain.com ist ein ALIAS-Record gesetzt, der auf den Hostname www.deinedomain.com zeigt.
* 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.


== CNAME ==
; Resolver arbeiten rekursiv oder iterativ


Dieser DNS Eintrag wird eingesetzt, wenn statt einer IP-Adresse auf den Hostname verwiesen werden soll. CNAME Einträge können im Gegensatz zu ALIAS/ANAME Einträgen nur mit Subdomains verwendet werden.
'''rekursiv'''
Beispiel: Für die Subdomain test.deinedomain.com ist ein CNAME-Record gesetzt, der auf den Hostname www.deinedomain.com zeigt.
 
== MX Records ==
 
sind dafür zuständig einer Domain einen oder mehrere Mailserver mit Priorität (10, 20, 30 etc.) anzugeben. Der niedrigste Wert steht für den ersten zu verwendenden Mailserver.
 
Beispiel: Für die Domain deinedomain.com ist ein MX Eintrag gesetzt, der auf den easyname Mailserver mx01.easyname.eu zeigt.
NS-Records
 
== NS Records ==
 
werden verwendet um für eine einzelne Subdomain einen Nameserver festzulegen
 
Beispiel: Für die Subdomain test.deinedomain.com ist ein NS Eintrag gesetzt, der auf den easyname Nameserver ns1.easyname.eu zeigt.
 
== SRV-Records ==
 
ermöglichen die Definition zur Verfügbarkeit von unter einer Domain angebotenen IP-basierter Dienste und werden für die Verwendung bestimmter Dienste und Anwendungen wie beispielsweise SIP/VoIP oder XMPP (Office 365, Jabber, Instant Messaging, etc) benötigt. Du kannst über einen SRV Eintrag bei uns auch den Port sowie das Protokoll angeben.
Beispiel: Für _sip._tls.deinedomain.com ist ein SRV Eintrag gesetzt um den SIP Dienst zu verwenden mit dem TLS Protokoll. Dieser Eintrag zeigt auf den Hostname 443 sipdir.online.lync.com.
 
== TXT-Records ==
 
enthalten frei wählbaren Text. Auf einigen Systemen dient der Inhalt dazu, Verwaltungsdaten zu kodieren. TXT-Records werden auch benutzt um einen SPF Eintrag zu erstellen.
 
Beispiel: Für die Domain deinedomain.com ist ein TXT Eintrag gesetzt mit folgendem Inhalt:"v=spf1 include:spf.easyname.com -all"
 
[[Kategorie:DNS]]
 
== Installation ==
== Anwendungen ==
=== Fehlerbehebung ===
== Syntax ==
=== Optionen ===
=== Parameter ===
=== Umgebungsvariablen ===
=== Exit-Status ===
== Konfiguration ==
=== Dateien ===
== Sicherheit ==
 
== Siehe auch ==
=== Dokumentation ===
==== RFC ====
[[Request for Comments|RFCs]]
# RFC 1034 – ''Domain Names – Concepts and Facilities''
# RFC 1035 – ''Domain Names – Implementation and Specification''
# RFC 2181 – ''Clarifications to the DNS Specification''
# RFC 2782 – ''A DNS RR for specifying the location of services (DNS SRV)''
 
==== Man-Pages ====
==== Info-Pages ====
=== Links ===
==== Einzelnachweise ====
<references />
==== Projekt ====
==== Weblinks ====
* [http://multicastdns.org/ Multicast DNS]
* Funktionsweise und Verwaltung des DNS als [http://www.dubberly.com/maps/domain-name-system.html Poster]
* Beiträge des [[Chaos Computer Club]]s
** Zensur durch DNS-Server: [http://www.ccc.de/censorship/dns-howto/ DNS Howto]
** 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)
 
== Testfragen ==
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 1''
<div class="mw-collapsible-content">'''Antwort1'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 2''
<div class="mw-collapsible-content">'''Antwort2'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 3''
<div class="mw-collapsible-content">'''Antwort3'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 4''
<div class="mw-collapsible-content">'''Antwort4'''</div>
</div>
<div class="toccolours mw-collapsible mw-collapsed">
''Testfrage 5''
<div class="mw-collapsible-content">'''Antwort5'''</div>
</div>
 
[[Kategorie:Entwurf]]
 
 
 
= TMP =
Das Domain Name System (DNS) spielt eine essentielle Rolle in IP-basierten Netzwerken.
* Seine Hauptaufgabe ist die Beantwortung von Anfragen zur Namensauflösung.
 
== Überblick ==
* 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.
* Das DNS funktioniert ähnlich wie eine Telefonauskunft.
** Der Benutzer kennt die Domain (den für Menschen merkbaren Namen eines Rechners im Internet) – zum Beispiel <code>itw-berlin.net</code>.
** 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>88.99.60.173</code> oder eine IPv6-Adresse wie <code>2a01:4f8:10a:cec::2</code>, und führt so zum richtigen Rechner.
* 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.
** 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 <code>www.itw-berlin.net</code> in die IPv4-Adresse <code>88.99.60.173</code> und die IPv6-Adresse <code>2a01:4f8:10a:cec::2</code> auf.
* Mit dem DNS ist auch eine umgekehrte Auflösung von IP-Adressen in Namen ('''reverse lookup''') 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 [https://www.rfc-editor.org/rfc/rfc882.html RFC 882] und [https://www.rfc-editor.org/rfc/rfc883.html RFC 883] [https://de.wikipedia.org/wiki/Request_for_Comments (RFC = Request for Comments)] beschrieben.
** Beide wurden inzwischen von [https://www.rfc-editor.org/rfc/rfc1034.html RFC 1034] und [https://www.rfc-editor.org/rfc/rfc1035.html RFC 1035] abgelöst und durch zahlreiche weitere Standards ergänzt.
 
== Komponenten ==
=== Domain-Namensraum ===
* Baumförmige Struktur
* Blätter und Knoten werden als Labels bezeichnet
* Kompletter Domainname besteht aus einer Verkettung aller Labels eines Pfades
* Labels werden durch einen Punkt getrennt
* Voll qualifizierte Domainnamen enden mit einem Punkt
 
[[Datei:Schematische Darstellung DNS Hierarchie.png|DNS-Hierarchie]]
 
===Fully Qualified Domain Name (FQDN)===
Der vollständige Name einer Domain wird als ihr Fully Qualified Domain Name (FQDN) bezeichnet.
* Der Domain-Name ist in diesem Fall eine absolute Adresse und darf inklusive aller Punkte maximal 255 Bytes lang sein.
 
Der FQDN <code>www.itw-berlin.net.</code> ergibt sich durch:
3rd-level-label. | 2nd-level-label. | Top-Level-Domain. | root-label
------------------------------------------------------------------
www.            | itw-berlin.      | net              |
 
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.
 
<code>.net.itw-berlin.www</code>
root-label. | Top-Level-Domain. | 2nd-level-label. | 3rd-level-label.
------------------------------------------------------------------
            | net              | .itw-berlin      | .www
 
===Nameserver===
*bietet Namensauflösung an
**autoritativ
***verantwortlich für eine Zone
***wird als gesichert angesehen
***redundant
****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 einzelnen 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 ausserhalb liegenden Namensräumen, Weiterleitung an fest konfigurierten Nameserver
**oder Auflösung über die Root-Nameserver (ausschliesslich Beantwortung iterativer Anfragen)
 
=== Resolver ===
[[Datei:DnsAufloesungDarstellung.png|DNS-Auflösung]]
* 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]] und übermittelt sie an einen normalerweise fest zugeordneten Nameserver.
** Ein Resolver arbeitet entweder rekursiv oder iterativ.
 
====rekursiv====
* Resolver schickt Nameserver die Anfrage
* 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]])
* 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
* am Ende erhält der Resolver die endgültige ANtwort


====iterativ====
'''iterativ'''
* Resolver erhält entweder die Antwort vom ersten Nameserver oder den Verweis zum nächsten Nameserver
* 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
* in diesem Fall fragt der Resolver den nächsten Nameserver
* dies geschieht so lange, bis er eine Antwort hat
* dies geschieht so lange, bis er eine Antwort hat
* Bekannte Programme zur Überprüfung der Namensauflösung sind <code>nslookup</code> und <code>dig</code>.


=== Protokoll ===
=== Protokoll ===
* DNS-Anfragen normalerweise per <code>UDP-Port 53</code> zum Namensserver
* DNS-Anfragen normalerweise per <code>UDP-Port 53</code> zum Namensserver
* bei DNS-UDP-Packeten grösser als 512 Bytes werden die Antworten abgeschnitten
* bei DNS-UDP-Paketen grösser als 512 Bytes werden die Antworten abgeschnitten
* Clienst wird dann per Truncate-Flag informiert und kann Anfrage per <code>TCP-Port 53</code> wiederholen
* 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.
* Zonentransfers immer über <code>TCP-Port 53</code>, Auslösung aber per UDP.


[[Kategorie:DNS]]
[[Kategorie:Domain Name System]]
 
= Wikipedia =
{| class="wikitable infobox float-right"
|-
! style="background:#FFC0FF" colspan="2" font="size:larger"| Domain Name System (DNS)
|-
| '''Familie:'''
| [[Internetprotokollfamilie]]
|-
| '''Einsatzgebiet:'''
| [[Namensauflösung]]
|-
| '''Ports:''' ||
53/UDP<br />53/TCP<br />853/TCP (nur mit TLS, RFC 7858)<br />853/UDP (nur mit [[Datagram Transport Layer Security|DTLS]], RFC 8094)
|-
|colspan="2"|
{{Netzwerk-TCP-UDP-IP-Anwendungsprotokoll|DNS|2=class="center"}}
|-
| '''Standards:'''
|
RFC 1034 (1987)<br /><hr />
RFC 1035 (1987)
|}
 
Das '''Domain Name System''', deutsch '''Domain-Namen-System'''<ref>Artikel 4 Nr. 14 der {{EU-Richtlinie|2016|1148}}</ref>, ('''DNS''') ist ein hierarchisch unterteiltes Bezeichnungssystem in einem meist [[Internet Protocol|IP]]-basierten [[Rechnernetz|Netz]] zur Beantwortung von Anfragen zu Domain-Namen ([[Namensauflösung]]).
 
Das DNS funktioniert ähnlich wie eine Telefonauskunft.
* 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.
* 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.
 
== Überblick ==
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.
* Für lokale Anforderungen –&nbsp;etwa innerhalb eines Firmennetzes&nbsp;– 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 (''{{lang|en|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 <code>192.0.32.10</code>.
* 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 <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 –&nbsp;etwa von Web-Servern&nbsp;– 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]] (''{{lang|en|Load Balancing}}'') realisiert werden.
 
Mit dem DNS ist auch eine umgekehrte Auflösung von IP-Adressen in Namen (''[[Reverse DNS|{{lang|en|reverse lookup}}]]'') 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: [[#Erweiterungen|Erweiterung des DNS]]).
 
DNS zeichnet sich aus durch:
* dezentrale Verwaltung,
* hierarchische Strukturierung des Namensraums in Baumform,
* Eindeutigkeit der Namen,
* Erweiterbarkeit.


== Komponenten ==
== Komponenten ==
=== Domain-Namensraum ===
=== Domain-Namensraum ===
[[Datei:Dns-raum.svg|mini|Schematische Darstellung der DNS-Hierarchie]]
[[Datei:Dns-raum.svg|mini|500px|Schematische Darstellung der DNS-Hierarchie]]
Der Domain-Namensraum hat eine baumförmige Struktur.  
Der Domain-Namensraum hat eine baumförmige Struktur.  
* Die [[Blatt (Graphentheorie)|Blätter]] und [[Knoten (Graphentheorie)|Knoten]] des Baumes werden als Labels bezeichnet.  
* 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.
* 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.  
Labels sind Zeichenketten, die jeweils mindestens ein [[Oktett (Informatik)|Byte]] und maximal 63 Bytes lang sind (RFC 2181, Abschnitt „11. Name syntax“).  
* Name syntax“).  
* Einzelne Labels werden durch Punkte voneinander getrennt.  
* 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).  
* 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|{{lang|en|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.
* 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.  
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 ''{{lang|en|root}}'').
* 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.
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.  
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.  
Zeile 374: Zeile 228:
=== Nameserver ===
=== Nameserver ===
Ein '''Nameserver''' ist ein [[Server (Software)|Server]], der [[Namensauflösung]] anbietet.  
Ein '''Nameserver''' ist ein [[Server (Software)|Server]], der [[Namensauflösung]] anbietet.  
* Namensauflösung ist das Verfahren, das es ermöglicht, Namen von Rechnern bzw.  
* Namensauflösung ist das Verfahren, das es ermöglicht, Namen von Rechnern bzw.&nbsp;
* Diensten in eine vom Computer bearbeitbare Adresse aufzulösen (z.&nbsp;B. ''www.wikipedia.org'' in ''91.198.174.192'').
* Diensten in eine vom Computer bearbeitbare Adresse aufzulösen (z.&nbsp;B.&nbsp;''www.wikipedia.org'' in ''91.198.174.192'').


Die meisten Nameserver sind Teil des Domain Systems, das auch im [[Internet]] benutzt wird.
Die meisten Nameserver sind Teil des Domain Systems, das auch im [[Internet]] benutzt wird.
Zeile 417: Zeile 271:
* Sie wären sonst mit der Anzahl der Anfragen schlicht überlastet.
* Sie wären sonst mit der Anzahl der Anfragen schlicht überlastet.


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 [[Internetprotokollfamilie]] verdrängt.
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.
 
=== Resolver ===
[[Datei:Dns-abfrage.svg|mini|Schematische Darstellung der rekursiven und iterativen DNS-Abfrage]]
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]] und übermittelt sie an einen normalerweise fest zugeordneten Nameserver.
* Ein Resolver arbeitet entweder rekursiv oder iterativ.
 
Im rekursiven Modus schickt der Resolver eine rekursive Anfrage an den ihm zugeordneten Nameserver.
* Hat dieser die gewünschte Information nicht im eigenen Datenbestand, so kontaktiert der Nameserver weitere Server – und zwar solange, bis er eine Antwort erhält; entweder positive, oder von einem autoritativen Server eine negative.
* Rekursiv arbeitende Resolver überlassen also die Arbeit zur vollständigen Auflösung ihrem Nameserver.
 
Bei einer iterativen Anfrage bekommt der Resolver entweder den gewünschten [[Resource Record]] oder einen Verweis auf weitere Nameserver, die er als Nächstes fragt.
* Der Resolver hangelt sich so von Nameserver zu Nameserver, bis er von einem eine verbindliche Antwort erhält.
 
Die so gewonnene Antwort übergibt der Resolver an das Programm, das die Daten angefordert hat, beispielsweise an den [[Webbrowser]]. Übliche Resolver von Clients arbeiten ausschließlich rekursiv; sie werden dann auch als [[Stub (Programmierung)|Stub]]-Resolver bezeichnet.
* Nameserver besitzen in der Regel eigene Resolver.
* Diese arbeiten gewöhnlich [[Iteration|iterativ]].
 
Bekannte Programme zur Überprüfung der Namensauflösung sind [[nslookup]], ''[[Host (Programm)|host]]'' und [[Dig (Software)|dig]].
{{Siehe auch|Rekursive und iterative Namensauflösung}}
 
=== 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.
 
== 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.
 
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''.
* Von großer Bedeutung sind sieben Record-Typen:
 
* Mit dem ''[[SOA Resource Record]]'' werden Parameter der [[Zone (DNS)|Zone]], wie z.&nbsp;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 [[Internetdienste|Dienst]] im Internet, nämlich die E-Mailzustellung mittels [[Simple Mail Transfer Protocol|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 [[Spam|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 <code>203.0.113.232</code> 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 <code>203.0.113.232</code> senden.
 
== Auflösung eines DNS-Requests ==
[[Datei:DNS-query-to-wikipedia.svg|mini|Die Namensauflösung als [[Programmablaufplan|Flussdiagramm]]]]
Angenommen, ein Rechner ''X'' will eine Verbindung zu „de.wikipedia.org.“ (Rechner ''Y'') aufbauen.
* Dazu braucht er dessen IP-Adresse.
* In den folgenden Schritten wird beschrieben, wie dies ablaufen könnte.
* Falls der Rechner ''X'' IPv6-fähig ist, läuft der Vorgang zunächst für [[IPv6]] (Abfrage von ''[[AAAA Resource Record]]'') und sofort danach für [[IPv4]] (Abfrage von ''[[A Resource Record]]'') ab.
* Dabei kann eine Anfrage nach einer IPv6-Adresse mittels IPv4-Übertragung an einen IPv4-DNS-Server gerichtet werden.
* Falls am Ende eine IPv6- und eine IPv4-Adresse für Rechner ''Y'' ermittelt werden, wird in der Regel laut der ''Default Policy Table'' in RFC 6724 die Kommunikation zwischen ''X'' und ''Y'' über IPv6 bevorzugt,<ref name="ietf">[[RFC:6724#page-7|RFC 6724]] – ''Default Address Selection for Internet Protocol Version 6 (IPv6).'' Network Working Group of the IETF, S. 7 (Stand September 2012) {{" |lang=en |Text=Another effect of the default policy table is to prefer communication using IPv6 addresses to communication using IPv4 addresses, if matching source addresses are available.}}</ref> es sei denn im [[Betriebssystem]] oder in den benutzten Anwendungen, wie zum Beispiel dem [[Webbrowser]], wurde dieses Verhalten anders eingestellt.
 
# Der Rechner ''X'' sucht in seiner Hosts-Datei, ob die IP-Adresse für „de.wikipedia.org“ dort hinterlegt ist.
* Falls dem nicht so ist, fragt er beim DNS-Server nach.
* Dieser ist entweder fest eingetragen oder wurde per [[Dynamic Host Configuration Protocol|DHCP]] bzw. [[DHCPv6]] automatisch zugewiesen und hat die Form ''nameserver 192.0.2.23'' oder ''nameserver 2001:db8::23:cafe:affe:42''.
# Hat der DNS-Server von Rechner ''X'' eine IP-Adresse für den angefragten Namen zwischengespeichert, antwortet er damit und die Anfrage kommt zum Ende (siehe letzter Punkt).
* Andernfalls fragt er einen der 13 [[Root-Nameserver]] nach „de.wikipedia.org.“.
# Der Root-Nameserver findet heraus, dass die Auflösung dieses Namens in der „org.“-Zone weitergeht und sendet die Namen und die IP-Adressen der „org.“-Nameserver (''[[NS Resource Record]]s'' und deren ''[[AAAA Resource Record|AAAA]]'' bzw. ''[[A Resource Record]]s'') zum DNS-Server von Rechner ''X''.
# Nun fragt der DNS-Server von Rechner ''X'' einen der Nameserver für „org.“-Domains nach „de.wikipedia.org.“.
# Der „org.“-Nameserver sendet ihm die Namen der Nameserver (und deren IP-Adressen, sofern sie zur selben Top-Level-Domain gehören) für die Zone „wikipedia.org.“.
# Anschließend fragt der DNS-Server von Rechner ''X'' einen „wikipedia.org.“-Nameserver wie die IP-Adresse des Namens „de.wikipedia.org.“ ist.
# Mit dieser Adresse wird an den DNS-Server von Rechner ''X'' geantwortet und der&nbsp;…
# … sendet sie an den Rechner ''X'', welcher nun zum Beispiel seine [[Hypertext Transfer Protocol|HTTP]]-Anfragen an die IP-Adresse von „de.wikipedia.org.“ senden kann.
 
=== Beispiel Namensauflösung ===
Im folgenden, kommentierten Beispiel wird zum Namen „www.heise.de.“ die IPv4-Adresse mit Hilfe des Resolver-Tools [[Dig (Software)|dig]] bestimmt. „<code>+trace</code>“ bedeutet, dass die einzelnen Antworten auf iterative Anfragen an die Nameserver-Hierarchie angegeben werden, „<code>+additional</code>“ sorgt dafür, dass zusätzlich dargestellt wird, dass die Nameserver für Delegierungen nicht nur ''NS Resource Records'' verwalten, sondern teilweise auch deren IP-Adressen in Form von ''A'' oder ''AAAA Resource Records'' kennen und mit ausliefern, „<code>-t A</code>“ schließlich verlangt nach dem ''A Resource Record'', also der IPv4-Adresse.
* Es zeigt sich, dass nacheinander vier Nameserver befragt werden müssen, um zur Antwort zu gelangen:
 
$ dig +trace +additional -t A www.heise.de.
 
; <<>> DiG 9.5.1-P3 <<>> +trace +additional -t A www.heise.de.
;; global options:  printcmd
.                      6086    IN      NS      B.ROOT-SERVERS.NET.
.                      6086    IN      NS      D.ROOT-SERVERS.NET.
.                      6086    IN      NS      J.ROOT-SERVERS.NET.
.                      6086    IN      NS      G.ROOT-SERVERS.NET.
.                      6086    IN      NS      K.ROOT-SERVERS.NET.
.                      6086    IN      NS      C.ROOT-SERVERS.NET.
.                      6086    IN      NS      M.ROOT-SERVERS.NET.
.                      6086    IN      NS      I.ROOT-SERVERS.NET.
.                      6086    IN      NS      H.ROOT-SERVERS.NET.
.                      6086    IN      NS      E.ROOT-SERVERS.NET.
.                      6086    IN      NS      F.ROOT-SERVERS.NET.
.                      6086    IN      NS      A.ROOT-SERVERS.NET.
.                      6086    IN      NS      L.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET.    6644    IN      A      128.8.10.90
J.ROOT-SERVERS.NET.    10421  IN      A      192.58.128.30
J.ROOT-SERVERS.NET.    1289    IN      AAAA    2001:503:c27::2:30
G.ROOT-SERVERS.NET.    10940  IN      A      192.112.36.4
K.ROOT-SERVERS.NET.    4208    IN      A      193.0.14.129
K.ROOT-SERVERS.NET.    7277    IN      AAAA    2001:7fd::1
C.ROOT-SERVERS.NET.    6126    IN      A      192.33.4.12
M.ROOT-SERVERS.NET.    3274    IN      A      202.12.27.33
M.ROOT-SERVERS.NET.    7183    IN      AAAA    2001:dc3::35
I.ROOT-SERVERS.NET.    9788    IN      A      192.36.148.17
H.ROOT-SERVERS.NET.    10421  IN      A      128.63.2.53
H.ROOT-SERVERS.NET.    13739  IN      AAAA    2001:500:1::803f:235
E.ROOT-SERVERS.NET.    11125  IN      A      192.203.230.10
F.ROOT-SERVERS.NET.    9973    IN      A      192.5.5.241
;; Received 500 bytes from 192.168.2.1#53(192.168.2.1) in 50 ms
 
<code>192.168.2.1</code> (siehe letzte Zeile) ist der eingetragene Nameserver des abfragenden Rechners, welcher auf die [[Root-Nameserver]] verweist, die alle weiter via IPv4 befragt werden können, einige zusätzlich auch mittels IPv6.
* Die Root-Nameserver verwalten die Wurzel-Zone (Zone, die die Nameserver für .org, .de, .com und andere Top Level Domains enthält) der Namensauflösung, dargestellt durch einen Punkt.
* Die IP-Adressen der Root-Nameserver ändern sich sehr selten und müssen allen Nameservern bekannt sein, sofern sie das Internet betreffende Anfragen beantworten. (Diese IP-Adressen können beispielsweise in einer als „Root Hints“ bezeichneten Textdatei mitgeliefert werden.)
 
de.                    172800  IN      NS      F.NIC.de.
de.                    172800  IN      NS      L.DE.NET.
de.                    172800  IN      NS      S.DE.NET.
de.                    172800  IN      NS      Z.NIC.de.
de.                    172800  IN      NS      A.NIC.de.
de.                    172800  IN      NS      C.DE.NET.
A.NIC.de.              172800  IN      A      194.0.0.53
C.DE.NET.              172800  IN      A      208.48.81.43
F.NIC.de.              172800  IN      A      81.91.164.5
F.NIC.de.              172800  IN      AAAA    2001:608:6:6::10
L.DE.NET.              172800  IN      A      89.213.253.189
S.DE.NET.              172800  IN      A      195.243.137.26
Z.NIC.de.              172800  IN      A      194.246.96.1
Z.NIC.de.              172800  IN      AAAA    2001:628:453:4905::53
;; Received 288 bytes from 192.36.148.17#53(I.ROOT-SERVERS.NET) in 58 ms
 
Aus den 13 genannten Root-Nameservern wurde zufällig „I.ROOT-SERVERS.NET.“ ausgewählt, um ihm die Frage nach „www.heise.de.“ zu stellen.
* Er antwortete mit sechs Nameservern zur Auswahl, die für die Zone „de.“ verantwortlich sind.
* Auch hier ist bei zwei Servern die Abfrage mittels IPv6 möglich.
 
heise.de.              86400  IN      NS      ns.plusline.de.
heise.de.              86400  IN      NS      ns.heise.de.
heise.de.              86400  IN      NS      ns2.pop-hannover.net.
heise.de.              86400  IN      NS      ns.pop-hannover.de.
heise.de.              86400  IN      NS      ns.s.plusline.de.
ns.s.plusline.de.      86400  IN      A      212.19.40.14
ns.heise.de.            86400  IN      A      193.99.145.37
ns.plusline.de.        86400  IN      A      212.19.48.14
ns.pop-hannover.de.    86400  IN      A      193.98.1.200
;; Received 220 bytes from 81.91.164.5#53(F.NIC.de) in 52 ms
 
Aus den sechs genannten Nameservern wurde zufällig „F.NIC.de.“ ausgewählt, um Näheres über „www.heise.de.“ zu erfahren.
* Er beantwortet die Anfrage mit fünf möglichen Delegierungen.
* Unter anderem mit einer Delegierung auf den Server „ns.heise.de.“.
* Diese Information würde ohne den dazugehörigen ''A Resource Record'', auf <code>193.99.145.37</code> zeigend, auf demselben Server nichts helfen, denn der Name liegt in der Zone „heise.de.“, die er selbst verwaltet.
* Man spricht bei dieser Art von Information auch von ''Glue Records'' (von engl. ''glue'', kleben).
* Sollte der Server „ns2.pop-hannover.net.“ für den nächsten Schritt ausgewählt werden, so wäre in einer gesonderten Namensauflösung zunächst dessen IP-Adresse zu bestimmen, da diese hier nicht mitgesendet wurde.
 
www.heise.de.          86400  IN      A      193.99.144.85
heise.de.              86400  IN      NS      ns.pop-hannover.de.
heise.de.              86400  IN      NS      ns.plusline.de.
heise.de.              86400  IN      NS      ns2.pop-hannover.net.
heise.de.              86400  IN      NS      ns.s.plusline.de.
heise.de.              86400  IN      NS      ns.heise.de.
ns.heise.de.            86400  IN      A      193.99.145.37
ns.pop-hannover.de.    10800  IN      A      193.98.1.200
ns2.pop-hannover.net.  86400  IN      A      62.48.67.66
;; Received 220 bytes from 193.98.1.200#53(ns.pop-hannover.de) in 4457 ms
 
Aus den fünf genannten Nameservern wurde zufällig „ns.pop-hannover.de.“ herangezogen, um die Frage nach „www.heise.de.“ zu beantworten.
* Die Antwort lautet <code>193.99.144.85</code>.
* Damit ist die Anfrage am Ziel angelangt.
* Es werden auch wieder dieselben Nameserver als verantwortlich für „heise.de.“ genannt, ohne also auf andere Nameserver zu verweisen.
 
=== Beispiel Reverse Lookup ===
Für den ''Reverse Lookup'', also das Auffinden eines Namens zu einer IP-Adresse, wandelt man die IP-Adresse zunächst formal in einen Namen um, für den man dann das DNS nach einem ''PTR Resource Record'' befragt.
* Da die Hierarchie bei IP-Adressen von links nach rechts spezieller wird (siehe [[Subnetz]]), beim DNS aber von rechts nach links, dreht man beim ersten Schritt die Reihenfolge der Zahlen um und aus der IPv4-Adresse <code>193.99.144.85</code> wird z.&nbsp;B.
* der Name „<code>85.144.99.193.in-addr.arpa.</code>“ sowie aus der IPv6-Adresse <code>2a02:2e0:3fe:100::6</code> der Name „<code>6.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.e.f.3.0.0.e.2.0.2.0.a.2.ip6.arpa.</code>“ erzeugt. (Dieser Name ist lang, da die implizit enthaltenen Nullen nun wieder explizit genannt werden müssen.)
 
Der ''PTR Resource Record'' für die so umgeformte IPv4-Adresse lässt sich analog zum vorigen Beispiel bestimmen:
 
$ dig +trace +additional -t PTR 85.144.99.193.in-addr.arpa.
 
; <<>> DiG 9.5.1-P3 <<>> +trace +additional -t ptr 85.144.99.193.in-addr.arpa.
;; global options:  printcmd
.                      2643    IN      NS      M.ROOT-SERVERS.NET.
.                      2643    IN      NS      A.ROOT-SERVERS.NET.
.                      2643    IN      NS      B.ROOT-SERVERS.NET.
.                      2643    IN      NS      C.ROOT-SERVERS.NET.
.                      2643    IN      NS      D.ROOT-SERVERS.NET.
.                      2643    IN      NS      E.ROOT-SERVERS.NET.
.                      2643    IN      NS      F.ROOT-SERVERS.NET.
.                      2643    IN      NS      G.ROOT-SERVERS.NET.
.                      2643    IN      NS      H.ROOT-SERVERS.NET.
.                      2643    IN      NS      I.ROOT-SERVERS.NET.
.                      2643    IN      NS      J.ROOT-SERVERS.NET.
.                      2643    IN      NS      K.ROOT-SERVERS.NET.
.                      2643    IN      NS      L.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.    10978  IN      A      198.41.0.4
A.ROOT-SERVERS.NET.    2470    IN      AAAA    2001:503:ba3e::2:30
C.ROOT-SERVERS.NET.    387    IN      A      192.33.4.12
D.ROOT-SERVERS.NET.    2747    IN      A      128.8.10.90
E.ROOT-SERVERS.NET.    7183    IN      A      192.203.230.10
F.ROOT-SERVERS.NET.    14225  IN      AAAA    2001:500:2f::f
H.ROOT-SERVERS.NET.    7950    IN      A      128.63.2.53
H.ROOT-SERVERS.NET.    13245  IN      AAAA    2001:500:1::803f:235
I.ROOT-SERVERS.NET.    6172    IN      A      192.36.148.17
J.ROOT-SERVERS.NET.    7168    IN      A      192.58.128.30
J.ROOT-SERVERS.NET.    13860  IN      AAAA    2001:503:c27::2:30
K.ROOT-SERVERS.NET.    3541    IN      A      193.0.14.129
K.ROOT-SERVERS.NET.    9369    IN      AAAA    2001:7fd::1
L.ROOT-SERVERS.NET.    3523    IN      A      199.7.83.42
;; Received 512 bytes from 192.168.2.1#53(192.168.2.1) in 50 ms
 
193.in-addr.arpa.      86400  IN      NS      ns3.nic.fr.
193.in-addr.arpa.      86400  IN      NS      sec1.apnic.net.
193.in-addr.arpa.      86400  IN      NS      sec3.apnic.net.
193.in-addr.arpa.      86400  IN      NS      sunic.sunet.se.
193.in-addr.arpa.      86400  IN      NS      ns-pri.ripe.net.
193.in-addr.arpa.      86400  IN      NS      sns-pb.isc.org.
193.in-addr.arpa.      86400  IN      NS      tinnie.arin.net.
;; Received 239 bytes from 199.7.83.42#53(L.ROOT-SERVERS.NET) in 170 ms
 
99.193.in-addr.arpa.    172800  IN      NS      auth50.ns.de.uu.net.
99.193.in-addr.arpa.    172800  IN      NS      ns.ripe.net.
99.193.in-addr.arpa.    172800  IN      NS      auth00.ns.de.uu.net.
;; Received 120 bytes from 202.12.28.140#53(sec3.apnic.net) in 339 ms
 
144.99.193.in-addr.arpa. 86400  IN      NS      ns.heise.de.
144.99.193.in-addr.arpa. 86400  IN      NS      ns.s.plusline.de.
144.99.193.in-addr.arpa. 86400  IN      NS      ns.plusline.de.
;; Received 114 bytes from 194.128.171.99#53(auth50.ns.de.uu.net) in 2456 ms
 
85.144.99.193.in-addr.arpa. 86400 IN    PTR    www.heise.de.
144.99.193.in-addr.arpa. 86400  IN      NS      ns.heise.de.
144.99.193.in-addr.arpa. 86400  IN      NS      ns.s.plusline.de.
144.99.193.in-addr.arpa. 86400  IN      NS      ns.plusline.de.
ns.heise.de.            86400  IN      A      193.99.145.37
;; Received 148 bytes from 193.99.145.37#53(ns.heise.de) in 4482 ms
 
Die Antwort lautet also „www.heise.de.“.
* Es ist jedoch weder notwendig, dass jeder IP-Adresse ein Name zugeordnet ist, noch müssen Hin- und Rückauflösung einander entsprechen.
* Die Auflösung beginnt wieder mit dem Verweis auf die Root-Nameserver und die Delegierungen finden offensichtlich an den durch Punkte markierten Grenzen zwischen den Zahlen statt.
* Man sieht in dem Beispiel jedoch auch, dass nicht an jedem Punkt in einem Namen delegiert werden muss.
 
== Erweiterungen ==
Da sich das DNS als zuverlässig und flexibel erwiesen hat, wurden im Laufe der Jahre mehrere größere Erweiterungen eingeführt.
* Ein Ende dieses Trends ist nicht absehbar.
 
=== Dynamisches DNS ===
Im klassischen DNS ist es aufwendig, einem Namen eine neue IP-Adresse zuzuordnen.
* Das zugehörige Zonenfile muss (meist manuell) geändert und der Nameserver neu geladen werden.
* Zeitliche Verzögerungen bis hin zu mehreren Tagen sind üblich.
* Mit [[Dynamisches DNS|dynamischem DNS]] sind Änderungen durch Senden einer Aktualisierungsanfrage mit geringer Zeitverzögerung möglich.
 
Das Dynamische DNS gilt als Sicherheitsrisiko, da ohne spezielle Vorkehrungen jedermann DNS-Einträge löschen oder verändern kann.
* Im Zusammenhang mit [[Dynamic Host Configuration Protocol|DHCP]] ist Dynamisches DNS nahezu zwingend erforderlich, da einem User häufig neue IP-Adressen zugewiesen werden.
* Der DHCP-Server sendet dazu bei jeder Adressänderung eine entsprechende Mitteilung an den Nameserver.
 
=== Internationalisierung ===
{{Hauptartikel|Internationalisierter Domainname}}
 
Bisher waren die Labels auf [[alphanumerische Zeichen]] und das Zeichen ‚-‘ eingeschränkt.
* Möglich, aber nicht standardkonform, ist bei Subdomains zudem ‚_‘.
* Dieser begrenzte Zeichenvorrat hängt vor allem damit zusammen, dass das DNS (wie auch das Internet ursprünglich) in den [[Vereinigte Staaten|USA]] entwickelt wurde.
Damit waren in vielen Ländern gebräuchliche [[Schriftzeichen]] (im deutschen Sprachraum zum Beispiel die [[Umlaut]]e ä, ö und ü sowie ß) oder Zeichen aus komplett anderen Schriftsystemen (zum Beispiel Chinesisch) ursprünglich nicht in Domainnamen möglich.
 
Ein mittlerweile etablierter Ansatz zur Vergrößerung des Zeichenvorrats ist die 2003 in RFC 3490 eingeführte und 2010 mit RFC 5890 aktualisierte Internationalisierung von Domainnamen (IDNA).
* Um das neue System mit dem bisherigen kompatibel zu halten, werden die erweiterten Zeichensätze mit den bislang zulässigen Zeichen kodiert.
* Die erweiterten Zeichensätze werden dabei zunächst normalisiert, um unter anderem Großbuchstaben auf Kleinbuchstaben abzubilden, und anschließend per [[Punycode]] auf einen ASCII-kompatiblen String abgebildet.
* IDNA erfordert eine Anpassung der Netzwerkanwendungen (zum Beispiel [[Webbrowser]]), die Nameserver-Infrastruktur (Server, Resolver) braucht jedoch nicht verändert zu werden.
* Im deutschsprachigen Raum können seit März 2004 deutsche, liechtensteinische, österreichische und schweizerische Domains (.de, .li, .at und .ch) mit Umlauten registriert und verwendet werden.
* Auch bei anderen [[Top-Level-Domain]]s, insbesondere im asiatischen Raum, ist die Verwendung von internationalisierten Domainnamen möglich.
 
=== Extended DNS ===
1999 beschrieb [[Paul Vixie]] im RFC 2671 einige kleinere, abwärtskompatible Erweiterungen am Domain Name System, die als [[Extended DNS]] Version 0 bezeichnet werden.
* Durch Einsatz eines Pseudo-Records als Header-Erweiterung kann der Anfragende zusätzliche Optionen setzen.
* Insbesondere kann er übermitteln, dass er UDP-Antworten größer als 512 Bytes entgegennehmen kann. [[DNSSEC]]-fähige Server und Resolver müssen EDNS beherrschen.
 
=== Verwaltung von Telefonnummern ===
Eine weitere aktuelle Erweiterung des DNS stellt [[Telephone Number Mapping|ENUM]] (RFC 2916) dar.
* Diese Anwendung ermöglicht die Adressierung von [[Internet]]-Diensten über Telefonnummern, also das „Anwählen“ von per Internet erreichbaren Geräten mit dem aus dem Telefonnetz bekannten Nummerierungsschema.
Aus dem breiten Spektrum der Einsatzmöglichkeiten bietet sich insbesondere die Verwendung für [[Voice over IP]] Services an.
 
=== RFID-Unterstützung ===
Mit der [[RFID]] können auf speziellen RFID-Etiketten abgelegte [[Identifikator|IDs]] – so genannte [[Elektronischer Produktcode|elektronische Produktcodes]] oder EPCs – berührungslos gelesen werden.
* Das DNS kann dazu verwendet werden, zu einer ID den Server zu ermitteln, der Daten über das zugehörige Objekt enthält.
* Der [[Object Naming Service]] ONS wandelt dazu den EPC in einen DNS-Namen um und erfragt per Standard-DNS einen oder mehrere Naming Authority Pointer NAPTR.
 
=== Spam-Abwehr ===
Zur Filterung von [[Spam]]-Mails überprüfen viele [[Mailserver]] den DNS-Eintrag des sendenden Mailservers routinemäßig mit Hilfe des [[Reverse DNS]] Lookup.
* Dieser muss nicht nur auch vorwärts wieder korrekt auflösen und auf die IP-Adresse des sendenden Systems zeigen ([[Forward-confirmed reverse DNS]]), sondern muss auch dem im SMTP-Protokoll genannten HELO-Hostnamen des sendenden Systems entsprechen.
 
Mittels [[Sender Policy Framework]] wird versucht, den Versand von gefälschten Absendern durch Dritte möglichst zu unterbinden.
* Zu jeder Mail-Domain wird dabei über einen speziellen [[SPF Resource Record]] explizit aufgelistet, von welchen Servern und IP-Netzen mit E-Mails dieser Domain zu rechnen ist.
* SPF steht jedoch wegen zahlreicher technischer Schwierigkeiten, beispielsweise bei Weiterleitungen, in der Kritik.
 
Auch der Anti-Spam-Mechanismus [[DomainKeys]] (DKIM) greift auf Einträge im DNS zurück, indem sendende Mailserver in DNS-TXT-Records ihren Public-Key veröffentlichen, mit dem die Signatur ihrer ausgehenden E-Mails verifiziert werden kann.
 
=== Sonstiges ===
Neben den IP-Adressen können DNS-Namen auch [[Integrated Services Digital Network|ISDN]]-Nummern, [[X.25]]-Adressen, [[Asynchronous Transfer Mode|ATM]]-Adressen, [[Öffentlicher Schlüssel|öffentliche Schlüssel]], Text-Zeilen usw.
* zugeordnet werden.
* In der Praxis sind derartige Anwendungsfälle aber die Ausnahme.


== 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.
== Sicherheit ==
Das DNS ist ein zentraler Bestandteil einer vernetzten IT-Infrastruktur.
* Eine Störung kann erhebliche Kosten nach sich ziehen und eine Verfälschung von DNS-Daten Ausgangspunkt von Angriffen sein.
=== Angriffsformen ===
Hauptziel von DNS-Angriffen ist es, durch Manipulation DNS-Teilnehmer auf falsche Webseiten zu lenken, um anschließend Passwörter, PINs, Kreditkartennummern usw.
* zu erhalten.
* In seltenen Fällen wird versucht, den Internet-DNS durch [[Denial of Service|Denial-of-Service]]-Attacken komplett auszuschalten und so das Internet lahmzulegen.
* Außerdem kann das DNS dazu verwendet werden, gezielte Angriffe auf Einzelpersonen oder Unternehmen zu intensivieren.
==== DDoS-Angriff auf Nameserver ====
Bei einem [[Distributed Denial of Service|Distributed-Denial-of-Service]]-Angriff werden Nameserver durch einen hohen Datenstrom von DNS-Anfragen überlastet, so dass legitime Anfragen nicht mehr beantwortet werden können.
* Gegen DDoS-Angriffe auf Nameserver gibt es zur Zeit keine Abwehrmöglichkeit.
* Als vorbeugende Maßnahme kann lediglich versucht werden, die Nameserver entsprechend zu dimensionieren bzw.
* ein verteiltes Netz mit möglichst vielen Servern zu installieren.
* Um eine große Anzahl DNS-Anfragen zu erzeugen, werden bei solchen Angriffen [[Botnet]]ze eingesetzt.
Ein DDoS-Angriff kann unbeabsichtigt einen DNS-Server betreffen und zum Ausfall bringen, wenn der Domainname des Angriffsziels wiederholt aufgelöst wird ohne zwischengespeichert zu werden.
* Der Effekt auf DNS-Server wird verhindert, wenn das DDoS-Schadprogramm [[DNS-Caching]] verwendet.
==== DNS-Amplification-Angriff ====
Die [[DNS Amplification Attack]] ist ein [[Denial of Service|Denial-of-Service]]-Angriff, bei der nicht der DNS-Server selbst das eigentliche Angriffsziel ist, sondern ein Dritter.
* Ausgenutzt wird, dass ein DNS-Server in manchen Fällen auf kurze Anfragen sehr lange Antworten zurücksendet.
* Durch eine gefälschte Absenderadresse werden diese an die IP-Adresse des Opfers gesendet.
* Ein Angreifer kann damit den von ihm ausgehenden Datenstrom substanziell verstärken und so den Internet-Zugang seines Angriffsziels stören.
=== DNS-Spoofing ===
Beim [[DNS-Spoofing]] handelt es sich um eine Angriffsklasse von Maskierungsangriffen, die das Ziel haben eine falsche Identität vorzugeben.
* Dafür wird die DNS-Antwort an einen Client verändert um ihn auf einen anderen, meist vom Angreifer kontrollierten Dienst fehlzuleiten.
==== Cache Poisoning ====
[[Cache Poisoning]] bezeichnet ein Angriffsszenario, welches in die Angriffsklasse des DNS-Spoofing fällt.
* Dabei werden einem anfragenden Client zusätzlich zu der korrekten Antwort, manipulierte Daten übermittelt, die dieser in seinen Cache übernimmt und später, möglicherweise ungeprüft, verwendet.
==== Offener DNS-Server ====
Wer einen autoritativen DNS-Server für seine eigenen Domains betreibt, muss natürlich für Anfragen von beliebigen IP-Adressen offen sein.
* Um zu verhindern, dass Internetteilnehmer diesen Server als allgemeinen Nameserver verwenden (z.&nbsp;B.
* für Angriffe auf Root-Server), erlaubt BIND es, die Antworten auf die eigenen Domains einzuschränken.
* Beispielsweise bewirkt die Option <code>allow-recursion {127.0.0.1; 172.16.1.4;};</code>, dass rekursive Anfragen, d.&nbsp;h.
* Anfragen auf andere Domains, ausschließlich für den lokalen Host (localhost) sowie 172.16.1.4 beantwortet werden.
* Alle anderen IP-Adressen bekommen nur auf Anfragen auf eigene Domains eine Antwort.
Ein offener DNS-Server kann auch eine Falle sein, wenn er gefälschte IP-Adressen zurückgibt, siehe [[Pharming (Internet)|Pharming]].
=== Sicherheitserweiterungen ===
Mehr als zehn Jahre nach der ursprünglichen Spezifikation wurde DNS um Security-Funktionen ergänzt.
* Folgende Verfahren sind verfügbar:
==== TSIG ====
{{Hauptartikel|TSIG}}
Bei TSIG (Transaction Signatures) handelt es sich um ein einfaches, auf [[Symmetrisches Kryptosystem|symmetrischen Schlüsseln]] beruhendes Verfahren, mit dem der Datenverkehr zwischen DNS-Servern und Updates von [[Client]]s gesichert werden kann.
==== DNSSEC ====
{{Hauptartikel|Domain Name System Security Extensions}}
Bei DNSSEC (Domain Name System Security Extensions) wird von einem [[Asymmetrisches Kryptosystem|asymmetrischen Kryptosystem]] Gebrauch gemacht.
* Neben der Server-Server-Kommunikation kann auch die Client-Server-Kommunikation gesichert werden.
* Dies soll die Manipulation der Antworten erschweren.
==== DNS over TLS (DoT) ====
{{Hauptartikel|DNS over TLS}}
Bei ''DNS over TLS'' sollen sowohl DDoS-Angriffe, die Manipulation der Antworten als auch das Ausspähen der gesendeten Daten verhindert werden.
* Dazu werden die DNS-Abfragen per [[Transport Layer Security]] (TLS) abgesichert.<ref name=":0">{{Internetquelle |autor=Carsten Strotmann, Jürgen Schmidt |url=https://www.heise.de/ct/ausgabe/2018-14-DNS-mit-Privacy-und-Security-vor-dem-Durchbruch-4079547.html |titel=DNS mit Privacy und Security vor dem Durchbruch |abruf=2018-07-25}}</ref>
==== DNS over HTTPS (DoH) ====
{{Hauptartikel|DNS over HTTPS}}
DNS over HTTPS ändert das DNS-System grundlegend.
* Anfragen finden hier auf Anwendungsebene statt.
* Anwendungen wie beispielsweise der Webbrowser fragen direkt beim DNS-Server an, anstatt die Anfrage an das Betriebssystem weiterzuleiten.
* Dadurch sehen DNS-Anfragen aus wie normaler Internetverkehr und können somit nicht gezielt abgefangen bzw.
* blockiert werden.<ref name=":0" />
[[Cloudflare]] und [[Google LLC|Google]] bieten öffentliche DoH-Webserver an. [[Mozilla Firefox]] unterstützt DoH seit Version 60 als experimentelle Funktion.
* Mozilla stellt in Zusammenarbeit mit Cloudflare einen DoH-Server bereit, der strenge Privatsphäre-Anforderungen erfüllen muss.<ref name=":0" /><ref>{{Internetquelle |autor=Patrick McManus |url=https://blog.nightly.mozilla.org/2018/06/01/improving-dns-privacy-in-firefox/ |titel=Improving DNS Privacy in Firefox |sprache=en |abruf=2018-07-26}}</ref>
==== DNS over QUIC (DoQ) ====
DNS over [[Quick UDP Internet Connections|QUIC]] soll die Vorteile von DoT und DoH kombinieren.
* DoQ soll gute Privatsphäre und Sicherheit bieten, eine geringe Latenz aufweisen und nicht blockierbar sein.<ref>{{Internetquelle |autor= |url=https://www.privacy-handbuch.de/handbuch_93.htm |titel=DoQ soll nicht manipulierbar sein, die gleiche Privatsphäre wie DoT bieten, eine geringe Latenz wie unverschlüsseltes DNS über UDP und nicht blockierbar sein wie DoH. |werk= |hrsg= |datum= |abruf=28.01.2021 |sprache=de}}</ref> RFC 9250 der [[Internet Engineering Task Force]] beschreibt DoQ.<ref>{{Internetquelle |autor=heise online |url=https://www.heise.de/news/Verbesserte-Namensaufloesung-IETF-veroeffentlicht-RFC-zum-Internetprotokoll-QUIC-7097921.html |titel=Verbesserte Namensauflösung: IETF veröffentlicht RFC zum Internetprotokoll QUIC |sprache=de |abruf=2022-07-20}}</ref>


== Domain-Registrierung ==
== Domain-Registrierung ==
{{Hauptartikel|1=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.&nbsp;B.  
* Domain-Registrierungen werden von Organisationen (Registries, z.&nbsp;B.&nbsp;
* 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.&nbsp;[[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.&nbsp;Zeroconf ==
* 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.&nbsp;„[[Bonjour (Apple)|Bonjour]]“.  
* Die meisten Linux-Distributionen unterstützen diese Erweiterung z.&nbsp;B.  
* Die meisten Linux-Distributionen unterstützen diese Erweiterung z.&nbsp;B.&nbsp;
* mit der [[Avahi (Software)|avahi]]-Implementierung von Zeroconf.
* mit der [[Avahi (Software)|avahi]]-Implementierung von Zeroconf.
== 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" />
=== Namecoin ===
{{Hauptartikel|.bit}}
Namecoin ist der erste [[Abspaltung (Softwareentwicklung)|Fork]] von [[Bitcoin]] aus dem Jahr 2011 und findet Anwendung als [[Kryptowährung]] sowie als [[Schlüssel-Werte-Datenbank|Key-Value Store]] für Domainnamen und Identitäten.
* Als alternatives verteiltes Domain Name System (DNS) außerhalb des [[Internet Corporation for Assigned Names and Numbers|ICANN]]-Namensraumes werden Transaktionen zum Registrieren, Aktualisieren und Übertragen von Domains auf der [[Blockchain]] aufgezeichnet.
* Zur Auflösung der .bit Adressen werden ein Browserplugin oder ein lokaler Namecoin DNS-Server benötigt.
* Ebenso wie Bitcoin ist Namecoin ein dezentrales [[Peer-to-Peer]]-System, das keiner Zensur unterliegt.<ref>{{Internetquelle |url=https://news.bitcoin.com/obtain-use-bit-privacy-domains/ |titel=How to Obtain and Use .Bit Privacy Domains | autor=Kevin Helms |werk=Bitcoin News |datum=2017-03-07 |abruf=2020-03-19 |sprache=en}}</ref> Die Software ist [[Open Source]] und wird auf [[GitHub]] gehostet.<ref>{{Internetquelle |url=https://www.namecoin.org/ |titel=Namecoin |abruf=2020-03-06 |kommentar=Projektwebsite |sprache=en}}</ref>
Einem Bericht von Trend Micro zufolge wurden .bit Domains seit 2013 vermehrt auch von [[Internetkriminalität|Cyberkriminellen]] genutzt.<ref>{{Internetquelle |url=https://abuse.ch/blog/dot-bit-the-next-generation-of-bulletproof-hosting/ |titel=.bit - The next Generation of Bulletproof Hosting |werk=abuse.ch |datum=2017-09-25 |abruf=2020-03-19 |sprache=en}}</ref> Vornehmlich aus diesem Grund hat das [[OpenNIC]]-Projekt im Sommer 2019 seine DNS-Auflösung von .bit Domains eingestellt.<ref>{{Internetquelle | autor=Catalin Cimpanu |url=https://www.zdnet.com/article/opennic-drops-support-for-bit-domain-names-after-rampant-malware-abuse/ |titel=OpenNIC drops support for .bit domain names after rampant malware abuse | datum=2019-07-17 |werk=ZDNet |abruf=2020-03-19 |sprache=en}}</ref>


== Nameserversoftware ==
== Nameserversoftware ==
Auswahl bekannter Software für Namensauflösung.
; Bekannter Software zur Namensauflösung


* [[BIND]] (Berkeley Internet Name Domain) ist die meistgebrauchte Nameserversoftware und gilt als Referenzimplementierung der meisten [[Request for Comments|RFCs]] zu DNS.
{| class="wikitable sortable options"
* Die erste Version von BIND war die erste öffentlich verfügbare Nameserver-Implementierung.
|-
* [[CoreDNS]] ist ein in [[Go (Programmiersprache)|Go]] geschriebener DNS-Server der [[Cloud Native Computing Foundation]].
! Option !! Beschreibung
* Bei [[djbdns]] hat der Autor [[Daniel J.  
|-
* Bernstein]] eine Prämie für das Finden von Sicherheitsproblemen ausgeschrieben.  
| [[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.
* [[Dnsmasq]] ist ein Nameserver und DHCP-Server mit eingeschränkter Funktionalität.
|-
* 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: unbekannte Namensanfragen werden weitergeleitet und im Cache gespeichert.
* Es werden die Namen aus dem lokalen Netz entsprechend /etc/hosts aufgelöst
* [[Knot DNS]] ist ein autoritativer Nameserver, der von [[CZ.NIC]] entwickelt wird, dem Betreiber von [[.cz]].
* Dnsmasq verfügt über keinen vollständigen Resolver
* Microsoft Windows DNS ist eine der wenigen kommerziellen Nameserver-Implementierungen als Teil der Produktreihe [[Microsoft Windows Server]].  
* unbekannte Namensanfragen werden weitergeleitet und im Cache gespeichert
* Der Nameserver unterstützt dynamische Updates, Zonentransfers und Notification.  
|-
| 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.
* [[Name Server Daemon]] ist ein autoritativer Nameserver, der zum Einsatz als Top-Level-Domain- und [[Root-Nameserver]] entwickelt wurde.  
|-
* 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
* [[PowerDNS]] ist ein Nameserver, der Zonen aus [[SQL]]-Datenbanken, [[Lightweight Directory Access Protocol|LDAP]]-Verzeichnissen und anderen Backends lesen kann.
* 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.
|-
* [[Unbound]] ist ein DNS-Resolver, der DNSSEC-Validierung und Caching unterstützt.
| 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
|}


= TMP =
== Sicherheit ==
=Überblick=
# [[Domain Name System/Sicherheit]]
*Das DNS Abkürzung Domain Namen System ist ein weltweit auf Tausenden von Servern verteilter hierarchischer Verzeichnisdienst, der den Namensraum des Internets verwaltet. Dieser Namensraum ist in sogenannte [[#Zonendateien anlegen|Zonen]] unterteilt.


*Hauptsächlich wird das DNS zur Umsetzung von Domainnamen in IP-Adressen ([[#Forward lookup Zone anlegen|forward lookup]]) benutzt.
==== RFC ====
*Dies ist vergleichbar mit einem Telefonbuch, das die Namen der Teilnehmer in ihre Telefonnummer auflöst.
{| class="wikitable sortable options big"
*Das DNS bietet somit eine Vereinfachung, weil Menschen sich Namen weitaus besser merken können als Zahlenketten.
|-
*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.
! RFC !! Titel
*So löst sich beispielsweise der Name <code>www.itw-berlin.net</code> in die IPv4-Adresse <code>88.99.60.173</code> und die IPv6-Adresse <code>2a01:4f8:10a:cec::2</code> auf.
|-
| [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)
|}


Mit dem DNS ist auch eine umgekehrte Auflösung von IP-Adressen in Namen ([[#Reverse lookup Zone anlegen|reverse lookup]]) möglich.
==== Weblinks ====
*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.
* [http://multicastdns.org/ Multicast DNS]
* Funktionsweise und Verwaltung des DNS als [http://www.dubberly.com/maps/domain-name-system.html Poster]
* Beiträge des [[Chaos Computer Club]]s
** Zensur durch DNS-Server: [http://www.ccc.de/censorship/dns-howto/ DNS Howto]
** 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)

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
53/UDP
53/TCPTCP (nur mit TLS, RFC 7858)
853/UDP (nur mit DTLS, RFC 8094)

Vorlage:Netzwerk-TCP-UDP-IP-Anwendungsprotokoll

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 wie 2001: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-Adresse 2001: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.

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)

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 UDP Port 53 zum Namensserver gesendet.
  • 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.

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:
  • 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

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 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

Schematische Darstellung der DNS-Hierarchie

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.

Vorlage:Siehe auch

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
  • Referenzimplementierung der meisten RFCs zu DNS
  • Die erste Version von BIND war die erste öffentlich verfügbare Nameserver-Implementierung
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.
  • Djbdns wird von Bernstein nicht mehr weiterentwickelt, weil er es als fertig ansieht.
Dnsmasq Name- und DHCP-Server mit eingeschränkter Funktionalität
  • 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 oder in Zonendateien gespeichert und repliziert werden.
Name Server Daemon Autoritativer Nameserver, der zum Einsatz als Top-Level-Domain- und Root-Nameserver entwickelt wurde.
  • NSD kompiliert Antworten statisch vor, um die Server-Performance zu optimieren
  • Dynamische Zoneninhalte oder Round Robin werden nicht unterstützt
PowerDNS Nameserver, der Zonen aus SQL-Datenbanken, LDAP-Verzeichnissen und anderen Backends lesen kann
  • PowerDNS begann als kommerzielle Implementierung und ist seit 2002 unter der GPL lizenziert
Unbound DNS-Resolver, der DNSSEC-Validierung und Caching unterstützt
  • Unbound kann als Softwarebibliothek in Anwendungen eingebunden werden

Sicherheit

  1. Domain Name System/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

  1. DNS-over-HTTPS und DNS-over-TLS Unterstützung, auf ffmuc.net
  2. 2,0 2,1
  3. RFC 7766DNS Transport over TCP – Implementation Requirements. Internet Engineering Task Force (IETF), S. 3 (Stand: März 2010) Vorlage:"