Domain, Zone, Web- und Nameserver, Ägypten?
Aus aktuellem Anlass hier ein aus den wegen dummer Software derzeit unerreichbaren "Zugschlus' manchmal nützlichen Antworten" schnell reingepasteter Artikel
Ungenaue Terminologie wird im Internet oft von Leuten verwendet, die zwar ungefähr wissen, wie die Dinge funktionieren, sich aber nicht im hinreichenden Maße mit den Hintergründen beschäftigt haben. Dies erschwert die Kommunikation und ist oft dafür verantwortlich, dass ein Auftragnehmer nicht das ausführt, was sein Auftraggeber eigentlich möchte.
Ein besonders von diesem Problem geplagter Bereich der Internet-Technik ist der Domain Name Service (DNS), da hier in besonderem Maße die Kommunikation zwischen verschiedenen Leistungsträgern in unterschiedlichen Unternehmen notwendig ist.
Mit diesem Text will ich versuchen, etwas Klarheit in die Terminologie zu bringen.
Was ist ein Nameserver?
Nameserver sind im Internet erreichbare Computer, die an der Namensauflösung beteiligt sind. Diese Rolle können die Rechner in verschiedenen Formen wahrnehmen:
Ein für eine Domain authoritativer Nameserver kann Anfragen für diese Domain authoritativ, also mit endgültiger Sicherheit, beantworten, weil er die Informationen für die Domain selbst vorliegen hat und sich hierbei nicht auf die Antworten anderer Nameserver verlassen muss.
Ein authoritativer Nameserver, der als Master (auch als "primary" bezeichnet) konfiguriert ist, ist ein Nameserver, der die Informationen für seine Domains von ausserhalb des Domain Name System erhält. Gängig sind hier beispielsweise Zonefiles oder Datenbanken. Ein Master, an den die Zone selbst nicht delegiert ist , wird als "hidden master" bezeichnet und kommt vor allen Dingen dort zum Einsatz, wenn der Domaininhaber zwar die Zone selbst unter eigener Kontrolle haben möchte, aber nicht hinreichend gut angebunden ist, um die Zone selbst zu sich delegieren zu lassen.
Ein authoritativer Nameserver, der als Slave konfiguriert ist, erhält die Informationen für seine Domains mit DNS-Mechanismen (Zone Transfer, AXFR oder neumodische IXFR) von einem als Master konfigurierten authoritativen Nameserver, der in der Konfiguration des Slaves festgelegt ist. Der Slave holt sich die aktuellen Daten für die Domain in regelmässigen Abständen oder auf explizite Anforderung vom Master und kann fortan auch dann für "seine" Domains authoritative Auskünfte erteilen, wenn der Master gerade nicht erreichbar ist. Wenn der konfigurierte Master für eine bestimmte Zeit nicht erreichbar war, stellt der Slave die Erteilung authoritativer Auskünfte für die betreffende Domain ein.
Erhalten die DNS-Server ihre Daten über andere Wege (z.B. über eine replizierte SQL-Datenbank), ist auch der Server, dessen DNS-Server auf einen SQL-Slave als Datenquelle zugreift, im DNS-Sinne ein Master.
An einen authoritativen Nameserver ist eine Zone delegiert, wenn dieser Nameserver in einem auf diese Zone zeigenden NS-Record in der "Parent Zone" auftaucht. Die in der Parent Zone eingetragenen NS-Records müssen mit denen in der Zone selbst übereinstimmen.
Ein Full Resolver oder auch Recursor ist ein Nameserver, der auch Anfragen entgegennimmt, für deren Domains er nicht authoritativ ist. Er bemüht sich dann, die benötigten Informationen aus dem DNS herbeizuschaffen und liefert eine nicht authoritative, "best effort" Antwort an den Anfragenden aus.
Die Nameserver, die ein Endbenutzer in seinem Rechner eintrögt oder (z.B. per PPP, DHCP oder DNSSD) zugewiesen bekommt, sind Full Resolver. Die von Endbenutzern beim Full Resolver ankommenden Anfragen sind sogenannte "rekursive" Anfragen.
Anstelle des Begriffs "Full Resolver" sind auch die Begriffe Full Service Resolver, Recursive Server, Recursive Resolver und Forwarder in Verwendung. Im Zusammenhang mit dynamischen Updates geniesst der Begriff Forwarder aber eine Sonderbedeutung, so dass dieser Begriff im Allgemeinen nicht korrekt verwendet wird.
Oft findet man bei kleineren Installationen die Funktionen eines authoritativen Nameservers und eines Full Resolvers auf einer Maschine vereint. Für die dort liegenden Zonen wird dem gesamten Internet authoritativ Auskunft erteilt, und zusätzlich werden rekursive Anfragen aus dem "eigenen" Netz beantwortet.
Diese Vereinigung von Aufgaben ist nach meiner Meinung nur in den seltensten Fällen sinnvoll, da sie nichts miteinander zu tun haben, die sachgerechte Konfiguration des Nameservers unnötig verkomplizieren und im Falle von Konfigurationsfehlern sehr leicht dazu führen können, dass die Benutzer des fehlkonfigurierten eigenen Nameservers eine andere Sicht auf das Internet haben als der Rest der Welt.
Was ist eine Domain, was ist eine Zone?
Der DNS ist eine verteilte, hierarchische Datenbank, in der die Namen und IP-Adressen aller im Internet sichtbaren Systeme hinterlegt sind. Ein Beispiel für die Hierarchie sieht man in der Abbildung.
Jeder Knoten im abgebildeten Baum ist eine Domain. Eine Domain, die im Baum unterhalb einer anderen Domain liegt, wird eine Subdomain genannt. Die Blläter des Baumes sind ebenfalls Domainnamen, wobei dieser Sonderfall auch als Hostname bezeichnet werden kann. mail.at.example.com ist also ein Hostname, eine Domain und eine Subdomain von at.example.com.
Die Wurzel des Baumes wird in der Literatur als "." bezeichnet; die direkt darunter liegenden Domains (z.B. de, com, net, org) als "Top-Level-Domains" oder "First-Level-Domains". Die "höchsten" Domains, die man als Unternehmen oder Privatmensch mit vertretbarem Aufwand selbst registrieren kann, sind die "Second-Level-Domains" wie zum Beispiel example.com.
Manche First-Level-Domains vergeben sogenannte "generische Second-Level-Domains". In diesen First-Level-Domains kann man dann erst Third-Level-Domains selbst registrieren lassen, die dann wie zum Beispiel in Grossbritannien unterhalb von co.uk oder or.uk liegen können.
Glücklicherweise ermöglicht der DNS, die Verteilung der Daten etwas von der Hierarchie unabhängig zu gestalten. Das ist insbesondere dann praktisch und wichtig, wenn Subdomains einer Domain unter unterschiedlicher Verwaltung stehen oder auch nur ihre Größe ungleichmäßig verteilt ist. Die Einheit für die Verteilung der Daten ist die Zone. Im Beispiel ist die Domain example.com und ihre Subdomains auf zwei Zonen verteilt. example.com ist an die im Beispiel rechts eingezeichnete Zone delegiert, die die Resource Records für www.example.com, at.example.com und die Domains unterhalb von at.example.com direkt selbst enthält. de.example.com ist an die im Beispiel links eingezeichnete Zone delegiert, die auf einem ganz anderen Nameserver liegen kann und von anderen zuständigen Personen verwaltet werden kann. Bei der weit verbreiteten Nameserver-Software bind liegen die Daten einer Zone stets in einer Datei, dem sogenannten Zone File.
Im Zone File werden schlussendlich die eigentlichen Einträge gemacht, die den DNS mit Leben füllen. Diese Einträge erfolgen in Form von Resource Records (RR), die einen Domainnamen mit Informationen verschiedenster Art verknüpfen. Wegen der Wichtigkeit dieses Stoffes wird es hierfür einen eigenen ZMNA-Artikel geben.
Der Weg vom Registrar zum Webserver
Eigentlich ist das alles ganz einfach. Gehen wir Schritt für Schritt vor für den üblichen Fall, dass K unter dem Namen www.example.com eine Webseite ins World Wide Web stellen möchte:
- K bittet seinen Provider P, für ihn die Domain example.com zu registrieren.
- P legt auf seinen Nameservern N1 und N2 eine Zone an, die die gewönschten Nameservice-Daten für die Domain example.com enthält.
- P sucht sich einen der für die von K gewählte Top-Level-Domain (hier: .com) zuständigen Registrare R heraus und registriert über diesen die Domain example.com.
- R trägt K als kaufmännischen Ansprechpartner (admin-c) und P als technischen Ansprechpartner (tech-c, zone-c) in der Domainregistrierungsdatenbank ein und sorgt dafür, dass in den für com zuständigen Nameservern die Zone für example.com an N1 und N2 delegiert wird.
- Somit ist P nun in der Lage, weltweit sichtbare Resource Records für die Domain example.com im DNS bekannt zu machen.
- P legt einen Webserver W für www.example.com an und gibt K die Möglichkeit, auf diesen Webserver die gewünschten Inhalte zu hinterlegen.
- P trägt in der Zone für example.com die passenden Resource Records (hier: einen A- oder einen CNAME-Record) an, damit die IP-Adresse von W mit dem Domainnamen www.example.com verknüpft sind.
Von der Idee bis zum benutzbaren Webserver führten also die folgenden Schritte:
- Registrierung der Domain.
- Vorbereitung der Nameserver.
- Delegation der Domain.
- Vorbereitung des Webservers
- Hinterlegung der Inhalte auf dem Webserver
- Eintragung des Hostnamens www auf dem Nameserver
Diese Schritte können in den verschiedenen Geschäftsmodellen auf unterschiedliche Beteiligte verteilt werden. Oben beschrieben ist eine der üblichsten Vorgehensweisen, bei der der Kunde sowohl die Domain selbst, den DNS und den Webserver beim gleichen Liferanten bestellt.
Was für Einträge brauche ich in meiner frisch delegierten Zone?
Die Antwort auf diese Frage ist wie so häufig "es kommt darauf an", nämlich darauf, was man mit der Zone eigentlich machen möchte.
Eine Zone muss immer und zwingend mindestens zwei Einträge enthalten: Einen SOA- und mindestens einen NS-Eintrag. Die NS-Einträge müssen mit den Einträgen in der "Parent Zone" (z.B. .com für .example.com) übereinstimmen.
Weitere Einträge sind nur dann notwendig, wenn die Domain wirklich benutzt werden soll:
- Wenn die Domain im E-Mail-Verkehr verwendet werden soll, so sind
MX-Records notwendig, die den Mailservern draussen im Internet bekannt
geben, wo Mail an die Domain abzuliefern ist.
Hier sind wiederum andere Dinge zu beachten:
- Ein MX-Record sollte immer nur auf einen Rechnernamen zeigen, der wiederum als A-Record eingetragen sein muss. Insbesondere funktionieren hier keine IP-Adressen, und auf CNAMEs zeigende MX-Records sind mindestens umstritten.
- Ein MX-Record ist mit einer Priorität versehen. Ein externer Mailserver wird zuerst versuchen, Mail für die Domain bei dem Rechner abzuliefern, auf den der MX-Record mit der kleinsten Priorität zeigt. Erst wenn dieser nicht erreichbar ist, kommen die mit höherer Priorität zum Zuge.
- Ein Mailserver muss dafür konfiguriert sein, Mails für eine Domain anzunehmen. Blosses Eintragen eines MX-Records funktioniert in aller Regel nicht.
- In vielen Fällen soll eine Domain nicht am Mailverkehr teilnehmen. In diesen Fällen ist es zweckmässig, den MX-Record einfach wegzulassen. Einen MX-Record auf 127.0.0.1 oder auf einen anderen beliebigen Host zu setzen, der keine Mail für die Domain annehmen kann, ist unhöflich und sollte unterbleiben.
Mail an einen Domainnamen, für den ein A-Record, aber kein MX-Record eingetragen ist, wird an die IP-Adresse zugestellt, die im A-Record genannt ist. Dieses Verhalten ist eine Altlast aus längst vergangenen Zeiten, in denen jeder Rechner sein eigenes unabhängiges Mailsystem hatte und ist heute in vielen Fällen ist dies unerwünscht.
Besonders lästig ist es in dem Fall, in dem eine Domain nicht am Mailverkehr teilnehmen soll, aber ein Webserver ohne vorangestelltes www erreichbar sein soll. Somit werden nämlich Mails an die Domain beim Webserver zugestellt, was heutzutage in den meisten Fällen nicht sinnvoll ist. Dieses Problem ist wirklich befriedigend nicht zu lösen. Unter Umständen ist es ratsam, einen MX-Record auf einen Mailserver zu setzen, der Mails für den Domainnamen mit "550 no e-mail service for this recipient domain" ablehnt.
-
Die allermeisten Domains werden registriert, um einen Webserver anzubieten. Hierfür hat sich eingebürgert, den Hostnamen "www" in der registrierten Domain zu wählen, was zu Hostnamen wie "www.example.com" führt. Um dies zu erreichen, wird im Zonefile ein A-Record eingetragen, der den Hostnamen "www" mit der IP-Adresse des Webservers verknüpft. Die explizite Reservierung einer weiteren Domain ist hierfür nicht notwendig; der Inhaber einer Domain hat die Kontrolle über alle Domain- und Hostnamen unterhalb dieser Domain.
Allerdings ist es nicht zwingend notwendig, für einen Webserver den Hostnamen "www" zu verwenden. Webserver können unter beliebigen Hostnamen angelegt werden, und es ist selbstverständlich auch möglich, innerhalb einer Domain oder innerhalb einer Zone mehrere Webserver anzulegen. Sie müssen nur unterschiedliche Namen haben, damit sie unterschieden werden können.
Die gängigsten Terminologiefehler im DNS
-
"Lieber Provider, bitte registriere für mich die Domain www.example.com."
Das kann der Provider nicht tun. Der Kunde will in diesem Fall die Domain example.com registriert haben, und in der Zone für diese Domain einen Eintrag "www", für den der Provider zusätzlich zum Domainnamen auch noch eine IP-Adresse braucht.
-
"Lieber Provider, ich möchte bitte die Zugangsdaten, um die Webseiten auf meine Domain www.example.com hochzuladen."
Diese Anfrage ist Unsinn. Eine Domain ist ein Begriff aus dem DNS. Im DNS gibt es weder Webseiten noch Zugangsdaten. Was der Kunde möchte, sind die Zugangsdaten zu dem Webserver, der in der Domain example.com mit dem Hostnamen www eingetragen ist.
-
"Lieber Provider, meine Domain www.example.com ist nicht erreichbar."
Auch hier meint der Kunde meist, dass anstelle der Domain sein Webserver nicht erreichbar ist. Das kann eine Störung im Netz, eine Störung im Webserver, oder wirklich eine Störung im Domain Name Service sein. Dies korrekt zu diagnostizieren, überfordert die meisten Netzteilnehmer, und führt den Support des Providers in die Irre, weil jeder, der täglich mit Internetsystemen zu tun hat, bei einer gemeldeten Domainstörung immer zuerst und sofort den Nameserver prüfen wird, wenn auch die häufigsten Ursachen für die hier besprochenen Störungen nicht dort zu finden sind.
-
"Lieber Provider, bitte route die Domain www.example.com auf die IP-Adresse a.b.c.d"
Diese Anfrage ist - wie so oft - aus der Verwechslung zwischen Domain und Webserver entstanden, gemischt mit dem Halbwissen, dass IP-Adressen geroutet werden. Das ist natürlich auch terminologisch falsch.
Mit diese Anfrage möchte der Kunde dem Provider in aller Regel mitteilen, dass er auf der IP-Adresse a.b.c.d einen Webserver bereitgestellt hat, der in der Lage ist, http-Anfragen für Webseiten unter http://www.example.com/ zu beantworten. Der Provider soll nun, damit dieser Webserver auch über den Namen erreichbar wird, einen A-Record im DNS eintragen, der den Namen www.example.com mit der IP-Adresse a.b.c.d verknöpft.
Das ganze hat mit Routing noch weniger zu tun als mit Domains.
Comments
Display comments as Linear | Threaded
Anonymous on :
Und was soll das alles mit Ägypten zu tun haben?
wohl eher Äh-gypten?