Rocky 系列发布说明

13.0.7-119

新特性

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

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

  • 添加了新的配置选项 keepalived_use_no_track。 如果部署中使用的 keepalived 版本不支持其配置文件中的 no_track 标志(例如 keepalived 1.x),则应将此选项设置为 False。 此选项的默认值为 True

弃用说明

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

安全问题

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

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

错误修复

  • Bug https://bugs.launchpad.net/neutron/+bug/1732067 描述了 neutron-ovs-agent 集成桥上的洪泛问题。Bug 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

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

其他说明

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

13.0.7

错误修复

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

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

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

其他说明

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

13.0.6

其他说明

  • 已在 l3_agent.ini 中为 L3 代理添加了一个新的配置选项 radvd_user。 此选项定义传递给 radvd 的用户名,用于放弃“root”权限并将用户 ID 更改为用户名和组 ID 更改为用户的初级组。 如果未指定用户(默认情况下),将传递执行 L3 代理的用户。 如果指定“root”,因为 radvd 以 root 身份启动,将不会传递“用户名”参数。(有关更多信息,请参阅 bug 1844688。)

13.0.5

安全问题

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

错误修复

  • 修复了一个问题,即删除提供程序网络可能会导致 ML2 机制驱动程序未收到有关网络提供程序字段的信息。这取决于所使用的机制驱动程序,但可能会导致事件被忽略,从而导致网络配置不正确。有关详细信息,请参阅 bug 1841967

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

13.0.4

升级说明

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

  • 在依赖关系解析过程中,加载服务插件的代码被重构,不再在配置了多次的插件时引发异常,以最后一次配置为准。这是与先前行为的变化。

错误修复

其他说明

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

  • 如果实例端口位于dvr路由器下,并且端口已经有绑定端口转发。Neutron将不再允许将浮动IP再次绑定到该端口,因为dvr浮动IP流量规则会破坏现有的端口转发功能。

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

  • Neutron现在支持服务插件需要其他插件作为依赖项。例如,`port_forwarding`服务插件需要`router`服务插件才能实现完全功能。一个新的列表`required_service_plugins`已添加到每个服务插件中,以便可以初始化每个服务插件的必需依赖项。如果一个服务插件需要另一个插件,但要求未在配置文件中设置,Neutron现在将将其初始化到插件目录。

13.0.3

关键问题

  • 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

13.0.1

错误修复

  • 将`resource_type`添加到日志对象查询中,以区分安全组和防火墙组日志对象。有关更多信息,请参阅bug 1787119

13.0.0

序言

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

支持计算所有端口的多个绑定。

添加了对浮动 IP 端口转发的支持。

在列出资源时执行过滤器参数验证。

新功能

  • 为了更好地支持实例迁移,可以将多个端口绑定与计算所有端口关联。

    • 通过 REST API 支持端口绑定的创建、更新、列出、显示和激活操作。

    • 计算所有端口可以有一个活动绑定和多个非活动绑定。

    • 每个计算主机只能有一个绑定(活动或非活动)。

    • 当执行 activate 操作时,先前非活动的绑定变为活动状态。先前活动的绑定变为非活动状态。

    • 作为多个端口绑定实现的结果,Port 对象中的 port_binding 关系已重命名为 port_bindings。 类似地,Port OVO 的 binding 属性已重命名为 bindings

  • 添加了新的 HA 路由器 unknown 状态。有时,由于通信问题,l3 代理可能无法将健康状态更新到 Neutron 服务器。 在这种情况下,服务器可能不知道由该代理托管的 HA 路由器是活动状态还是待机状态。

  • 为浮动 IP 添加属性 port_details。 该属性的值包含关联端口的信息。

  • 支持为现有子网设置 segment_id。 这使用户能够将没有子网/段关联的非路由网络转换为路由网络。 只有在满足以下两个条件时才能执行此迁移 - 当前 segment_idNone,并且网络包含单个段和子网。

  • 引入了 neutron.policy.OwnerCheck 中的父资源所有者检查扩展。 可以通过注册扩展父资源和服务插件(将相应的父资源引入到 neutron.common.constants 中的 EXT_PARENT_RESOURCE_MAPPING)来使用它。 并将新的策略角色 admin_or_ext_parent_owner 引入到 policy.json 中用于此功能。

  • 已添加对浮动 IP 端口转发的支持。

    • 用户现在可以转发浮动 IP 地址的 TCP/UDP/其他协议端口上的流量到 Neutron 端口的固定 IP 地址之一关联的 TCP/UDP/其他协议端口。

    • 通过将 port_forwarding 子资源与浮动 IP 关联来实现此目的。

    • 要创建 port_forwarding,用户需要指定:浮动 IP ID、浮动 IP 的 external_port 编号、Neutron 端口 ID internal_port_id、一个 internal_ip_address(Neutron 端口的固定 IP 地址之一)、internal_port 编号和要使用的 protocol(例如 TCP 或 UDP)。

    • 通过 Neutron API 扩展和服务插件实现 port_forwardings 的 CRUD 操作。 请参阅 Neutron API 参考文档以获取详细信息。

    • 用户不能为已与 Neutron 端口关联的浮动 IP 创建 port_forwardings

    • 一个浮动 IP 可以有多个 port_forwardings

    • 只能为网络节点中由集中式路由器管理的浮动 IP 创建端口转发:传统、HA、DVR+HA。

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

  • 添加了 API 扩展 port-mac-address-regenerate。 在端口更新上将 'null'None)作为 mac_address 传递时,转换器将生成一个新的 mac 地址并将其分配给端口。 RFE: #1768690

  • 在使用路由网络时,为同一网络上的子网添加主机路由。 将为与同一网络上的其他段关联的子网配置静态路由。 这确保了 L3 路由网络内的流量即使默认路由位于不同的接口上,也保持在网络内。

  • 支持安全组 ID 上的端口过滤。 如果可用“port-security-group-filtering”扩展,则可以使用此功能。

  • 添加了对空字符串作为值的过滤属性的支持。 添加了一个 shim 扩展来指示是否支持此功能。

  • 从本版本开始,neutron 服务器将在列表请求上对过滤器参数执行验证。 如果请求包含无效的过滤器参数,Neutron 将返回 400 响应。 有效参数列表记录在 neutron API 参考文档中。

    添加 API 扩展 filter-validation 以指示这种新的 API 行为。 运营商可以通过配置选项禁用此扩展。

已知问题

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

升级说明

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

  • 在升级之前,如果请求包含未知或不受支持的参数,服务器将默默地忽略无效输入。 升级后,服务器将返回 400 Bad Request 响应。

    API 用户可能会注意到,收到成功响应的请求现在收到失败响应。 如果他们遇到这种情况,建议他们确认是否存在 API 扩展 filter-validation 并验证其请求中的过滤器参数。

    如果运营商希望保持向后兼容性,可以禁用此功能。 如果他们选择这样做,API 扩展 filter-validation 将不存在,并且 API 行为不会更改。

错误修复

  • 修复了一个问题,即标准属性(例如 created_atupdated_atrevision_number)未在段资源的响应中呈现。

  • 以前,网络的 dns_domain 属性被 DHCP 代理忽略。 在此版本中,使用 Neutron 的 DHCP 代理的 OpenStack 部署能够指定每个网络的 dns_domain,并在实例的 dns 解析器配置文件(Linux 的 /etc/resolv.conf)中配置该域,以允许本地部分 DNS 查找。 每个网络的 dns_domain 值将覆盖 DHCP 代理的默认 dns_domain 配置值。 请注意,也可以更新网络的 dns_domain,并且该新值将传播到新实例或在实例续订 DHCP 租约时。 但是,现有的租约将使用旧的 dns_domain 值。

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

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

其他说明

  • 已从代码库中删除了已弃用的 IVSInterfaceDriver 类。 这意味着既不能将 ivs 也不能将 neutron.agent.linux.interface.IVSInterfaceDriver 作为 neutron.confinterface_driver 配置选项的值使用。

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

  • 每个插件可以决定是否通过将 __filter_validation_support 设置为 True 或 False 来支持过滤器验证。 如果未设置此字段,则默认值为 False。 目前,ML2 插件和所有树内服务插件都支持过滤器验证。 树外插件默认情况下将禁用过滤器验证,但如果他们选择,可以将其打开。 为了支持过滤器验证,部署中的核心插件和所有服务插件都必须支持它。