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
Prefixes".

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
'shared-network'.

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?

Tj


More information about the dhcp-users mailing list