主要负责人¶
Sahid Orentino Ferdjaoui
https://bugs.launchpad.net/neutron/+bug/1764738
拟议的规范是扩展当前特性,即路由提供商网络 [0],以允许为每个物理网络配置多个段。
目前,计算节点在一个多段网络中只能有一个接口连接到一个段。如果操作员想要扩展 IP 范围,则必须配置新的网络,这会降低用户体验,或者增加广播域,而广播域无法扩展。
作为操作员,我希望在不创建多个网络的情况下扩展 IP 池。我还希望限制广播域。
该更改仅限于 OVS agent,仍然可以为 linux-bridge 实现它。尽管如此,此实现不在拟议规范的范围内。
主要目的是添加对计算节点接口连接到给定网络上多个段的支持。
这涉及到对不同组件的更改。DHCP 代理当前仅支持每个网络一个接口。需要扩展它以支持每个网络上的更多域。VLAN 管理器使用网络 ID 维护 OVS 的 VLAN 端口详细信息,必须更新它以使用段 ID 代替。代理需要更新以支持此特性,并且最终需要删除拒绝这种情况的限制。
当前用于 VLAN manager 的实现,该实现维护内部 VLAN 映射到外部网络分段 ID,使用 network ids 作为主要标识符 [1]。 这需要更新为使用 network ids 和 segment ids 的组合。 这不应影响升级,因为它们是内存中的,并在重启后重新计算。
每个网络上的多个段意味着多个网络域。当前的 DHCP 代理支持每个网络一个域 [2]。
DHCP 端口通过 VLAN 管理器为给定网络提供的本地 VLAN 插入到内部桥接器中。这意味着运行的 DHPC Process 可以处理一个域的请求。为了反映每个网络上多个域的当前需求,DHCP 端口应插入到 br-int,每个 network id / segmentation id 的组合。
拟议的实现是避免更改 DHCP Process 逻辑以使其支持每个 VLAN 上的多个接口,因为这将增加复杂性并可能影响升级。相反,已经考虑保持 DHCP Process 的良好信任逻辑,为每个分段 ID 使用一个。将来可以考虑重新访问此实现。
每个本地 VLAN 运行一个 DHCP Process 的好处将限制更改并避免升级影响。对于已经运行路由提供商网络的部署,将运行两个 DHCP process。一个被认为是旧版本,在 /net-id/pid 下运行,另一个在 /seg-id/net-id/pid 下运行。这将涉及操作员使用 opentack API 删除旧版本端口。
拟议的规范仅意味着 OVS 支持,但应该可以为
linux-bridge提供相同类型的支持。已经提出了一个更改,其中 [3] 及其相关的规范 [5]。这涉及升级影响,可以像此拟议的 OVS 实现一样减轻。 此外,linux-bridge实现可以受益于 DHCP 代理中的更改,该更改在拟议的linux-bridge更改中被忽略。对于给定的固定 IP,在调度期间 Nova 将无法在与固定 IP 的子网相关的段上创建端口。这已经是已知的限制。已报告 Bug 1979959 [9] 以解决该问题。
自 Bug 1952730 [8] 以来,注意到一个回归,创建的路由提供商段未被考虑在内。Bug 1979958 [7]。
Sahid Orentino Ferdjaoui
除非另有说明,此文档根据 知识共享署名 3.0 许可 授权。请参阅所有 OpenStack 法律文件。