У меня есть то, что я считаю стандартными интерфейсами qemu bridge / ubuntu tap, которые позволяют запускать различные виртуальные машины на моем хосте Ubuntu. Все виртуальные машины, с которыми у меня возникают проблемы, - это образы Windows.
Я исследовал это в течение нескольких недель и пробовал все, что нашел, от неразборчивого режима до txqueuelength до уникальных / разных vlan до статического определения интерфейсов крана, различных настроек sysctl, различных настроек / proc и т.д. и т.д. и т.д. Ничего не работает.
Когда я вызываю одно изображение, TAP работает нормально. Но два, три, четыре и неизбежно один или несколько отказов, а в Ubuntu вы можете увидеть, что он просто отбрасывает все пакеты. Я должен решить эту проблему. Я знаю, что предоставляю очень мало конкретной информации, но мне нужно, чтобы кто-то задавал определенные вопросы, чтобы я мог публиковать соответствующие ответы.
Кто-нибудь знает, почему Ubuntu + bridge + tap + qemu + virtio + Windows 7 сбрасывает пакеты и имеет сетевые сбои? Может ли кто-нибудь указать мне направление, в котором я еще не пробовал?
Я могу предоставить такой уровень детализации. Это в основном то, что происходит. Он будет нормально работать в течение некоторого случайного количества времени, а затем начнет отбрасывать передаваемые пакеты. Как только это произойдет, он никогда не сможет восстановиться:
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)
Обновить:
iptables -I FORWARD -d 255.255.255.255 -j ACCEPT
не решил проблему.Хорошо, спасибо ребятам из моста, я нашел ответ. Моя основная проблема заключалась в том, что я не понимал, что «очередь TX» означает, что мост передает гостю (то есть драйверу Windows virtio). В основном драйвер Windows virtio, который я использовал, давал сбой. Мне указали на это:
https://bugs.launchpad.net/ubuntu/+source/qemu-kvm/+bug/1325560
https://bugzilla.kernel.org/show_bug.cgi?id=42829
Я был осторожен, зашел на веб-сайт virtio и загрузил последние версии драйверов, удалил их на своих виртуальных машинах и переустановил последнюю, и, похоже, это сработало.