多个中子节点,只有一个节点连接到外部网络

multiple neutron nodes with only one node attached to external network

我有 3 个网络节点 运行 neutron-server ..

这些节点中只有一个连接到外部网络

我用 ml2 和 openvswitch

在连接到外部网络的节点的网桥映射中 - VIA FLOATING IPS - ,我已经 external_net 映射到正确的网桥..

在其他节点上,我没有定义此映射,也没有接口

我遇到的问题如下

当我尝试启动连接到外部网络的虚拟机时,日志中出现以下错误:

neutron-server: 2016-09-07 12:33:00.975 57352 错误 neutron.plugins.ml2.managers [req-def18170-5e45-4fef-9653-e008faa39913 - - - - -] 无法在主机 node002 上绑定端口 035a58e1-f18f-428b-b78e-e8c0aaba7d14 vnic_type 正常使用段 ​​[{'segmentation_id': None, 'phy sical_network': u'external_net', 'id': u'0d4590e5-0c48-4316-8b78-1636d3f44d43', 'network_type': u'flat'}]

neutron-server: 2016-09-07 12:33:00.975 57352 错误 neutron.plugins.ml2.managers [req-def18170-5e45-4fef-9653-e008faa39913 - - - - -] 无法在主机 node003 上绑定端口 035a58e1-f18f-428b-b78e-e8c0aaba7d14 vnic_type 正常使用段 ​​[{'segmentation_id': None, 'phy sical_network': u'external_net', 'id': u'0d4590e5-0c48-4316-8b78-1636d3f44d43', 'network_type': u'flat'}]

在两个节点(node002 和 node003)上,因为它们没有定义这个网络!这是错误还是这样的设置无效?

谢谢

在典型的 OpenStack 部署中,您不会将 Nova 实例直接绑定到外部网络。正如您已经推测的那样,这将不起作用,因为该网络未在计算主机上配置。

相反,您将实例连接到内部网络,然后使用 nova floating-ip-createnova floating-ip-associate.

从外部网络分配浮动 IP 地址

另一种解决方案是使用 "provider external networks",在这种安排中,您的 nova 实例直接连接到具有外部连接的 L2 网络,而不是依赖于前面段落中描述的浮动 ip NAT 解决方案。

错误背后的原因是在不托管提供商网络的节点上配置错误

主要是ml2核心文件ml2_conf.ini

参数:

flat_network 应在每个节点上设置为适当的值

像连接所有平面网络(包括内部网络)的节点应该设置为

flat_networks = *

并且在不托管所有平面网络(例如提供商网络)的节点上

flat_networks = physical_internal

我相信它不会起作用。您需要为所有 3 个网络节点绑定端口。

一个快速测试是停止来自未绑定到外部端口的 2 个网络节点的 neutron-server、neutron-dhcp-agent、neutron-l3-agent 和 neutron-metadata-agent 服务...以及再次测试。