我在 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 自动创建。您可以放心地忽略它并使用您自己的配置。