I've got what I think is the standard qemu bridge/ubuntu tap interfaces set up running variety of VMs on my Ubuntu host. All the VMs I'm having trouble with are Windows images.
I have researched this for weeks, and tried everything I've found, from promiscuous mode to txqueuelength to unique/different vlans to statically defining the tap interfaces to various sysctl settings to various /proc settings, etc. etc. etc. Nothing works.
When I bring up a single image, TAP works fine. But two, three, four, and inevitably one or more fails, and in Ubuntu, you can see it just dropping all of the packets. I've got to get this resolved. I know I'm providing very little specific information, but I need somebody to ask certain questions so I can post relevant answers.
Anyone know why Ubuntu + bridge + tap + qemu + virtio + Windows 7 drops packets and has network failures? Can somebody point me in a direction I haven't already tried?
I can provide this level of detail. This is basically what's happening. It will work fine for some random amount of time, then starts dropping transmit packets. Once that happens, it can never recover:
tap1 Link encap:Ethernet HWaddr 9a:14:12:5c:12:27
inet6 addr: fe80::9814:12ff:fe5c:1227/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3466 errors:0 dropped:0 overruns:0 frame:0
TX packets:16748 errors:0 dropped:232 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:319576 (319.5 KB) TX bytes:23245045 (23.2 MB)
Update:
- It's not the router. I've tried three.
- It's not the ethernet card. I've got two, and tried them both.
- It's not the "ethtool" offload settings. I tried turning them all off.
iptables -I FORWARD -d 255.255.255.255 -j ACCEPT
didn't solve the problem.- The settings in /proc/sys/net/bridge already appear correct.
- Setting the card to promisc mode (or the bridge) didn't solve the problem.
- Increasing the length of txqueuelen in the tap, br, and eth didn't either.