So I have a situation in which one physical interface (as a result, one MAC) hosts several VLANs in a bond. Seeing as the link-local address in IPv6 is generated from the MAC address all my VLANs end up with the same link-local address. This causes issues in the system.
Is this a known limitation of IPv6? Is there some accepted workaround beyond going into the kernel code and changing the way link-local addresses are assigned?
No, this is not an issue, since one link-local address is affected to the physical interface and the other link-local addresses are affected to the vlan interfaces. Each link-local address can be distinguished by its associated network interface.
Here is an example:
eth0
physical interfaceTherefore, you will have the following configuration for your interfaces:
Note: if you are on Linux, you should use
ip address show
instead ofifconfig
, to use the state-of-the-art iproute2 Linux networking interface.As you can see, the HWaddr and the link local addresses are the same. But since a link local address need to be scoped in a vlan, there is no problem for the kernel, nor for your switch and other hosts.
To ping the link-local on vlan101, you do:
This way, the address is associated with the interface name and no confusion is possible.