21.7. 将查询限制为元数据服务
为了保护 RHOSP 环境免受网络威胁,如拒绝服务(DoS)攻击,网络服务(neutron)可让管理员限制虚拟机实例可以查询 Compute 元数据服务的速率。管理员通过将值分配给 neutron.conf
配置文件的 metadata_rate_limiting
部分中的一组参数来实现此目的。网络服务使用这些参数来配置 HAProxy 服务器来执行速率限制。HAProxy 服务器在 OVS 后端中的 L3 路由器和 DHCP 代理内运行,并在 OVN 后端中的元数据服务内运行。
先决条件
- 您可以访问 RHOSP Compute 节点以及更新配置文件的权限。
- 您的 RHOSP 环境使用 IPv4 网络。目前,网络服务不支持 IPv6 网络的元数据速率限制。
- 此流程要求您重启 OVN 元数据服务或 OVS 元数据代理。将这个活动调度到维护窗口,以最大程度降低任何潜在中断的操作影响。
流程
在每个 Compute 节点上,在
/var/lib/config-data/puppet-generated/neutron/etc/neutron/neutron.conf
的metadata_rate_limiting
部分中,为以下参数设置值:rate_limit_enabled
-
可让您限制元数据请求的速度。默认值为
false
。将值设为true
以启用元数据速率限制。 ip_versions
-
IP 版本
4
用于您要控制查询率的元数据 IP 地址。RHOSP 尚不支持 IPv6 网络的元数据速率限制。 base_window_duration
-
查询请求限制的时间跨度(以秒为单位)。默认值为
10
秒。 base_query_rate_limit
-
在
base_window_duration
期间允许的最大请求数。默认值为10
个请求。 burst_window_duration
-
允许请求高于
base_window_duration
的时间范围(以秒为单位)。默认值为10
秒。 burst_query_rate_limit
burst_window_duration
期间允许的最大请求数。默认值为10
个请求。示例
在本例中,网络服务配置 为基础 时间和速率,允许实例在 60 秒期间查询 IPv4 元数据服务 IP 地址 6 次。网络服务也配置为 突发 时间和速率,允许每个 10 秒内更高的 2 查询速率:
[metadata_rate_limiting] rate_limit_enabled = True ip_versions = 4 base_window_duration = 60 base_query_rate_limit = 6 burst_window_duration = 10 burst_query_rate_limit = 2
重启元数据服务。
根据部署使用的网络服务机制,执行以下操作之一:
ML2/OVN
在 Compute 节点上,重启
tripleo_ovn_metadata_agent.service
。ML2/OVS
在 Compute 节点上,重启
tripleo_neutron_metadata_agent.service
。