Citrix ADC

パケットレベルでレート制限を設定する

ストリームセレクタとレスポンダポリシーを設定して、セレクタによって識別されるすべての接続を通過するパケットレベルで統計情報を収集できます。1 秒あたりのパケット数が設定されたしきい値を超えると、ポリシーによって設定されたアクション(RESET または DROP)が適用されます。これらのポリシーは、すべてのタイプの仮想サーバに対して構成できます。すべてのサイズのパケットが考慮されます。

パケットレベルでレート制限を設定するには、次の作業を実行します

  1. 負荷分散を有効にする
  2. ストリームセレクタの追加
  3. ストリーム識別子の追加
  4. レスポンダーポリシーの追加
  5. 負荷分散仮想サーバの追加
  6. レスポンダーポリシーのバインド

負荷分散機能を有効にするには

コマンドプロンプトで、次のように入力します。

enable ns feature lb

ストリームセレクタを追加するには

コマンドプロンプトで、次のように入力します。

add stream selector packetlimitselector client.ip.src client.tcp.srcport client.ip.dst client.tcp.dstport

ストリーム識別子を追加するには

コマンドプロンプトで、次のように入力します。

add stream identifier packetlimitidentifier packetlimitselector -interval 1

ACK のみのパケットのトラッキングを有効にするには

コマンドプロンプトで、次のように入力します。

set stream identifier packetlimitidentifier –trackAckOnlyPackets ENABLED

レスポンダーポリシーを追加するには

コマンドプロンプトで、次のように入力します。

add responder policy packet_rate_sessionpolicy "ANALYTICS.STREAM("packetlimitidentifier").COLLECT_STATS("PACKET_LIMIT", <max_threshold_PPS>, ACTION, 0/1)" NOOP

各項目の意味は次のとおりです。

  • <max_threshold_PPS>は、1 秒あたりの接続で許可される最大パケット数です。
  • アクションは、ドロップまたはリセットすることができます。
  • 0 または 1 は制限タイプを表します。0 は BURSTY 制限タイプを表し、1 は SMOOTH 制限タイプを表します。

例:

add responder policy packet_rate_sessionpolicy "ANALYTICS.STREAM("packetlimitidentifier").COLLECT_STATS("PACKET_LIMIT", 40, RESET, 0)" NOOP

負荷分散仮想サーバーを追加するには

コマンドプロンプトで、次のように入力します。

add lb vserver <name> <serviceType> <ip> <port>

add lb vserver Vserver-lb-1 HTTP 10.102.20.200 80

レスポンダーポリシーをバインドするには

セレクタとレスポンダポリシーの設定後、ポリシーをグローバルにバインドすることも、特定の仮想サーバにバインドすることもできます。

コマンドプロンプトで、次のコマンドのいずれかを入力します。

bind responder global <policyName> <priority> [<gotoPriorityExpression>] [-type <type>] [-invoke  (<labelType>  <labelName>) ]

または

bind lb vserver <name>@  (-policyName <string>@ [-priority <positive_integer>]

例:

bind responder global packet_rate_sessionpolicy 101 END -type REQ_DEFAULT

bind responder global packet_rate_sessionpolicy 102 END -type

bind lb vserver v1 -policyname packet_rate_sessionpolicy -priority 10

パケットレベルでレート制限を設定する