Newton 系列发布说明¶
9.4.1¶
序言¶
DHCP 命名空间中的 IPv6 地址现在将由 DHCP 代理正确地静态配置。
升级说明¶
升级时,通过 SLAAC 动态创建的 DHCP 命名空间中的 IPv6 地址将被移除,并添加一个静态 IPv6 地址代替。
错误修复¶
在 DHCP 命名空间中添加端口时存在竞争条件,可能导致 L3 代理发送的路由器通告通过 SLAAC 动态创建 IPv6 地址,从而导致 DHCP 代理启动失败。此错误已修复,但在升级时需要注意处理任何可能过时的动态地址。有关更多信息,请参阅 bug 1627902。
9.4.0¶
序言¶
Keepalived VRRP 健康检查功能,用于验证从“主”路由器到所有网关的连接性。
新特性¶
启用此功能可以验证网关连接性,并在连接丢失时将“主”路由器重新调度到另一个节点。如果所有路由器都失去与网关的连接,则选举过程将循环进行,直到其中一个路由器恢复其网关连接。在此期间,所有路由器都将报告为“主”。
9.2.0¶
新特性¶
已向 netns_cleanup 添加了一种新机制,用于终止在命名空间内监听任何端口/unix 套接字的进程。它将尝试通过 SIGTERM 优雅地终止它们,如果它们没有终止,则将 SIGKILL 发送到剩余的进程,以确保正确清理。
已知问题¶
在内核 < 3.19 中,net.ipv4.ip_nonlocal_bind 不是每个命名空间的内核选项。L3 HA 将此选项设置为零,以避免为在处理过程中移除的 IP 地址发送不必要的 ARP。如果发生这种情况,可能会发送不必要的 ARP,这可能会用错误的 MAC 地址填充对等机器的 ARP 缓存。
弃用说明¶
iptables 防火墙驱动程序在 Neutron 的后续版本中将不再启用桥接防火墙。如果您的发行版覆盖了任何相关 sysctl 设置的默认值(
net.bridge.bridge-nf-call-arptables、net.bridge.bridge-nf-call-ip6tables和net.bridge.bridge-nf-call-iptables),请确保使用 /etc/sysctl.conf 或 /etc/sysctl.d/* 配置文件将其设置回上游内核默认值(1)。
错误修复¶
已添加一个特殊情况,允许在服务类型不是“network:dhcp”的服务子网上创建 DHCP 端口,前提是该子网的 ‘enable_dhcp’ 设置为 ‘True’。这修复了在 neutron 尝试在子网创建后自动创建 DHCP 端口时看到的循环错误。有关更多详细信息,请参阅 bug 报告 1636963。
keepalived 版本 < 1.2.20 在收到 SIGHUP 信号时不会发送不必要的 ARP。这些版本未打包在某些 Linux 发行版中,例如 RHEL、CentOS 或 Ubuntu Xenial。不发送不必要的 ARP 可能会导致对等 ARP 缓存包含有关浮动 IP 地址的错误信息,直到该条目失效。Neutron 现在为出现在非 HA 接口上的所有新 IP 地址发送不必要的 ARP,这模拟了新版本 keepalived 的行为。
9.1.0¶
新特性¶
添加了中间件来解析 X-Forwarded-Proto HTTP 标头或 Proxy 协议,以帮助 neutron 在置于 TLS 代理(例如 HAProxy)后面时使用正确的 URL 引用。这会将 http_proxy_to_wsgi 中间件添加到管道中。此中间件默认禁用,但可以通过 oslo_middleware 组中的配置选项启用。
升级说明¶
paste 管道的 api-paste.ini 配置文件已更新,以添加 http_proxy_to_wsgi 中间件。
已添加一个新的选项
ha_keepalived_state_change_server_threads,用于配置为 keepalived 服务器连接请求生成的并发线程数。较高的值会增加代理节点上的 CPU 负载。默认值为节点上 CPU 数量的一半。这允许操作员调整线程数以适应其环境。使用更多线程,可以更快地处理多个 HA 路由器的状态变化的并发请求。
9.0.0¶
序言¶
添加选项以指定 neutron 的外部 dns 驱动程序,用于基于 SSL 的连接。这使得在端点基于 SSL 的情况下使用 neutron 与 designate 成为可能。用户可以在 neutron.conf 文件的 [designate] 部分中指定跳过证书验证或指定有效证书的路径。
在释放 DHCPv6 有状态子网的未使用 IPv6 租约时,调用 dhcp_release6 命令行实用程序。dhcp_release6 首次出现在 dnsmasq 2.76 中
将 ip_allocation 属性添加到端口资源
L3 代理中 ‘external_network_bridge’ 的默认值现在是 ‘’。
支持配置用于 WSGI 的 greenthreads 池。
已添加一条新规则到 API,允许使用 DSCP 值标记流量。这目前受 Open vSwitch QoS 驱动程序支持。
Neutron 服务器不再需要配置防火墙驱动程序,并且可以支持混合 iptables 防火墙和纯 OVS 防火墙的混合环境。
在 Newton 之前,neutron-openvswitch-agent 默认使用 ‘ovs-ofctl’ of_interface 驱动程序。在 Newton 中,‘of_interface’ 默认设置为 ‘native’。这主要消除了生成 ovs-ofctl 并略微提高性能。
正确计算使用 IPv4 或 IPv6 端点的环境中的覆盖(隧道)协议开销。ML2 插件配置文件包含一个名为 ‘overlay_ip_version’ 的新配置选项,位于 ‘[ml2]’ 部分,指示所有覆盖网络端点的 IP 版本。使用 ‘4’ 表示 IPv4,使用 ‘6’ 表示 IPv6。默认为 ‘4’。此外,所有 Layer-2 代理必须使用相同 IP 版本的端点。
支持在 OVS 中使用 IPv6 地址作为隧道端点。
在 Newton 之前,‘ovsdb_interface’ 的默认选项是 ‘vsctl’。在 Newton 中,‘ovsdb_interface’ 默认设置为 ‘native’。此更改将与 OVSDB 的通信方式从 ovs-vsctl 工具切换到 Open vSwitch python api,以提高典型部署的开箱即用性能。
安排具有访问网络的 dhcp-agent 上的网络
Liberty 版本中添加的内部可插拔 IPAM 实现现在是新旧部署的默认设置。旧部署在升级期间无条件地切换到可插拔 IPAM。旧的可插拔 IPAM 已被弃用并从代码库中删除。
OFAgent 已在 Newton 周期中删除。
删除 neutron.conf 文件中的 ‘quota_items’ 配置选项。此选项自 Liberty 版本以来已被弃用,现在没有效果。
删除 l3_agent.ini 文件中的 ‘router_id’ 配置选项。‘router_id’ 选项定义为在 use_namespaces=False 时将 l3-agent 关联到特定路由器。在 Mitaka 版本中删除 use_namespaces 后,它已被弃用。
默认情况下,Open vSwitch 和 Linuxbridge 代理的 QoS 驱动程序将突发值计算为可用带宽的 80%。
可以使用 SR-IOV 多个 NIC 用于物理网络。
Neutron 资源上可用的 created_at 和 updated_at 字段现在包含结尾的时区指示符。由于这是格式的更改,旧的 ‘timestamp_core’ 扩展已被删除并替换为 ‘timestamp’ 扩展。
“vlan-aware-vms” 功能允许 Nova 用户在单个端口(trunk 父端口)上启动 VM,该端口连接多个 Neutron 逻辑网络。
新特性¶
‘quota delete’ 的返回代码,对于先前未定义配额的租户已更改为从 204 更改为 404。
已添加两个新的选项到 [designate] 部分以支持 SSL。
第一个选项 insecure 允许在创建与 designate 客户端建立会话的 keystone 会话时跳过 SSL 验证。默认值为 False,这意味着始终验证连接。
第二个选项 ca_cert 允许设置有效证书文件的路径。默认值为 None。
SR-IOV 现在支持 egress 最小带宽配置。
端口资源现在具有 ip_allocation 属性。此属性的值将在创建端口时设置为 ‘immediate’、‘deferred’ 或 ‘none’。在更新端口时不会更改它。‘immediate’ 表示端口预计具有 IP 地址,并且 Neutron 在端口创建时尝试了 IP 分配。‘deferred’ 表示端口预计具有 IP 地址,但 Neutron 推迟了 IP 分配,直到端口更新提供将端口绑定到的主机。‘none’ 表示端口显式创建而没有地址,通过在创建时传递 [] 在 fixed_ips 中进行创建。
子网现在具有一个新的属性 ‘service_types’。这是端口设备所有者的列表,以便只有具有匹配设备所有者的端口才将从该子网获得 IP。如果对于给定的设备所有者没有匹配的服务子网,或者网络上没有定义任何服务子网,则端口将从没有 service-types 的子网分配 IP。这保留了与旧部署的向后兼容性。
Neutron 可以将 QoS 规则应用于端口,以标记传出流量的服务类型包头字段。
Open vSwitch Neutron 代理已扩展为标记应用 QoS 规则时从 VM 传出的 IP 服务类型包头字段。
Neutron 服务器不再需要配置防火墙驱动程序,并且可以支持混合 iptables 防火墙和纯 OVS 防火墙的混合环境。
net-mtu 扩展现在在每次访问网络时重新计算网络 MTU,而不仅仅是在创建时。现在它允许操作员调整 MTU 相关的配置选项,并在控制器重新启动后将它们应用于所有网络资源,无论是旧的还是新的。
新的 l2_adjacency 扩展将 l2_adjacency 字段添加到网络,以指示该网络上的端口之间是否有保证的 L2 邻接性。路由网络实现通常会将 l2_adjacency 设置为 False。
Neutron L3 代理现在具有加载代理扩展的能力,这允许其他服务在无需额外的代理更改的情况下进行集成。还提供了用于向扩展程序公开 l3 代理的路由器信息数据的 API,以便扩展程序可以与路由器状态保持一致。
Neutron 切换到使用 oslo.cache 库在元数据代理中缓存端口状态。有了它,现在可以使用更多的缓存后端,包括 Memcached 和 Mongo。有关更多详细信息,请参阅 oslo.cache 文档。
ml2_conf.ini 中的 local_ip 值现在可以设置为系统上配置的 IPv6 地址。
DHCP 调度程序使用“filter_host_with_network_access”插件方法来过滤具有访问 dhcp 网络的宿主机。插件可以重载它以定义自己的过滤逻辑。特别是,ML2 插件将过滤委托给机制驱动程序。
Networking API 现在支持请求和响应中的 ‘project_id’ 字段,以与 Identity (Keystone) API V3 兼容。已添加一个新的 API 扩展 ‘project-id’,允许 API 用户检测是否支持 ‘project_id’ 字段。请注意,‘tenant_id’ 字段仍然受支持,并且这两个字段在功能上是等效的。
用户现在可以将 QoS 规则应用于端口或网络,以设置每个队列和端口的最小 egress 带宽。最小 egress 带宽规则单独应用于每个端口。
已添加新的 API 扩展 ‘sorting’ 和 ‘pagination’,允许 API 用户检测是否启用了排序和分页功能。这些功能由
allow_sorting和allow_pagination配置选项控制。
该功能“vlan-aware-vms”可用。要启用它,必须将名为 ‘trunk’ 的服务插件添加到 neutron.conf 中的
service_plugins选项。该插件公开了两个新的扩展trunk和trunk_details。该插件可以与多个后端一起工作,特别是 Neutron 支持 ML2/openvswitch 和 ML2/linuxbridge。即使 Neutron API 兼容性应为与 trunk 关联的端口保留,由于这是该功能可用的第一个版本,因此对于一个或两个驱动程序都可能存在功能差距是合理的。这些将在报告后随着时间的推移填补。CLI 可通过 openstackclient 和 python-neutronclient 5.1.0 或更高版本获得。有关更多详细信息,请查看网络指南。
已知问题¶
升级说明¶
应在运行 DHCP 代理的系统上安装包含 dhcp_release6 的 dnsmasq 版本。未能这样做可能会导致 DHCPv6 有状态寻址无法正常工作。
rootwrap 过滤器文件 dhcp.filters 必须更新为包含 dhcp_release6,否则尝试运行该实用程序将导致 NoFilterMatched 异常。
引入了 OSprofiler 支持。要允许其使用,需要修改 api-paste.ini 文件以包含 osprofiler 中间件。还需要在 neutron.conf 文件中添加 [profiler] 部分,并定义 enabled、hmac_keys 和 trace_sqlalchemy 标志。
所有现有端口都被认为具有 ‘immediate’ IP 分配。任何没有此属性的端口也应被认为具有 immediate IP 分配。
已添加一个新的表 ‘subnet_service_types’ 来支持此功能。它使用 ‘subnets’ 表中的 ID 字段作为外键。
‘external_network_bridge’的默认值已更改为‘’,因为这是配置 L3 代理的首选方式,并且将在未来的版本中成为唯一的方式。如果您尚未显式设置此值,并且使用 L3 代理,则需要将此值设置为 ‘br-ex’ 以匹配旧的默认值。如果您正在使用 ‘br-ex’,则应切换到 ‘’,确保您的外部网络具有扁平段,并确保您的 L2 代理具有外部网络扁平段 physnet 和 ‘br-ex’ 之间的 bridge_mapping 条目,以获得相同的连接性。如果外部网络尚未具有扁平段,则需要将所有路由器从外部网络分离,删除不正确的段类型,添加扁平段,然后重新连接路由器。
dhcp_lease_time 配置选项在 Havana 周期中已被弃用。此选项不再受支持。该选项已被 dhcp_lease_duration 替换。
dnsmasq_dns_server 配置选项在 Kilo 周期中已被弃用。此值不再受支持。
API 排序和分页功能现在默认启用。
具有不反映配置的 MTU 值的现有网络在控制器升级后将收到新的 MTU 值。请注意,为了将新的正确 MTU 值传播到您的后端,您可能需要重新同步设置端口的所有代理,以及重新连接受影响实例的 VIF。
要保留 neutron-openvswitch-agent 的旧默认值,请在 openvswitch 代理配置文件中的 ‘[ovs]’ 部分使用 ‘of_interface = ovs-ofctl’。
默认情况下,本机接口将使 Ryu 控制器监听 127.0.0.1:6633。可以使用 of_listen_address 和 of_listen_port 选项配置监听地址。确保控制器具有在配置的地址上监听的权限。
定义适合环境的 ‘overlay_ip_version’ 选项和值。仅在不使用默认值 ‘4’ 时才需要。
要保留旧的默认值,请在 openvswitch_agent.ini(常见路径 ‘/etc/neutron/plugins/ml2/openvswitch_agent.ini’)的 ‘[ovs]’ 部分使用 ‘ovsdb_interface = vsctl’;如果存在单独的 openvswitch 代理配置文件,则应用上述更改到 ml2_conf.ini(常见路径 ‘/etc/neutron/plugins/ml2/ml2_conf.ini’)。
本机接口默认配置 ovsdb-server 监听 127.0.0.1:6640 上的连接。可以使用 ovsdb_connection 配置选项配置地址。确保 ovsdb-server 具有在配置的地址上监听的权限。
如果您依赖 ML2 path_mtu 选项的默认值 1500 来限制新网络资源使用的 MTU,请在 ml2_conf.ini 文件中显式设置它。
在升级期间,‘internal’ ipam 驱动程序成为 ‘ipam_driver’ 配置选项的默认值,并且数据使用 alembic 迁移迁移到新表。
network_device_mtu 选项已被删除。建议现有用户采用新的配置选项来适应其底层的物理基础设施。相关选项包括 ML2 的 global_physnet_mtu、path_mtu 和 physical_network_mtus。
从 neutron.conf 文件中删除 ‘quota_items’ 配置选项。
从 l3_agent.ini 文件中删除 ‘router_id’ 配置选项。
已删除
default_ipv4_subnet_pool和default_ipv6_subnet_pool配置选项。请使用 create/update subnetpool API 的is_default选项。
tenant_id 列已重命名为 project_id。需要应用此数据库迁移作为离线迁移。
已删除 ‘timestamp_core’ 扩展,并替换为 ‘standard-attr-timestamp’ 扩展。对象仍然在 ‘created_at’ 和 ‘updated_at’ 字段中具有时间戳,但为了与其他 OpenStack 项目保持一致,时间戳将附加在它们的末尾。
弃用说明¶
‘advertise_mtu’ 选项已被弃用,将在 Ocata 中删除。没有使用案例可以禁用此功能,因此该选项被认为是不必要的。DHCP 和 L3 代理将继续向实例通告 MTU 值。其他不使用这些代理的插件也鼓励向实例通告 MTU。MTU 通告的实际实现取决于所使用的插件,但假定至少支持 IPv4 客户端的 DHCP 选项和 IPv6 客户端的路由器通告。
‘allow_sorting’ 和 ‘allow_pagination’ 配置选项已被弃用,将在未来的版本中删除。
Neutron 控制器服务当前允许从一些未通过 –config-dir 或 –config-file CLI 选项传递给它的文件加载
service_providers选项。此行为现在已被弃用,将在 Ocata 中禁用。建议当前用户切换到上述 CLI 选项。
min_l3_agents_per_router 选项已被弃用,将在 Ocata 版本中删除,届时将始终允许新的 HA 路由器的调度。
‘supported_pci_vendor_devs’ 选项在 Newton 中已被弃用,将在 Ocata 中删除。通过 nova-scheduler 中的 pci_passthrough_whitelist 选项在选择合适的 hypervisor 时完成对受支持的 pci 供应商的验证,因此该选项被认为是不必要的。
neutron-debug 工具现在已被弃用,取而代之的是一组新的故障排除和诊断工具。目前没有立即删除的计划,并且在可比较的工具足以完全取代 neutron-debug 之前不会删除。有关更多信息,请参阅 https://blueprints.launchpad.net/neutron/+spec/troubleshooting
配置选项
[AGENT] prevent_arp_spoofing已被弃用,将在 Ocata 版本中删除。ARP 欺骗保护应始终启用,除非通过 API 通过端口安全扩展显式禁用。主要原因是它是在 Kilo 开发周期的末尾合并的,因此被认为不稳定。自 Liberty 以来的默认情况下已启用,并且被认为稳定,因此没有理由使其可配置。
cache_url 配置选项自 Newton 起已被弃用,将在 Ocata 中删除。请使用 [cache] 组配置元数据缓存,设置 enable = True 并配置您的后端。
不可插拔的 ipam 实现已被弃用,将在 Newton 版本周期中删除。
安全问题¶
OSprofiler 支持需要通过 HMAC 密钥在各种 OpenStack 服务之间传递跟踪信息,这些密钥在 neutron.conf 配置文件中定义。为了允许跨项目跟踪,用户应使用所有他或她想要跟踪的 OpenStack 服务共用的密钥。
在使用 ML2/openvswitch 驱动程序时,“vlan-aware-vms” 功能具有以下限制
安全组无法与基于 iptables 的防火墙驱动程序一起工作。
如果需要安全组,则需要使用状态化的 OVS 防火墙,但对于 OVS 版本 2.5 或更低版本,这将阻止使用 DPDK 数据路径。
错误修复¶
添加了缺少的 OSprofiler 支持。此跨项目分析库允许跟踪通过支持它的所有 OpenStack 服务中的各种 OpenStack 请求。要启动 OpenStack 请求跟踪,需要在 CLI 命令中添加 –profile <HMAC_KEY> 选项。此密钥需要存在于 neutron.conf 配置文件的 [profiler] 配置部分下的一个秘密密钥中。要启用或禁用 Neutron 分析,需要在同一部分中将适当的 enabled 选项设置为 True 或 False。默认情况下,Neutron 将跟踪所有 API 和 RPC 请求,但也有机会跟踪 DB 请求。为此,需要将 trace_sqlalchemy 选项设置为 True。作为先决条件,OSprofiler 库及其存储后端需要安装到环境中。如果是(并且如果在 neutron.conf 中启用了分析),则可以使用以下命令生成跟踪 - $ neutron –profile SECRET_KEY <subcommand>。在输出的末尾,将有一条带有 <trace_id> 的消息,并且要绘制漂亮的 HTML 图表,应使用以下命令 - $ osprofiler trace show <trace_id> –html –out result.html
为了修复 SR-IOV 实例和常规实例之间的通信问题,已向 OVS 或 linuxbridge 代理添加了 FDB 填充扩展。原因是 SR-IOV 直接端口实例到位于同一 hypervisor 上的普通端口实例的消息直接发送到线路,因为 FDB 表尚未更新。FDB 填充扩展使用 handle_port delete_port 扩展接口消息跟踪实例启动/删除操作并相应地更新 hypervisor 的 FDB 表。请注意,此 L2 代理扩展不支持允许的地址对扩展。
ML2 path_mtu 选项的默认值已更改为 0,有效地禁用了它对网络 MTU 计算的参与,除非在 ml2_conf.ini 配置文件中覆盖该值。
修复了 Bug 1548193,删除了 ‘force_gateway_on_subnet’ 配置选项。这将始终允许添加子网外部的网关,并且无法将网关强制到子网范围。
修复了 bug 1572670
允许 SR-IOV 代理在 0 个 vfs 的情况下运行
sriov_nic 配置的 ‘physical_device_mappings’ 现在可以接受每个物理网络多个 NIC。例如,如果 ‘physnet2’ 连接到 enp1s0f0 和 enp1s0f1,则 ‘physnet2:enp1s0f0,physnet2:enp1s0f1’ 将是一个有效的选项。
已通过在 Neutron 的 ‘created_at’ 和 ‘updated_at’ 字段中包含时区来修复 Bug 1561200。
其他说明¶
为了使用 QoS 出站最小带宽限制功能,‘ip-link’ 必须支持扩展的 VF 管理参数
min_tx_rate。支持此参数的ip-link的最小版本是iproute2-ss140804,git 标签v3.16.0。
运营商可能希望根据此 邮件列表帖子 中概述的调查来调整
max_overflow和wsgi_default_pool_size配置选项。wsgi_default_pool_size的默认值继承自 oslo.config,当前为 100。这是从以前的 Neutron 特定值 1000 的变化。
‘overlay_ip_version’ 选项的值会根据 IPv4 添加 20 字节或根据 IPv6 添加 40 字节来确定总隧道开销量。
需要 OVS 2.5+ 版本或更高版本以及 linux 内核 4.3 或更高版本。有关更多信息,请参阅 OVS github 页面。
在撰写本文时,Neutron 带宽预订未与 Compute 调度程序集成,这意味着最小带宽不能保证,而是尽最大努力提供。
Openflow Agent(OFAgent) 机制驱动程序及其代理已在 Newton 周期中删除,取而代之的是具有 “native” of_interface 的 OpenvSwitch 机制驱动程序。
删除了配置选项 ‘force_gateway_on_subnet’。这将始终允许添加子网外部的网关,并且无法将网关强制到子网范围。