QEMU/KVM 和 VirtualBox 之间的网络差异

QEMU/KVM 和 VirtualBox 之间的网络差异

我注意到 QEMU/KVM(通过 libvirt 使用)和 VirtualBox 之间的网络体验存在以下差异:

  • 对于用户模式或手动网络之外的任何其他情况,QEMU/KVM 需要virbr0创建一个网络接口,并且它向 iptables 添加了一堆规则。另一方面,VirtualBox 可以在 NAT 和桥接模式下运行,而无需接触iptables或创建任何网络接口。

  • 可能与上述相关,在非root用户会话中,QEMU/KVM仅允许用户模式(或手动)网络,而VirtualBox即使没有root权限也支持大多数/所有各种网络模式。

我想了解这些差异背后的根本原因及其影响。我想到的几个具体问题:

  • VirtualBox 的网络解决方案似乎需要较少的权限。这是类似于 QEMU/KVM 的用户模式网络(只是有更多选项)的各种网络协议的用户空间实现的结果,还是用户在组中的成员身份允许的幕后执行的特权操作vboxusers

  • QEMU/KVM 的用户模式网络是否比 VirtualBox 的 NAT 模式网络差?根据libvirt 常见问题解答,用户模式网络“具有不明显的限制,因此不鼓励使用它”,但我找不到这些限制是什么(除了仅限于 NAT 之外)。对我来说,只做一个简单的 NAT 似乎完全没问题(事实上,这似乎是微不足道的,即使不是避免修改的唯一方法iptables)。

  • 三种 NAT 替代方案(VirtualBox NAT、QEMU/KVM“适当”NAT、QEMU/KVM 用户模式网络)的安全性和性能如何相互比较?

答案1

由于缺乏答案,我在这里发布我自己的发现,无论它们可能多么有限。

根据QEMU 维基,用户组网有以下限制:

  • 慢的
  • 无 ICMP(例如,无法ping从访客使用)
  • NAT 的常见限制

QEMU 和 VirtualBox 都有基于以下基础的用户空间网络实现SLiRP,所以它们的局限性应该是可比较的(尽管 VirtualBox 似乎有长波IP以及)。

相关内容