Zugschlus' manchmal nützliche Antworten

Kleine Artenkunde für DNS Resource Records

Damit eine Zone funktioniert, müssen bestimmte Einträge vorhanden sein. Die Zusammenhänge sind komplex, die Fehlerquellen reichhaltig. Deswegen versuche ich hier, eine einfache Erklärung für die wichtigsten Typen von Resource Records zu liefern.

Wie sieht ein korrekter SOA-Record aus

Jede Zone muss einen SOA-Record (Start of Authority) enthalten. Dort sind wichtige Informationen über die Zone abgelegt. Hier ein Beispiel:

$TTL 24h
;                       primary.master.server	mailbox.of.responsible.person
@       IN      SOA     ns1.example.com.	hostmaster.example.com. (
			2002091801	; serial
			8h              ; refresh
			2h              ; retry
			7d              ; expire
			24h )           ; minimum

Das Semikolon leitet Kommentare ein, die natürlich nicht vorhanden sein müssen.

Es wird empfohlen, den SOA-Record wie oben gezeigt zu formatieren. Die Formatierung ist jedoch für die Funktion des Nameservers irrelevant.

Minimum TTL und $TTL

TTL ist die Abkürzung für Time to Live und bezeichnet die Lebenszeit von Daten in einem Zwischenspeicher.

Um die Last auf den für eine Zone authoritativen Nameservern zu verringern, speichern die von den Internetbenutzern verwendeten Forwarder die Auskünfte, die sie von den authoritativen Nameservern erhalten haben, für eine bestimmte Zeit zwischen. Der für die Zone zuständige Administrator kann das Caching der Forwarder in manchen Grenzen beeinflussen.

Wird eine Nameserver-Anfrage positiv beantwortet, übermittelt der authoritative Nameserver zusammen mit dem angefragten Resource Record die gewünschte Lebenszeit des Eintrags in Form der TTL. Ist im Zonefile für den Resource Record keine TTL angegeben, so übermittelt der authoritative Nameserver den mit $TTL im Zonefile gesetzten Defaultwert. Der authoritative Nameserver liest das Zonefile von oben nach unten und übermittelt immer den Wert des zuletzt gelesenen $TTL-Kommandos. Deswegen sollte $TTL immer so weit wie möglich am Anfang des Zonefiles gesetzt werden.

Wird eine Nameserver-Anfrage mit NXDOMAIN ("der angefragte Resource Record existiert nicht") beantwortet, so übermittelt der authoritative Nameserver zusammen mit der negativen Antwort die "minimum TTL" aus dem SOA-Record.

Der Forwarder übermittelt die Antwort weiter an die Quelle der Anfrage und speichert die Antwort für die übermittelte Zeitdauer zwischen, so dass weitere Anfragen nach dem gleichen Resource Record innerhalb dieser Zeitdauer ohne erneuten Zugriff auf den authoritativen Server beantwortet werden können.

Bevor man zeitkritische Änderungen an einer Zone vornimmt (z.B. Umzug eines Web- oder Mailservers auf eine andere IP-Adresse), ist zu empfehlen, zuerst einen oder beide TTL-Werte herunterzusetzen. Dies sollte mindestens einen TTL-Zeitraum vor der eigentlichen Änderung geschehen, damit die kürzere TTL sich herumgesprochen hat. Nachdem die Änderung erfolgreich durchgeführt wurde, kann die TTL wieder heraufgesetzt werden.

Wenn es sich bei der Änderung um Veränderung oder Löschung bereits existierender Resource Records handelt, genügt es, die im $TTL-Statement gesetzte default TTL zu verändern. Möchte man neue Resource Records eintragen, so muss die minimum TTL im SOA-Record verkürzt werden, damit die Sichtbarkeit der neuen Einträge nicht durch zwischengespeicherte negative Antworten verzögert wird.

Der Betreiber eines Forwarders kann konfigurieren, in welchem Rahmen die von authoritativen Nameservern übermittelten TTLs beachtet werden sollen. Dies dient hauptsächlich dazu, abstrus gesetzte Werte auszufiltern, um den Forwarder zu entlasten. Große ISPs nutzen diese Möglichkeit insbesondere bei den von dyndns gesetzten kurzen TTLs.

NS-Records

In einer Zone müssen die Nameserver, an die die Zone delegiert ist, genannt werden. In einer hidden-master-Konfiguration gibt es also keinen NS-Eintrag für den Master, sondern nur für die Slaves.

Auf der rechten Seite eines NS-Records muss _immer_ ein A-Record stehen. Es ist nicht erlaubt, hier direkt eine IP-Adresse einzutragen. Auf der rechten Seite eines NS-Records einen CNAME einzutragen, ist zwar streng genommen erlaubt, aber nicht zu empfehlen. Die zusätzlich notwendigen Abfragen erzeugen unnötige Last.

MX-Records

Soll eine Domain am Mailverkehr teilnehmen, so ist es notwendig, einen oder mehrere MX-Records in die Zone einzutragen. MX-Records haben zusätzlich zu ihrem Ziel eine Priorität. Wird eine Mail an die Domain zugestellt, so versucht der absendende Mailserver zuerst den MX niedrigster Priorität. Kann er die Mail dort nicht ausliefern, versucht er der Reihe nach die MXe höherer Priorität.

Gibt es für einen Domainnamen keinen MX-Record, sondern nur einen A-Record, wird die Mail an diesen zugestellt. Dieses Verhalten ist historisch bedingt und nicht mehr sinnvoll. Trotzdem wird es immer noch so gehandhabt. Soll ein Domainname nicht am Mailverkehr teilnehmen, so ist es sinnvoll, einen MX-Record auf ein System zu setzen, das für den Domainnamen eingehende Mail mit einem permanenten Fehler ablehnt.

Steht auf der rechten Seite eines MX-Records ein CNAME, zeigt manche ältere Software eigenwilliges Verhalten. Aus diesem Grund sollte man auch hier nur Namen eintragen, für die direkt ein A-Record auf die IP-Adresse verweist.

Diese Webseite wurde mit Hilfe eines PHP-Scripts erstellt, das aus einer einfach formatierten Quelltextdatei eine HTML-Seite erzeugt.

Zurück zu Zugschlus' manchmal nützlichen Antworten


Home

Best Viewed With Any Browser Valid HTML 4.01! Valid CSS! Printer Friendly Version Credits Marc Haber 24.09.2002 14:41