静态速率限制器用于对虚拟服务上的总连接/请求数进行速率限制。例如,如果虚拟服务速率限制配置为 1000 个连接/秒,它将在配置的时间段内拒绝第 1001 个连接/请求。

虚拟服务连接速率限制器

这是通过属性名称 connections_rate_limit 在虚拟服务上配置的。该速率限制器对虚拟服务的入站连接数进行速率限制。

速率限制操作选项包括:

  • 丢弃 SYN 数据包

  • 发送 TCP 重置

  • 仅报告

下面是用于虚拟服务连接速率限制器的 CLI:

[admin]: configure virtualservice vs1
[admin]: virtualservice> connections_rate_limit
[admin]: virtualservice:connections_rate_limit> rate_limiter 
[admin: virtualservice:connections_rate_limit:rate_limiter> count 1000
Overwriting the previously entered value for count
[admin]: virtualservice:connections_rate_limit:rate_limiter> period 1
Overwriting the previously entered value for count
[admin]: virtualservice:connections_rate_limit:rate_limiter> burst_sz 1000
Overwriting the previously entered value for burst_sz
[admin]: virtualservice:connections_rate_limit> action type rl_action_reset_conn

您可以在应用程序 > 虚拟服务窗口的高级选项卡中选中性能限制框。

网络安全速率限制器

该速率限制器是在网络安全策略上配置的。这是一个基于策略的速率限制器,其中,可以配置速率限制操作选项以有选择地将规则应用于速率限制。

注:

对于这种类型的速率限制器,默认期限配置为 1 秒。

例如,假设您要将 IP 子网为 172.100.200.0/24 的用户的速率限制为每秒 1000 个连接。以下是执行上述请求的 CLI:

[admin:ctrl]: > configure networksecuritypolicy vs-vs1-Default-Cloud-ns
Updating an existing object. Currently, the object is:
+----------------------+-----------------------------------------------+
| Field                | Value                                                      -----------+------------------------------------------------------------+
| uuid                 | networksecuritypolicy-fbe7ec92-15bf-4ec8-a8bb-7145b03e3dba                                                            |
| name                 | vs-vs1-Default-Cloud-ns                        |            
| rules[1]             |                                                |            
|   name               | Rule 1                                         |            
|   index              | 1                                              |            
|   enable             | True                                           |            
|   match              |                                                |            
|     client_ip        |                                                |            
|       match_criteria | IS_IN                                          |            
|       prefixes[1]    | 172.100.200.0/24                               |            
|   action             | NETWORK_SECURITY_POLICY_ACTION_TYPE_RATE_LIMIT |            
|   log                | False                                          |            
|   rl_param           |                                                |            
|     max_rate         | 1000                                           |            
|     burst_size       | 1000                                           |            
|   age                | 0 min                                          |            
| tenant_ref           | admin                                          |            
+----------------------+------------------------------------------------+
[admin]: networksecuritypolicy> rules index 1
[admin]: networksecuritypolicy:rules> rl_param 
[admin]: networksecuritypolicy:rules:rl_param> max_rate 1000
No change in field value
[admin]: networksecuritypolicy:rules:rl_param> burst_size 1000
No change in field value
[admin]: networksecuritypolicy:rules:rl_param> save
[admin]: networksecuritypolicy:rules> save
[admin]: networksecuritypolicy> save

您可以在应用程序 > 虚拟服务窗口的策略选项卡的 IP 地址字段中更新该值。

HTTP 安全速率限制器

HTTP 安全速率限制器根据 HTTP 安全策略配置对总入站请求数进行速率限制。HTTP 安全策略现在支持使用给定速率限制操作对每个客户端 IP 地址和/或每个 URI 路径进行速率限制。

您可以配置速率限制器以根据不同的参数控制策略计算。速率限制对象与上面提到的其他速率限制器相同:

  • 计数

  • 期限

  • 突发

您可以在 HTTP 策略的操作属性下配置费率配置文件。速率限制器配置如下所示:

  • per_client_ip

  • per_uri_path

相应的操作可能是以下任一操作:

  • 断开连接

  • 发送重置代码

  • 在虚拟服务日志中记录信息

以下是配置 HTTP 安全速率限制器的步骤:

  • 登录到 NSX Advanced Load Balancer CLI,然后使用 configure httppolicyset <policy name> 命令开始配置 HTTP 安全策略以进行速率限制。

[admin]: > configure httppolicyset example_rl_policy [admin]: httppolicyset> http_security_policy [admin]: httppolicyset:http_security_policy> rules index 1
  • 在 HTTP 策略的 action 属性下面配置速率配置文件,如下所示。在下面的示例中,选择了 per_uri_path 以作为速率配置文件,并选择了 10 以作为速率限制器计数。

[admin]: httppolicyset:http_security_policy:rules:action> rate_profile
[admin]: httppolicyset:http_security_policy:rules:action:rate_profile> per_uri_path
[admin]: httppolicyset:http_security_policy:rules:action:rate_profile> rate_limiter
[admin]: httppolicyset:http_security_policy:rules:action:rate_profile:rate_limiter> count 10
Overwriting the previously entered value for count
[admin]: httppolicyset:http_security_policy:rules:action:rate_profile:rate_limiter> save 
  • 根据配置的上述策略,配置在达到速率限制后执行的所需操作。您可以设置以下配置,以将 rl_action_local_rsp 设置为操作类型,并将 http_local_respose_status_code_403 设置为响应代码。

[admin]: httppolicyset:http_security_policy:rules:action:rate_profile> action
[admin]: httppolicyset:http_security_policy:rules:action:rate_profile:action>
[admin]: httppolicyset:http_security_policy:rules:action:rate_profile:action> type rl_action_local_rsp
Overwriting the previously entered value for type
[admin]: httppolicyset:http_security_policy:rules:action:rate_profile:action> status_code http_local_response_status_code_403
Overwriting the previously entered value for status_code
[admin]: httppolicyset:http_security_policy:rules:action:rate_profile:action> save
[admin]: httppolicyset:http_security_policy:rules:action:rate_profile> save
[admin]: httppolicyset:http_security_policy:rules:action> save
[admin]: httppolicyset:http_security_policy:rules> save
[admin]: httppolicyset:http_security_policy> save
[admin]: httppolicyset> save   
  • 最终的配置输出如下所示,如果入站请求超过关联的 HTTP 安全策略和虚拟服务限制(每 10 秒 10 个请求),则显示发送响应代码 403 的操作。

 +-------------------------+--------------------------------------------+
  | Field                  | Value                                                +--------------------------+--------------------------------------------+
  | uuid                   | httppolicyset-91f02717-7dc6-42ff-9b00-1f411d3723df                                                            |
  | name                   | example_rl_policy                          |        
  | http_security_policy   |                                            |        
  |   rules[1]             |                                            |        
  |     name               | rl_rule_1                                  |        
  |     index              | 1                                          |        
  |     enable             | True                                       |        
  |     match              |                                            |        
  |       client_ip        |                                            |        
  |         match_criteria | IS_NOT_IN                                  |        
  |         prefixes[1]    | 192.168.100.0/24                           |        
  |     action             |                                            |        
  |       action           | HTTP_SECURITY_ACTION_RATE_LIMIT            |        
  |       rate_profile     |                                            |        
  |         rate_limiter   |                                            |        
  |           count        | 10                                         |        
  |           period       | 10 sec                                     |        
  |           burst_sz     | 0                                          |        
  |         action         |                                            |        
  |           type         | RL_ACTION_LOCAL_RSP                        |        
  |           status_code  | HTTP_LOCAL_RESPONSE_STATUS_CODE_403        |        
  |         per_client_ip  | True                                       |        
  |         per_uri_path   | True                                       |        
  | is_internal_policy     | False                                      |        
  | tenant_ref             | admin                                      |        
  +------------------------+--------------------------------------------+

DNS 策略速率限制器

DNS 策略速率限制器是基于策略的速率限制器,其中,您可以应用请求的 DNS 属性特定的规则。例如,如果要对 DNS 进行速率限制,则向 freesale.com 发出请求以防止服务器由于请求激增而不堪重负。

以下是执行上述请求的 CLI:

[admin]: > configure dnspolicy dns1-Policy
[admin]: dnspolicy> rule index 1
[admin]: dnspolicy:rule> action 
[admin]: dnspolicy:rule:action> dns_rate_limiter
[admin]: dnspolicy:rule:action:dns_rate_limiter> rate_limiter_object 
[admin]: dnspolicy:rule:action:dns_rate_limiter:rate_limiter_object> count 1000
Overwriting the previously entered value for count
[admin]: dnspolicy:rule:action:dns_rate_limiter:rate_limiter_object> burst_sz 1000
Overwriting the previously entered value for burst_sz
[admin]: dnspolicy:rule:action:dns_rate_limiter:rate_limiter_object> period 1
Overwriting the previously entered value for period
[admin]: dnspolicy:rule:action:dns_rate_limiter:rate_limiter_object> save

您可以在应用程序 > 虚拟服务窗口的策略选项卡上的 DNS 策略选项卡中选中启用框。

有关更多信息,请参阅 DNS 策略