- | DNS (Domain Name System) | - | Familie: | Internetprotokollfamilie | - | Einsatzgebiet: | Finden der IP-Adresse(n) einer Domain oder | - | Ports: | 53/UDP, 53/TCP | - | - | Standards: | RFC 1034 (1987) |
|---|
Das Domain Name System (DNS) ist einer der wichtigsten Dienste im Internet. Hauptaufgabe ist die Auflösung von Namen, d. h. auf Namensanfragen mit der zugehörigen IP-Adresse zu antworten.
Das DNS ist eine weltweit auf tausende von Servern verteilte hierarchische Datenbank, die den Namensraum des Internets verwaltet. Dieser Namensraum ist in so genannte 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 Zahlenkolonnen. So kann man sich den Domainnamen www.wikipedia.org leichter merken, als die dazugehörende IP-Adresse 145.97.39.155. 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 rudimentäre Lastverteilung (Load Balancing) realisiert werden.
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 im RFC 882 beschrieben. Der RFC 882 wurde 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 die der exponentiell 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 den DNS integriert und so den Internetnutzern zur Verfügung gestellt (siehe unten: Erweiterung des DNS).
DNS zeichnet sich aus durch:
Das DNS besteht aus drei Hauptkomponenten:
Ein Domain Name darf inklusive aller Punkte maximal 255 Zeichen lang sein.
Ein Domain Name 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 root. Diese erste Ebene wird auch als Top Level Domain (TLD) bezeichnet.
Die DNS-Objekte einer Domäne (zum Beispiel die Rechnernamen) werden als Satz von Resource Records meist in einer Zonendatei gehalten, die auf einem oder mehreren autoritativen Nameservern vorhanden ist. Anstelle von Zonendatei wird meist der etwas allgemeinere Ausdruck Zone verwendet.
Nameserver sind Programme, die Anfragen zum Domain-Namensraum beantworten. 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 aber auch bedeuten, dass der Nameserver in dieser Zeit falsche Informationen liefern kann, 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:
Dns-abfrage.svgResolver 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. Ein Resolver arbeitet entweder iterativ oder rekursiv.
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 entweder eine positive Antwort oder bis er von einem authoritativen Server eine negative Antwort erhält. 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-Resolver bezeichnet. Nameserver besitzen in der Regel eigene Resolver. Diese arbeiten gewöhnlich iterativ.
Bekannte Programme zur Überprüfung der Namensauflösung sind nslookup, host und dig. Weitere Informationen zur iterativen/rekursiven Namensauflösung finden sich unter rekursive und iterative Namensauflösung.
Zonentransfers werden stets über Port 53 TCP durchgeführt. Die Auslösung von Zonentransfer erfolgt aber gewöhnlich per UDP.
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 ab, die untereinander über Verweise - in der DNS-Terminologie Delegationen genannt - verknüpft sind.
In jedem beteiligten Nameserver existieren ein oder mehrere Dateien - die sogenannten Zonendateien - die alle relevanten Daten enthalten. Bei diesen Dateien handelt es sich um Listen von Resource Records. Von fundamentaler Bedeutung sind zwei Record-Typen:
Beispiele:
Der A-Record de.wikipedia.org. A 145.97.39.155 definiert: Dem Namen de.wikipedia.org ist die IP-Adresse 145.97.39.155 zugewiesen.
Der NS-record "wikipedia.org NS ns0.wikimedia.org." definiert: Die Zonendatei für die Domain wikipedia.org befindet sich auf dem Server ns0.wikimedia.org.
Im Beispiel wird www.example.net in drei Schritten mit Hilfe des Resolver-Tools dig iterativ „per Hand“ aufgelöst. Ausgangspunkt ist der Root-Server A.root-servers.net. Dessen Adresse (198.41.0.4) ist in Nameservern und Resolvern fest einkonfiguriert. Der Rootserver enthält für die Domain net eine Delegation (NS-Record) zum Server A.GTLD-SERVERS.net. Dieser wiederum verweist für die Domain example.net auf den Server a.iana-servers.net, der schließlich den gesuchten Eintrag www.example.net enthält. Die Ausgabe ist auf das Wesentliche gekürzt.
$ dig +norecurse @198.41.0.4 www.example.net net. 172800 IN NS A.GTLD-SERVERS.net. A.GTLD-SERVERS.net. 172800 IN A 192.5.6.30 $ dig +norecurse @192.5.6.30 www.example.net example.net. 172800 IN NS a.iana-servers.net. a.iana-servers.net. 172800 IN A 192.0.34.43 $ dig +norecurse @192.0.34.43 www.example.net www.example.net. 172800 IN A 192.0.34.166
Bei den von den nicht-zuständigen Nameservern zusätzlich ausgegebenen A-Records handelt es sich um Glue Records. Die Zahl vor ‚IN‘ bedeutet die TTL (Time To Live) in Sekunden. Sie besagt, wie lange der Client die Antwort im Cache behalten darf, bevor er neu anfragen muss. Bei dynamischen IP-Adressen liegt diese Zahl meistens zwischen 60 (Minimum) und 300 Sekunden.
Im klassischen DNS ist es aufwändig, 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 Dynamischem DNS sind Änderungen durch Senden eines entsprechenden DNS-Requests ohne Zeitverzug möglich. Der Dynamische DNS gilt als Sicherheitsrisikio, da ohne spezielle Vorkehrungen jedermann DNS-Einträge löschen oder verändern kann. In Zusammenhang mit DHCP ist DynDNS 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.
Ein mittlerweile etablierter Ansatz zur Vergrößerung des Zeichenvorrats ist die 2003 in RFC 3490 beschriebene Internationalisierung von Domain Namen IDNA. Um das neue System mit dem bisherigen kompatibel zu halten, werden die erweiterten Zeichensätze mit zulässigen Zeichen kodiert, also auf derzeit gültige Namen abgebildet. Die erweiterten Zeichensätze werden dabei zunächst gemäß dem Nameprep-Algorithmus (RFC 3491) normalisiert und anschließend per Punycode (RFC 3492) auf den für DNS verwendbaren Zeichensatz abgebildet. IDNA erfordert eine Anpassung der Netzwerkanwendungen (z. B. Web-Browser), 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 schweizer Domains (.de, .li, .at und .ch) mit Umlauten registriert und verwendet werden. Auch bei einigen anderen Top-Level-Domains, insbesondere im asiatischen Raum, ist die Nutzung von IDNA möglich.
Mittels Sender Policy Framework kann wesentlich wirkungsvoller verifiziert werden, dass ein Absendername gültig ist. Zu jeder Mail-Domain wird dabei über einen speziellen SPF Resource Record explizit aufgelistet, wer aus dieser Domain heraus Mails versenden darf (im Idealfall nur ein einziger Server).
DNS ist nicht auf 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. Mit dem Werkzeug Webmin läßt sich dies auch ohne tiefgehende Kenntnisse bewerkstelligen. 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 den Dienst WINS der eine ähnliche Funktion zur Verfügung stellt, allerdings ein ganz anderes Protokoll verwendet. WINS wurde durch Active Directory abgelöst und gilt heute als veraltet.
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. Mehr als zehn Jahre nach der ursprünglichen Spezifikation wurde DNS um Security-Funktionen ergänzt. Folgende Verfahren sind verfügbar:
Bei Schwarzen Listen z.B. gegen Spammer, wird DNS angewendet, um abzufragen, ob ein Domainname gelistet ist: Der Client schickt eine Dns-Anfrage an den Rbl-Server. Dieser antwortet mit '127.0.0.1', wenn die Adresse nicht gelistet ist, sonst mit '127.0.0.x', x>1. Der Wert von 'x' kann noch zusätzliche Informationen über die gelistete Adresse enthalten. Da der Bereich 127.0.0.0/8 für Localhost reserviert ist, sind Mißdeutungen nicht möglich.
Um DNS-Namen im Internet bekannt machen zu können, muss der Besitzer die Domain, die diese 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 (Registrars) vorgenommen, die dazu von der IANA bzw. ICANN autorisiert wurden. Registrierungen sind gebührenpflichtig. In Deutschland ist die Denic zuständig.
Detaillierte Informationen finden sich unter Domain-Registrierung.
Apple hat bei der Entwicklung von Mac OS X mehrere Erweiterungen am DNS vorgenommen, welche die umfassende Selbstkonfiguration von Diensten in LANs ermöglichen soll. Zum einen wurde MulticastDNS („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) Implementationen verfügbar. Zusammen mit einer Reihe von anderen Techniken fasst Apple DNS-SD und mDNS unter dem Namen „Zeroconf“ zusammen, als Bestandteil von Mac OS X auch als „Rendezvous“ bzw. „Bonjour“.
Störungen oder Fehler im DNS können vielfältige Folgeprobleme verursachen, deren Zusammenhang mit DNS nicht immer offensichtlich ist. Es sollte daher Grundregel jeder Strategie zur Fehlersuche sein, sich von der ordnungsgemäßen Funktion des DNS zu überzeugen. Zur Untersuchung werden in der Regel zwei Quellen heran gezogen:
In komplexen Umgebungen müssen Firewall- und Router-Admins hinzugezogen werden. Die Diagnose wird in vielen Fällen durch das DNS Caching erschwert. Fehlerhafte Einträge bis hin zu ungültigen Zonen können sich für Stunden bis Wochen in den einzelnen Servern halten. Die Konsistenz des Datenbestandes geht dadurch verloren: Zu ein und dem selben Zeitpunkt können unterschiedliche Server unterschiedliche DNS-Daten besitzen.
Domain Name System | Netzwerkprotokoll auf Anwendungsschicht | Computernetzwerk
خادم إسم النطاق | Domain Name System | DNS | Domain Name System | Domain Name System | Domain Name System | Σύστημα Ονομάτων Τομέα | Domain name system | DNS | Domain Name System | Domain Name System | DNS | Domain Name System | Domain Name System | Domain Name System | DNS | Domain Name System | DNS | Domain Name System | Domain Name System | DNS | DNS (protokols) | Sistem Nama Domain | Domain Name System | Domain Name System | DNS | Domain Name System | Domain Name System | DNS | Domain Name System | DNS | Sistemi DNS | DNS | Domain Name System | DNS | Доменна система імен | Domain Name System | DNS
This article is licensed under the GNU Free Documentation License.
It uses material from the
"Domain Name System".
Home Page • arts • business • computers • games • health • hospitals • home • kids & teens • news • physicians • recreation• reference • regional • science • shopping • society • sports • world