技术解析

Archlinux+KVM+virtio-net 桥接网卡无收包
0
2021-07-01 13:32:31
idczone

#起因:

libvirt 管理的 Win7 guest 从休眠状态恢复后蓝屏重启,继续休眠恢复再蓝屏死循环。猜测 Archlinux 更新太快, Qemu 或者 libvirt 有变化导致 windows 从唤醒后蓝屏。

#折腾:

直接回滚到没有休眠状态的备份, OK ,没问题了。 然后发现桥接网络 Ping 不通,路由器能收到 guest 的 DHCP 请求,但 Guest 没有收到任何数据包,修改 xml ,将原有桥接网络换成 user-mode 网络, guest 一切正常。

然后就怀疑自己 host 的桥接网络配置有问题,走入死胡同,我用 netctl 创建的 bridge ,各种折腾还是不行。

后来修改 xml 启动 ArchLinux 的 Live-CD ,居然正常的?! 再然后,修改 xml ,将网卡从 virtio-net 换成 rtl8139 , win7 网络终于正常了。

后续折腾:下载 fedora 提供的最新半虚拟化驱动安装时 guest 直接卡死,就算更新了驱动桥接模式下还是只有发包,网卡没有收包。而 user-mode 网络+半虚拟化网卡则没有问题。

qemu 版本是 2.8.0, 半虚拟化驱动是 virtio-win-0.1.130.iso 里面的 2017 年的驱动。

#感受

Archlinx 有时真的好折腾。。。 至今不知道是驱动问题还是 host 网络配置不当, NAT 模式等没有测试。


Windows 默认没有 VirtIO 驱动,实在不行用 NAT 即可,网卡可用 E1000 。

virtio 用的 redhat 编译并签名的, nat 没试,用户模式网络没问题,桥接就没收包,但又需要用桥接模式,换网卡型号就正常,不知道是 virtio 驱动问题还是 qemu 的问题。

有些网卡不能桥接 尤其是无线网卡

https://github.com/archlinuxcn/repo/commit/c12017096ebbe4ff7a1a858feed0f44060c3d78b

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服