Kills Host Networking when running in VirtualBox
|Reported by:||AGMS||Owned by:||axeld|
|Component:||Network & Internet/IPv4||Version:||R1/Development|
|Keywords:||VikrtualBox Networking ICMP Host Unreachable||Cc:||agmsmith@…|
|Has a Patch:||no||Platform:||All|
Recent nightlies (hrev53001 and others after Beta 1) when running in VirtualBox kill the host networking somehow, by adding a packet that says the destination is unreachable. Stopping the Haiku VM (or just turning off networking in Haiku) resumes normal functionality.
Here's what a ping command looks like when running in the host (Fedora 29 Linux), the problems happen when Haiku networking starts working:
ping www.google.com PING www.google.com (188.8.131.52) 56(84) bytes of data. 64 bytes from yul02s05-in-f4.1e100.net (184.108.40.206): icmp_seq=1 ttl=54 time=15.9 ms ... 64 bytes from yul02s05-in-f4.1e100.net (220.127.116.11): icmp_seq=28 ttl=54 time=24.0 ms 64 bytes from yul02s05-in-f4.1e100.net (18.104.22.168): icmp_seq=29 ttl=54 time=8.15 ms From yul02s05-in-f4.1e100.net (22.214.171.124) icmp_seq=30 Destination Host Unreachable 64 bytes from yul02s05-in-f4.1e100.net (126.96.36.199): icmp_seq=30 ttl=54 time=85.10 ms From yul02s05-in-f4.1e100.net (188.8.131.52) icmp_seq=31 Destination Host Unreachable ...
It looks like Haiku is sending a spurious reply ICMP packet with a destination host unreachable error code. That mixes in with the real reply to the ping. Not a big problem if you are just pinging, but in particular TCP is affected so web browsing stops working, etc. Though BitTorrent transfers keep on going (they use their own packet protocol).
However, other real computers on the network work fine, and other VMs keep on running too.
Happens with VBox set up for bridged networking (not VBox NAT mode); dynamic address assigned by the normal LAN DHCP server. Running an emulated Intel PRO/1000 MT Desktop (82540EM) in promiscuous "allow all" mode.
I'll be investigating this a bit more; trying to bisect which hrev causes this problem (or discovering that it's something else :-).