2024.1 系列发布说明¶
2024.1-eom¶
新特性¶
现在,如果配置选项
[ovn]ovn_emit_need_to_frag设置为 true,OVN 将始终在网关Logical_Router_Port中设置“gateway_mtu”选项。定义的值将是连接到此路由器的所有网络的最低 MTU。
错误修复¶
ovn-db-sync跳过了同时作为同步分段主机映射的网关的主机,但其他操作包含它们,因此将其添加到ovn-db-sync中进行同步。有关更多信息,请参阅 bug 2116960。
24.2.1¶
错误修复¶
在使用 ML2/OVN 后端时,禁止将元数据端口 IP 地址用作虚拟 IP 地址。这意味着不允许将此 IP 地址设置为其他端口的 allowed_address_pair,并且 API 在这种情况下将返回 400 错误。有关更多信息,请参阅 bug 2116249。
其他说明¶
Neutron 使用新的算法来比较 Neutron 中的安全组规则和 OVN 中的 ACL 之间的差异。 在比较之前,数据将根据安全组规则 ID 进行排序,然后比较这两个排序后的数组。 这提高了同步大量规则时的效率。
24.2.0¶
新特性¶
添加了一个新的 ML2 OVN 驱动程序配置选项
ovn_router_indirect_snat。 当设置为 True 时,所有外部网关将为间接连接到网关的所有嵌套网络启用 SNAT(通过其他路由器)。 此选项模仿了与 ML2 Open vSwitch 和其他一些后端一起使用的 router 服务插件行为。
错误修复¶
对于 OVN DPDK 端口,不再使用期望由 QEMU 发送的 RARP 帧的实时迁移激活策略。这是因为对于 DPDK 端口,QEMU 不会发送 RARP 帧,这会影响 DPDK 端口在实时迁移完成后恢复网络连接的时间。请注意,由于此更改,在实时迁移期间可能会观察到来自这些端口的一些少量重复数据包。
子网策略已更新,允许其他用户对其进行操作。网络所有者和读取者现在可以检索子网,项目成员现在可以更新和删除子网。有关更多信息,请参阅 bug 2038646。
其他说明¶
为 OVN 机制驱动程序添加了对
address-group的支持。
当使用
ovn_router_indirect_snat选项时,对于某些 OVN 版本,浮动 IP 的连接可能会中断。 更多详细信息请参见:https://issues.redhat.com/browse/FDP-744
24.1.0¶
安全问题¶
具有 status=DOWN 的 ML2/SR-IOV 端口将始终将 VF 链路状态设置为“disable”,而无论端口字段
propagate_uplink_status的值如何。端口禁用,以停止任何传输,优先于链路状态“auto”值。
错误修复¶
修复了将浮动 IP 关联到 OVN 负载均衡器时的问题。有关更多详细信息,请参阅 LP#2068644。
24.0.1¶
其他说明¶
增强了 Neutron 元数据服务中 Nova 元数据服务不可用情况下的错误处理,确保返回正确的 HTTP 状态码。
24.0.0¶
序言¶
OVN 更改了对 NAT 规则的支持,包括一个新的列和自动发现逻辑,以了解逻辑路由器网关端口的 NAT。
ML2/OVS 和 ML2/OVN 驱动程序在 IGMP 的配置方式上存在不一致。 在此补丁之前,Neutron 仅公开一个 IGMP 配置选项 (igmp_snooping_enabled),而其他功能(例如泛洪 IGMP 数据包、泛洪报告和泛洪到未注册端口)在每个驱动程序中以不同的方式硬编码。 此补丁引入了 Neutron 配置选项,用于列出的 IGMP 功能。 作为这项工作的一部分,ML2/OVS 后端的 IGMP 侦听配置中的默认值必须更改。 请在以下部分中了解更多详细信息。
新特性¶
作为 Secure-RBAC 计划的一部分,新的
service角色已添加到 Neutron API 策略中。 此新角色旨在用于服务到服务的通信。
添加了一个新的 OVN 驱动程序 Northbound DB 列,以允许配置 NAT 规则的网关端口。 如果 OVN 后端支持 Northbound DB NAT 表中的 gateway_port 列,则将浮动 IP 的网关端口 UUID 配置为任何浮动 IP,以防止南北流量问题。 之前创建的 FIP 规则仅在维护任务期间更新一次,以包含网关端口引用(如果 OVN 后端支持)。 如果所有 FIP 条目已配置,则不会执行任何维护操作。
Neutron 允许用户使用 L3 OVN 插件创建带有 flavor 的路由器。 此新功能可以在 neutron.conf 文件中配置。 有关更多详细信息,请参阅文档中 Neutron 配置下的“创建带有用户定义 flavor 的 L3 OVN 路由器”部分。 此文档还描述了用户必须采取的步骤才能创建分配了 flavor 的路由器。
添加了一个新的策略规则检查
rule_default_sg。 此规则允许检查安全组规则是否属于项目默认安全组。 管理员可以覆盖规则创建和规则删除,禁止非特权用户执行这些操作。
添加了一个新的配置选项
enable_signals到 neutron.conf,以控制 neutron-server 是否注册信号处理程序(例如 SIGTERM 等)。 此新选项的默认值为 True,以模拟原始注册信号处理程序的行为。 建议在 neutron-server 在 WSGI 服务器后面运行时将此选项设置为 False,因为在这种情况下,信号由 WSGI 服务器接管,Neutron 将打印堆栈跟踪,告知我们无法注册信号。
现在,一个新的 ovn-cms-options 选项
enable-chassis-as-extport-host被 ML2/OVN 识别,并用于识别有资格调度 OVN 外部端口的节点。 此功能向后兼容,如果没有任何节点包含这个新选项,外部端口将继续使用enable-chassis-as-gw选项进行调度,就像以前一样。 此更改还引入了对每个 HA Chassis Group 的成员数量的限制,为 5,与网关路由器端口副本的限制相匹配。 这是因为 OVN 使用 BFD 监控每个成员的连接性,并且拥有无限数量的成员可能会给 OVN 带来很大的压力。
添加了 IGMP 的新配置选项,位于 [OVS] 部分:
igmp_flood、igmp_flood_reports和igmp_flood_unregistered。 这使操作员可以完全控制 IGMP 在其部署中的配置方式。
远程地址组支持已添加到基于 iptables 的防火墙驱动程序(IptablesFirewallDriver 和 OVSHybridIptablesFirewallDriver),此前它仅在 OVSFirewallDriver 中可用。有关更多信息,请参阅 bug 2058138。
已添加对使用 OVN 内置 DHCP 服务器进行 IPv6 的 PXE 裸机配置的支持。
为 OVN 路由器启用了
haAPI 扩展。 现在可以设置和读取 OVN 路由器的 HA 标志ha。 注意:当前 OVN 路由器始终为 HA;该标志是必需的,无法取消设置(但现在可以读取)。
已将 IPv6 元数据支持添加到 ML2/OVN 驱动程序。 代理现在为 OVN 元数据命名空间配置
fe80::a9fe:a9fe/128地址,并使其 haproxy 侦听该地址,以便通过 IPv6 向实例提供元数据请求。
OVN 路由器现在根据配置选项
enable_distributed_floating_ip暴露“分布式”标志。 由于这是一个常见的配置选项,因此所有路由器将暴露相同的值。 如果 Neutron API 重新启动并且配置选项发生更改,则此值可能会发生变化。 注意:一旦 ML2/OVN 中实现了允许我们为每个浮动 IP 地址定义分布式标志的 RFE,此标志将变得无用(尚未为此 RFE 创建 Launchpad 错误,这只是几个 PTG 期间提出的想法)。
引入了端口的属性
hardware_offload_type,它指定了该端口在连接到网络后端时将请求的硬件卸载类型。操作员可以通过配置选项启用此功能
[ml2] extension_drivers = port_hardware_offload_type
为以下资源添加了标签策略:网络、子网、端口、路由器、浮动 IP、网络段、网络段范围、安全组和安全组规则。 这些策略控制资源的标签的创建、更新和删除。
在 OVN 22.09 中,添加了选项
localnet_learn_fdb,启用 localnet 端口学习 MAC 地址并将它们存储在 FDB 表中。 在 OVN 23.06 之前,没有针对这些 MAC 的老化机制,在 OVN 23.06 中,添加了配置选项fdb_age_threshold。 这使得可以设置学习的 MAC 在 FDB 表中保持的时间上限(以秒为单位)。 当启用localnet_learn_fdb配置选项时,应同时设置fdb_age_threshold的适当值,以避免由于表增长过大而导致性能/可伸缩性问题——尤其是在提供网络很大时。 此外,还添加了配置选项fdb_removal_limit以避免一次删除大量条目。
OVN ML2 mech 驱动程序中的 MAC 地址老化现在受支持,并且可以使用新的
[ovn] mac_binding_age_threshold和[ovn_nb_global] mac_binding_removal_limit配置选项进行配置。 目前不支持每个路由器的值。 此功能在 OVN 版本 >= 22.09.0+ 中可用。 早期版本将忽略新选项。
Neutron 现在为 RPC 工作进程(“rpc worker”)和 RPC 报告工作进程(“rpc reports worker”)设置不同的进程标题,以便区分这两种类型的工作进程。
已知问题¶
对 bug 2048785 的修复仅修复了新创建的 trunk 父端口。 如果需要修复已经存在的 trunk,则需要删除并重新创建受影响的 trunk,或者手动设置 tpt 端口的 vlan_mode 和 tag:
ovs-vsctl set Port tpt-... vlan_mode=access tag=0
升级说明¶
从 OVN 版本 v21.12.0 开始,OVN 会回复处于 DOWN 状态的端口的 ARP 请求。 在版本早于 v21.12.0 的版本中,它不会回复。 为了在 Neutron 中保持相同的行为,Neutron 会覆盖默认的 OVN 行为,并且 Neutron 端口在端口处于 DOWN 状态时将不再回复 ARP 数据包。 如果需要回复这些端口的 ARP,可以将
[ovn_nb_global]部分的ignore_lsp_down配置选项设置为 True。 默认情况下设置为 False。
现在,设置
[DEFAULT] rpc_workers = 0会完全禁用 rpc 工作进程。 在具有其他代理的部署中,例如 dhcp-agent,应将此选项设置为正值。 请注意,当在 22.0.0 版本中将[DEFAULT] rpc_workers = 0设置时,从 neutron-server 到代理的所有通知都已禁用,因此这是实际上在那个版本中添加的要求。
为了使 IGMP 配置在驱动程序之间保持一致,ML2/OVS 的一些默认值必须更改。 此更改不会影响 ML2/OVN 驱动程序中的默认值。
如果使用 ML2/OVS 并且启用了
igmp_snooping_enable,为了使 IGMP 相关流量像以前一样运行,请确保在升级后启用以下配置选项。[OVS]/igmp_flood_unregistered= True[OVS]/igmp_flood= True[OVS]/igmp_flood_reports= True
已删除
[DEFAULT] api_workers选项,该选项不再接受 0 或负值。 以前,0 或负值被转换为 1,并且 neutron-server 启动了 1 个 api 工作进程。
已删除
[DEFAULT] rpc_workers选项和[DEFAULT] rpc_state_report_workers选项,它们不再接受负值。 要禁用这些工作进程,请将这些选项设置为 0。
任何具有名为“neutron-ovn-invalid-chassis”的网关 chassis 的“Logical_Router_Port”都将被更新,并且此 chassis 将被删除。 未托管(未绑定)的“Logical_Router_Port”将没有分配网关。
ML2 OVS 机制驱动程序配置的
[agent] veth_mtu参数已被删除。 此参数自 Wallaby 版本以来一直无效。
已删除
designate部分中的以下参数。admin_usernameadmin_passwordadmin_tenant_idadmin_tenant_nameadmin_auth_url
删除配置选项
[DEFAULT] ovs_integration_bridge,该选项在 ‘Ussuri’ 版本中已被弃用,因为它与[OVS] integration_bridge相同。
已删除配置选项
[DEFAULT] segment_mtu。 它在 Mitaka 版本中被[DEFAULT] global_physnet_mtu选项取代。
RPC 报告工作进程的进程标题已从 ‘rpc worker’ 更改为 ‘rpc reports worker’。请相应地更新任何查找进程标题的外部脚本或服务。
弃用说明¶
Neutron API 策略中使用的旧角色
advsvc现在已被弃用。应使用新的service角色进行服务到服务的通信。
错误修复¶
修复了 L3 OVN 调度器(chance, leastloaded),使其能够在所有符合条件的 AZ(如果存在)之间分配逻辑路由器端口 (LRP) 网关。有关更多信息,请参阅 bug 2030741
[bug 2052484] 现在设置
[DEFAULT] rpc_workers = 0会完全禁用 rpc 工作进程。 之前即使明确请求了0,也会启动一个 rpc 工作进程。
修复了 DHCP agent 与 OVN 元数据 agent 结合部署以向 baremetal 节点提供元数据的情况。在这种情况下,DHCP agent 将不会设置 OVN 元数据 agent 服务所需的路由,导致 baremetal 节点无法查询元数据服务。有关更多信息,请参阅 bug 1982569。
[bug 2036423] 现在无法删除具有路由器接口的子网网关 IP;子网网关 IP 的修改已经被禁止。
Neutron API 已更改为验证网络 MTU 最小值。网络的 MTU 现在只有在基于相关子网的 IP 版本允许的最小值时才有效,IPv4 为 68,IPv6 为 1280。
以下方式现在强制执行此最小值
当子网与网络关联时,验证 MTU 是否足够大,以适应 IP 版本。如果允许,子网不仅无法使用,而且 Linux 内核可能无法添加地址和配置网络设置(如 MTU)。
当网络 MTU 更改时,验证 MTU 是否足够大,以适应任何当前关联的子网。允许较小的 MTU 将使任何现有的子网无法使用。
有关更多信息,请参阅 bug 1988069。
在同步 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”(该值很少更改)。
在端口批量创建期间,如果 IPAM 分配失败(例如,如果 IP 地址超出子网 CIDR),则在引发异常之前,将删除已创建的其他 IPAM 分配。修复了 bug 2039550。
[bug 2036705] Neutron
port.status字段(“ACTIVE”、“DOWN”)现在基于 ML2/OVN 逻辑交换机端口的up和enabled标志设置。 用户现在可以设置port.admin_state_up,该标志会复制到lsp.enabled标志,以启用或禁用端口。 如果端口被禁用,则停止流量并将port.status设置为“DOWN”。
在以前的版本中,允许管理员更新已绑定的端口
binding:vnic_type属性。 现在已阻止此操作,并且该属性的更新操作将返回Conflict (409)响应代码。
其他说明¶
当同时启用以下配置时
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 机制驱动程序。
当“Logical_Router_Port”无法分配到任何 chassis 时创建的名为“neutron-ovn-invalid-chassis”的网关 chassis 的工件已被删除。 现在不会创建任何网关 chassis,并且“Logical_Router_Port”字段将为空。
OVN L3 调度器现在将在 chassis 更改的情况下更新现有 LRP 的较低优先级。 这可能会在 chassis 关闭期间增加 OVN 的负载,但可以改善 LRP 的负载分配。