I have a desktop machine connected to a Gigabit Ethernet switch, plugged in to my Cisco 1801 router. The switch is dumb and doesn’t support VLAN tagging, which is fine as I have everything in a single VLAN.
My desktop machine works fine with IPv6, however when I brought up a virtual machine on VirtualBox, IPv6 breaks for that particular VM. “ip addr show” tells me that it’s autoconfigured three IPv6 addresses, each on separate subnets – one of them correct, two wrong (but valid on other subnets here).
What’s going on? It turns out I’d set the port to my GigE switch up as a trunk port, with the native VLAN being the user access VLAN, and two other VLANs allowed. What this does is to send frames in VLAN 4 on to the wire untagged, and any untagged frames received automatically drop in to VLAN 4. However, any broadcast frames from VLANs 5 and 6 are sent on to the wire with an 802.1q header – and VirtualBox, being very clever, seems to pass these up to the virtual machine without their 802.1q headers.
I may file a bug – that’s too clever