Citrix ADC

TCP最適化構成

TCP最適化を構成する前に,Citrix ADCアプライアンスで次の基本構成設定を適用します。

初期設定:

启用ns特性磅IPv6PT启用ns模式FR L3切实MBF边缘USNIP PMTUD禁用ns特性SP禁用ns模式TCPB磅参数设置-preferDirectRoute没有磅参数设置-vServerSpecificMac启用设置l4param -l2ConnMethod Vlan设定rsskeytype -rsstype对称设置ns param -useproxyport禁用< !——NeedCopy >

rsskeytypeシステムパラメーターを変更する場合は,Citrix ADCアプライアンスを再起動します。

TCP終端処理

Citrix ADC T1がTCP最適化を適用するには,まず着信TCPトラフィックを終了する必要があります。この目的のために,ワイルドカードTCP vserverを作成し,入力トラフィックを代行受信し,それをインターネットルータに転送するように設定する必要があります。

スタティックまたはダイナミックルーティング環境

静的または動的ルーティングが設定されている環境では,vserverはルーティングテーブル情報を使用してパケットをインターネットルータに転送できます。デフォルトルートはインターネットルーターを指し,ワイヤレスルーターへのクライアントサブネットのルーティングエントリも配置する必要があります。

例:

添加lb vserver vsrv-wireless TCP * * -persistenceType NONE -Listenpolicy "CLIENT.VLAN.ID.EQ(100) && SYS.VSERVER("vsrv-wireless").STATE.EQ(UP)"-m IP -cltTimeout 9000 add route 0.0.0.0 0.0.0.0 192.168.2.1 add route 10.0.0.0 255.0.0.0 192.168.1.1 

VLAN間(PBR)環境

加入者のトラフィックが複数のフローにセグメント化され,着信トラフィックパラメータに基づいて異なるルータに転送する必要があるお客様の環境があります。ポリシーベースルーティング(PBR)を使用すると,VLAN, MACアドレス,インターフェイス,送信元IP,送信元ポート,宛先IPアドレス,宛先ポートなどの着信パケットパラメータに基づいてパケットをルーティングできます。

ローカライズされた画的像

例:

加磅vserver vsrv-wireless TCP * * - m IP -l2Conn -listenpolicy”CLIENT.VLAN.ID.EQ (100) | | CLIENT.VLAN.ID.EQ (101) | | CLIENT.VLAN.ID.EQ(102)“添加ns pbr pbr-vlan100-to-vlan200允许vlan 100 -nexthop 172.16.200.1添加ns pbr pbr-vlan101-to-vlan201允许vlan 101 -nexthop 172.16.201.1添加ns pbr pbr-vlan102-to-vlan202允许vlan 102 -nexthop172.16.202.1 < !——NeedCopy >

ポリシーベースルーティングを使用してTCP最適化トラフィックをルーティングすることは,リリース11.1 - 50.10で追加された新機能です。以前のリリースでは,VLANごとに複数の”モードMAC”仮想サーバエンティティを持つことは,マルチVLAN環境の代替ソリューションです。各vserverには,特定のフローのインターネットルーターを表すバインドされたサービスがあります。

例:

添加服务器internet_router_1 172.16.200.1添加服务器internet_router_2 172.16.201.1添加服务器internet_router_3 172.16.202.1添加服务svc-internet-1 internet_router_1 TCP *切实是的-useproxyport不添加服务svc-internet-2 internet_router_2 TCP *切实是的-useproxyport不添加服务svc-internet-3 internet_router_3 TCP *切实是的-useproxyport NO bind service svc-internet-1 -monitorName arp bind service svc-internet-2 -monitorName arp bind service svc-internet-3 -monitorName arp add lb vserver vsrv-wireless-1 TCP * * -Listenpolicy "CLIENT.VLAN.ID.EQ(100) && SYS.VSERVER("vsrv-wireless-1").STATE.EQ(UP)"-m MAC -l2Conn ON add lb vserver vsrv-wireless-2 TCP * * -Listenpolicy "CLIENT.VLAN.ID.EQ(101) && SYS.VSERVER("vsrv-wireless-2").STATE.EQ(UP)"-m MAC -l2Conn ON add lb vserver vsrv-wireless-3 TCP * * -Listenpolicy "CLIENT.VLAN.ID.EQ(102) && SYS.VSERVER("vsrv-wireless-3").STATE.EQ(UP)"-m MAC -l2Conn ON绑定lb vserver vsrv-wireless-1 svc-internet-1绑定lb vserver vsrv-wireless-2 svc-internet-2绑定lb vserver vsrv-wireless-3 svc-internet-3 

注:

vserverモードはMACであり,以前の例とは対照的に,モードIPです。これは,vserverにバインドされたサービス(複数可)を持っているときに宛先IP情報を保持するために必要です。また,追加のPBR設定では,最適化されていないトラフィックをルーティングする必要があります。

TCPの最適化

すぐに使用できるCitrix ADC TCP終端は,TCPパススルー機能用に構成されています。TCPパススルーとは,本質的に,Citrix ADC T1がクライアント/サーバーTCPストリームを透過的に傍受することがありますが,クライアント/サーバーバッファーを個別に保持したり,最適化手法を適用したりしないことを意味します。

TCP最適化を有効にするには,nstcpprofileという名前のTCPプロファイルを使用して,TCP構成を指定します。TCP構成は,サービスレベルまたは仮想サーバーレベルで提供されていない場合に使用され,次のように変更する必要があります。

コマンド:

add ns tcpProfile nstcpprofile -WS ENABLED -SACK ENABLED -WSVal 8 -mss 1460 -maxBurst 30 -initialCwnd 16 -oooQSize 15000 -minRTO 800 -bufferSize 4000000 -flavor BIC -dynamicReceiveBuffering ENABLED -KA ENABLED -sendBuffsize 4000000 - rstwindowattenue ENABLED -spoofSynDrop ENABLED -ecn ENABLED -frto ENABLED -maxcwnd 1000000 -fack ENABLED -rstMaxAckenABLED -tcpmode ENDPOINT 

注:

明示的に作成され,vserverおよび服务にバインドされたプロファイルが存在しない場合,プロファイルのnstcp_default_profileはデフォルトでバインドされます。

複数のTCPプロファイル要件がある場合は,追加のTCPプロファイルを作成し,適切な仮想サーバに関連付けることができます。

コマンド:

add ns tcpProfile custom_profile -WS ENABLED -SACK ENABLED -WSVal 8 -mss 1460 -maxBurst 30 -initialCwnd 16 -oooQSize 15000 -minRTO 800 -bufferSize 4000000 -flavor BIC -dynamicReceiveBuffering ENABLED -KA ENABLED -sendBuffsize 4000000 - rstwindowattenue ENABLED -spoofSynDrop ENABLED -ecn ENABLED -frto ENABLED -maxcwnd 1000000 -fack ENABLED-rstMaxAck enABLED -tcpmode ENDPOINT set lb vserver vsrv-wireless -tcpProfileName custom_profile 

注:

vserver-m MACおよび服务を使用するデプロイメントでは,同じプロファイルをサービスに関連付ける必要があります。

set service svc-internet -tcpProfileName custom_profile 

TCP最適化機能

Citrix ADCアプライアンスの関連するTCP最適化機能のほとんどは,対応するTCPプロファイルを介して公開されます。TCPプロファイルの作成時に考慮すべき典型的なCLIパラメータは次のとおりです。

  1. ウィンドウスケーリング(WS): TCPウィンドウスケーリングにより,TCP受信ウィンドウサイズを65535バイト以上に増やすことができます。これは,全体的に,特に高帯域幅と長い遅延ネットワークでTCPのパフォーマンスを向上させるのに役立ちます。これは,遅延を低減し,TCP上の応答時間を向上させるのに役立ちます。
  2. 選択的確認応答(袋): TCPは袋,全体的なスループット容量を低減する複数のパケット損失の問題に対処します。選択的確認応答で受信機は,唯一の失われたセグメントを再送信する送信者を可能にする,正常に受信されたすべてのセグメントについて送信者に通知することができます。この手法はT1が全体的なスループットを改善し,接続待ち時間を短縮するのに役立ちます。
  3. ウィンドウスケール係数(WSVal):新しいウィンドウサイズの計算に使用される係数。NSによってアドバタイズされたウィンドウがバッファサイズと少なくとも等しくなるようにするには,この値を大きく設定する必要があります。
  4. 最大セグメントサイズ(MSS):単一のTCPセグメントの海量存储系统(MSS)中。この値は,中間ルータおよびエンドクライアントのMTU設定によって異なります。値1460は,1500のMTUに対応します。
  5. maxBurst:バーストで許可されるTCPセグメントの最大的数。
  6. 初期輻輳ウィンドウサイズ(initialCwnd): TCP初期輻輳ウィンドウサイズは,トランザクションの開始時に未処理のバイト数を決定します。これにより、T1はワイヤ上の輻輳を気にすることなく,これらの多くのバイトを送信できます。
  7. 最大已坏パケットキューサイズ(oooQSize): TCPは,TCP通信でOOパケットを維持するために,アウトオブオーダーキューを維持します。この設定は,パケットをランタイムメモリに保持する必要がある限り,キューサイズが長い場合,システムメモリに影響します。したがって,これは,ネットワークおよびアプリケーションの特性の種類に基づいて最適化されたレベルに保つ必要があります。
  8. 最小RTO (minRTO): TCP再送信タイムアウトは,内部実装ロジックに基づいて,受信したACKごとに計算されます。デフォルトの再送信タイムアウトは1秒で開始され,この設定で調整できます。これらのパケットの2回目の再送信の場合,RTOはN * 2によって計算され,次にN * 4…N * 8…は,最後の再送信試行まで続きます。
  9. buffersize / sendBuffSize:これらはT1がサーバーから受信できるデータの最大量を参照し,クライアントに送信せずに内部的にバッファします。これらは,基礎となる伝送チャネルの帯域幅遅延積(带宽延迟产品)よりも大きい(少なくとも2倍)値に設定する必要があります。
  10. フレーバー:これはTCP輻輳制御アルゴリズムを指します。有効な値は,デフォルト,BIC,立方,韦斯特伍德,尼罗河です。
  11. 動的受信バッファリング:受信バッファは,メモリとネットワークの条件に基づいて動的に調整することができます。後者はTCPプロファイルで指定され,通常は2 * BDPなどの基準に基づいて接続のために,サーバーから先読んで,固定サイズのバッファをいっぱいにするのではなく,クライアントのダウンロードパイプをいっぱいに保つために必要なだけバッファをいっぱいにします。Citrix ADC T1は,クライアントのネットワーク状態を監視し,サーバーから先読みする量を見積もります。
  12. 点火电极(KA):定期的なTCPキープアライブ(KA)プローブを送信して,ピアがまだアップしているかどうかを確認します。
  13. rstWindowAttenuate:なりすまし攻撃からTCPを防御します。シーケンス番号が無効な場合,修正ACKで応答します。
  14. rstMaxAck:ウィンドウ外にあるRSTの受け入れを有効または無効にします。最大のACKシーケンス番号がエコーされます。
  15. spoofSynDrop:スプーフィングから保護するために,無効なSYNパケットをドロップします。
  16. 明示的な輻輳通知(ecn):これは,データの送信者にネットワークの輻輳状態の通知を送信し,データの輻輳やデータ破損のための是正措置を取ります。
  17. フォワードRTO-Recovery:スプリアス再送信の場合,輻輳制御の設定は元の状態に戻ります。
  18. TCP最大輻輳ウィンドウ(maxcwnd):ユーザが設定可能なTCP最大輻輳ウィンドウサイズ。
  19. 向前ACK(讲真话;転送確認応答):ネットワークで未処理のデータバイトの合計数を明示的に測定し,送信者(T1またはクライアント)が再送信タイムアウト時にネットワークに注入されるデータ量を制御できるようにすることで,TCP輻輳を回避します。
  20. tcpmode:特定のプロファイルのTCP最適化モード。透過とエンドポイント2つのTCP最適化モードがあります。
  • [エンドポイント]このモードでは,アプライアンスはクライアントとサーバーの接続を別々に管理します。
  • 透明。透過モードでは,クライアントは仮想サーバを介在させることなく,サーバに直接アクセスする必要があります。クライアントはサーバーにアクセスできる必要があるので,サーバーIPアドレスはパブリックにする必要があります。次の図に示す例では,NetScalerアプライアンスがクライアントとサーバーの間に配置されています。そのため,トラフィックはアプライアンスを経由する必要があります。

アイドル状態の接続をサイレントにドロップする

電話会社ネットワークでは,Citrix ADCアプライアンスのTCP接続のほぼ50%がアイドル状態になり,アプライアンスはRSTパケットを送信してそれらを閉じます。無線チャネルを介して送信されたパケットは,これらのチャネルを不必要にアクティブ化し,メッセージが大量に発生し,その結果,アプライアンスがサービス拒否メッセージを大量に生成します。既定のTCPプロファイルには,ドロップの半分閉じられた接続タイムアウトとDropEstConnOnTimeoutパラメーターが含まれるようになりました。これらのパラメーターはデフォルトで無効になっています。両方を有効にした場合,ハーフクローズ接続でも確立された接続でも,接続がタイムアウトしたときにRSTパケットがクライアントに送信されることはありません。アプライアンスは接続を切断するだけです。

set ns tcpProfile nstcpprofile - drophalfcloseconnontimeout ENABLED 
TCP最適化構成