DHCPv6 - multiple addresses from different prefixes

Tj ml.isc at elloe.vision
Sun Jan 3 12:08:00 UTC 2021

We've been attempting to assign multiple IPv6 addresses, each from a
different prefix, as descried in RFC8415 6.6 "Multiple Addresses and

With "dhclient -6 -N -N" the clients can request multiple addresses.

However it appears there is no way to write a dhcpd6.conf to achieve
this. Multiple 'subnet6' in a 'shared-network' issues all addresses from
the first 'subnet6' (and from reading source-code and docs will do that
until the first range is exhausted).

There's a note in ./server/dhcpv6.c:

 * TODO: support multiple shared_networks on each interface (this
 *       will allow the server to issue multiple IPv6 addresses to
 *       a single interface)

So we assume this was thought of but not implemented, at least via

We tried adding two 'shared-network' blocks, one for each prefix, but
only the last is acted on.

As the RFC says, one use-case is when a network is being renumbered. In
our use-case we need to issue ULAs (fd00::/8) and one or more globally
routable prefixes.

Is there a way to do this? If not is Kea currently capable of this (from
reading the docs and Wiki it looks like Kea has the same problem as dhcpd) ?

That seems to leave us with a couple of options:

1. Switch to a server than can (possibly Dhcpy6d)
2. Patch dhcpd
  a. add support for multiple shared-networks (big job)
  b. hack pick_v6_address() to always increment pond->last_ipv6_pool via
'i' as is done for attempts > 1 which would work if the client requests
the same number of addresses as there are 'subnet6' blocks and ranges.

Are there other options we've missed?


More information about the dhcp-users mailing list