Any experience with dhcpy6d for IPv6 stateful DHCP


I am looking into future options for our IPv6 DHCP management which is currently - ehm - none. One project was mentioned years ago and it looks like it’s still well and alive: dhcpy6d.

In short: the problem of DHCPv6 is that MAC address is no longer present in the request, instead technically a random UID (DUID) is sent. This does not fit very well with Foreman workflow where MAC address of a provisioning interface is the key identifier.

It’s a tiny DHCPv6 server that is written in Python and it has quite unique feature - it pairs incoming DHCPv6 requests with local link table and retrieves MAC address. This way, DHCP records can be created with matching MAC addresses exactly how Foreman wants.

This could solve our IPv6 management, on the other hand, it is a small project, it says it was tested up to 4000 hosts (Foreman manages much more than that) and also it does not support IPv4 therefore we would need to have two smart proxy modules for two different implementations.

If you think ISC Kea (the new DHCP server from ISC) would support MAC addresses, it’s not like that. There is support for extracting MAC address via Client Link Layer Option but not all hardware supports that. So the dhcpy6d project is quite unique.

If you think this is not the good way to go then I think we should resurrect an idea to utilize two DHCP servers - one for serving PXE clients with network booting information and other for DHCP, possibly not even managed by Foreman at all. The PXEDHCP instance would be fully static - no configuration changes needed.

Alternatively, we could also implement what dhcpy6d does too - reservations could be done by watching DHCP traffic on the network and creating DHCP reservations once MAC address is captured.

More relevant reading: