静的レート リミッタは、仮想サービスの接続/要求の数を合計でレート制限するために使用されます。たとえば、仮想サービスのレート制限が 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 のユーザーを 1 秒あたり 1,000 個の接続でレート制限するとします。上記の要求を実行する 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 ポリシーのアクション属性でレート プロファイルを構成します。次の例では、レート プロファイルとして 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 ポリシー」を参照してください。