通过标记绑定创建多个 kvm 桥接

通过标记绑定创建多个 kvm 桥接

我在 RHEL6.5 中有以下配置,效果很好。

# ifcfg-em1_2
DEVICE=em1_2
HWADDR=C8:1F:66:D8:77:D2
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes
USERCTL=no

#ifcfg-em2_2
DEVICE=em2_2
HWADDR=C8:1F:66:D8:77:E2
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
MASTER=bond0
SLAVE=yes
USERCTL=no

#ifcfg-bond0
ARP=no
BOOTPROTO=none
DEVICE=bond0
IPV6INIT=no
NM_CONTROLLED=no
NOZEROCONF=yes
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"

#ifcfg-bond0.18
DEVICE=bond0.18
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
VLAN=yes
BRIDGE=br0

# ifcfg-br0
DEVICE=br0
ONBOOT=yes
SLAVE=bond0.18
TYPE=Bridge
DELAY=0
VLAN=yes

# IPv4
GATEWAY=<GATEWAY>
IPADDR=<IP>
NETMASK=<NETMASK>
NM_CONTROLLED=no
NOZEROCONF=yes

DOMAIN=<DOMAIN>
DNS1=<DNS1>
DNS2=<DNS2>

# brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.c81f66d877df       no              bond0.18
                                                        vnet0
                                                        vnet1
virbr0          8000.52540014bdec       yes             virbr0-nic

我想在同一个绑定上添加第二个网桥,但不要用 vlan 18 标记它,而是使用例如 vlan 26。我尝试添加以下文件并重新启动网络服务,但它不起作用并且与服务器的连接丢失。不得不删除 br1 配置文件并再次重新启动网络,因此出于某种原因我无法将 2 个网桥连接在一起。我遗漏了什么吗?

#ifcfg-bond0.26
DEVICE=bond0.26
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=static
VLAN=yes
BRIDGE=br1

# ifcfg-br1
DEVICE=br1
ONBOOT=yes
SLAVE=bond0.26
TYPE=Bridge
DELAY=0
VLAN=yes

# IPv4
GATEWAY=<GATEWAY2>
IPADDR=<IP2>
NETMASK=<NETMASK2>
NM_CONTROLLED=no
NOZEROCONF=yes

DOMAIN=<DOMAIN>
DNS1=<DNS1>
DNS2=<DNS2>

另外,我是管理 KVM 机器的新手,所以在brctl show我上面写的输出中,有一个virbr0我不知道它来自哪里的接口。我猜它是虚拟机的 vnic,在第二个桥接器工作后,我必须设置类似的东西吗?这个想法是在 VM 中有多个接口(用于服务、备份、bd 连接等),就像我说的,一开始我只有 1 个在工作,但我不知道如何添加更多。

干杯,

答案1

virbr0很可能是 KVM 在为您创建桥接时选择的名称。配置自己的桥接很困难,但并非不可能。

根据我对配置网桥的文档的阅读,您应该只有一个网桥连接到物理设备(eth0,bond0等)。

您可以配置第二个网桥并使用 IP 转发来处理流量路由。这相当容易做到。

您应该能够在同一桥上标记多个 VLAN。这可能是最简单的方法。

答案2

您正在尝试做的事情正是正确的方法。

  • 你在一个绑定中有两个 NIC
  • 你有债券本身
  • 在绑定上,您可以为每个正在使用的 VLAN 创建一个标记接口加网桥,并将单独的 VM vNIC 连接到这些网桥。

请记住,虚拟机的 PCI 地址数量有限,因此您不能拥有 4000 个 NIC。

编辑:virbr0 桥由 libvirt 自动创建。您可以放心地忽略它并使用您自己的配置。

相关内容