Advanced DHCP configuration with DDNS

DDNS erweitert den DHCP Server um die Möglichkeit den Hostnamen einer neu vergebenen IP gleichzeitig im DNS Server zu registrieren. Um diese Funktionalität einzurichten muss sowohl der ISC DHCP Server als auch der Bind DNS Server konfiguriert werden.

Am DNS Server muss die Konfiguration vom /etc/bind/zones Verzeichnis ins /var/cache/bind/zones Verzeichnis kopiert werden. - Das war bereits bei der Master Slave Replikation beim DNS notwendig da sich die Zonendateien dynamisch ändern können. Der Bind User und die Bind Gruppe sollten nun Schreibrechte auf die Dateien besitzen. Die Datei named.conf.local muß nun noch auf die neuen Zonenfiles im /var/cache/bind Ordner zeigen. Die Datei sollte dann folgenden Inhalt haben.

zone "server1.com" {
    type master;
    file "/var/cache/bind/zones/server1.com.db";
    allow-update{key rndc-key;};
};

Des weiteren muss ein Key erstellt werden der es dem DHCP Server erlaubt die Daten im DNS Server upzudaten. Der Key kann mit foilgendem Befehl erstellt werden:

dnssec-keygen -a hmac-md5 -b 256 -n HOST key.file

Der key kann nun mittels include Befehl in die named.conf.local eingebunden werden. Der include Befehl sollte am Anfang der Datei stehen.

include "/etc/bind/rndc.key"
...

Nun muss noch die Konifguration des DHCP Servers angepasst werden. Die Datei /etc/dhcp/dhcpd.conf muss um folgenden Zeilen ergänzt werden.

ddns-updates on;
ddns-update-style interim;
update-static-leases on;
key rndc-key {algorithm .....};
allow unknown-clients;
use-host-decl-names on;

Hier eine Erkärung der einzelnen Parameter.

  • ddns-updates on, Dynamische Updates werden aktiviert
  • ddns-update-style interim, sollte immer „interim“ sein; die andere aber veraltete Möglichkeit wäre „adhoc“
  • update-static-leases on, auch statische leases werden geupdatet
  • authoritative, Wenn der DHCP der einzige seiner Art im Netzwerk ist oder sein soll, sollte diese Option gesetzt sein.
  • key rndc-key, Hier wird der Key für die Übertragung definiert (rndc-key), welcher auch beim DNS-Server verwendet wird.
  • allow unknown-clients, Ist standardmäßig aktiviert; es werden auch Adressen an unbekannte Clients vergeben.
  • use-host-decl-names on, Die von den Hosts definierten Hostnames werden verwendet.
  • log-facility local7, Logging für DHCP ist aktiviert.

Nun muß noch die Subnetztdeklaration angepasst werden. Die Einträge sollten um folgende 2 Zeilen erweitert werden:

subnet 192.168.1.0 netmask 255.255.255.0{
    range ....

    ddns-domainname "server1.com";
    ddns-rev-domainname "in-addr.arpa";
}

Dannach muss noch der DNS Server der aktualisiert werden werden soll in der dhcpd.conf Datei eingetragen werden. Das erfolgt für die Forward Zone folgendermassen:

zone server1.com{
    primary 127.0.0.1;
    rndc-key <wie oben>
}

Sollte alles richtig konfigruriert sein so ist die Namesauflösung der Forward- und der Reversezone erfolgreich möglich. Testen kann man das mit nslookup oder dig.

Die Ip Adressevergabe und mögliche Fehler sollten in der /var/log/syslog Datei mitprotokolliert werden. Achtung ab Debian 12 muss der Fehler in journalctl -f gesucht werden!