Tech Blog

Debian 8 Under Bhyve Networking Problem: Packets Over 230 Bytes Truncated

We’re a big fan of FreeBSD’s Bhyve hypervisor, including writing an open source lightweight management interface for it called BMT. While setting up a...

Published
February 13, 2018
Author
Adam Strohl
Reading time
1 minute

Debian 8 Under Bhyve Networking Problem: Packets Over 230 Bytes Truncated

We’re a big fan of FreeBSD’s Bhyve hypervisor, including writing an open source lightweight management interface for it called BMT.

While setting up a Debian 8 guest VM we ran into a perplexing issue where networking was not working correctly.

After much troubleshooting we narrowed down the symptom to be that packets larger than 230 bytes (ie; ICMP payloads of 203 and greater plus overhead) were being truncated by, we suspect, Debian’s VirtIO networking driver:

root@debian-blank1:~# ping -M do -s 203 172.17.66.1
        PING 172.17.66.1 (172.17.66.1) 203(231) bytes of data.
        ^C
        --- 172.17.66.1 ping statistics ---
        1 packets transmitted, 0 received, 100% packet loss, time 0ms

Packets smaller worked fine:

root@debian-blank1:~# ping -M do -s 202 172.17.66.1
        PING 172.17.66.1 (172.17.66.1) 202(230) bytes of data.
        210 bytes from 172.17.66.1: icmp_seq=1 ttl=64 time=0.320 ms

The solution was to switch Bhyve over to use the new Intel E1000 network card emulation driver instead of VirtIO. This is achieved by replacing the virtio-net with e10000 in the -s flag’s options list of the bhyve flags. If you’re using BMT simply set VM_NET_DRIVER="e1000" in the guest config.

After that no issues were reported. This seems specific to Debian 8 OSes, Debian 9 had no such problem even on the same guest instance in our testing.

Need help with Linux or FreeBSD infrastructure?

A-Team Systems provides engineer-led support for production Linux and FreeBSD environments, including troubleshooting, operational oversight, and ongoing infrastructure management.

Contact A-Team Systems