System Administration & Network Administration
dhcp ddns
Updated Fri, 12 Aug 2022 12:02:30 GMT

DHCP DDNS not working for Linux clients


This is the same problem asked here but there is no indication it was ever resolved for Eddie. Plus, I have already looked at the various answers and tried what was suggested without success.


I have a Linux box running a DHCP service (V3.0.7) and BIND9 (9.6.0-P1). I've configured it to have the DHCP service update the local DNS zone. The DNS updates are working perfectly for Windows and Mac clients but not for Linux (Debian Lenny and Ubuntu 8.10). Looking at the dhcp.leases file I see DDNS related information added for the leases handed out to Win and Mac clients but that information is not present for the leases handed out to he Linux clients. Lease file extract:

lease 192.168.10.199 {
  starts 4 2010/01/07 00:56:43;
  ends 5 2010/01/08 00:56:43;
  tstp 5 2010/01/08 00:56:43;
  binding state active;
  next binding state free;
  hardware ethernet 00:0c:e5:4d:9e:e9;
  uid "\001\000\014\345M\236\351";
  set ddns-rev-name = "199.10.168.192.in-addr.arpa.";
  set ddns-txt = "316ae6c100af725fdd91f9de7f200d6c7a";
  set ddns-fwd-name = "dell.mylocaldomain";
  client-hostname "dell";
}
lease 192.168.10.198 {
  starts 4 2010/01/07 05:14:39;
  ends 5 2010/01/08 05:14:39;
  binding state active;
  next binding state free;
  hardware ethernet 00:1c:42:e2:6f:4a;
  client-hostname "ubuntu";
}

Relevant part of dhcpd.conf:

authoritative;
ddns-updates on;
ddns-update-style interim;
ignore client-updates; # Have also tried allow client-updates, no change
update-static-leases on;
include "/etc/rndc.key";
zone mylocaldomain {
    primary 192.168.10.1;
    key rndckey;
}
zone 10.168.192.in-addr.arpa. {
    primary 192.168.10.1;
    key rndckey;
}

I've gone to the extend of stopping both the DHCP and DNS services and clearing out all information relating to the clients, such as leases and DNS records. The zone journal files were deleted and the services restarted. Upon forcing the clients to renew their leases I still have the same results.

What am I missing? Why are the Linux leases not updating DNS and why would it even matter what OS the clients have when it's the DHCP service that should be doing the updating?




Solution

Is your Linux DHCP client asking for dynamic DNS update? I can't see any information in your question about that, and without it your Linux DHCP requests won't get DDNS registration on the server side. Look at the "DYNAMIC DNS" section in dhclient.conf(5) for details of the settings required.





Comments (3)

  • +0 – I'll check that out but I was under the impressing the DHCP service should request the DNS update whether the client asks for it or not. That's certainly the behaviour I'm looking for and what the documentation and articles I've read so far suggest, without ever actually spelling it out. — Jan 07, 2010 at 10:16  
  • +0 – My experience is that unless the client asks for it, and provides the appropriate information, a DDNS update won't happen. The reason why it looks like the server will do the update regardless is that all clients except dhclient under linux ask for it by default. If you end up with a different experience, I'd be interested to hear about it, because it never worked as you describe for me. — Jan 07, 2010 at 21:36  
  • +0 – It turns out that at least part of man dhclient.conf is correct, but much is misleading. I've been able to get this to work simply by editing dhclient.conf to send the hostname. None of the domain related bits are required. Nor are they desirable if you want this to work on different domains, as I do. The domain name is filled in by the DHCP service. — Jan 10, 2010 at 21:50