![为什么以太网桥接不能与 OpenStack 兼容?](https://linux22.com/image/1111154/%E4%B8%BA%E4%BB%80%E4%B9%88%E4%BB%A5%E5%A4%AA%E7%BD%91%E6%A1%A5%E6%8E%A5%E4%B8%8D%E8%83%BD%E4%B8%8E%20OpenStack%20%E5%85%BC%E5%AE%B9%EF%BC%9F.png)
我正在尝试使用 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
其结果为以下接口配置:
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)
桥接配置(brctl show)如下所示:
bridge name bridge id STP enabled interfaces
br100 8000.fe163e3a77dc no vnet1
virbr0 8000.000000000000 yes
我已经创建了一个虚拟机(使用 vnet1),其分配了 IP 地址 192.168.100.2。
对我来说,一切似乎都很好,除了 eth0:0 没有连接到网桥。当我尝试通过运行 来更改这一点时brctl addif br100 eth0:0
,网络完全中断(我无法再 ping 192.168.0.x 子网上的其他主机),但我仍然无法 ping 连接到网桥的虚拟机(使用 vnet1 接口)。
如何在不中断 eth0 LAN 连接的情况下将 eth0:0 连接到网桥?或者在只有一个物理网络适配器的主机上,是否有更好的方式在 OpenStack 测试环境中进行联网?
答案1
首先,忘记virbr0
——这是由虚拟器且不相关。
对于具有一个 NIC 的“一体化” Openstack 服务器,不需要另一个别名虚拟接口。正如 Openstack 指南中讨论的那样,你应该桥br100
接到你的民众IP 地址(eth0),并让 Nova 创建实例并将它们桥接到br100
。
例如将以下内容添加到/etc/network/interfaces
,并根据需要修改为静态:
汽车 br100 iface br100 inet dhcp bridge_ports eth0 bridge_stp 关闭 bridge_maxwait 0 bridge_fd 0
必须通过--fixed-range
中的选项nova.conf
并将--flat_network_bridge
选项设置为 来配置允许的私有 IP 子网br100
。
请粘贴您的
nova.conf
问题以帮助进一步排除故障!