Zed 系列发布说明¶
21.2.1-19¶
序言¶
OVN 更改了对 NAT 规则的支持,包括一个新的列和自动发现逻辑,以了解逻辑路由器网关端口的 NAT。
新特性¶
添加了一个新的 OVN 驱动程序 Northbound DB 列,以允许配置 NAT 规则的网关端口。 如果 OVN 后端支持 Northbound DB NAT 表中的 gateway_port 列,则将浮动 IP 的网关端口 UUID 配置为任何浮动 IP,以防止南北流量问题。 之前创建的 FIP 规则仅在维护任务期间更新一次,以包含网关端口引用(如果 OVN 后端支持)。 如果所有 FIP 条目已配置,则不会执行任何维护操作。
错误修复¶
修复了将浮动 IP 关联到 OVN 负载均衡器时的问题。有关更多详细信息,请参阅 LP#2068644。
21.2.1¶
新特性¶
远程地址组支持已添加到基于 iptables 的防火墙驱动程序(IptablesFirewallDriver 和 OVSHybridIptablesFirewallDriver),此前它仅在 OVSFirewallDriver 中可用。有关更多信息,请参阅 bug 2058138。
已知问题¶
对 bug 2048785 的修复仅修复了新创建的 trunk 父端口。 如果需要修复已经存在的 trunk,则需要删除并重新创建受影响的 trunk,或者手动设置 tpt 端口的 vlan_mode 和 tag:
ovs-vsctl set Port tpt-... vlan_mode=access tag=0
错误修复¶
配置选项
agent_down_time现在限制为最大值 2147483,因为如果配置更高,neutron-server 将无法启动。有关更多信息,请参阅 bug 2028724。
[bug 2036423] 现在无法删除具有路由器接口的子网网关 IP;子网网关 IP 的修改已经被禁止。
在同步 OVN 数据库时,无论是运行迁移命令还是在启动期间,负责同步的代码只会清理具有 agent_type
OVN Controller agent的主机的 segment-to-host 映射。 之前,同步会清理(删除)非 OVN 主机的 segment-to-host 映射。修复了 bug:2040172。
其他说明¶
将扩展
subnetpool-prefix-ops添加到 ML2/OVN 机制驱动程序。
21.2.0¶
已知问题¶
在使用 ML2/OVN 时,在升级过程中,存储的 OVS system-id 值可能会发生变化。ovn-controller 服务将基于此 OVS system-id 创建“Chassis”和“Chassis_Private”寄存器。如果 ovn-controller 进程未优雅停止,则可能导致 OVN 南向数据库中存在重复的“Chassis”和“Chassis_Private”寄存器。
错误修复¶
[bug 2022914] Neutron-API 支持在 ML2/OVN 设置中使用中继作为南向连接。在此之前,API 的维护工作者需要一个仅限 leader 的连接,该连接已被删除。
修复了 DHCP agent 与 OVN 元数据 agent 结合部署以向 baremetal 节点提供元数据的情况。在这种情况下,DHCP agent 将不会设置 OVN 元数据 agent 服务所需的路由,导致 baremetal 节点无法查询元数据服务。有关更多信息,请参阅 bug 1982569。
对于 OVN 版本 v22.09.0 及更高版本,
mcast_flood_reports选项现在设置为false,适用于除“localnet”类型以外的所有端口。过去,此选项设置为true,作为核心 OVN 多播实现中一个 bug 的解决方法。
现在 ML2/OVN trunk 驱动程序会防止在父端口已绑定时创建 trunk。同样,如果正在 trunk 中使用的父端口已绑定,则无法删除 trunk。
在端口批量创建期间,如果 IPAM 分配失败(例如,如果 IP 地址超出子网 CIDR),则在引发异常之前,将删除已创建的其他 IPAM 分配。修复了 bug 2039550。
添加了一个新的 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 端口来说无关紧要。
添加了一个每天运行一次的维护任务,负责清理 5 天或更长时间未更新的 Hash Ring 节点。有关更多信息,请参阅 LP #2033281。
将缺失的扩展
uplink-status-propagation添加到 ML2/OVN 机制驱动程序。 此扩展由 ML2/SR-IOV 机制驱动程序使用,可以与 ML2/OVN 一起加载。 现在可以创建定义了“uplink-status-propagation”标志的端口。
21.1.1¶
已知问题¶
在隔离网络上,元数据服务的可用性受到限制或根本不存在。 当管理它的 DHCP agent 是冗余时,IPv4 元数据是冗余的,但恢复与 DHCP 租约的续订相关联,这使得大多数恢复非常缓慢。 IPv6 元数据根本不冗余,因为 IPv6 元数据地址只能在同一时间在单个位置配置,因为它是链路本地的。 多个 agent 尝试配置它将生成 IPv6 重复地址检测失败。
管理员可能会在 DHCP 命名空间中看到 IPv6 元数据地址处于“dadfailed”状态,这是因为上述原因,仅表示它不可用性很高。 在对隔离的元数据服务进行重新设计之前,没有更好的部署选项。 请参阅 bug 1953165 以获取更多信息。
如果连接到路由器的所有租户网络都是 VLAN 或 FLAT 类型,则仅使用 redirect-type=bridged 选项。在这种情况下,它们的流量将被分发。但是,如果同一路由器连接了 VLAN/FLAT 和 geneve 网络,则不设置 redirect-type 选项,因此 VLAN/FLAT 网络的流量也将被集中化,但未进行隧道传输。
错误修复¶
1986003 修复了并发请求激活相同的端口绑定时,其中一个请求返回 500 内部服务器错误的问题。 使用修复后,一个请求将成功返回,而另一个将返回 409 Conflict(绑定已激活)。 这修复了 nova 实时迁移中可能发送这些并发请求时出现的错误。 Nova 可以正常处理 409/Conflict 响应。
修复了 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 流量,则应使用不同的路由器。
21.1.0¶
新特性¶
地址范围现在已添加到北向的所有 OVN LSP 端口寄存器中。Northd 然后将地址范围从北向写入南向,以便可以在那里由 ovn-bgp-agent 使用。
已知问题¶
在 OVN bug (https://bugzilla.redhat.com/show_bug.cgi?id=2162756) 修复之前,需要将与 vlan 提供商网络关联的逻辑路由器端口的“reside-on-redirect-chassis”设置为 true。此解决方法使流量集中化,但未进行隧道传输,从而避免 MTU 问题。
升级说明¶
对于 ML2/OVN 驱动程序,
metadata_workers配置选项的默认值已更改为 0。由于 [OVN] 允许在本地线程中执行“MetadataProxyHandler”,OVN 元数据代理处理程序可以在 OVN 元数据 agent 的同一进程中,在本地线程中生成。这减少了 OVN SB 数据库连接的数量到 1。
错误修复¶
[bug 2003455] 添加了额外的检查,以确保将“reside-on-redirect-chassis”设置为 true,用于与 vlan 提供商网络关联的逻辑路由器端口,无论是否启用了“ovn_distributed_floating_ip”。这是必要的,因为存在一个 OVN bug (https://bugzilla.redhat.com/show_bug.cgi?id=2162756) 导致它无法按预期工作。在修复该 bug 之前,我们需要这些解决方法,使流量集中化,但未进行隧道传输,从而避免 MTU 问题。
标准化 OVN agent 心跳时间戳格式,以匹配其他 agent 类型。这修复了某些客户端(例如 gophercloud)解析
GET /v2.0/agents的问题。
Neutron 可以使用 OVN 21.12 中引入的与日志相关的功能记录完整的连接。有关更多信息,请参阅 bug LP#<https://bugs.launchpad.net/neutron/+bug/2003706>
其他说明¶
自 OVN 20.06 以来,“Chassis”寄存器配置存储在“other_config”字段中,并复制到“external_ids”。在 OVN 22.09 中停止了此复制。ML2/OVN 插件首先尝试从“other_config”字段检索“Chassis”配置;如果此字段不存在(在 OVN 20.06 之前的版本中),则插件将使用“external_ids”字段。Neutron 将与不同的 OVN 版本(有和没有“other_config”字段)兼容。
21.0.0¶
序言¶
引入实验特性框架。
新特性¶
由于缺乏资源或技术专长来维护它们,一些 Neutron 特性不受支持。当这些特性出现时,Neutron 核心团队会将它们标记为实验性。部署者可以通过在 neutron.conf 的“experimental”部分中显式启用它们来继续使用实验性特性。ML2 linuxbridge 驱动程序是第一个被标记为实验性的特性。要继续使用它,部署者必须在 neutron.conf 的“experimental”部分将“linuxbridge”选项设置为 True。
添加了对端口转发规则中端口范围的支持。支持的范围是 N:M,其中 N <= M。此外,内部和外部端口范围的关系必须是:内部范围 = 外部范围或内部范围 = 1。
在端口被认为是已配置之后,Nova 端口绑定更新可能未被接收,导致端口未绑定。现在端口配置方法具有主动等待,它将重试多次,等待端口绑定更新。如果收到,则如果设置了 admin state 标志,端口状态将被设置为 active。
已添加对 IPv6 NDP 代理的支持。有关更多详细信息,请参阅相关的规范。
已添加了使用 OVN 内置 DHCP 服务器进行裸机配置的支持,适用于 IPv4。
已在 ML2/OVN 中添加了对 QoS 最小带宽规则(仅出站)的支持。OVN 从 22.06.0 版本开始支持在逻辑交换机端口上设置这些规则类型。
OVN 机制驱动程序拒绝将端口绑定到已失效的 agent。
核心 OVN 现在可以在实时迁移期间在逻辑交换机端口上设置目标主机。这使得能够提前准备目标主机,从而实现更快的实时迁移和主机之间切换期间的更短停机时间。Neutron 在端口选项中包含此信息。
已在 OVN 后端添加了对路由器网关 IP QoS 的支持。L3 OVN 路由器插件现在可以对路由器网关端口应用路由器 QoS 策略规则。
Ovn 配置项“ovn_nb_connection”和“ovn_sb_connection”可以设置多个用逗号分隔的地址。设置 NB/SB “connection” 不活动探测也可以很好地工作,如果指定了多个连接。
添加了一个新的配置变量,位于
[OVS]部分,用于控制在使用 OVS 本机防火墙驱动程序(securitygroup.firewall_driver=openvswitch)时 OVS OpenFlow 规则处理操作。openflow_processed_per_port:默认值为“False”。如果启用,则将一次处理与端口关联的所有 OpenFlow 规则,在一个事务中。如果禁用,则流程将按“AGENT_RES_PROCESSING_STEP=100”数量的 OpenFlow 规则进行批处理。
如果启用了
uplink-status-propagation扩展,则在启用它之前的所有现有端口默认情况下都将启用“propagate_uplink_status”标志。这与启用此扩展的管理员的目标一致。现在只有新端口才能被禁用此标志创建。
网关 IP QoS 网络继承现在适用于 OVN L3 插件 QoS 扩展。如果路由器外部网络(网关网络)具有关联的 QoS 策略,则网关 IP 端口将继承网络 QoS 策略。
QoS 规则类型列表接受两个过滤器标志
all_supported:如果为 True,则列表调用将打印至少一个已加载的机制驱动程序支持的所有 QoS 规则类型。all_rules:如果为 True,则列表调用将打印 Neutron 服务器支持的所有 QoS 规则类型。
这两个过滤器标志是互斥的,并且不是必需的。
已将
DbQuotaDriverNull启用为生产就绪的数据库配额驱动程序。此驱动程序无法访问数据库,并将向请求查询返回空值。此驱动程序可用于覆盖 Neutron 配额引擎。
添加了一个新的脚本来删除重复的端口绑定。此脚本将列出数据库中的所有
ml2_port_bindings记录,找到具有相同端口 ID 的记录。然后,该脚本删除状态为 INACTIVE 的记录。此脚本对于删除在失败的实时迁移后保留在数据库中的残留物很有用。重要的是要注意,不应在任何实时迁移过程中执行此脚本。
添加
use_random_fully设置,允许操作员禁用 iptables 规则上的 iptables random-fully 属性。
已知问题¶
如果禁用
use_random_fully设置,它将阻止使用 random fully,如果两个 guest 位于不同的网络中,使用相同的 source_ip 和 source_port,并且它们尝试访问相同的 dest_ip 和 dest_port,由于竞争的元组生成,内核可能会丢弃数据包。 仅当 source_port 非常重要(例如在网络防火墙 ACL 中)并且平台内的 source_ip 绝不重复时,才应禁用此设置。
升级说明¶
之前已弃用的配置选项
allow_overlapping_ips已被删除。
已停止对 Python 3.6 和 3.7 的支持。现在支持的 Python 最低版本是 Python 3.8。
已为 ML2/OVN 的 IPv4 添加了一个名为
[ovn]/disable_ovn_dhcp_for_baremetal_ports的新配置选项。由于 PXE 启动节点可能取决于硬件,并且一些操作员可能更喜欢使用功能齐全的 DHCP 服务器而不是 OVN 的 DHCP 服务器,因此此选项允许在设置为 True 时禁用 OVN 的内置 DHCP 服务器,用于裸机端口(vnic 类型“baremetal”)。默认值为 False。
已删除
live_migration_events配置选项。现在 Neutron 假定始终设置此标志。此配置选项取决于 Nova 补丁 仅等待预实时迁移事件。
弃用说明¶
由于缺乏维护资源,ML2 linuxbridge 代理已被标记为实验性。要继续使用它,部署者必须在 neutron.conf 的“experimental”部分将“linuxbridge”选项设置为 True
错误修复¶
1942329 已扩展直接物理端口的端口绑定逻辑,以允许通过绑定配置文件提供物理设备的 MAC 地址。如果提供,则 Neutron 会用来自活动绑定配置文件的值覆盖数据库中端口对象的
device_mac_address字段的值。如果 部署了 nova 侧的此修复 之前的端口,则使用该端口的 VM 需要被移动,或者端口需要被分离并重新连接,以强制 nova 提供直接物理端口的 MAC 地址到端口绑定。
禁止在同一个路由器上创建重复的 NDP 代理条目,因为路由器的 IP 地址是唯一的,并且 IPv6 地址只需要一个 NDP 代理。
修复了 ML2/OVN 驱动程序中网络段标签未在 OVN 北向数据库中更新的问题。有关更多信息,请参阅 bug 1944708。
其他说明¶
OVN 迁移默认执行验证。此验证意味着在迁移完成后会生成一个实例并由简单的 ping 进行测试。它还尝试在迁移后创建新的工作负载。这对于非常简单的场景测试很有用,但对于生产环境来说并不真正有用,因为生产环境可能已经有正在运行的工作负载。更有意义的是显式要求验证,而不是隐式地将其作为迁移运行,因为迁移主要用于生产环境。VALIDATE_MIGRATION 现在默认为 False,如果需要按需验证,则需要将其更改为 True。
从现在开始,无论其状态如何(活动或待机),网关接口都将保持在托管 HA 路由器的所有节点上处于启动状态。有关更多信息,请参阅 bug 1952907。
OVN 驱动程序已恢复为使用有状态 NAT 实现浮动 IP。之前的切换到无状态没有实现预期的性能优势,反而引入了潜在硬件卸载的问题。