(Wer Infos über Desoxyribonukleinsäure sucht, ist hier falsch. Hier geht es um Domain Name Systems)

Dies soll keine vollständige Abhandlung über Nameserver sein, sondern dem Einsteiger nur ein paar nützliche Grundlagen vermitteln. (For further questions ask Mr. DNS)


Die Anfänge:

In den späten 60er Jahren gründete die ARPA (Advanced Research Projects Agency) ein WAN welches Forschungsorganisationen verbindet. Dieses Netzwerk wurde ARPAnet genannt.


In den frühen 80er Jahren wurde TCP/IP (Transmission Control Protocol/Internet Protocol) zum Standard-Netzwerkprotokoll im ARPAnet. Durch Einbndung von TCP/IP in das verbeitete BSD-UNIX wuchs das ARPAnet zu einem Netz von Zehntausenden von Hosts. Das ursprüngliche ARPAnet wurde zum Backbone des Internets. Durch das Wachstum des ARPAnet wurde die Namensauflösung per /etc/hosts bzw. HOST.TXT unpraktikabel. Ein dezentral zu administrierendes System musste her. Das DNS. 1984 erschienen die RFCs 882 und 883, welche das Domain Name System (DNS) beschreiben. Diese RFCs wurden später durch die RFCs 1034 und 1035 abgelöst. Weitere RFCs beschreiben Erweiterungen und Sicherheitsergänzungen zum DNS.

Das DNS ist eine verteilte Datenbank im Internet. Seine primäre Aufgabe besteht darin eine Auflösung von Domain-Namen in IPs und umgekehrt zu gewährleisten.
Dazu kommen noch Funktionen, wie etwa das Auffinden von Mailservern (MX-Records) und ähnlichem.

Die DNS-Informationen werden von Servern bereitgestellt, welche Nameserver heißen. Für jede DNS-Zone müssen mindestens zwei Nameserver, welche in unterschiedlichen Netzen beheimatet sind, authorativ (verantwortlich) sein. Dies ist eine Sicherheitsmaßnahme, für den Fall, dass zum Beispiel das eine Netz ausfällt. In diesem Fall wären die Informationen immer noch über den zweiten Nameserver, welcher ja in einem anderen Netz ist, abrufbar.


Der Nameserver, der die Authorität für die Domain hat, nennt sich primärer Master. Dieser speichert seine Zonendaten lokal auf seiner Festplatte. Der sekundäre Master, auch Slave genannt, erhält seine Zonendaten von seinem primären Master.

Die Wurzelebene bilden die sogenannten Root-Server. Von dieser Ebene aus werden die entsprechenden Zonen (entspricht einem Verantwortungsbereich) an andere Nameserver delegiert.
Zum Beispiel für die Top-Level Domains (.com, .de, .net, .int, …). Von dort aus wird dann an die Nameserver der Second-Level Domains delegiert, so daß sich eine Art Baumstruktur ergibt.

Aufbau einer Zone:

Die verschiedenen Record Typen:

Beispiel für die Domain „testdomain.com“:

 

testdomain.com.	IN SOA ns.testdomain.com. root.testdomain.com. (
			2001051401	; Serial
			10800		; Refresh
			3600		; Retry
			604800		; Expire
			86400 )		; Min. TTL

testdomain.com.	IN NS ns.testdomain.com.
testdomain.com.	IN NS ns2.testdomain.com.

testdomain.com.	IN MX 10 mail.testdomain.com.
testdomain.com.	IN MX 20 mail2.testdomain.com.
	
www.testdomain.com. IN 	A  123.456.789.012
www2.testdomain.com. IN	CNAME www.testdomain.com.

Der Bereich

testdomain.com.	IN SOA ns.testdomain.com. root.testdomain.com.

bedeutet

Domain-Name	IN SOA Nameserver EMail

Als Domain-Name muß die Domain
für die diese Zone eingerichtet
werden soll, eingetragen werden.

IN bedeutet Internet.

Der SOA-Record:

SOA steht für „Start of Authority“: Das bedeutet,
daß dieser Nameserver für Daten innerhalb dieser
Zone Informationsquelle erster Wahl ist.

Als Nameserver wird der Name des primären Master –
Nameservers angegeben.

Und EMail bedeutet schließlich, daß hier die E-Mail
Adresse der verantwortlichen Person eingetragen werden soll. Das @-Zeichen
muß allerdings durch einen Punkt ersetzt werden.

Die Serial ist eine fortlaufende Nummer, welche meistens aus dem aktuellen Datum im Format
YYYYMMTT, gefolgt von einer zweistelligen fortlaufenden Nummer NN angegeben wird.

Refresh gibt die Zeit an, nach welcher der Slave die Daten aktualisiert soll.

Retry nennt die Zeit, nach welcher ein fehlgeschlagener Refresh erneuter unternommen wird.

Für den Fall, dass ein Slave-Nameserver den Master-Nameserver für Expire Sekunden nicht erreichen kann,
betrachtet er seine Daten als ungültig und liefert keine weiteren Antworten mehr.

TTL steht für „time to live“. Für die unter TTL angegebene Zeit werden die Daten im Cache gehalten.

Der NS-Record:

Die beiden Zeilen

testdomain.com.	IN NS ns.testdomain.com.
testdomain.com.	IN NS ns2.testdomain.com.

geben die beiden Nameserver an, die es in dieser Zone gibt.

Der MX-Record:

Die MX-Records

testdomain.com.	IN MX 10 mail.testdomain.com.
testdomain.com.	IN MX 20 mail2.testdomain.com.

geben die Mailserver an, welche die Mails für diese Domain annehmen. Die Zahl vor dem Mailservernamen gibt die Priorität an. Je kleiner die Zahl, desto größer die Priorität. Das heißt zuerst wird versucht die Mail an den „mail.testdoamin.com“ abzuliefern. Sollte dieser die Annahme verweigern, zum Beispiel weil er heruntergefahren wurde, wird versucht die Mail dem „mail2.testdomain.com“ zu übergeben.

Der A-Record:

Der Adress-Record

www.testdomain.com. IN 	A  123.456.789.012

stellt die Zuordnung zwischen IP und Domain dar.

Der CNAME-Record:

Der letzte Eintrag in dieser Test-Zone ist der CNAME-Record.
Dieser gibt einen Alias für den zuvor definierten Domain-Namen an.

www2.testdomain.com. IN	CNAME www.testdomain.com.

Abkürzungen:

Statt

www.testdomain.com. IN A 123.456.789.012

kann man auch

www IN A 123.456.789.012

schreiben. Der Domainname „testdomain.com“ wird automatisch angehängt, sobald am Ende eines Namens kein Punkt erscheint.
Für den Fall, daß Domainname und Ursprung gleich sind, kann statt

testdomain.com. IN SOA ns.testdomain.com....

auch

@ IN SOA ns.testdomain.com....

geschrieben werden. Desweiteren kann man den Namen des Recource Records mit einem Tabulator angeben, dann wird der Name des vorangegangenen Recource Records verwendet.
Also würde die obige Zone mit den eben beschriebenen Abkürzungen wie folgt aussehen:

@ 	IN SOA ns.testdomain.com. root.testdomain.com. (
			2001051401	; Serial
			10800		; Refresh
			3600		; Retry
			604800		; Expire
			86400 )		; Min. TTL

	IN NS ns.testdomain.com.
	IN NS ns2.testdomain.com.

	IN MX 10 mail.testdomain.com.
	IN MX 20 mail2.testdomain.com.

	
www 	IN 	A  123.456.789.012
www2 	IN	CNAME www.testdomain.com.

 

Konfiguration eines „hidden primary“

Ein „hidden primary“ wird im Gegesatz zum normalen Primary nicht in den Domaindaten genannt. Dies hat den Vorteil, dass
er, ausser von den anderen Nameservern für die jeweilige Domain, keinerlei Anfragen beantworten muss.
Darüberhinaus ist es ein Vorteil, daß man seinen „hidden primary“ jederzeit wechseln kann ohne seine
Domaindaten (z.B. bei DENIC) updaten zu müssen.

Die Konfiguration ist recht einfach. Man läßt einfach den NS-Record für den „hidden primary“ weg.
Das sieht dann zum Beispiel so aus:

@ 	IN SOA ns.testdomain.com. root.testdomain.com. (
			2001051401	; Serial
			10800		; Refresh
			3600		; Retry
			604800		; Expire
			86400 )		; Min. TTL

	IN NS ns2.testdomain.com.

	IN MX 10 mail.testdomain.com.
	IN MX 20 mail2.testdomain.com.
	
www 	IN 	A  123.456.789.012
www2 	IN	CNAME www.testdomain.com.