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!