2024.2 系列发布说明

25.2.1

新特性

  • 现在,如果配置选项 [ovn]ovn_emit_need_to_frag 已设置,OVN 将始终在网关 Logical_Router_Port 中设置“gateway_mtu”选项。该值将定义为连接到此路由器的所有网络的最低 MTU。

错误修复

  • 当使用 ML2/OVN 后端时,禁止将元数据端口 IP 地址用作虚拟 IP 地址。这意味着不允许将此 IP 地址设置为其他端口的 allowed_address_pair,并且 API 在这种情况下将返回 400 错误。有关更多信息,请参阅 bug 2116249

  • ovn-db-sync 跳过了也作为同步分段主机映射的网关的主机,但其他操作包括了它们,因此将其添加到 ovn-db-sync 中进行同步。有关更多信息,请参阅 bug 2116960

25.2.0

错误修复

  • 对于 OVN DPDK 端口,不再使用期望由 QEMU 发送 RARP 帧的实时迁移激活策略。这是因为对于 DPDK 端口,QEMU 不发送 RARP 帧,这会影响 DPDK 端口在完成实时迁移后的网络连接恢复时间。请注意,由于此更改,在实时迁移期间可能会观察到来自这些端口的一些少量重复数据包。

  • 子网策略已更新,允许其他用户对其进行操作。网络所有者和读取者现在可以检索子网,并且项目成员现在可以更新和删除子网。有关更多信息,请参阅 bug 2038646

其他说明

  • 添加了对 OVN 机制驱动程序中 address-group 的支持。

25.0.0

新功能

  • Neutron API RBAC 策略现在默认支持项目 MANAGER 角色。请参阅 社区目标 以获取更多信息。

  • 新的 ML2 插件扩展 port_trusted 现在可用。此扩展实现了 port_trusted_vif API 扩展,它在端口资源中添加了一个新的布尔字段,称为 trusted。此字段应由管理员用户用来将端口设置为受信任状态,而此前只能通过端口的 binding:profile 字典来实现。 trusted 字段的值仍然可见于端口的 binding:profile 字典中,以便例如 Nova 仍然可以在其预期位置找到它。

  • ML2 机制驱动程序用于静态路由的 OVN 将在外部网关路由器端口的 external_ids 注册表中包含键 neutron:is_static_route。这对于 OVN DB 同步工具来说,是为了区分 Neutron 创建的静态路由与 OVN 数据库中外部添加的静态路由。之前创建的静态路由规则将在维护任务期间仅更新一次,以在 external_ids 注册表中包含 neutron:is_static_route 键。如果所有静态路由条目已经使用此键配置,则不会执行任何维护操作。

  • 添加了一个名为 neutron.wsgi 的新模块,作为收集 WSGI application 对象的场所。这旨在通过为这些对象提供一致的位置来简化部署。例如,如果使用 uWSGI,则不必

    [uwsgi]
    wsgi-file = /bin/neutron-api
    

    现在可以使用

    [uwsgi]
    module = neutron.wsgi.api:application
    

    这还简化了使用其他期望模块路径的 WSGI 服务器(例如 gunicorn)的部署。

  • 添加了一个新的示例 OVN 用户定义的路由器风味驱动程序,该驱动程序允许创建没有关联的基础逻辑交换机端口的路由器接口。在这种情况下,Neutron 仅充当路由器接口的 IP 地址管理器。这使得用户定义的路由器风味可以完全控制流经路由器接口的流量,同时绕过 OVN 处理。

  • 添加了一个名为 broadcast_arps_to_all_routers 的新配置选项到 [ovn] 配置部分。此选项负责配置具有 OVN 23.06 及更高版本中提供的 broadcast-arps-to-all-routers 配置选项的外部网络。通过启用此选项(默认),OVN 将向网络上的所有连接端口广播 ARP 请求。如果禁用,ARP 请求仅会发送到目标 MAC 地址匹配的路由器上。不匹配路由器的 ARP 请求仅会转发到非路由器端口。

  • 远程地址组支持已添加到基于 iptables 的防火墙驱动程序(IptablesFirewallDriver 和 OVSHybridIptablesFirewallDriver),此前它仅在 OVSFirewallDriver 中可用。有关更多信息,请参阅 bug 2058138

  • 可以将 OVN 路由器连接到隧道外部网关网络。逻辑路由器固定到网关主机,而不是网关逻辑路由器端口。机制驱动程序会监视网关主机的状态,以便在发生故障时重新安排逻辑路由器,从而提供高可用性。

  • 添加了一个名为 neutron-ovn-maintenance-worker 的新进程。当使用 ML2/OVN 机制驱动程序和 Neutron API WSGI 模块时,将启动此进程。它执行 ML2/OVN 机制驱动程序同步 Neutron 和 OVN 数据库所需的维护任务。

  • 添加了一个名为 neutron-periodic-workers 的新进程。当使用 Neutron API WSGI 模块和任何机制驱动程序时,将启动此进程。它执行由 AllServicesNeutronWorker 类收集并在单个工作线程上作为线程执行的 ML2 插件周期性工作线程。

  • 添加了一个新的 ML2 OVN 驱动程序配置选项 ovn_router_indirect_snat。当设置为 True 时,所有外部网关都将为所有间接连接到网关(通过其他路由器)的嵌套网络启用 SNAT。此选项模仿了与 ML2 Open vSwitch 和其他一些后端一起使用的 router 服务插件行为。

  • 添加了一个新的 shim 扩展 tag-creation。此扩展通知标签插件中的新 API 定义,该定义允许发送 POST 请求。现在可以创建新的标签,将标签的值作为调用的参数传递。这样可以解决在使用 URI 保留字符时出现格式问题的情况。

弃用说明

  • 直接在端口的 binding:profile 中设置 trusted 键已被弃用,并且将在未来的版本中禁止。应使用 API 扩展 port_trusted_vif 添加的专用端口属性 trusted 代替。

  • 删除了维护方法 remove_duplicated_chassis_registers。此方法不再需要,因为 OVN 21.03.0。有关更多信息,请参阅 bug 2073613

  • 删除了对 Windows 操作系统的支持。

安全问题

  • 具有 status=DOWN 的 ML2/SR-IOV 端口将始终将 VF 链路状态设置为“disable”,而无论端口字段 propagate_uplink_status 的值如何。端口禁用,以停止任何传输,优先于链路状态“auto”值。

错误修复

  • 清理了 DNS 集成插件中的无害堆栈跟踪错误。这可以防止日志被堆栈跟踪填充,而错误日志消息就足够了。

  • 修复了将浮动 IP 关联到 OVN 负载均衡器时的问题。有关详细信息,请参阅 LP#2068644

其他说明

  • 在 Neutron 的某些先前版本中,如果在使用 ML2/OVN 驱动程序时端口绑定到父端口,则无法创建或删除 trunk 端口。此限制已在本版本中删除。由于后端限制,ML2/OVS 驱动程序仍然具有此限制。

  • Neutron 使用一种新的算法来比较 Neutron 中的安全组规则与 OVN 中的 ACL 之间的差异。在比较之前,数据将根据安全组规则 ID 进行排序,然后比较这两个排序后的数组。这提高了同步需要大量规则时的效率。

  • 增强了 Neutron 元数据服务在 Nova 元数据服务不可用情况下的错误处理,确保返回正确的 HTTP 状态代码。