Назад | Перейти на главную страницу

Ubuntu + bridge + qemu + tap + virtio отбрасывает пакеты

У меня есть то, что я считаю стандартными интерфейсами 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)

Обновить:

Хорошо, спасибо ребятам из моста, я нашел ответ. Моя основная проблема заключалась в том, что я не понимал, что «очередь 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 и загрузил последние версии драйверов, удалил их на своих виртуальных машинах и переустановил последнюю, и, похоже, это сработало.