2023.2 系列发布说明¶
23.4.0¶
错误修复¶
对于 OVN DPDK 端口,不再使用期望由 QEMU 发送的 RARP 帧的实时迁移激活策略。这是因为对于 DPDK 端口,QEMU 不会发送 RARP 帧,这会影响 DPDK 端口在实时迁移完成后恢复网络连接的时间。请注意,由于此更改,在实时迁移期间可能会观察到来自这些端口的一些少量重复数据包。
子网策略已更新,允许其他用户对其进行操作。网络所有者和读取者现在可以检索子网,项目成员现在可以更新和删除子网。有关更多信息,请参阅 bug 2038646。
23.3.0¶
安全问题¶
具有 status=DOWN 的 ML2/SR-IOV 端口将始终将 VF 链路状态设置为“disable”,而无论端口字段
propagate_uplink_status的值如何。端口禁用,以停止任何传输,优先于链路状态“auto”值。
错误修复¶
修复了将浮动 IP 关联到 OVN 负载均衡器时的问题。有关更多详细信息,请参阅 LP#2068644。
23.2.0¶
序言¶
OVN 更改了对 NAT 规则的支持,包括一个新的列和自动发现逻辑,以了解逻辑路由器网关端口的 NAT。
新特性¶
添加了一个新的 OVN 驱动程序 Northbound DB 列,以允许配置 NAT 规则的网关端口。 如果 OVN 后端支持 Northbound DB NAT 表中的 gateway_port 列,则将浮动 IP 的网关端口 UUID 配置为任何浮动 IP,以防止南北流量问题。 之前创建的 FIP 规则仅在维护任务期间更新一次,以包含网关端口引用(如果 OVN 后端支持)。 如果所有 FIP 条目已配置,则不会执行任何维护操作。
现在,一个新的 ovn-cms-options 选项
enable-chassis-as-extport-host被 ML2/OVN 识别,并用于识别有资格调度 OVN 外部端口的节点。 此功能向后兼容,如果没有任何节点包含这个新选项,外部端口将继续使用enable-chassis-as-gw选项进行调度,就像以前一样。 此更改还引入了对每个 HA Chassis Group 的成员数量的限制,为 5,与网关路由器端口副本的限制相匹配。 这是因为 OVN 使用 BFD 监控每个成员的连接性,并且拥有无限数量的成员可能会给 OVN 带来很大的压力。
远程地址组支持已添加到基于 iptables 的防火墙驱动程序(IptablesFirewallDriver 和 OVSHybridIptablesFirewallDriver),此前它仅在 OVSFirewallDriver 中可用。有关更多信息,请参阅 bug 2058138。
为以下资源添加了标签策略:网络、子网、端口、路由器、浮动 IP、网络段、网络段范围、安全组和安全组规则。这些策略控制资源的标签的创建、更新和删除。
已知问题¶
对 bug 2048785 的修复仅修复了新创建的 trunk 父端口。 如果需要修复已经存在的 trunk,则需要删除并重新创建受影响的 trunk,或者手动设置 tpt 端口的 vlan_mode 和 tag:
ovs-vsctl set Port tpt-... vlan_mode=access tag=0
错误修复¶
[bug 2036423] 现在无法删除具有路由器接口的子网网关 IP;子网网关 IP 的修改已经被禁止。
在同步 OVN 数据库时,无论是运行迁移命令还是在启动期间,负责同步的代码只会清理具有 agent_type
OVN Controller agent的主机的 segment-to-host 映射。 之前,同步会清理(删除)非 OVN 主机的 segment-to-host 映射。修复了 bug:2040172。
[bug 2045889] 现在绑定到 ML2/OVN 的端口在 VIF 详细信息字典中包含 OVS 网桥名称和数据平面类型。 注意:在 ML2/OVS 到 ML2/OVN 迁移中,本地主机 OVN 网桥(集成网桥)每个端口是未知的;默认情况下将使用“br-int”(该值很少更改)。
[bug 2036705] Neutron
port.status字段(“ACTIVE”、“DOWN”)现在基于 ML2/OVN 逻辑交换机端口的up和enabled标志设置。 用户现在可以设置port.admin_state_up,该标志会复制到lsp.enabled标志,以启用或禁用端口。 如果端口被禁用,则停止流量并将port.status设置为“DOWN”。
其他说明¶
当同时启用以下配置时
OVN L3 服务插件 (
ovn-router)端口转发服务插件 (
port_forwarding)在 ML2 配置变量
tenant_network_types中配置的“vlan”或“flat”网络类型启用分布式浮动 IP 流量 (
enable_distributed_floating_ip=True)
Neutron 服务器将在插件初始化期间报告警告,因为这是一个无效的配置矩阵。在这种情况下,浮动 IP 始终需要集中化。有关更多详细信息,请参阅 bug 报告。
现在 Neutron 支持 OVN 负载均衡健康监控端口 (ovn-lb-hm:distributed) 的新 ‘device_owner’ 值,为这些端口提供 LOCALPORT 行为。 将这些端口定义为新值而不是旧值 (network:distributed) 的责任在于 OVN-Octavia Provider 驱动程序,它将负责这些端口的数据库转换。
将扩展
subnetpool-prefix-ops添加到 ML2/OVN 机制驱动程序。
23.1.0¶
错误修复¶
修复了 DHCP agent 与 OVN 元数据 agent 结合部署以向 baremetal 节点提供元数据的情况。在这种情况下,DHCP agent 将不会设置 OVN 元数据 agent 服务所需的路由,导致 baremetal 节点无法查询元数据服务。有关更多信息,请参阅 bug 1982569。
在端口批量创建期间,如果 IPAM 分配失败(例如,如果 IP 地址超出子网 CIDR),则在引发异常之前,将删除已创建的其他 IPAM 分配。修复了 bug 2039550。
23.0.0¶
新功能¶
添加了一个新的 API,允许云管理员为每个为项目创建的新
默认和/或自定义安全组自动定义一组安全组规则。
Neutron 允许云管理员限制虚拟机查询 Nova 元数据服务的速率,以保护 OpenStack 部署免受 DoS 或行为不当的实例的影响。此新功能可以在 neutron.conf 文件中配置。有关更多详细信息,请参阅文档中 Neutron 配置下的“元数据服务查询速率限制”部分。
添加了一个新的 API 扩展
network-ha。此扩展为网络 API 添加了一个新字段:“ha”。该字段不可见,只能在 POST(创建)操作中传递。这将定义此网络是一个高可用性 (HA) 网络,并在同一个数据库事务中创建一个ha_router_networks注册表。
OVN L3 调度器会将显式配置为网关的 chassis 分配给路由器网关端口(OVN 逻辑路由器端口)。如果没有可用的候选者,则将使用“neutron-ovn-invalid-chassis”,并在日志中打印警告消息。
使用新的
hints端口属性的第一个提示是ovs-tx-steering提示。此可用性由扩展程序标记:port-hint-ovs-tx-steering。此提示特定于openvswitch机制驱动程序。它能够控制 Open vSwitch 的 Userspace Tx 数据包转向功能。有关 Open vSwitch 功能的详细信息,请参见:https://docs.openvswitch.org/en/2025.2/topics/userspace-tx-steering/hints属性的有效值(由第二个扩展程序引入)为:{"openvswitch": {"other_config": {"tx-steering": "hash|thread"}}}
端口现在具有一个
hints属性,可以在其中传递特定于后端的调整选项给 Neutron。hints属性的可用性由port-hints扩展程序发出信号。默认情况下,hints属性仅供管理员使用。其值是一个字典,以机制驱动程序别名为键。可能的值由机制驱动程序定义。管理员用户可以在端口创建或更新请求中请求一个提示。顾名思义,提示不是一个要求 - Neutron 在可以的情况下应用提示,但如果不能应用,则可以忽略它。
已知问题¶
当使用
ML2/OVN后端及其 L3 服务插件 (ovn-router) 并且使用“vlan”或“flat”网络类型作为租户网络类型时,如果启用了分布式浮动 IP (enable_distributed_floating_ip=True),则浮动 IP 端口转发 (FIP PF) 将不起作用。要解决此问题,需要进行以下更改之一应使用隧道网络(“geneve”或“vxlan”)作为租户网络类型,或者
浮动 IP 应集中化 (
enable_distributed_floating_ip=False)。
有关更多详细信息,请参见 bug 2028846。
在隔离网络上,元数据服务的可用性受到限制或根本不存在。 当管理它的 DHCP agent 是冗余时,IPv4 元数据是冗余的,但恢复与 DHCP 租约的续订相关联,这使得大多数恢复非常缓慢。 IPv6 元数据根本不冗余,因为 IPv6 元数据地址只能在同一时间在单个位置配置,因为它是链路本地的。 多个 agent 尝试配置它将生成 IPv6 重复地址检测失败。
管理员可能会在 DHCP 命名空间中看到 IPv6 元数据地址处于“dadfailed”状态,这是因为上述原因,仅表示它不可用性很高。 在对隔离的元数据服务进行重新设计之前,没有更好的部署选项。 请参阅 bug 1953165 以获取更多信息。
在 OVN 22.09 中,添加了“localnet_learn_fdb”选项,启用 localnet 端口学习 MAC 地址并将它们存储在 FDB 表中。对于这些 MAC 地址没有老化机制(这就是为什么默认情况下不启用此选项的原因),因此需要谨慎使用,尤其是在提供程序网络很大的情况下。建议定期手动清理 FDB 表,以避免可扩展性问题 - 直到 OVN 实现此老化机制,该机制在 https://bugzilla.redhat.com/show_bug.cgi?id=2179942 上跟踪。
如果连接到路由器的所有租户网络都是 VLAN 或 FLAT 类型,则仅使用 redirect-type=bridged 选项。在这种情况下,它们的流量将被分发。但是,如果同一路由器连接了 VLAN/FLAT 和 geneve 网络,则不设置 redirect-type 选项,因此 VLAN/FLAT 网络的流量也将被集中化,但未进行隧道传输。
在使用 ML2/OVN 时,在升级过程中,存储的 OVS system-id 值可能会发生变化。ovn-controller 服务将基于此 OVS system-id 创建“Chassis”和“Chassis_Private”寄存器。如果 ovn-controller 进程未优雅停止,则可能导致 OVN 南向数据库中存在重复的“Chassis”和“Chassis_Private”寄存器。
升级说明¶
在升级过程中,将会在 Neutron 数据库中创建一组四个默认安全组规则。这些规则与到目前为止添加到每个新安全组的相同默认规则。
允许所有传出 IPv4 流量的规则(对于所有默认和自定义安全组),
允许所有传出 IPv6 流量的规则(对于所有默认和自定义安全组),
允许所有来自同一安全组的传入 IPv4 流量的规则(对于每个项目的默认安全组),
允许所有来自同一安全组的传入 IPv6 流量的规则(对于每个项目的默认安全组)。
现在,云管理员可以使用
default-security-group-rulesAPI 修改这些规则。
Neutron 服务默认启用 API 策略(RBAC)的新默认值和范围。配置选项
[oslo_policy] enforce_scope和[oslo_policy] oslo_policy.enforce_new_defaults的默认值已更改为True。这意味着,如果您使用系统范围令牌访问 Neutron API,则请求将因 403 错误代码而失败。 此外,默认值将默认强制执行。 要了解每个策略规则的新默认值,请参阅 策略新默认值。 有关 Neutron API 策略更改的更多详细信息,请参阅 策略概念。
如果您想禁用它们,请修改
neutron.conf文件中的以下配置选项值[oslo_policy] enforce_new_defaults=False enforce_scope=False
在 ML2/OVN 中,任何新的路由器网关端口(OVN 逻辑路由器端口)都将仅安排在配置为网关的 chassis 上。任何现有的路由器网关端口将保留当前的 chassis 分配。
弃用说明¶
自 2023.2 版本起,Neutron 在 Windows 操作系统上的支持已被弃用,并将于 2024.2 中删除。
“ipv6_pd_enabled”已被标记为已弃用并标记为实验性。要继续使用它,部署者必须在 neutron.conf 的“experimental”部分将“ipv6_pd_enabled”选项设置为 True。 请参阅 Dibbler 项目已完成。
该工具 neutron-debug 已被删除。由于删除了 neutron 客户端 shell 代码,因此该工具不再可用。它自 Newton(9.0)周期以来已被弃用且未维护。
错误修复¶
配置选项
agent_down_time现在限制为最大值 2147483,因为如果配置更高,neutron-server 将无法启动。有关更多信息,请参阅 bug 2028724。
1986003 修复了并发请求激活相同的端口绑定时,其中一个请求返回 500 内部服务器错误的问题。 使用修复后,一个请求将成功返回,而另一个将返回 409 Conflict(绑定已激活)。 这修复了 nova 实时迁移中可能发送这些并发请求时出现的错误。 Nova 可以正常处理 409/Conflict 响应。
[bug 1999209] Neutron-API 现在防止更改浮动 IP 的内部 IP。 如果固定的 IP 地址与浮动 IP 关联,则它将引发错误。
[bug 2022914] Neutron-API 支持在 ML2/OVN 设置中使用中继作为南向连接。在此之前,API 的维护工作者需要一个仅限 leader 的连接,该连接已被删除。
默认情况下,localnet 端口不会学习 MAC 地址,因此它们不会存储在 OVN SB DB 的 FDB 表中。 这会导致当目标流量由 OpenStack 识别为未知 IP 时出现泛洪问题。 在 OVN 22.09 中,添加了“localnet_learn_fdb”选项,启用这些端口学习 MAC 地址并将它们存储在 FDB 表中。 请注意,这些 MAC 地址没有老化机制,因此默认情况下未启用此选项,需要谨慎使用,尤其是在提供程序网络很大的情况下,以及/或随着时间的推移手动清理 FDB 表以避免可扩展性问题,直到 OVN 在 https://bugzilla.redhat.com/show_bug.cgi?id=2179942 上实现它。
对于 OVN 版本 v22.09.0 及更高版本,
mcast_flood_reports选项现在设置为false,适用于除“localnet”类型以外的所有端口。过去,此选项设置为true,作为核心 OVN 多播实现中一个 bug 的解决方法。
修复了 OVN 驱动程序中的一个问题,即使是意外删除,网络元数据也可能变得不可用。 要重新创建端口,用户现在可以使用 Neutron API 禁用然后启用与网络关联的一个子网的 DHCP。 这将尝试创建端口,类似于 ML2/OVS 中 DHCP agent 中发生的情况。 有关更多信息,请参阅 bug 2015377。
[bug 2003455] 作为先前提交的一部分 (https://review.opendev.org/c/openstack/neutron/+/875644),redirect-type=bridged 选项已设置为所有路由器网关端口(cr-lrp ovn 端口)。但是,这破坏了通过这些路由器连接到提供商网络的 geneve 租户网络的 N/S 流量,而这些路由器启用了 redirect-type 选项。为了解决此问题,我们确保仅当连接到路由器的所有网络都是 VLAN 或 FLAT 类型时,才设置 redirect-type 选项,否则我们将回退到默认选项。这意味着如果同一路由器连接了 VLAN 和 geneve 租户网络的混合网络,VLAN 流量将被集中化(但未进行隧道传输)。如果需要分发 VLAN/FLAT 流量,则应使用不同的路由器。
添加了一个新的 OVN 维护方法
remove_duplicated_chassis_registers。此方法将定期检查 OVN 南向“Chassis”和“Chassis_Private”表,查找重复的寄存器。较旧的寄存器(基于“Chassis_Private.nb_cfg_timestamp”值)将在多个寄存器具有相同的 hostname 时被删除,hostname 应该是唯一的。
其他说明¶
NAT 表中的 external_mac 条目用于分发/集中化 FIP 的流量。如果设置了 external_mac,则流量将被分发(DVR)。如果为空,则流量将通过网关端口集中化(无 DVR)。在端口状态过渡到 down 时,无论 DVR 是否启用,external_mac 都会被删除,从而导致 DVR 的 FIP 流量被集中化——尽管这对于不会接受流量的 down 端口来说无关紧要。
引入了一个数据库约束,以将每个项目的
ha_router_networks注册表数量限制为仅一个。 此注册表用于绑定项目和网络,从而定义相应的网络作为高可用性 (HA) 网络。 从定义上讲,每个项目只能存在一个 HA 网络。
PluginReportStateAPI 有一个新版本 (1.3),其中 has_alive_neutron_server() 不再始终返回 True,而是执行 DB 连接检查并相应地返回 True/False。 这样,代理不仅可以检查 MQ,还可以检查服务器的 DB 连接。
添加了一个每天运行一次的维护任务,负责清理 5 天或更长时间未更新的 Hash Ring 节点。有关更多信息,请参阅 LP #2033281。
在 DEFAULT 部分添加了一个新的配置选项,名为
my_ip。 此新的配置选项默认设置为配置为到达默认网关的本地 IPv4。 此新设置对于需要在其配置的另一部分(例如 OVS/local_ip)中配置此 IP 的运营商而无需依赖任何外部模板系统可能很有用。
在 DEFAULT 部分添加了一个新的配置选项,名为
my_ipv6。 此新的配置选项默认设置为配置为到达默认网关的本地 IPv6。 此新设置对于需要在其配置的另一部分(例如 OVS/local_ip)中配置此 IP 的运营商而无需依赖任何外部模板系统可能很有用。
将缺失的扩展
uplink-status-propagation添加到 ML2/OVN 机制驱动程序。 此扩展由 ML2/SR-IOV 机制驱动程序使用,可以与 ML2/OVN 一起加载。 现在可以创建定义了“uplink-status-propagation”标志的端口。
ML2/OVN 虚拟端口无法绑定到虚拟机。 如果将端口 IP 地址作为允许的地址对分配给另一个端口,则第一个端口被视为虚拟端口。 如果第二个端口(非虚拟端口)绑定到 ML2/OVN,则虚拟端口无法绑定到虚拟机;仅创建虚拟端口以保留一组 IP 地址供其他端口使用。 OVN 机制驱动程序防止虚拟端口具有设备 ID;在绑定端口时提供设备 ID。