VirtualBox flubs IPv6 (when in doubt, go wired)

I’ve just spent an hour struggling with (I thought) IPv6 on Windows 7. IPv6 is enabled by default on Windows 7. I was seeing autoconfigured addresses on the ethernet interface, but there was no IPv6 connectivity beyond that. Looking at it with Wireshark, I could see neighbor discovery packets leaving, but answer came there none. No firewall rules were blocking ICMPv6; in desperation I turned the firewalls OFF on both source and destination test machines – still nothing. What the…?

I should point out at this point that the Windows 7 machine was actually a virtual machine, running in VirtualBox on Linux. I should further point out that the host Linux machine had full dual-stack connectivity, and that everything was working swimmingly. It always has – the host is my main day-to-day workhorse, and I use IPv6 every day, for practically everything – mounting remote drives, logging into remote consoles, printing, emailing… It’s all done with IPv6 from this exact machine. The virtual machine had it’s “Local Area Connection” as a bridged adapter onto the connected interface of the host. The host’s connected interface was wlan0 – a wireless interface.

After this build-up, you probably think there’s a happy ending. Sadly, there’s not. IPv6 on the virtual does not work over the host’s wireless interface, in spite of the host being fully functional on that interface. When I connected the host to my network with an ethernet cable instead, and put the VM on eth0 instead of wlan0, all the problems with the virtual went away – perfect IPv6 connectivity.

After trying many things, I finally bewailed the problem on the Ubuntu Users mailing list. Within an hour, someone (thanks, sktsee) had pointed out this paragraph in the VirtualBox manual:

On Linux hosts, functionality is limited when using wireless interfaces for bridged networking. Currently, VirtualBox supports only IPv4 over wireless. For other protocols such as IPv6 and IPX, you must choose a
wired interface.

So – another speedbump on the road to IPv6! Hope Oracle gets into gear on this soon. A virtualisation technology that can’t do IPv6 is not going to be around for long.


3 thoughts on “VirtualBox flubs IPv6 (when in doubt, go wired)

  1. I have host Ubuntu running Virtualbox. I have a guest Windows 7. In bridged mode with eth0, I can’t make IPv6 work in Windows. Ubuntu is dual stack.

    • Hullo Sumanta.

      Sorry it took so long to respond.

      You wrote:
      > I have host Ubuntu running Virtualbox. I have a guest
      > Windows 7. In bridged mode with eth0, I can’t make IPv6
      > work in Windows. Ubuntu is dual stack.

      If you are bridging to eth0 (not to a wireless interface) then VirtualBox should work fine. Obviously IPv6 will only work for your Windows guest if you have an IPv6-capable network!

      The host does not need to be doing IPv6 itself, but it does need to be allowing it (no firewalls doing anything that would prevent IPv6 from working).

      Also, if your dual-stacked Ubuntu host is using IPv6 via a tunnel (TSP, Teredo, whatever), that will not be made available to the guest unless you configure your host as a router and offer that connectivity to the guest. You would need to use something other than bridged mode for that.

  2. the limitation is not directly Oracle/Virtualbox’s limitation but rather a design of 802.11 wireless MAC that was not designed for bridging. Virtualbox is not alone in having this issue, non-WDS bridged OpenWRT is another example.

Leave a Reply

Your email address will not be published. Required fields are marked *