Veit Schiele Communications

Veit Schiele Communications

Zonefiles verwalten

erstellt von Veit Schielezuletzt verändert: 19.03.2017 20:06 © Veit Schiele Communications GmbH, 2012–2017

Das Zonefile enthält die Konfiguration für das Domain Name System (DNS) dieser Domain. Hier ist hinterlegt, welche Hostnamen innerhalb dieser Domain existieren sollen und auf welche IP-Adressen diese zeigen. Außerdem wird hierüber auch gesteuert, welches System für die Mails dieser Domain angesprochen werden sollen.

Achtung: Da fehlerhafte Einstellungen in dieser Datei dazu führen können, dass Ihre Website nicht mehr im Internet erreichbar ist und E-Mails verloren gehen können, sollten Änderungen nur mit Vorsicht durchgeführt werden.

Aktives Zonefile

Die aktuell gültige DNS-Konfiguration findet sich in /etc/bind/pri.example.org.

Sie kann z.B. so aussehen:

$TTL 6H

example.org. IN SOA h05.hostsharing.net. hostmaster@hostsharing.net. (
        1315498227  ; serial secs since Jan 1 1970
        6H      ; refresh (>=10000)
        1H      ; retry (>=1800)
        1W      ; expire
        1H      ; minimum
        )

example.org.    IN  NS  dns1.hostsharing.net.
example.org.    IN  NS  dns2.hostsharing.net.
example.org.    IN  NS  dns3.hostsharing.net.

example.org.    IN  MX  30 mailin1.hostsharing.net.
example.org.    IN  MX  30 mailin2.hostsharing.net.
example.org.    IN  MX  30 mailin3.hostsharing.net.

example.org.    IN  A   83.223.91.163

*.example.org.  IN  MX  30 mailin1.hostsharing.net.
*.example.org.  IN  MX  30 mailin2.hostsharing.net.
*.example.org.  IN  MX  30 mailin3.hostsharing.net.

*.example.org.  IN  A   83.223.91.163

Ändern des Zonefile

Um die Zonendatei nun zu ändern, können Sie das aktive Zonefile Ihrer Domain zunächst in Ihr Nutzerverzeichnis kopieren:

cp /etc/bind/pri.example.org /home/doms/example.org/etc/

Anmerkung: Es wird dringend empfohlen, in eigenen Zonenfiles die folgenden Platzhalter zu verwenden. Nur so können Domains bei Änderungen von IP-Nummern oder anderen Umstrukturierungen weiter erreichbar bleiben, ohne selbst auf solche Ankündigungen und Ereignisse achten zu müssen und Anpassungen selber vornehmen zu müssen.

Komplexe Platzhalter

{DEFAULT_ZONEFILE} :=
    {HEADER}
    {SOA_RR}
    {NS_RR}
    {MX_RR}
    {A_RR}
    {WILDCARD_MX_RR}
    {WILDCARD_A_RR}

{HEADER} :=
    $TTL {TTL}

{SOA_RR} :=
    {DOM_HOSTNAME}. IN SOA {SOA_HOSTNAME}. {SOA_EMAIL}. (
            {SIO}           ; serial secs since Jan 1 1970
            {REFRESH}       ; refresh (>=10000)
            {RETRY}         ; retry (>=1800)
            {EXPIRE}        ; expire
            {MINIMUM}       ; minimum
            )

{NS_RR} :=
    {DOM_HOSTNAME}.         IN      NS      {DNS1_HOSTNAME}.
    {DOM_HOSTNAME}.         IN      NS      {DNS2_HOSTNAME}.
    {DOM_HOSTNAME}.         IN      NS      {DNS3_HOSTNAME}.

{MX_RR} :=
    {DOM_HOSTNAME}.         IN      MX      30 {MX1_HOSTNAME}.
    {DOM_HOSTNAME}.         IN      MX      30 {MX2_HOSTNAME}.
    {DOM_HOSTNAME}.         IN      MX      30 {MX3_HOSTNAME}.

{A_RR} :=
    {DOM_HOSTNAME}.         IN      A       {DOM_IPNUMBER}

{WILDCARD_MX_RR} :=
    *.{DOM_HOSTNAME}.       IN      MX      30 {MX1_HOSTNAME}.
    *.{DOM_HOSTNAME}.       IN      MX      30 {MX2_HOSTNAME}.
    *.{DOM_HOSTNAME}.       IN      MX      30 {MX3_HOSTNAME}.

{WILDCARD_A_RR} :=
    *.{DOM_HOSTNAME}.       IN      A       {DOM_IPNUMBER}

Atomare Platzhalter

{TTL} :=            6H
{SOA_HOSTNAME} :=   <HIVE>.hostsharing.net
{SOA_EMAIL}:=               hostmaster.hostsharing.net
{SIO} :=            <SEKUNDEN>
{REFRESH} :=                6H
{RETRY} :=          1H
{EXPIRE} :=         1W
{MINIMUM} :=                1H

{DNS1_HOSTNAME} :=  dns1.hostsharing.net
{DNS2_HOSTNAME} :=  dns2.hostsharing.net
{DNS3_HOSTNAME} :=  dns3.hostsharing.net

{MX1_HOSTNAME} :=   mailin1.hostsharing.net
{MX2_HOSTNAME} :=   mailin2.hostsharing.net
{MX3_HOSTNAME} :=   mailin3.hostsharing.net

{DOM_HOSTNAME} :=   <FQDN>
{DOM_IPNUMBER} :=   <IP>
<Sekunden>

für die Anzahl der Sekunden, welche seit dem 01.01.9170 vergangen sind

Um die aktuelle Angabe dieser Unixzeit zu erhalten, können Sie in der Konsole einfach folgendes eingeben:

$ date +%s 1309589989

<FQDN>
für den vollständigen, qualifizierten Domainnamen der Domain
<IP>
für die der Domain zugewiesene IP-Adresse

Beispiele

Diese Platzhalter erlauben Ihnen, nur auf die wesentlichen Änderungen in Ihrer Zonendatei einzugehen und damit die Konfiguration deutlich übersichtlicher zu gestalten. Im Folgenden zwei Beispiele für lediglich dreizeilige Konfigurationsdateien:

  1. Subdomain soll auf eine externe IP-Adresse verweisen:

    {DEFAULT_ZONEFILE}
    office.{DOM_HOSTNAME}.      IN      A       <IP-Adresse>
    home.{DOM_HOSTNAME}.        IN      CNAME   example.dyndns.org.
    
  2. Beispiel für ein Zonefile mit eigenem, externen Mailserver:

    {DEFAULT_ZONEFILE}
    example.com.                IN      MX      10 mail.example.com.
    mail.example.com.   IN      A       <IP-Adresse>
    

Überprüfen der Änderungen

Die Logfiles des Nameservers sind in /var/log/named einsehbar. Das aktuelle Log ist unter named.log zu finden. Dabei kann esjedoch einige Minuten dauern, bis der zentrale DNS-Server die Änderungen übernimmt. Achten Sie bitte auch darauf, dass der Zeitstempel aktualisiert wurde. Der Inhalt des Logfiles kann z.B. folgenden Inhalt haben:

Oct 11 18:32:21.400 info: zone example.org/IN: loaded serial 1065889567
Oct 11 18:32:21.435 info: zone example.org/IN: sending notifies (serial 1065889567)
Oct 11 18:32:21.755 info: client 213.133.116.2#57100: transfer of 'example.org/IN':
AXFR-style IXFR started
Oct 11 18:32:22.264 info: client 62.75.149.27#45282: transfer of 'example.org/IN':
AXFR-style IXFR started

Dies bedeutet im Einzelnen:

  1. Das geänderte Zonefile wurde vom DNS-Server erfolgreich geladen
  2. Der lokale Server sendet eine Benachrichtigung an die Secondaries, damit diese die Änderung ebenfalls übernehmen.

Tippfehler oder fehlerhafte Angaben im Zonefile werden hier ebenfalls gemeldet.

Darüberhinaus kann mit dem Programm dig die aktuelle Namensauflösung des DNS abgefragt werden, entweder nur auf einem der Hostsharing-Nameserver mit:

$ dig @dns1.hostsharing.net www.example.org

oder für die gesamte Route:

$ dig +trace +additional -t A example.org.
+trace
Die einzelnen Antworten auf iterative Anfragen an die Nameserver-Hierarchie werden ausgegeben.
+additional
Zusätzlich zu den NS Resource Records werden ggf. auch deren IP-Adressen in Form von A oder AAAA-Resource Records ausgegeben.
-t A
Dies verlangt nach dem A-Resource Record, also der IPv4-Adresse.

Alternativ kann auch der Web-Service DNSCheck verwendet werden.

Zurücksetzen der DNS-Einstellungen

Falls Sie für Ihre Domain wieder die Standard-Zonendatei verwenden möchten, genügt es nicht, Ihre Zonendatei in /home/doms/domain1.tld/etc zu löschen, sondern Sie sollten eine leere Zonendatei anlegen:

echo -n >/home/doms/domain1.tld/etc/pri.domain1.tld