Queens 系列发布说明

12.1.1-142

新特性

  • 添加了一个新的配置选项 http_retries。 此选项允许配置 nova 或 ironic 客户端在 HTTP 调用失败时重试的次数。

  • 添加新的配置选项 igmp_snooping_enable。新选项位于 OVS 配置部分,并由 openvswitch 代理使用。此选项用于在集成桥接中启用对互联网组管理协议 (IGMP) 的支持。

弃用说明

  • neutron.agent.linux.interface.LinuxInterfaceDriver 类的抽象方法 plug_new 现在接受一个可选参数 link_up。 未使用 link_up 的此方法(该方法接受 5 到 9 个位置参数)的使用现在已被弃用,并且在 W 版本中将不再可能。 继承自此基类的第三方驱动程序应更新其 plug_new 方法的实现。

安全问题

  • 修复 bug 1939733,方法是在传递给 dnsmasq 之前,从 dhcp 额外选项值中删除第一个换行符 (\n) 之后的所有内容。

  • 对元数据代理进行了一项更改,以不允许用户覆盖标头值,它现在将始终插入正确的信息并在将请求发送到元数据代理之前删除不必要的字段。有关更多信息,请参阅错误 1865036

错误修复

  • 漏洞 https://bugs.launchpad.net/neutron/+bug/1732067 描述了 neutron-ovs-agent 集成桥上的泛洪问题。漏洞 https://bugs.launchpad.net/neutron/+bug/1841622 提出了解决方案。接受的出口数据包将在最终的出口表中处理(未启用 openflow 防火墙时为表 61,否则为表 94),对现有云网络的干扰最小,并为单播流量提供直接输出流。添加了一个新的配置选项 explicitly_egress_direct,默认值为 False,旨在区分运行网络节点与计算服务的混合云,上游 neutron CI 是一个例子。在这种情况下,应将 explicitly_egress_direct 设置为 False,因为存在许多无法覆盖的情况,尤其是在您拥有在这些混合主机上运行的集中式浮动 IP 时。否则,将 explicitly_egress_direct 设置为 True 以避免泛洪。还有一个注意事项,如果您的网络节点仅用于网络服务,我们建议您禁用所有安全组以获得更高的性能。

  • 修复了启用 ovs offload 时的 MAC 学习问题。 OVS 防火墙减少了正常操作的使用量以减少 CPU 利用率。 这导致了泛洪规则,因为没有在入站流量上进行 MAC 学习。 虽然这对于非 offload 情况来说是可以的,但在使用 ovs offload 时,泛洪规则不会被 offload。 此修复程序修复了 offload 中的 MAC 学习,因此我们避免了泛洪规则。 #1897637

  • 修复了一个问题,即 OVS 防火墙驱动程序无法正确配置使用远程组的安全组规则,当相应的远程组在本地 hypervisor 上没有端口时。 有关更多信息,请参阅 bug:18627031854131

  • [bug 1812168] 在关联端口删除时删除浮动 IP DNS 记录。

  • 安全组的所有者现在可以看到属于安全组的所有安全组规则,即使该规则是由管理员用户创建的。 修复了 bug 1824248

  • 为 OpenFlow 防火墙流量识别机制,向 TRANSIENT 表添加基于物理 VLAN 标签的新匹配规则。这修复了 VLAN 类型网络之间的分布式路由器东西向流量。有关更多信息,请参阅 bug 1831534

其他说明

  • 在 neutron.conf 中添加了一个新的配置选项 host_dvr_for_dhcp,用于 DVR 以确定是否将 DVR 本地路由器托管到计划的 DHCP 节点。

  • 为了提高 DHCP agent 的性能,它将不再为 Neutron 中创建的每个端口类型配置 DHCP 服务器。 例如,对于浮动 IP 或路由器 HA 接口,不需要,因为客户端不会为它们发出 DHCP 请求

12.1.1

安全问题

  • OVS 防火墙目前会阻止没有 IPv4 或 IPv6 ethertype 的流量。与 iptables_hybrid 防火墙相比,这是一个行为变化,后者仅对 IP 数据包进行操作,因此不处理其他 ethertype。现在,在 neutron openvswitch 代理配置文件中有一个配置选项用于允许的 ethertype,然后在初始化时确保允许请求的 ethertype。

漏洞修复

  • 当更新驻留在路由提供商网络上的端口的固定IP时,如果未设置host,端口更新将始终失败。请参阅bug:1844124

12.1.0

升级说明

  • IPv6 网络中的第一个地址现在是路由器的一个有效且可用的 IP。此前它已被保留,但现在可以分配给路由器,以便以“::”结尾的 IPv6 地址可以成为有效的默认路由。

其他说明

  • 为了提高高负载 ovs 代理重启的成功率,不再使用重试或 fullsync,而是将 native 驱动程序的 of_connect_timeoutof_request_timeout 现在设置为 300s。该值对常规压力 ovs 代理没有副作用。

  • 添加了一个新的选项 [ovs] of_inactivity_probe,允许更改在使用 OVS ML2 代理和 native OpenFlow 驱动程序时的不活动探测间隔。如果遇到 OpenFlow 超时,操作员可以增加此值。默认值为 10 秒。

12.0.6

关键问题

  • neutron-openvswitch-agent有时会花费过多的时间来处理大量端口,超过其超时值`agent_boot_time`,用于L2填充。因此,某些流更新操作将不会被触发,导致在代理重启期间丢失流,特别是对于主机到主机vxlan隧道流,导致原始隧道流由于不同的cookie ID而被视为陈旧。代理的第一个RPC循环也会执行陈旧流清理过程并删除它们,导致连接丢失。请确保所有neutron-server和neutron-openvswitch-agent二进制文件都已升级,以使更改生效,之后L2填充`agent_boot_time`配置选项将不再使用。

漏洞修复

  • 修复了bug 1501206。这确保了运行dnsmasq作为DNS服务器的DHCP代理实例不能被用作DNS放大器,当租户网络使用公共路由IP地址时,通过添加一个选项,使其仅为本地网络提供DNS请求。

  • 修复了一个问题,导致在初始IP分配由于缺少绑定信息而延迟时,端口更新上的IP分配失败。如果端口mac_address和绑定信息(binding_host_id)在同一个请求中更新,则fixed_ips字段会在内部添加到请求中。完成延迟分配的代码在那种情况下未能执行。(有关更多信息,请参阅bug 1811905。)

  • neutron-openvswitch-agent已更改为在第一个RPC循环中通知neutron-server已重启。这会向neutron-server发出信号,以提供更新的L2填充信息,以正确编程FDB条目,确保实例的连接不会中断。这修复了以下bug:17949911799178181370318137141813715

12.0.4

新特性

  • 为 Neutron OVS 代理添加了一个新的配置选项 bridge_mac_table_size。此值将在由 openvswitch-neutron-agent 管理的每个 Open vSwitch 网桥上设置在 ovsdb 中的 other_config:mac-table-size 列中。此新选项的默认值设置为 50000,对于大多数系统来说应该足够了。有关此选项的更多详细信息,请参阅 Open vSwitch 文档。有关更多信息,请参阅 bug 1775797

其他说明

  • 计量代理iptables驱动程序现在可以使用`metering_agent.ini`文件中的stevedore别名加载其接口驱动程序。例如,`interface_driver = openvswitch`而不是`interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver`

12.0.3

漏洞修复

  • 对于 Infiniband 支持,Ironic 需要将“client-id” DHCP 选项作为数字发送,以便进行 IP 地址分配。现在 Neutron 支持此功能,可以将其指定为 RFC 4776 中定义的选项 61。有关更多信息,请参阅 bug 1770932

12.0.2

已知问题

  • 在单个桥上要清理的端口数量大于大约 10000 的情况下,可能需要将 ovsdb_timeout 配置选项增加到高于 600 秒的某个值。

漏洞修复

  • 修复了 bug 1763604。覆盖 neutron-ovs-cleanup 脚本中的 ovsdb_timeout 配置选项的默认值。默认值为 10 秒,但当从单个桥删除许多端口时(例如,5000),这不足以用于 neutron-ovs-cleanup 脚本。因此,我们现在将配置选项的默认值覆盖为 600 秒(10 分钟)。

12.0.1

序言

为了减少 L2 代理中处理安全组更新所花费的时间,现在将在一组工作线程中执行 conntrack 删除,而不是在主代理线程中,以便它可以快速返回处理其他事件。

升级说明

  • 在升级时,conntrack 条目现在将在工作线程中清理,而不是在调用线程中。

漏洞修复

12.0.0

序言

现在可以禁用从 DHCP 代理发送的回复中的 DNS 服务器分配。

已添加一个新的 agent_mode(dvr_no_external) 用于 DVR 路由器,允许服务器配置与 DVR 关联的浮动 IP,在集中节点上。

新特性

  • 端口现在有一个 dns_domain 属性。从向外部 DNS 服务发布它的角度来看,端口的 dns_domain 属性优先于网络的 dns_domain

  • 现在可以通过配置选项 dscp 为 openvswitch overlay tunnel 端口的外部标头设置 DSCP 值,适用于 OVS 和 linuxbridge 代理。

  • DSCP 也可以通过新的布尔配置选项 dscp_inherit 从内部标头继承,适用于 openvswitch 和 linuxbridge。如果将此选项设置为 true,则将忽略 dscp 的值。

  • 允许在 neutron-dhcp-agent 中配置 DHCP 更新 (T1) 和重新绑定 (T2) 超时时间。通过允许在 dnsmasq 中设置这些超时时间(如 RFC2132 中选项 58 和 59 所述),允许用户更改其他参数,例如实例上的 MTU,而无需等待租约到期。更改 T1 而不是租约时间的优势是,如果 DHCP 服务器在租约时间内变得不可访问,实例将不会丢失其 IP 地址,并且不会导致数据平面中断。

  • 可以访问共享网络的租户现在可以在指定的子网上创建/更新端口,而不是默认子网。这现在是默认行为,可以通过修改 policy.json 文件来更改。

  • 现在可以通过将相应子网的 dns_nameservers 属性设置为 0.0.0.0::(对于 IPv4 或 IPv6 子网),来指示 DHCP 代理不要向其客户端提供任何 DNS 服务器地址。

  • 基于 ML2 _common_agent 的 L2 代理现在可以使用 L2 扩展 API。此 API 可供 L2 扩展驱动程序用于向 L2 代理请求资源。例如,它用于将 IptablesManager 的实例传递给 Linuxbridge L2 代理 QoS 扩展 驱动程序

  • 引入了新的 DVR 代理类型 dvr_no_external。此代理类型允许将浮动 IP(DNAT/南北路由)集中化,同时将东西路由保持分布式。

  • 实现浮动 IP QoS。已向浮动 IP 相关的 API 添加了一个新参数 qos_policy_id

  • Neutron 代理现在支持到 OVSDB 服务器的 SSL 连接。要启用基于 SSL 的连接,请为 ovsdb_connection 设置使用 ssl 前缀的 URI。使用 SSL 时,还需要设置新的 ovs 组选项,其中包括 ssl_key_filessl_cert_filessl_ca_cert_file

  • 支持在按 IP 地址过滤端口时进行子字符串匹配。

  • 已向 L3AgentExtensionAPI 添加了一个新方法 get_router_info

  • 已向 L3AgentExtensionsManager 添加了一个新方法 ha_state_change

已知问题

  • 可以混合使用 dvr 代理和 dvr_no_external 代理。但是,请避免在 dvr 代理和 dvr_no_external 代理之间迁移具有浮动 IP 的 VM。所有具有浮动 IP 的 VM 端口都应迁移到相同的 agent_mode。这将是其中一个限制。

升级说明

  • 此版本中,当子网的 DNS 服务器设置为 0.0.0.0:: 时的功能已更改。旧行为是每个 DHCP 代理仅将其自身的 IP 地址作为 DNS 服务器提供给其客户端。新行为是 DHCP 代理根本不提供任何 DNS 服务器 IP 地址。

  • 添加了一种新的 DVR 代理模式 dvr_no_external。在 dvr 和此模式之间切换是对数据平面的破坏性操作。

  • web_framework 选项已被删除。这不应影响操作员/用户,因为它只是用于开发新的 Web 框架的一个选项。

弃用说明

  • linuxbridge 中 vxlan 组中的 tos 配置选项已被弃用,并替换为更精确的选项 dscp。TOS 值由 DSCP 和 ECN 位组成。无法通过 TOS 值设置 ECN 值,并且在隧道的情况下 ECN 始终从内部继承。

  • 在 Queens 中已弃用 ivs 接口驱动程序,将在 Rocky 中删除。

  • 现在已弃用 ovsdb_interface 配置选项。在未来的版本中,将忽略该选项的值。native 驱动程序将被使用。

  • api-paste 入口点 neutron.api.versions:Versions.factory 已被弃用,将在 Rocky 版本中删除。请更新您的 api-paste.ini 文件以使用 Queens 提供的文件,或将任何对 Versions 工厂的引用更新为指向 neutron.pecan_wsgi.app:versions_factory

  • ovs_vsctl_timeout 选项重命名为 ovsdb_timeout,以反映它不特定于 ovsdb_interface 实现的 vsctl。它也已移动到 [OVS] 部分。

漏洞修复

  • 修复了 bug 1736674,安全组规则现在由启用 QoS 扩展 驱动程序Linuxbridge L2 代理 正确应用。

  • Openvswitch 代理有一个名为 fdb 的扩展,它使用 Linux bridge 命令。该 bridge 命令已添加到 openvswitch-plugin.filters 文件的 rootwrap 中。有关更多信息,请参阅 bug:1730407

  • 通过协议号添加安全组规则已记录在案,但不知何故在最近几次发布中没有被注意到而中断。现在已修复。有关更多信息,请参阅 bug 1716045

  • 在安全组规则 API 中,仅对 TCP 和 UDP 执行端口范围值的 API 级别验证。现在也对 DCCP、SCTP 和 UDP-Lite 执行验证。