Cato TCPアクティブTCPアクセラレーションとベストプラクティスの説明

一部のTCP接続、とくに長距離の接続では、高いレイテンシーを経験し、ユーザーエクスペリエンスに悪影響を及ぼすことがあります。 Cato NetworksのTCPアクセルレーション機能は、WAN上のTCP接続を加速し、TCPトラフィックのネットワーク効率と速度を向上させます。

この記事は、CatoがTCPアクセルレーションを実装する方法を説明し、TCPトラフィックに基づいた特定のアプリケーションに対してTCPアクセルレーションを最適化するためのベストプラクティスをリストします。

TCPアクセルレーションの説明

Catoは、Cato PoPをクライアントと送信先サーバーの間の中間プロキシサーバーとして指定することでTCPアクセラレーションを実現します。 プロキシは長距離接続を排除し、代わりにそれを3つの短い接続に分割します。 利点は、長距離接続を維持する代わりに、ソケットが最も近いPoPへの短い接続を維持することです。 PoP間のトラフィックは、クラウドの速度と低遅延を保証するCatoクラウドプライベートバックボーンを通じて転送されます。 宛先に最も近いPoPがサーバーにトラフィックを送信します。

パケットロスが発生した場合、PoPがパケットを再送信する責任を負うため、迅速に反応して応答時間を短縮します。 この技術はTCPのパフォーマンスを向上させ、トンネルが切断された場合の復旧時間を短縮します。 各短い接続は、1つの長距離接続と比較してパケットあたりのラウンドトリップ時間(RTT)が短いです。 短い接続はパフォーマンスを向上させ、宛先へのデータのより迅速な配信を保証します。 高いRTTを伴う長距離接続は、パケットが宛先に到達するまでの移動時間が長くなることを意味します。 長い移動時間と遅い接続は悪いユーザーエクスペリエンスを生む可能性があります。

次の図は、クライアントからサーバーへの接続を示しています。ここでPoP AとPoP Bはプロキシサーバーとして機能します:

mceclip0.png

プロキシは、クライアントとサーバー間の長距離接続を3つの短い接続に分割します:

  1. 1番目の接続はソケットからPoP Aへの接続です。

  2. 2番目の接続は、Catoクラウドを介してPoP AからPoP Bへの接続です。

  3. 3番目の接続は、PoP Bから宛先サーバーへの接続です。

各PoPは独自のTCPスタックを維持し、パケットロスが発生した場合に全体のウィンドウTCPパケットの再送信を減らします。 いくつかのシナリオでは、例えば、TLSトラフィックおよびTLSインスペクションが有効であるか、出口ネットワークルールが評価される場合、PoPがクライアントからSYNメッセージを受信すると、サーバーの応答を待たずに速やかにACKレスポンスをクライアントに返します。 その間、ソケットはTCPトラフィックの送信を続け、接続を高速化します。 PoPは次の式に基づいて、より大きなTCPスタックウィンドウサイズを割り当てます:ウィンドウサイズ = RTT * 帯域幅。 たとえば、RTTが200MSで帯域幅が20MBSの接続の場合、TCPウィンドウサイズは4MB(0.2秒*20MB)です。 ただし、他のシナリオでは、PoPはクライアントにACK応答を送信する前にサーバーからの応答を待ちます。

注意: TCPアクセラレーションは、Alternative-WANおよびオフクラウドトランスポートではサポートされていません。

TCPアクセラレーション対TCPプロキシ

PoPの観点からは、前のセクションで説明された動作はTCPプロキシとして認識されます。 TCPアクセラレーションはCato管理アプリケーションで有効または無効にできる機能であり、TCPプロキシはPoPで発生する実際のTCP接続分割メカニズムです。 TCPアクセラレーションが有効な場合、TCPプロキシをトリガーします。 これは、Cato管理アプリケーションでTCPアクセラレーションが無効になっている場合でも、特定のケースではTCPプロキシが発生する可能性があるため、この区別を行っています。

WANトラフィック用のTCPプロキシ

Cato Cloud上のWANトラフィックには、2つのTCPプロキシモードが利用可能です:

  • 完全なWAN TCPプロキシ

  • 元のWAN TCPのネゴシエーションを維持し、TCPプロキシを遅延する

完全なWAN TCPプロキシモードを使用するWANトラフィックの場合、各接続の最初のSYNパケットでTCPプロキシがすぐに開始されます。 このモードでは、アクセラレーション設定に関係なく、トラフィックに対してTCPプロキシを強制します。 このモードが最適でない状況もあります。たとえば、SIPトランクやオフクラウドトラフィックです。

元のWAN TCPのネゴシエーションを維持し、TCPプロキシを遅延するモードでは、TCPプロキシは遅延され、TCPハンドシェイクが完了した後にのみ開始されます。 TCPプロキシは、アクセラレーション設定に関係なく強制されません。 ALT WANトラフィックとオフクラウドフェイルオーバーには、このモードをお勧めします。PoPがトンネルを介して同じTCPシーケンスを維持するからです。 しかし、このモードを使用する場合、ウィンドウスケーリング、MSSなどのTCPセッションパラメータは、TCPプロキシ開始前にすでに設定されており、Cato PoPのTCPパラメータと異なる場合があります。

2023年11月より、完全なWAN TCPプロキシが新規アカウントのデフォルトモードとして設定されます。 この日付以前に作成されたアカウントでは、完全なWAN TCPプロキシモードはデフォルトで無効になっています。

高度な設定ページで、アカウントレベルサイトレベルの両方でWAN TCPプロキシモードを変更できます。

TCPプロキシの強制

次のセクションでは、TCP プロキシが自動的に有効になり、TCP アクセラレーション設定を上書きする状況について説明します。

ネットワーク ルールにおけるイーグレス IP の使用

ネットワーク規則でイーグレスIPまたはロケーションを選択すると、PoPは接続のプロキシサーバーとして機能し、Catoは自動的にTCPプロキシを有効にします。 Cato管理画面では、イーグレスルールのTCPアクセラレーションを無効にすることはできません。 以下のスクリーンショットは、TCP アクセラレーション オプションがグレーアウトされているイーグレス ネットワーク ルール (ネットワーク > ネットワーク ルール > ルールの編集) を示しています。

TCP_Acceleration.png

イーグレスルールについての詳細は、ネットワークルールにおけるトラフィック出力のベストプラクティスをご覧ください。

複雑なネットワークルールの操作

複雑なネットワークルールは、ソケット自体が評価できないネットワークルールです。 したがって、ソケットはトラフィックをPoPに送信して正しいネットワークルールを選択する必要があり、その結果、TCPプロキシが有効になります。 複雑なルールには、アプリケーション、アプリケーション カテゴリ、サービス、カスタム アプリケーション、またはドメイン/FQDN オブジェクトを含めることができます。

Disabling TCP Acceleration in a network rule will not disable TCP proxy when:

  • A complex network rule exists above the network rule with TCP Acceleration disabled

  • The network rule that has TCP Acceleration disabled is itself a complex rule

The example below shows network rule #2 with TCP Acceleration disabled. Because rule #1 is a complex rule containing Applications, traffic matching network rule #2 will have TCP proxy applied to it. In order to disable TCP proxy in this scenario, network rule #2 must be placed above the complex rule (rule #1).

tcp_complex_networkRule.png

PoP接続の切断からの回復

ソケットからPoPへのトンネルが切断された場合、ソケットは同じPoPに再接続しようとします。 ソケットが再接続に成功した場合、PoPがトンネルのステータスを維持しているため、接続は回復します。 ソケットが同じPoPに接続できず、ネットワークルールにTCPアクセラレーションが有効になっている場合、既存の接続のステータスは失われます。 PoPがTCPプロキシサーバーとして機能するため、ソケットがPoPへの接続性を失うと、接続のステータスが失われ、クライアントは新規接続を開始する必要があります。 したがって、一時的な切断を乗り切ることができるアプリケーション(webアプリケーションやファイル共有など)については、TCPプロキシを有効化することをお勧めします。

TCPアクセラレーションのベストプラクティス

このセクションでは、特定のタイプのアプリケーションに対してTCPアクセラレーションを有効にする際のベストプラクティスについて説明します。

WebアプリケーションのためのTCPアクセラレーションの有効化

通常、Webアプリケーションはクライアントが不要で、Webブラウザを使用してサーバーに接続します。 CatoのTCPアクセラレーションエンジンは、このトラフィックのパフォーマンスを大幅に向上させます。 Webアプリケーションを含むネットワークルールに対してTCPアクセラレーションを有効にすることをお勧めします。

ファイル共有アプリケーションのためのTCPアクセラレーションの有効化

SMBなどのファイル共有アプリケーションは、ネットワークレイテンシやパケットロスの場合の再送信に影響を受ける可能性があります。 ネットワーク内のコンピュータ間でファイル共有(例えば、リソース共有のためのSMBプロトコル)を使用する場合、CatoのTCPアクセラレーションはファイル転送速度を大幅に向上させることができます。 これらのアプリケーションのネットワークルールに対してTCPアクセラレーションを有効にすることをお勧めします。

敏感なアプリケーションのためのTCPアクセラレーションの無効化

ネットワーク切断に対して敏感なアプリケーションがあり、切断後に回復が難しい場合があります。 これらのアプリケーションは一般的にクライアント-サーバーアーキテクチャのデスクトップレガシーアプリケーションです。 切断後、クライアントに新しい接続を開始させ、接続のステータスを失います。 例えば、すでに最適化されたプロトコルを使用しているCitrixクライアントの場合、このトラフィックのネットワークルールに対してTCPアクセラレーションを無効にすることをお勧めします。

TCPプロキシとTLSインスペクション

TLSインスペクション機能は、マルウェア対策やIPSなどのセキュリティ機能のためにHTTPSトラフィックを復号します。 この機能は、悪意のあるファイルや脅威のトラフィックを検査するために、PoPをプロキシサーバーとして使用します。 アカウントでTLSインスペクションを有効にすると、CatoはすべてのTLSトラフィックに対してTCPプロキシをアクティブにします。 TLSインスペクションの詳細については、アカウントのTLSインスペクションポリシーの設定を参照してください。

TCPアクセラレーションの有効化または無効化は、TLSインスペクションの有効化とは関係ありません。

Windows OSのTCPアクセラレーションの微調整

このセクションでは、ネットワークルールのTCPアクセラレーションを改善するために、WindowsコンピュータのTCP設定を最適化する方法について説明します。

TCPウィンドウスケーリングオプションの有効化

一部のWindowsオペレーティングシステムは、デフォルトのウィンドウサイズとして64KBを使用するように設定されています。 このウィンドウサイズは制限があり、パフォーマンスの問題とレイテンシーを引き起こす可能性があります。 CatoのPoPは、より効率的なデータ転送のために、デフォルトのウィンドウサイズよりも大きいTCPスタックを割り当てます。 したがって、WindowsコンピュータでTCPウィンドウスケーリングオプションを有効化することを強くお勧めします。

注意: 通常、TCPウィンドウスケーリングオプションはデフォルトで有効になっています。

TCPタイムスタンプオプションの有効化

Windowsオペレーティングシステムのデフォルト設定は、TCPタイムスタンプオプションをサポートしていません。 TCPタイムスタンプオプションを有効化して、パケットのRTT測定を改善し、パケット損失を特定するのに役立ててください。 このオプションは、パケット損失が発生した場合にTCPスタックが再送タイマーを調整するのにも役立ちます。 WindowsコンピュータでTCPタイムスタンプを有効にすることをお勧めします。

この記事は役に立ちましたか?

4人中4人がこの記事が役に立ったと言っています

0件のコメント