[ipxe-devel] Handling multiple IPv6 addresses in the same prefix
mcb30 at ipxe.org
Mon Jun 1 17:31:48 UTC 2015
On 10/12/14 15:53, Wissam Shoukair wrote:
> We've encountered cases where in an IPv6 network, a router advertisement packet has both the "Managed address configuration" bit set, telling iPXE to retrieve its IP address through DHCP, and the "autonomous address-configuration" bit also set, telling iPXE to generate an IP address automatically from the prefix published in the RA packet. iPXE supports only a single IP address for each subnet/prefix, so when it receives the second RA packet, it replaces the IP address configured by DHCP with the stateless address generated with the prefix.
> If the RA packet is received in the middle of a TCP transfer, the connection is broken, and the incoming packets are dropped as they belong to the previous IP address.
> This can also happen if a subnet contains two routers, for instance a DHCP server, and a switch, both publishing conflicting router advertisement packets.
> We are not sure whether this is a valid configuration. In any case, we believe the fact that iPXE only supports a single IP is problematic, because our Linux servers were able to configure both IP address without a problem.
> What do you think should be the right behavior in this case? Perhaps iPXE should store two IP addresses on each prefix - one from SLAAC and one from DHCPv6?
I can't tell whether or not it is permitted to have stateless and
stateful addressing active on the same prefix.
Potentially we could extend iPXE's notion of an IPv6 address to include
an "origin", which would be the IPv6 address of the advertising router
or stateful DHCPv6 server (plus a flag to indicate RA versus DHCPv6).
This would allow for multiple addresses within a single prefix, with the
correct record being updated as applicable (e.g. when a repeated router
advertisement is received). We would still need to determine a sensible
policy for which local IPv6 address and router to use, in the case that
multiple addresses exist for a given prefix.
More information about the ipxe-devel