MaraDNS als Slave/Secondary DNS

MaraDNS hat keinen direkten Support für Secondary/Slave-DNS-Server. Abhilfe schafft hier allerdings das Tool 'fetchzone', welches mit MaraDNS mitinstalliert wird. Insgesamt ist es also etwas komplizierter, aber mal los:

  1. Zunächst erstellen wir eine Datei außerhalb des '/root'-Verzeichnisses, auf das aber nur der Benutzer 'root' Zugriff hat. Bei mir ist das die Datei '/var/dns-zonefiles'. Anschließend legen wir bspw. im '/root'-Verzeichnis folgendes Skript an:

    #!/bin/sh

    ZONELIST=/usr/local/etc/maradns/zonelist
    TEMP=/var/dns-zonefiles
    cd /usr/local/etc/maradns

    cat $ZONELIST | awk '{print "fetchzone "$1" "$2" > '$TEMP'"
                          print "if [ $? -eq 0 ] ; then"
                          print " mv '$TEMP' db."$1
                          print "fi";}' | sh

  2. Die Datei '/usr/local/etc/maradns/zonelist' enthält alle abzufragenden Domainnamen mit den zugehörigen Servern, von welchen sie abgefragt werden sollen.

    Beispiel:

    deinedomain.de   10.0.0.1
    meinedomain.de   10.0.0.2

    Das Skript legt also im Verzeichnis '/usr/local/etc/maradns' für jede Domain in der Datei 'zonelist' eine Datei mit dem Namen "db.<DOMAINNAME" an. Diese müssen natürlich in die MaraDNS-Konfiguration in der Zeile csv2["DOMAINNAME.DE."] = "..." eingetragen werden.

  3. Jetzt legen wir noch einen CronJob an, der in einem gewissen Rhytmus (nicht zu häufig) diese Skript ausführt. Ich würde hier vielleicht, je nach Häufigkeit von Änderungen, ein- bis max. zweimal pro Tag vorschlagen.
    WICHTIG: Wenn die Zonefiles durch dieses Skript nun geändert wurden, muss MaraDNS neu gestartet werden. Nur das Überschreiben der Dateien bewirkt keine Änderung. Also einen zweiten Cronjob einrichten, der bspw. 10 Minuten später (also mit etwas Pufferzeit) den MaraDNS-Server neustartet. Der Befehl lautet:

    # sh /usr/local/etc/rc.d/maradns.sh restart

    # sh /usr/local/etc/rc.d/zoneserver.sh restart
Einen Kommentar hinzufügen

Einen Kommentar hinzufügen

This is a captcha-picture. It is used to prevent mass-access by robots. (see: www.captcha.net)
Code im diesem Bild:
Ihr Name(*):
Kommentar(*):