Dynamic DHCPD Error: DHCID

If you are running Dynamic DNS with DHCPd you may run into an error formatted like so:

Jan 1 00:00:00 localhost dhcpd: Forward map from terminal.example.com to 192.168.100.50 FAILED: Has an address record but no DHCID, not mine.

This error is a simple one. Its warning that a device has requested a lease and that process is attempting to update the DNS server but the DNS server has discovered an identical record with a different identifier.

To fix this error I would manually purge my DNS server and DHCP server of all dynamic records and wait for them to rebuild. This was time consuming and flat out incorrect. There is a much simpler method of solving this error.

Start off by telling your DNS server to hold off from doing any updates while you are messing around with it’s records by issuing the command, assuming you are using bind:

rndc freeze

Once that is done you can go into your DNS server and remove the offending record. Do this by removing the A record for the offending error and the TXT record immediately below it. Then, as usual, you will need to update the serial. Now we can let the server start updating records again by issuing the reverse of the previous command:

rndc thaw

When you ‘thaw’ the DNS server it will re-read the configuration files, so no need to re-load anything.

Now just wait for the next DHCP renew and the record should update with out error.