我在部署与 Linux Bridge 相关的 Openstack 方案时遇到了严重问题。情况如下:
控制器机器:
- 管理接口
enp2s0
:138.100.10.25。
计算机器:
- 管理接口
enp2s0
:138.100.10.26。 - 提供商接口
enp0s20f0u4
:138.100.10.27。
Openstack Train 场景已在 Centos 8 中成功部署,选择网络选项 2(自助服务网络)。
为了验证功能,我们上传了一个镜像,创建了一个 Openstack 风格和安全组,并启动了几个 cirrOS 实例进行连接测试。我们按照以下方式创建了一个提供商网络本教程以及以下自助服务网络这个。
网络场景如下:
从网络拓扑中可以看出,已创建外部网络 138.100.10.0/21(提供商)和内部网络 192.168.1.1(自助服务),通过路由器连接接口 138.100.10.198 和 192.168.1.1,均处于活动状态。
我们的问题是我们的 Linux 桥接器没有按预期工作:Openstack cirrOS 实例无法访问互联网。
这是控制器ip a
和brctl show
命令输出:
这是计算ip a
和brctl show
命令输出:
Testarossa_ip_a Testarossa_brctl
ovs-vsctl show
(两台机器上的命令输出都是空的)。
Linux Bridge 是否正确创建?
这些是 Linux 桥接配置文件:
- 控制器
/etc/neutron/plugins/ml2/linuxbridge_agent.ini
:
[linux_bridge]
physical_interface_mappings = provider:enp2s0 # enp2s0 is the interface associated to 138.100.10.25
[vxlan]
enable_vxlan = true
local_ip = 138.100.10.25 # controller has only 1 IP
l2_population = true
- 计算
/etc/neutron/plugins/ml2/linuxbridge_agent.ini
:
[linux_bridge]
physical_interface_mappings = provider:enp0s20f0u4 # interface associated to 138.100.10.26
[vxlan]
enable_vxlan = true
local_ip = 138.100.10.27
l2_population = true
一个观察需要记住的是,计算管理接口(138.100.10.26
)从任何地方都无法访问,我认为这是不正确的,因为这会阻止我们通过 URL 访问实例控制台。
我做了一些连接测试,结果如下:
- Cirros_a
ip a
命令输出:
- Cirros_b
ip a
命令输出:
- 有联系在 Cirros A 和 Cirros B 之间(双向)。
- 有联系Cirros A/B 与自助服务网关(192.168.1.1)之间(双向)。
- 有联系Cirros A/B 和提供商网关(138.100.10.198)之间(双向)。
- 有联系Cirros A/B 和控制器管理接口(138.100.10.25)之间(双向)。
- 有无连接Cirros A/B 和计算管理接口 (138.100.10.26) 之间。此接口不可访问。
- 有联系Cirros A/B 和计算提供商接口(138.100.10.27)之间(双向)。
我不知道 Linux 桥接配置文件是否存在问题,或者我可能需要控制器机器上的另一个网络接口。