よくある質問
タイムアウト
重要
nsapimgr ノブを使用する前に 、Citrix カスタマーサポートに相談してください。
NetScaler T1仮想サーバーとサービスに設定できるさまざまなアイドル接続タイムアウトの一覧を以下に示します。仮想サーバーまたはサービスレベルでクライアントまたはサーバー接続に設定されたアイドルタイムアウトは、TCP ESTABISHLED 状態でアイドル状態の接続にのみ適用されます。
- 負荷分散仮想サーバーのCLTTimeoutパラメータは、アプライアンスが接続を閉じる前にクライアントから負荷分散仮想サーバーへの接続がアイドル状態でなければならない時間を秒単位で指定します。
- Service SvrTimeout パラメータは、アプライアンスからサービスまたはサーバーへの接続がアイドル状態でなければならない時間を秒単位で指定します。この時間を超えると、アプライアンスは接続を閉じます。
- Service cltTimeout パラメータは、クライアントからサービスへの接続がアイドル状態でなければならない時間を秒単位で指定します。この時間を超えると、アプライアンスは接続を閉じます。
サービスが負荷分散仮想サーバーにバインドされている場合、負荷分散仮想サーバーの cltTimeout が優先され、サービスのサービス cltTimeout は無視されます。
負荷分散仮想サーバーにサービスがバインドされていない場合、サーバー側の接続にはグローバルアイドルタイムアウト、つまり TCPServer が使用されます。次のように構成できます。
コマンド:
set ns timeout –tcpServer 9000
<!--NeedCopy-->
他の状態の接続では、タイムアウト値が異なります。
- ハーフオープン接続のアイドルタイムアウト:120 秒 (ハードコード値)
- TIME_WAIT 接続のアイドルタイムアウト:40 秒 (ハードコードされた値)
- ハーフクローズ接続のアイドルタイムアウト。デフォルトは10秒で、スニペットを使用して1秒から600秒の間で設定できます
コマンド:
set ns timeout –halfclose 10
<!--NeedCopy-->
ハーフクローズタイムアウトがトリガーされると、接続はゾンビ状態に移行します。ゾンビタイムアウトの期限が切れると、ゾンビクリーンアップが開始され、T1 はデフォルトで特定の接続に対してクライアント側とサーバ側の両方で RST を送信します。
- ゾンビタイムアウト:非アクティブな TCP 接続をクリーンアップするためにゾンビクリーンアッププロセスを実行する必要がある間隔。デフォルトのタイムアウト値は120秒で、1秒から600秒の間で設定できます。
コマンド:
set ns timeout –zombie 120
<!--NeedCopy-->
最大セグメントサイズ表
NetScaler T1アプライアンスは、システムメモリスタックでハーフオープン接続を維持する代わりに、SYNクッキーを使用してSYNフラッド攻撃を防御します。アプライアンスは TCP 接続を要求する各クライアントに Cookie を送信しますが、ハーフオープン接続の状態は維持されません。代わりに、アプライアンスは、最後の ACK パケットを受信したときだけ、または HTTP トラフィックの場合は HTTP 要求を受信したときにのみ接続にシステムメモリを割り当てます。これにより、SYN 攻撃が防止され、正規のクライアントとの通常の TCP 通信が中断されることなく継続できます。特定の機能はデフォルトで有効になっており、無効にするオプションはありません。
ただし、標準の SYN Cookie では接続の最大セグメントサイズ (MSS) 値を 8 つしか使用できないため、注意が必要です。接続MMSがあらかじめ定義されている値と一致しない場合、クライアント側とサーバー側の両方で、次に利用可能な低い値を選択します。
あらかじめ定義されている TCP 最大セグメントサイズ (MSS) 値は次のとおりです。これらは新しい nsapimgr ノブで設定できます。
1460 | 1440 | 1330 | 1220 | 956 | 536 | 384 | 128 |
新しい MSS テーブル:
- ジャンボフレームサポートを含める必要はありません。デフォルトでは、MSS テーブルにはジャンボフレーム用に 8 つの値が予約されていますが、テーブル設定を変更して標準のイーサネットサイズのフレームのみを含めることができます。
- 16 個の値が必要です
- 値は降順でなければなりません
- 最後の値として 128 を含める必要があります
新しい MSS テーブルが有効な場合、テーブルが保存され、SYN-Cookie のローテーション時に古い値が切り替わります。そうしないと、新しいテーブルはエラーを返します。変更は新しい接続に適用されますが、既存の接続では、接続が期限切れになるか終了するまで古い MSS テーブルが保持されます。
NetScalerアプライアンスの現在のMSSテーブルを表示するには、次のコマンドを入力します。
コマンド:
>shell
#nsapimgr -d mss_table
例:
#nsapimgr -d mss_table
MSS table
{9176,9156,8192,7168,6144,4196,3072,2048,1460,1440,1330,1212,956,536,384,128}
Done.
mss テーブルを変更するには、次のコマンドを入力します。
コマンド:
>shell
#nsapimgr -s mss_table=<16 comma seperated values>
例:
#nsapimgr -ys mss_table=9176,9156,8192,7168,6144,4196,3072,2048,1460,1400,1330,1212,956,536,384,128
# nsapimgr -d mss_table
MSS table
{9176,9156,8192,7168,6144,4196,3072,2048,1460,1400,1330,1212,956,536,384,128}
Done.
標準イーサネットサイズの値を使用する例を 次に示します。
例:
#nsapimgr -ys mss_table=1460,1440,1420,1400,1380,1360,1340,1320,1300,1280,1260,1212,956,536,384,128
# nsapimgr -d mss_table
MSS table
{1460,1440,1420,1400,1380,1360,1340,1320,1300,1280,1260,1212,956,536,384,128}
Done.
NetScaler ADCアプライアンスの再起動後もこの変更を永続的にするには、「/nsconfig/rc.netscaler」ファイルにコマンド#nsapimgr -ys mss_table=<16 comma seperated values>
を含めます。「rc.netscaler」ファイルが存在しない場合は、「/nsconfig」フォルダーの下に作成し、コマンドを追加します。
メモリ過負荷保護
NetScaler Packet Processing Engine(PPE)は、そのPPEが使用しているメモリが指定された上限値を超えると、TCP最適化から接続をバイパスし始めます。 PPE のメモリ使用率が 2.6 GB を超えると、最適化による新しい接続のバイパスが開始されます。 既存の接続 (以前に最適化が認められた接続) は引き続き最適化されます。このウォーターマーク値は意図的に選択されたものであり、チューニングにはお勧めしません。
注
ウォーターマーク値を変更する正当な理由があると思われる場合は、カスタマーサポートに連絡してください。
Happy Eyeballs クライアントへのサポート
NetScalerアプライアンスが状態が不明な宛先のSYNを受信した場合、アプライアンスはまずサーバーの到達可能性をチェックし、次にクライアントを認識します。このプロービングメカニズムにより、デュアルIPスタックを持つクライアントは、デュアルスタックのインターネットサーバーの到達可能性を検出できます。クライアントは、IPv6とIPv4の両方のアクセスが可能であることを検出すると、より迅速に応答するサーバーへの接続を確立し、もう一方をリセットします。NetScalerアプライアンスの接続がリセットされると、対応するサーバー側の接続がリセットされます。
注:この機能には、NetScalerアプライアンスで無効化/有効化できるユーザー構成可能なTCP設定はありません。
Happy Eyeballsのサポートについて詳しくは、RFC 6555 を参照してください。