$Id: Dynamic-DNS-DHCP.txt,v 1.1 2008/02/13 22:34:40 jerry Exp $ Dynamic DNS and DHCP -------------------- using BIND 9 and ISC DHCPD v3 DNS --- Create a dnssec key # dnssec-keygen -a hmac-md5 -b 128 -n USER dhcpupdate produced 2 files called Kdhcpupdate.+157+64338.key Kdhcpupdate.+157+64338.private The key is the last token in the .key file update named.conf key dhcpupdate { algorithm hmac-md5; secret "YOUR_KEY_GOES_HERE"; }; add allow-update { key dhcpupdate; }; to zones to be updated restart named with kill -HUP or /etc/rc.d/named stop /etc/rc.d/named start Test it using nsupdate # nsupdate > server marles.internal > key dhcpupdate YOUR_KEY_GOES_HERE > zone internal > update add wibble.internal. 600 IN A 192.168.1.50 > send > zone 1.168.192.in-addr.arpa > update add 50.1.168.192.in-addr.arpa 600 IN PTR wibble.internal. > send # host wibble.internal wibble.internal has address 192.168.1.50 # host 192.168.1.50 50.1.168.192.in-addr.arpa domain name pointer wibble.internal. delete it # nsupdate > key dhcpupdate YOUR_KEY_GOES_HERE > update delete wibble.internal > send > update delete 50.1.168.192.in-addr.arpa > send DHCP ---- in /usr/local/etc/dhcpd.conf add ddns-update-style interim; key dhcpupdate { algorithm hmac-md5 secret YOUR_KEY_GOES_HERE; } zone internal { primary marles.internal; key dhcpupdate; } zone 1.168.192.in-addr.arpa { primary marles.internal; key dhcpupdate; } Restart dhcpd and check its working error will appear in /var/log/messages leases are in kept in /var/db/dhcpd.leases /*** end ***/