ISC DHCP eui-64 based allocation
Quoting dhcpd.conf.5 about the optionAL EUI-64 feature:
use-eui-64 flag; The use-eui-64 flag, if enabled, instructs the server to con- struct an address using the client's EUI-64 DUID (Type 3, HW Type EUI-64), rather than creating an address using the dynamic algorithm. This means that a given DUID will always generate the same address for a given pool and further that the address is guaranteed to be unique to that DUID. The IPv6 address will be calculated from the EUI-64 link layer address, conforming to RFC 2373, unless there is a host declaration for the client-id. The range6 statement for EUI-64 must define full /64 bit ranges. Invalid ranges will be flagged during configuration parsing as errors. See the following example: subnet6 fc00:e4::/64 { use-eui-64 true; range6 fc00:e4::/64; } The statement may be specified down to the pool level, allowing a mixture of dynamic and EUI-64 based pools. During lease file parsing, any leases which map to an EUI-64 pool, that have a non-EUI-64 DUID or for which the lease address is not the EUI-64 address for that DUID in that pool, will be discarded. If a host declaration exists for the DUID, the server grants the address (fixed-prefix6, fixed-address6) according to the host declaration, regardless of the DUID type of the client (even for EUI-64 DUIDs). If a client request's an EUI-64 lease for a given network, and the resultant address conflicts with a fixed address reserva- tion, the server will send the client a "no addresses available" response. Any client with a non-conforming DUID (not type 3 or not hw type EUI-64) that is not linked to a host declaration, which requests an address from an EUI-64 enabled pool will be ignored and the event will be logged. Any client with a non-conforming DUID (not type 3 or not hw type EUI-64) that is not linked to a host declaration, which requests an address from an EUI-64 enabled pool will be ignored and the event will be logged. Pools that are configured for EUI-64 will be skipped for dynamic allocation. If there are no pools in the shared network from which to allocate, the client will get back a no addresses available status. On an EUI-64 enabled pool, any client with a DUID 3, HW Type EUI-64, requesting a solicit/renew and including IA_NA that do not match the EUI-64 policy, they will be treated as though they are "outside" the subnet for a given client message: Solicit - Server will advertise with EUI-64 ia suboption, but with rapid commit off Request - Server will send "an address not on link status", and no ia suboption Renew/Rebind - Server will send the requested address ia suboption with lifetimes of 0, plus an EUI-64 ia Whether or not EUI-64 based leases are written out to the lease database may be controlled by persist-eui-64-leases statement.
Added to ISC DHCP as an optional feature on customer request. Can be ported to Kea.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information