トラフィックドメインのレート制限を設定できます。NetScaler表現言語の次の式は、トラフィックドメインに関連するトラフィックを識別します。
特定のトラフィックドメイン、トラフィックドメインのセット、またはすべてのトラフィックドメインに関連するトラフィックのレート制限を設定できます。
NetScalerでIPレート制限を構成する方法について詳しくは、次のビデオを参照してください:
<iframe src="https://www.youtube.com/embed/b0t8OqqRn5I" width="720px" height="480px" frameborder="0" title="YouTube video player" allowfullscreen=""> </iframe>
トラフィックドメインのレート制限を構成するには、構成ユーティリティまたはNetScalerコマンドラインを使用して、NetScalerアプライアンスで次の手順を実行します:
-
client.traffic_domain.id 表現を使用してレート制限の対象となるトラフィックを識別するストリームセレクターを設定します。
-
レート制限するトラフィックの最大しきい値などのパラメータを指定するレート制限識別子を設定します。また、このステップでは、ストリームセレクターをレートリミッターに関連付けます。
-
レート制限識別子を使用するポリシーに関連付けるアクションを設定します。
-
sys.check_limit 表現プレフィックスを使用してレート制限識別子を呼び出すポリシーを設定し、アクションをこのポリシーに関連付けます。
-
ポリシーをグローバルにバインドします。
NetScaler NS1にIDが10と20の2つのトラフィックドメインが構成されている例を考えてみましょう。トラフィックドメイン 10 では、LB1-TD-1 はサーバー S1 と S2 の負荷分散を行うように設定され、LB2-TD1 はサーバー S3 と S4 の負荷分散を行うように設定されています。
トラフィックドメイン 20 では、LB1-TD-2 はサーバ S5 と S6 のロードバランシングを行うように設定され、LB2-TD2 はサーバ S7 と S8 のロードバランシングを行うように設定されています。
次の表は、設定例に含まれるトラフィックドメインのレート制限ポリシーの例を示しています。
| 目的 |
CLI コマンド |
| 各トラフィックドメインのリクエスト数を 1 秒あたり 10 回に制限します。 |
add stream selector tdratelimit-1 CLIENT.TRAFFIC_DOMAIN.ID add ns limitIdentifier limitidf-1 -threshold 10 -selectorName tdratelimit-1 -trapsInTimeSlice 0 add responder policy ratelimit-pol "sys.check_limit(\"limitidf-1\")" DROP bind responder global ratelimit-pol 1 |
| 各トラフィックドメインのリクエスト数は、クライアントあたり 1 秒あたり 5 回に制限します。 |
add stream selector tdandclientip CLIENT.IP.SRC,CLIENT.TRAFFIC_DOMAIN.ID add ns limitIdentifier td_limitidf -threshold 5 -selectorName tdandclientip -trapsInTimeSlice 5 add responder policy tdratelimit-pol "sys.check_limit(\"td_limitidf\")" DROP bind responder global tdratelimit-pol 2 |
| 特定のトラフィックドメイン(たとえば、トラフィックドメイン 10)に送信されるリクエストの数を 3 秒ごとに 30 リクエストに制限します。 |
add stream selector tdratelimit CLIENT.TRAFFIC_DOMAIN.ID add ns limitIdentifier td10_limitidf -threshold 30 -timeSlice 3000 -selectorName tdratelimit -trapsInTimeSlice 5 add responder policy td10ratelimit "client.traffic_domain.id==10 && sys.check_limit(\"td10_limitidf\")" DROP bind responder global td10ratelimit 3 |
| 特定のトラフィックドメイン(たとえば、トラフィックドメイン 20)の接続数は、クライアントあたり 1 秒あたり 5 つに制限します。 |
add stream selector tdandclientip CLIENT.IP.SRC CLIENT.TRAFFIC_DOMAIN.ID add ns limitIdentifier td20_limitidf -threshold 5 -mode CONNECTION -selectorName tdandclientip -trapsInTimeSlice 5 add responder policy td20_ratelimit "client.traffic_domain.id==20 && sys.check_limit(\"td20_limitidf\")" DROP bind responder global td20_ratelimit 4 |