IP : トランスミッション コントロール プロトコル(TCP)

MPTCP および製品サポートの概要

2016 年 10 月 28 日 - 機械翻訳について
その他のバージョン: PDFpdf | 英語版 (2015 年 8 月 22 日) | フィードバック

概要

このドキュメントは、マルチパス TCP(MPTCP)の概要、フロー検査への影響、および影響されるシスコ製品と影響されないシスコ製品について説明します。

著者:Jay Young および Daniel Wing、Cisco TAC エンジニア

MPTCP の概要

背景説明

インターネットに接続されたホストまたはデータセンター環境内のホストは通常、複数パスによって接続されます。 ただし、TCP をデータ転送に使用している場合、通信は単一のネットワークに制限されます。 代替パスが十分に利用されない場合、2 台のホスト間で複数のパスが輻輳することが可能です。 これらの複数のパスが同時に使用されることで、ネットワーク リソースを効率的に使用することができます。 また、複数の接続を使用することにより、ネットワーク障害に対するより高いスループットと改善された復元力が可能になるため、ユーザ エクスペリエンスが向上します。

MPTCP は、単一のデータ フローが複数の接続に分割され実行できるようにする、通常の TCP の一連の拡張です。 詳細については、RFC6824: TCP Extensions for Multipath Operation with Multiple Addresses を参照してください。

次の図に示すように、MPTCP は送信側のノードで 9 mbps のフローを 3 種類のサブフローに分割することができます。これは受信側のノードで元のデータ フローに集約されます。

MPTCP 接続に参加するデータは、通常の TCP 接続を介した参加と同様に正しく機能します。つまり、 送信データは保証され、順番に配信されます。 MPTCP は、ネットワークのスタックを調整し、トランスポート層で動作するため、アプリケーションによって透過的に使用されます。

セッションの確立

MPTCP は、複数のサブ フローでのデータの分離と再構成をネゴシエートし、オーケストレーションするには、TCP オプションを使用します。 TCP オプション 30 は、MPTCP による包括的な使用のために Internet Assigned Numbers Authority(IANA)によって予約されています。 詳細については、Transmission Control Protocol (TCP) Parameters を参照してください。 通常の TCP セッションの確立では、MP_CAPABLE オプションは最初の同期(SYN)パケットに含まれます。 応答側が MPTCP のネゴシエーションをサポートしていてこれを選択する場合は、SYN 許可(ACK)パケットの MP_CAPABLE オプションで応答します。 このハンドシェイク内で交換されるキーは、将来この MPTCP フローへの他の TCP セッションの参加および削除を認証するために使用されます。

追加のサブフローの参加

必要であると思われる場合、Host-AHost-B への別のインターフェイスまたはアドレスからの追加のサブフローを開始する場合があります。 最初のサブフローと同様に、このサブフローをもう一方のサブフローにマージすることを指定するには、TCP オプションが使用されます。 最初のサブフローの確立で(ハッシュ アルゴリズムとともに)交換するキーは、追加の要求が本当に Host-A によって送信されていることを確認するために Host-B によって使用されます。 2 番目のサブフローの 4 タプル(送信元 IP、宛先 IP、送信元ポート、宛先ポート)は最初のサブフローのものとは異なります。 このフローはネットワークを介して異なるパスを実行する可能性があります。

アドレスの追加

Host-A に複数のインターフェイスがあり、Host-B に複数のネットワーク接続が存在する場合があります。 Host-B は、B1 に着信する各アドレスからの Host-A が起源のサブフローの結果として、アドレス A1 と A2 について暗黙的に学習します。 Host-B が追加アドレス(B2)を Host-A にアドバタイズして、他のサブフローが B2 に到達できるようにすることが可能です。 これは TCP オプション 30 で実行します。 次の図に示すように、Host-BHost-A にセカンダリ アドレス(B2)をアドバタイズし、追加で 2 個のサブフローが作成されます。 MPTCP がオープン システム相互接続(OSI)スタックのネットワーク層で動作するため、アドバタイズされる IP アドレスは、IPv4、IPv6、またはその両方の場合があります。 一部のサブフローは、他のサブフローが IPv6 によって伝送されると、IPv4 で同時に伝送されることが可能です。

セグメンテーション、マルチパス、および再構成

アプリケーションが MPTCP に付与したデータ ストリームは、送信側が複数のサブフローにセグメント化して配信する必要があります。 その後、このデータ ストリームをアプリケーションに再配信する前に、1 つのデータ ストリームに再構成する必要があります。

MPTCP は、各サブフローのパフォーマンスと遅延を調べ、最も高い総スループットを取得するにはダイナミックにデータの配信を調整します。 データ転送時に、TCP ヘッダー オプションは、MPTCP のシーケンス番号と確認応答番号、現在のサブフロー シーケンス番号と確認応答番号、およびチェックサムに関する情報を含めます。

フロー検査の影響

多くのセキュリティ デバイスはゼロ設定されるか、不明な TCP ヘッダーを No Option(NOOP)値に置き換えることがあります。 ネットワーク デバイスが最初のサブフローで TCP SYN パケットにこれを実行すると、MP_CAPABLE アドバタイズメントは破棄されます。 この結果、サーバはクライアントが MPTCP をサポートしていないと判断し、通常の TCP 動作に戻ります。

ヘッダーが維持され、MPTCP で複数のサブフローを確立できる場合は、ネットワーク デバイスによるインライン パケット分析が正常に動作しない可能性があります。 これはデータ フローの一部だけが各サブフローに引き継がれるためです。 MPTCP へのプロトコル インスペクションの影響は、何もない場合もあればサービスが完全に中断される場合もあります。 影響は検査するデータの内容と程度によって変わってきます。 パケット分析には、ファイアウォール アプリケーション層のゲートウェイ(ALG またはフィックスアップ)、ネットワーク アドレス変換(NAT)ALG、Application Visibility and Control(AVC)、または Network Based Application Recognition(NBAR)が含まれる場合があります。 アプリケーション インスペクションが環境に必要な場合、TCP オプション 30 の削除をイネーブルにすることを推奨します。

暗号化が原因でフローが検査されない場合、あるいはプロトコルが不明な場合は、インライン装置の MPTCP フローへの影響はありません。

MPTCP の影響を受けるシスコ製品

次の製品は MPTCP による影響を受けます:

  • Adaptive Security Appliance(ASA)[AdaptiveSecurityApplianceASA]
  • Cisco ASA Next-Generation Firewall Services
  • 侵入防御システム(IPS)
  • Cisco IOS®
  • Application Control Engine(ACE)
  • クラウド Web セキュリティ(ScanSafe)

各製品は、このドキュメントの後の項で詳細に説明します。

ASA

TCP の動作

デフォルトでは、Cisco ASA ファイアウォールは、MPTCP オプション 30 などのサポートされていない TCP オプションを NOOP オプション(オプション 1)と置き換えます。 MPTCP オプションを許可するには、次の設定を使用します:

  1. デバイスから TCP オプション 30(MPTCP で使用)を許可するポリシーを定義します:
    tcp-map my-mptcp
       tcp-options range 30 30 allow
  2. トラフィックの選択を定義します:
    class-map my-tcpnorm
       match any
  3. トラフィックからアクションへのマップを定義します:
    policy-map my-policy-map
       class my-tcpnorm
           set connection advanced-options my-mptcp
  4. ボックスまたはインターフェイスごとにこれをアクティブ化します:
    service-policy my-policy-map global

プロトコル インスペクション

ASA は多くのプロトコルのインスペクションをサポートしています。 インスペクション エンジンのアプリケーションへの影響は異なります。 インスペクションが必要な場合、上記の TCP マップを適用しないことを推奨します。

Cisco ASA Next-Generation Firewall Services

TCP の動作

MPTCP オプションを許可するように ASA を設定すると、CX バージョン 9.1.2.42 以降で MPTCP オプションが可能になります。 バージョン 9.1.2.42 より前の CX ソフトウェア バージョンでは MPTCP オプションが削除されます。

インライン セキュア ソケット レイヤ(SSL)の復号化

CX は、SSL の復号化用に設定されている場合は、フルセッション プロキシとして機能します。 したがって、クライアントと通信する際は SSL サーバとして機能し、SSL サーバと通信する際はクライアントとして機能します。 CX は 2 個の TCP 接続を終了するので、MPTCP を使用せず、動作は通常の TCP の動作に戻ります。

IPS

Cisco IPS 製品は、TCP オプション 30 が TCP SYN と表示されている場合、シグニチャ 1306/0 で警告を出します。 このシグニチャはノーマライザ クラスに属しているため、無差別モードでは何も行いません。 トリガー条件からオプション 30 を削除するためにシグニチャを編集することは可能です。 これにより、このシグニチャは一致できません。

Cisco IOS ファイアウォール

コンテキストベース アクセス コントロール(CBAC)

CBAC は、TCP ストリームから TCP ヘッダーを削除しません。 MPTCP は、ファイアウォールを経由して接続を作成します。

ゾーンベース ファイアウォール(ZBFW)

ZBFW は、TCP ストリームから TCP ヘッダーを削除しません。 MPTCP は、ファイアウォールを経由して接続を作成します。

ACE

デフォルトでは、ACE デバイスは TCP 接続から TCP オプションを排除します。 MPTCP 接続は、通常の TCP 動作にフォールバックします。

セキュリティ ガイド vA5(1.0) Cisco ACE アプリケーション コントロール エンジンのセクション ACE で TCP オプションを処理する方法の設定に記載されているように、ACE デバイスは tcp-options コマンドにより TCP オプションを許可するように設定されている可能性があります。 ただし、2 番目のサブフローが異なる実サーバに分散されて、接続が失敗する場合があるので、これが常に推奨されるわけではありません。

クラウド Web セキュリティ(ScanSafe)

クラウド Web セキュリティは、レイヤ 7 のプロキシとして機能します。 Web セキュリティ アプライアンス(WSA)または Cisco ScanSafe タワーを使用するかどうか、クライアントがプロキシで TCP 接続を終端します。 サーバが MPTCP オプションをサポートしていないため、接続は通常の TCP 接続として機能します。

問題を解決する回避策は、ScanSafe への MPTCP フローのリダイレクトを防ぐために、ScanSafe コネクタを設定することです。 MPTCP フローをバイパスしても、ScanSafe コネクタは、ScanSafe に接続しないでもともと要求された Web サーバから内容を直接取得します。 詳細については、『Cisco ScanSafe ソリューション ガイドを使用する Cisco ISR Web セキュリティ(Cisco ISR Web Security with Cisco ScanSafe Solution Guide)』の 12 ページにあるセクション「IS でのスキャンのバイパス(Bypassing Scanning on the IS)」を参照してください。

MPTCP によって影響を受けないシスコ製品

通常、TCP フローおよびレイヤ 7 情報を検証しないデバイスは TCP ヘッダーに警告を出さず、その結果 MPTCP に対して透過的です。 これらのデバイスには次のようなものがあります:

  • Cisco 1000 シリーズ アグリゲーション サービス ルータ(ASR)、ISR 4451-X、クラウド サービス ルータ(CSR)(Cisco IOS XE 製品)
  • Cisco 5000 シリーズ ASR(Starent)
  • Wide Area Application Services(WAAS)
  • キャリアグレードの NAT(CGN)(Carrier Routing System(CRS)のキャリアグレードのサービス エンジン(CGSE)ブレード)
  • すべてのイーサネット スイッチ製品
  • すべてのルータ製品(ファイアウォールまたは NAT 機能がイネーブルになっていない場合。 詳細については、このドキュメントの前半にある、影響を受ける製品についてのセクションを参照してください)。


Document ID: 116519