Monday, May 10, 2021

VirtualBox 6.1 blocks outgoing WOL packets

Symptom 1: WOL tools no longer work after installing VirtualBox.

Symptom 2: SqueezePlay no longer works but SqueezeLiteX does.

Symptom 3: Connect App no longer works

Configuration: PC1 running WIN10 + WOL tool + VirtualBox --> PC2 running WIN10

(For clarification: the WOL tool is NOT running INSIDE VirtualBox.)


Detection and temporary fix

Temporary fix and check: de-installing or disabling the ' VirtualBox Host-Only Network Adapter ' gets the WOL tool working again.

VirtualBox will reinstall the driver when restarting any virtual machine.


Permanent fix

Though I haven't got a real clue what it does, I managed to fix it by doing the following:

1. Elevated command prompt

2. netsh interface ipv4 show config

3. Check the value of your regular network adapter, and your VirtualBox adapter.

4. If the latter is the same or lower, change its value, using the new value instead of XX:

5. netsh interface ipv4 set interface "VirtualBox Host-Only Network" metric=XX


In my case I tried a value of 35 which appears to work fine.

Apparently, Windows sorts the interfaces, and tries to route the packets through the VirtualBox virtual interface. By changing the metric the regular interface seems to take precedence again.


More troubles

When Windows updates, things might get more complicated. Windows might assign different metrics, or the device name might change. (That just happened on my Dell M2800 when it upgraded to Windows 10 2004.) This may also affect the 'Connect App'.

You can find active devices here:

Control Panel > Network and Internet > Network Connections > Change Adapter Settings

On my M2800 it listed five devices. Netsh lists more devices, but that's okay. One of the devices listed is 'Ethernet 2 - VirtualBox Host Only Adapter'. There was no longer a Virtual Box adapter visible with netsh, but via the control panel I could figure out that 'Ethernet 2' is the Virtual Box adapter. Which, unsurprisingly, suddenly had a metric of 25 again.

netsh interface ipv4 set interface "Ethernet 2" metric=35

... and it works again.

Why make things so difficult? Sigh...


Source

From https://www.virtualbox.org/ticket/8698#comment:34 :

BirtualVox:

I have the same problem (in my case, it's the multicasting that Minecraft uses to find LAN servers that doesn't work).

The output of netsh interface ipv4 show config tells me that VirtualBox Host-Only Network has InterfaceMetric 25, which is the same as what my hardware interface has. I suspect this is the problem.

I also have two virtual VMware Network Adapters (installed by VMware Workstation Player), but they both have InterfaceMetric 35.

I'm guessing that this is because VirtualBox Host-Only Network acts a 1 Gbps interface, but the VMware Network Adapters act as 100 Mbps interfaces?

I can fix it by manually setting the metric of the Virtualbox Host-Only Network to a higher value, but it would of course be nice if this wasn't needed. Here's a one-liner to do it in an elevated command prompt (where XX = your desired metric):

netsh interface ipv4 set interface "VirtualBox Host-Only Network" metric=XX

Making the VirtualBox Host-Only Network act as a 100 Mbps interface would probably work, but that just feels like a dirty hack (especially since it likely wouldn't work if the hardware interface would also be 100 Mbps).

Oh, forgot to mention that I'm on Windows 10 x64 1909 with VirtualBox 6.1.10


No comments:

Post a Comment