I'm using isc-dhcp-server version 4.3 (isc-dhcpd-4.3.5) as a DHCP server for my local IPv4 LAN and I'm trying to configure it to use the option dhcp-client-identifier (DHCP option 61) in a host declaration in order to identify a DHCP client:
host client_host {
option dhcp-client-identifier xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
fixed-address 192.168.0.20;
}
Unfortunately, the DHCP server seems to be ignoring this option (it doesn't complain about this option when starting – so the option is recognized and the syntax is correct). The address assignment works perfectly fine when I use hardware ethernet with the client's MAC, so I'm sure that otherwise both the DHCP server and the DHCP client are configured properly.
In the official ISC DHCP specification for the dhcpd.conf file (this is for version 4.1, and same thing is also in the documentation for version 4.4, so I'm assuming that this is also true for version 4.3.5, which I'm using) I've found the following:
Host declarations are matched to actual DHCP or BOOTP clients by matching the dhcp-client-identifier option specified in the host declaration to the one supplied by the client, or, if the host declaration or the client does not provide a dhcp-client-identifier option, by matching the hardware parameter in the host declaration to the network hardware address supplied by the client. BOOTP clients do not normally provide a dhcp-client-identifier, so the hardware address must be used for all clients that may boot using the BOOTP protocol.
I'm also sure that the DHCP client does send the dhcp-client-identifier in the DHCPv4 request – I've looked inside the packet using wireshark, and verified it conforms to RFC-4361. Also, according to the same RFC, a conformant DHCP Server cannot ignore this option:
DHCPv4 servers that conform to this specification MUST use the 'client identifier' option to identify the client if the client sends it.
At this point I'm assuming that the isc-dhcp-server does support the dhcp-client-identifier option (this assumption is based on the ISC DHCP specification). The refered ISC DHCP specification also describes a behaviour that is also conformant to the RFC (as quoted above).
So my question is – what am I missing here? Is there some additional ISC DHCP server configuration needed?
Or maybe isc-dhcpd does not support the dhcp-client-identifier option for IPv4 (and at the same time their official specification is incorrect)?
EDIT Perhaps I should mention that I have also a DHCPv6 server running in parallel to the DHCPv4 one. The DHCPv6 server is configured to use the same DUID and it works perfectly fine there:
host client_host {
host-identifier option
dhcp6.client-id xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx;
fixed-address fdxx:xxxx:xxxx:xxxx::1;
}
The reason why I want to use the DUID also in the DHCPv4 configuration is that I want the DHCP servers to dynamically update my local DNS for both IPv4 and IPv6 networks. And the DNS server cannot identify a specific client using both the MAC address (received from the DHCPv4 server) and the DUID (from the DHCPv6 server) – it will only accept one form of identification and ignore the other one.