KVM/libvirt:Guest 独占桥

KVM/libvirt:Guest 独占桥

我遇到一个问题,在 VM 主机上启动的第一个客户机可以通过其分配的两个接口发送流量,但后续客户机只能通过一个接口发送流量。

我的虚拟机主机设置:
CentOS 6.7(内核 2.6.32-573.7.1.el6.x86_64)
libvirt-0.10.2-54.el6.x86_64
qemu-kvm-0.12.1.2-2.479.el6_7.2.x86_64

主机有4个接口:em1、em2、em3、em4

我将 em1 和 em2 绑定为 bond0,它通过 MacVTap 作为客户机的主要接口。

在 /etc/sysconfig/network-scripts/ifcfg-bond0 中:

DEVICE="bond0"
BOOTPROTO="none"
NM_CONTROLLED="no"
ONBOOT="yes"
BONDING_OPTS="miimon=80 mode=1"

在 /etc/sysconfig/network-scripts/ifcfg-em1 中:

DEVICE="em1"
HWADDR="20:47:47:82:C5:50"
NM_CONTROLLED="no"
ONBOOT="yes"
MASTER="bond0"
SLAVE="yes"

在 /etc/sysconfig/network-scripts/ifcfg-em2 中:

DEVICE="em2"
HWADDR="20:47:47:82:C5:51"
NM_CONTROLLED="no"
ONBOOT="yes"
MASTER="bond0"
SLAVE="yes"

我创建了一个链接到 em3 的桥 br1,它作为客户的辅助接口:

在 /etc/sysconfig/network-scripts/ifcfg-br1 中:

DEVICE="br1"
TYPE="Bridge"
BOOTPROTO="none"
ONBOOT="yes"

/etc/sysconfig/network-scripts/ifcfg-em3:

DEVICE="em3"
HWADDR="20:47:47:82:C5:52"
NM_CONTROLLED="no"
ONBOOT="yes"
BRIDGE="br1"

em4 被分配了一个静态 IP 用于访问主机。

我使用 virt-manager 来管理客户机。我分配了两个网卡,一个分配给 bond0,一个分配给 br1。客户机的每个接口都有静态 IP(一个在 192.168.100.0/24,另一个在 192.168.10.0/24)。

当我启动第一个客户机时,它可以毫无问题地通过两个接口传输流量。但是,后续客户机只能通过 bond0 传输流量。桥接对他们来说从来都不起作用。

我尝试了各种其他配置,包括直接通过 em3 用 MacVTap 替换桥接器(在 VEPA 和 Bridge 模式下)。我还尝试创建一个到 em3 的单网卡 bond1,认为与 bond0 类似的配置会有所帮助。我还尝试了 net.ipv4.ip_forward,尝试了 0 和 1。我还尝试在 em3 上手动设置混杂模式。似乎什么都不起作用。

有没有其他人成功地将两个 NIC 分配给多个客户机并让它们全部正常工作?我在 Google 上搜索了很久,但还是找不到好的答案。

答案1

结束这个问题,结果发现这是使用交换机端口角色的问题,该角色具有隐式 MAC 限制。从本质上讲,这不是一个安全选项,但结果是一样的。

从端口移除角色允许多个客人使用该桥。

相关内容