为什么以太网桥接不适用于 OpenStack?

Chr*_*isM 7 networking network-bridge openstack

我正在尝试使用 nova.network.manager.FlatManager 网络管理器设置 OpenStack,它将(在我的设置中)每个虚拟机连接到 br100 网桥。

在我的主机上,我使用以下网络设置:

auto lo
  iface lo inet loopback

auto eth0
  iface eth0 inet static
  address 192.168.0.50
  netmask 255.255.255.0
  broadcast 192.168.0.255
  gateway 192.168.0.1

auto eth0:0
iface eth0:0 inet static
  address 192.168.100.1
  netmask 255.255.255.0
  broadcast 192.168.100.255
Run Code Online (Sandbox Code Playgroud)

这导致以下接口配置:

eth0      Link encap:Ethernet  HWaddr 00:1a:92:08:15:43  
          inet addr:192.168.0.50  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::21a:92ff:fe08:1543/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:5365 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5177 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:572855 (572.8 KB)  TX bytes:1812681 (1.8 MB)
          Interrupt:43 Base address:0x6000 

eth0:0    Link encap:Ethernet  HWaddr 00:1a:92:08:15:43  
          inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          Interrupt:43 Base address:0x6000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:49079 errors:0 dropped:0 overruns:0 frame:0
          TX packets:49079 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:25157104 (25.1 MB)  TX bytes:25157104 (25.1 MB)

virbr0    Link encap:Ethernet  HWaddr c6:b2:4f:da:cd:ff  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

vnet1     Link encap:Ethernet  HWaddr fe:16:3e:3a:77:dc  
          inet6 addr: fe80::fc16:3eff:fe3a:77dc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:153 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500 
          RX bytes:6642 (6.6 KB)  TX bytes:468 (468.0 B)
Run Code Online (Sandbox Code Playgroud)

网桥配置(brctl show)如下所示:

bridge name     bridge id               STP enabled     interfaces
br100           8000.fe163e3a77dc       no              vnet1
virbr0          8000.000000000000       yes
Run Code Online (Sandbox Code Playgroud)

我创建了一个分配了 IP 地址 192.168.100.2 的虚拟机(使用 vnet1)。

对我来说,一切似乎都很好,除了 eth0:0 没有连接到网桥。当我尝试通过运行更改它时brctl addif br100 eth0:0,网络完全中断(我无法再 ping 192.168.0.x 子网上的其他主机),但仍然无法 ping 连接到网桥的虚拟机(使用 vnet1 接口)。

如何在不中断 eth0 LAN 连接的情况下将 eth0:0 连接到网桥?或者在只有一个物理网络适配器的主机上的 OpenStack 测试环境中是否有更好的网络连接方式?

小智 4

首先,忘记virbr0——这是由libvirt添加的并且是无关紧要的。

对于具有一个 NIC 的“一体式”Openstack 服务器,应该不需要另一个别名虚拟接口。正如 Openstack 指南中所讨论的,您应该桥br100接到您的公共IP 地址 (eth0),并让 Nova 创建实例并将它们桥接到br100.

例如,将以下内容添加到/etc/network/interfaces,并根据静态情况进行适当修改:

汽车BR100
iface br100 inet dhcp
    桥接端口 eth0
    桥接stp关闭
    桥接最大等待时间 0
    桥接FD 0

允许的私有 IP 子网必须通过--fixed-range中的选项进行配置nova.conf,并将--flat_network_bridge选项设置为br100

请将您的nova.conf问题粘贴到问题中,以帮助进一步排除故障!