Stein 系列发布说明¶
14.4.2-57¶
新特性¶
dns 分配将反映网络中定义的 dns 域或用户在创建端口时使用 --dns-domain 发送的 dns 域,而不是仅获取 neutron 配置中定义的 dns 域
安全问题¶
修复 bug 1939733,方法是在传递给 dnsmasq 之前,从 dhcp 额外选项值中删除第一个换行符 (
\n) 之后的所有内容。
其他说明¶
为了提高 DHCP agent 的性能,它将不再为 Neutron 中创建的每个端口类型配置 DHCP 服务器。 例如,对于浮动 IP 或路由器 HA 接口,不需要,因为客户端不会为它们发出 DHCP 请求
14.4.2¶
升级说明¶
从
14.3.1、14.4.0或14.4.1版本升级到14.4.2或更高版本,可能会导致旧 neutron agent 与新 neutron server 之间的兼容性问题。有关更多信息,请参阅 bug 1903531。从较旧版本升级不会导致相同的问题。
14.4.1¶
错误修复¶
修复了启用 ovs offload 时的 MAC 学习问题。 OVS 防火墙减少了正常操作的使用量以减少 CPU 利用率。 这导致了泛洪规则,因为没有在入站流量上进行 MAC 学习。 虽然这对于非 offload 情况来说是可以的,但在使用 ovs offload 时,泛洪规则不会被 offload。 此修复程序修复了 offload 中的 MAC 学习,因此我们避免了泛洪规则。 #1897637。
14.4.0¶
新特性¶
添加了新的配置选项
keepalived_use_no_track。 如果部署中使用的 keepalived 版本不支持其配置文件中的no_track标志(例如 keepalived 1.x),则应将此选项设置为False。 此选项的默认值为True。
14.3.1¶
错误修复¶
1875981 Neutron 现在在管理员删除端口、服务器或浮动 IP 时,会正确删除相关的 DNS 记录。
14.3.0¶
新特性¶
添加了一个新的配置选项
http_retries。 此选项允许配置 nova 或 ironic 客户端在 HTTP 调用失败时重试的次数。
添加新的配置选项
igmp_snooping_enable。新选项位于OVS配置部分,并由 openvswitch 代理使用。此选项用于在集成桥接中启用对互联网组管理协议 (IGMP) 的支持。
14.2.0¶
弃用说明¶
neutron.agent.linux.interface.LinuxInterfaceDriver 类的抽象方法
plug_new现在接受一个可选参数link_up。 未使用link_up的此方法(该方法接受 5 到 9 个位置参数)的使用现在已被弃用,并且在 W 版本中将不再可能。 继承自此基类的第三方驱动程序应更新其plug_new方法的实现。
安全问题¶
对元数据代理进行了一项更改,以不允许用户覆盖标头值,它现在将始终插入正确的信息并在将请求发送到元数据代理之前删除不必要的字段。有关更多信息,请参阅错误 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 防火墙驱动程序无法正确配置使用远程组的安全组规则,当相应的远程组在本地 hypervisor 上没有端口时。 有关更多信息,请参阅 bug:1862703 和 1854131。
为 OpenFlow 防火墙流量识别机制,向 TRANSIENT 表添加基于物理 VLAN 标签的新匹配规则。这修复了 VLAN 类型网络之间的分布式路由器东西向流量。有关更多信息,请参阅 bug 1831534。
14.1.0¶
升级说明¶
对于受 bug 1853840 影响的用户,现在可以在配置选项
resource_provider_hypervisors中为每个物理网络设备设置 hypervisor 名称,该选项位于ovs-agent的[ovs]ini 部分和sriov-agent的[sriov_nic]ini 部分。Hypervisor 名称默认为socket.gethostname(),即使将DEFAULT.host配置选项设置为非默认值,也能与libvirt正常工作。
错误修复¶
为方法
get_sorts在neutron.api.api_common中添加排序键验证逻辑。有关更多信息,请参阅下面的链接:https://bugs.launchpad.net/neutron/+bug/1659175
Neutron 现在通过使用 hypervisor 名称而不是主机名来定位其创建的资源提供者树的根资源提供者。在极少数情况下,这两者是不同的。可以在配置选项
resource_provider_hypervisors中为每个物理网络设备设置 hypervisor 名称,该选项位于ovs-agent的[ovs]ini 部分和sriov-agent的[sriov_nic]ini 部分。Hypervisor 名称默认为socket.gethostname(),即使将DEFAULT.host配置选项设置为非默认值,也能与libvirt正常工作。我们相信此更改修复了 bug 1853840。
安全组的所有者现在可以看到属于安全组的所有安全组规则,即使该规则是由管理员用户创建的。 修复了 bug 1824248。
其他说明¶
在 neutron.conf 中添加了一个新的配置选项
host_dvr_for_dhcp,用于 DVR 以确定是否将 DVR 本地路由器托管到计划的 DHCP 节点。
14.0.4¶
错误修复¶
[bug 1812168] 在关联端口删除时删除浮动 IP DNS 记录。
其他说明¶
已在 l3_agent.ini 中为 L3 代理添加了一个新的配置选项
radvd_user。 此选项定义传递给 radvd 的用户名,用于放弃“root”权限并将用户 ID 更改为用户名和组 ID 更改为用户的初级组。 如果未指定用户(默认情况下),将传递执行 L3 代理的用户。 如果指定“root”,因为 radvd 以 root 身份启动,将不会传递“用户名”参数。(有关更多信息,请参阅 bug 1844688。)
14.0.3¶
安全问题¶
OVS 防火墙目前会阻止没有 IPv4 或 IPv6 ethertype 的流量。与 iptables_hybrid 防火墙相比,这是一个行为变化,后者仅对 IP 数据包进行操作,因此不处理其他 ethertype。现在,在 neutron openvswitch 代理配置文件中有一个配置选项用于允许的 ethertype,然后在初始化时确保允许请求的 ethertype。
错误修复¶
修复了一个问题,即删除提供程序网络可能会导致 ML2 机制驱动程序未收到有关网络提供程序字段的信息。这取决于所使用的机制驱动程序,但可能会导致事件被忽略,从而导致网络配置不正确。有关详细信息,请参阅 bug 1841967。
当更新驻留在路由提供商网络上的端口的固定IP时,如果未设置host,端口更新将始终失败。请参阅bug:1844124。
14.0.2¶
新特性¶
添加了对用于杀死 neutron 代理管理的外部进程(例如
dnsmasq或keepalived)的自定义脚本的支持。 如果定义了此类自定义脚本,将使用它们而不是默认的kill命令来杀死此类外部进程。
升级说明¶
IPv6 网络中的第一个地址现在是路由器的一个有效且可用的 IP。此前它已被保留,但现在可以分配给路由器,以便以“::”结尾的 IPv6 地址可以成为有效的默认路由。
错误修复¶
以前,网络的
dns_domain属性被 DHCP agent 忽略。在此版本中,使用 Neutron 的 DHCP agent 的 OpenStack 部署能够指定每个网络的dns_domain,并在实例的 dns 解析器配置文件(Linux 的 /etc/resolv.conf)中配置该域,以允许本地部分 DNS 查找。每个网络的dns_domain值将覆盖 DHCP agent 的默认dns_domain配置值。请注意,也可以更新网络的dns_domain,并且该新值将传播到新实例或在实例续订 DHCP 租约时。但是,现有的租约将使用旧的dns_domain值。
其他说明¶
为了提高高负载 ovs 代理重启的成功率,不再使用重试或 fullsync,而是将 native 驱动程序的
of_connect_timeout和of_request_timeout现在设置为 300s。该值对常规压力 ovs 代理没有副作用。
添加了一个新的选项
[ovs] of_inactivity_probe,允许更改在使用 OVS ML2 代理和 native OpenFlow 驱动程序时的不活动探测间隔。如果遇到 OpenFlow 超时,操作员可以增加此值。默认值为 10 秒。
14.0.0¶
序言¶
添加新的工具 neutron-status upgrade check。
添加了网络段范围管理的支持。这使得管理员能够通过 Neutron API 全局或按租户控制段范围。
支持 QoS API 中规则的别名端点。
可以移动或“入板”到现有子网池的现有子网,这些子网是在子网池外部创建的。这提供了一种将子网置于子网池的管理下并开始参与地址范围的功能。子网入板受当前由子网池和地址范围强制执行的所有相同限制和保证的约束。
新特性¶
添加了
neutron-status upgrade check命令的新框架。此框架允许添加各种检查,这些检查可以在 Neutron 升级之前运行,以确保可以安全地执行升级。Stadium 和第三方项目可以使用neutron.status.upgrade.checks命名空间中的入口点向此新的 neutron-status CLI 工具注册自己的检查。
添加了对 L3 插件中浮动 IP 池(子网)的列出的支持。引入了新的 API 资源
floatingip-pools。此 API 端点可以返回浮动 IP 池的列表,这些池本质上是网络 UUID 和子网 CIDR 之间的映射。用户可以使用此 API 来查找创建浮动 IP 的池。
在 Stein 之前,网络段范围配置为 ML2 配置文件
/etc/neutron/plugins/ml2/ml2_conf.ini中的一个条目,该条目是为租户网络分配静态定义的,因此必须作为主机部署和管理的一部分进行管理。引入了新的network-segment-rangeAPI 扩展,该扩展将网络段范围暴露给通过 API 进行管理。这允许具有管理员权限的用户能够动态管理共享和/或租户特定的网络段范围。引入了具有标记支持的标准属性到新的资源。该功能由新添加的服务插件network_segment_range控制。将从主机 ML2 配置文件/etc/neutron/plugins/ml2/ml2_conf.ini中定义的范围创建一组default网络段范围,例如network_vlan_ranges、ml2_type_vxlan 的vni_ranges、ml2_type_gre 的tunnel_id_ranges和 ml2_type_geneve 的vni_ranges。
L3 agent 现在支持对端口转发浮动 IP 的 QoS 带宽限制功能。如果浮动 IP 具有绑定 QoS 策略(具有带宽限制规则),则流量带宽将受到限制。
引入了端口的
propagate_uplink_status属性。目前,SRIOV 机制驱动程序利用此属性来决定 VF 链路是否应遵循 PF 的状态。例如,如果 PF 处于关闭状态,则 VF 链路状态也会自动设置为关闭状态。运营商可以通过配置选项启用此功能[ml2] extension_drivers = uplink_status_propagation
引入了 API 扩展
uplink_status_propagation以指示是否已启用此功能。
添加了配置选项
rpc_response_max_timeout以配置等待 RPC 响应的最大时间。
现在支持通过网络 RBAC 机制进行安全组管理。请参阅管理员指南以获取更多详细信息。
neutron-ovs-agent 下的 section
[ovs]中添加了新的配置选项:resource_provider_bandwidths和resource_provider_inventory_defaults。前者控制物理网络接口资源提供者库存的total(可用带宽)字段。默认情况下,它不会在 Placement 中创建资源提供者。后者可用于调整资源提供者库存的其他字段(allocation_ratio、min_unit、max_unit、reserved、step_size)。
neutron-sriov-agent 下的 section
[sriov_nic]中添加了新的配置选项:resource_provider_bandwidths和resource_provider_inventory_defaults。前者控制物理网络接口资源提供者库存的total(可用带宽)字段。默认情况下,它不会在 Placement 中创建资源提供者。后者可用于调整资源提供者库存的其他字段(allocation_ratio、min_unit、max_unit、reserved、step_size)。
为 Neutron DHCP agent 添加了一个新的配置选项
resync_throttle。此新选项允许限制本地 DHCP 状态与 Neutron 之间的状态同步事件的数量,仅每resync_throttle秒一次。此新选项的默认值为 1,应根据用户的特定场景进行配置,即用户希望系统对这些 DHCP 同步状态事件做出响应的程度。该选项与 DHCP agent 的事件驱动的定期任务一起引入。这增强了 agent 对 resync 请求的更快响应,但确保了它们之间的最小间隔,以避免过于频繁的同步。有关更多信息,请参阅 bug 1780370。
Neutron L3 和 DHCP agent 现在根据其管理的对象的数量动态调整它们运行的 greenthread 的数量,当前范围内的值为八到三十两个线程,这比以前的静态值八个线程有所增加。这应该有助于解决 agent 中的一些扩展问题。有关更多信息,请参阅 bug 1813787。
向 L3 路由器网关添加了一个新的属性
qos_policy_id。它允许用户将 QoS 策略与 L3 路由器网关关联,以控制关联 SNAT 流量的传输速率。
目前,QoS 策略中仅支持带宽限制规则。
要启用此功能,必须在 Neutron 服务器中配置
qos服务插件,并且必须在 L3 agent 中配置gateway_ip_qos扩展。请参阅OpenStack Networking Guide的QoS部分,了解更多详细信息。
添加了 SriovNicSwitchMechanismDriver 和 OpenvswitchMechanismDriver 的 get_standard_device_mappings,以便它们能够以标准方式返回接口或桥接映射。通用格式是字典,例如:{‘physnet_name’: [‘device_or_bridge_1’, ‘device_or_bridge_2’]}。
为了能够像操作一级资源一样对QoS规则执行GET、PUT和DELETE操作,实现了`qos-rules-alias` API扩展。换句话说,用户无需指定QoS策略ID。
Neutron子进程现在将其进程标题设置为与其角色匹配(‘api worker’,‘rpc worker’,‘periodic worker’,‘services worker’,或由树外插件中的worker定义的任何其他角色)。可以通过在neutron.conf的`[default]`部分中将`setproctitle`配置选项设置为`off`来禁用此行为。原始进程字符串也会附加到末尾,以帮助查找旧字符串的脚本。还有一个名为`brief`的选项,它会生成更短且更易于阅读的进程名称。此选项的默认设置为`on`,兼顾了向后兼容性和易于识别不同进程。建议在部署者验证其工具不依赖于旧字符串后,将设置更改为`brief`。
现有的子网现在可以移动到子网池中,从而可以扩展到它们最初未参与的地址范围中。
升级说明¶
操作员现在可以使用新的CLI工具`neutron-status upgrade check`来检查Neutron部署是否可以从N-1安全升级到N版本。
为uniq约束添加了浮动IP端口转发表列`protocol`。在一个扩展脚本中,我们首先删除原始的uniq约束,然后使用列`protocol`创建新的uniq约束。
移除了`external_network_bridge`配置选项。现有用户使用此选项的路由器网关接口现在将在集成网桥中创建,并由L2代理接线。
升级时,api和rpc worker的数量可能会发生变化。强烈建议所有部署者在他们的Neutron配置中设置这些值,而不是使用默认值。
已弃用的`ovsdb_interface`配置选项已被删除,默认的`native`驱动程序现在始终使用。此外,已弃用的`ovs_vsctl_timeout`选项(在Queens中重命名为`ovsdb_timeout`)也已被删除。
在依赖关系解析过程中,加载服务插件的代码被重构,不再在配置了多次的插件时引发异常,以最后一次配置为准。这是与先前行为的变化。
通过新的`setproctitle`配置选项,默认情况下会更改进程标题。旧字符串仍然是新进程标题的一部分,但任何查找旧字符串精确匹配的脚本可能需要修改。
Neutron API现在强制执行端口是否基于给定的协议是安全组规则的有效选项,而不是依赖于后端防火墙驱动程序来执行此操作,通常会静默地忽略规则中的端口选项。支持端口的有效白名单协议是TCP、UDP、UDPLITE、SCTP和DCCP。与其他协议一起使用的端口现在将生成HTTP 400错误。有关更多信息,请参阅bug 1818385。
弃用说明¶
扩展了资源`agent`的`after_create`和`after_update`事件通知的签名。添加了一个新的关键字参数:`status`。这是为了使与通知发送类`AgentDbMixin`中已经可用的相同状态信息对通知消费者可用。有效的状态值在`neutron_lib.agent.constants`中定义。使用旧签名消费通知已被弃用。除非将参数作为`**kwargs`处理,否则树外通知消费者需要进行调整。
来自`neutron.plugins.ml2.db`模块的函数`get_binding_levels`已被弃用,将来将被删除。应使用新的函数`get_binding_levels_objs`代替。此新函数返回`PortBindingLevel` OVO对象。
L2填充`agent_boot_time`配置选项已被弃用,转而使用直接的RPC代理重启状态传输。它将在`Train`版本中删除。
关键问题¶
neutron-openvswitch-agent有时会花费过多的时间来处理大量端口,超过其超时值`agent_boot_time`,用于L2填充。因此,某些流更新操作将不会被触发,导致在代理重启期间丢失流,特别是对于主机到主机vxlan隧道流,导致原始隧道流由于不同的cookie ID而被视为陈旧。代理的第一个RPC循环也会执行陈旧流清理过程并删除它们,导致连接丢失。请确保所有neutron-server和neutron-openvswitch-agent二进制文件都已升级,以使更改生效,之后L2填充`agent_boot_time`配置选项将不再使用。
错误修复¶
具有不同协议的浮动IP端口转发不能将相同的内部或外部端口号转发到同一个VM端口。修复后,我们将允许在不同协议中使用相同的内部或外部端口号创建端口转发。
修复了bug 1501206。这确保了运行dnsmasq作为DNS服务器的DHCP代理实例不能被用作DNS放大器,当租户网络使用公共路由IP地址时,通过添加一个选项,使其仅为本地网络提供DNS请求。
将`resource_type`添加到日志对象查询中,以区分安全组和防火墙组日志对象。有关更多信息,请参阅bug 1787119。
修复了一个问题,导致在初始IP分配由于缺少绑定信息而延迟时,端口更新上的IP分配失败。如果端口mac_address和绑定信息(binding_host_id)在同一个请求中更新,则fixed_ips字段会在内部添加到请求中。完成延迟分配的代码在那种情况下未能执行。(有关更多信息,请参阅bug 1811905。)
Neutron API worker默认数量为CPU核心数。这可能导致低CPU/低内存的机器出现问题。默认值已进行了调整,以尝试对默认值设置上限,即核心数或系统内存的一半,以较低者为准。此外,默认的RPC worker数量已从值`1`更改为API worker数量的一半。
neutron-openvswitch-agent已更改为在第一个RPC循环中通知neutron-server已重启。这会向neutron-server发出信号,以提供更新的L2填充信息,以正确编程FDB条目,确保实例的连接不会中断。这修复了以下bug:1794991、1799178、1813703、1813714、1813715。
拒绝对已绑定到端口上的QoS最小带宽规则执行操作,网络没有physnet,请参阅bug 1819029。
将`router`服务插件添加到`port_forwarding`服务插件的必需插件列表。有关更多信息,请参阅https://bugs.launchpad.net/neutron/+bug/1809238
其他说明¶
支持获取OVO中的特定db列。添加了一种新的方法`get_values`到Neutron对象类。可以使用此方法来获取对象的特定字段。
如果实例端口位于dvr路由器下,并且端口已经有绑定端口转发。Neutron将不再允许将浮动IP再次绑定到该端口,因为dvr浮动IP流量规则会破坏现有的端口转发功能。
添加新的配置组`ovs_driver`和新的配置选项`vnic_type_blacklist`,以使OpenvswitchMechanismDriver先前硬编码的`supported_vnic_types`参数可配置。黑名单中列出的`vnic_types`将从supported_vnic_types列表中删除。
添加新的配置组`sriov_driver`和新的配置选项`vnic_type_blacklist`,以使SriovNicSwitchMechanismDriver先前硬编码的`supported_vnic_types`参数可配置。黑名单中列出的`vnic_types`将从supported_vnic_types列表中删除。
计量代理iptables驱动程序现在可以使用`metering_agent.ini`文件中的stevedore别名加载其接口驱动程序。例如,`interface_driver = openvswitch`而不是`interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver`
Neutron服务器现在拒绝(作为`NotImplementedError`)已绑定端口上的QoS最小带宽规则的更新,如果该规则已经生效。实施更新需要更新Placement分配,并可能迁移服务器,以便可以满足新的`minimum_bandwidth`。
Neutron现在支持服务插件需要其他插件作为依赖项。例如,`port_forwarding`服务插件需要`router`服务插件才能实现完全功能。一个新的列表`required_service_plugins`已添加到每个服务插件中,以便可以初始化每个服务插件的必需依赖项。如果一个服务插件需要另一个插件,但要求未在配置文件中设置,Neutron现在将将其初始化到插件目录。
使用`publish`用于`AGENT`的`AFTER_CREATE`和`AFTER_UPDATE`事件,使用`DBEventPayload`而不是弃用的notify回调。