現在、ネットワーク監視およびトラブルシューティングに最も一般的に使用されているツールは、スイッチポートアナライザ(SPAN)、別名ポートミラーリングです。SPANを使用すると、稼働中のネットワーク上のサービスに干渉することなく、バイパスアウトオブバンドモードでネットワークトラフィックを監視し、監視対象のトラフィックのコピーを、スニファ、IDS、その他のネットワーク分析ツールなどのローカルまたはリモートデバイスに送信できます。
代表的な用途としては以下のようなものがあります。
・制御フレーム/データフレームを追跡することで、ネットワークの問題をトラブルシューティングする。
・VoIPパケットを監視することで、遅延とジッターを分析する。
・ネットワークの相互作用を監視することで、遅延を分析する。
・ネットワークトラフィックを監視することで異常を検出する。
SPANトラフィックは、同じ送信元デバイス上の他のポートにローカルにミラーリングすることも、送信元デバイスのレイヤ2に隣接する他のネットワークデバイスにリモートでミラーリングすることもできます(RSPAN)。
本日は、IPの3層にわたって送信可能なERSPAN(Encapsulated Remote Switch Port Analyzer)と呼ばれるリモートインターネットトラフィック監視技術についてお話しします。これは、SPANをEncapsulated Remoteに拡張したものです。
ERSPANの基本動作原理
まず、ERSPANの機能を見ていきましょう。
・送信元ポートからのパケットのコピーが、汎用ルーティングカプセル化(GRE)を介して解析するために宛先サーバーに送信されます。サーバーの物理的な場所に制限はありません。
• チップのユーザー定義フィールド(UDF)機能を利用して、エキスパートレベルの拡張リストを介してベースドメインに基づいて1~126バイトの任意のオフセットを実行し、セッションキーワードを照合して、TCP 3ウェイハンドシェイクやRDMAセッションなどのセッションの可視化を実現します。
・サンプリングレートの設定をサポート。
・パケット傍受長(パケットスライシング)をサポートし、ターゲットサーバーへの負荷を軽減します。
これらの機能を見れば、ERSPANが今日のデータセンター内のネットワーク監視に不可欠なツールである理由がお分かりいただけるでしょう。
ERSPANの主な機能は、以下の2つの側面から要約できます。
• セッションの可視性: ERSPAN を使用して、作成されたすべての新しい TCP セッションとリモート ダイレクト メモリ アクセス (RDMA) セッションをバックエンド サーバーに収集して表示します。
• ネットワークのトラブルシューティング:ネットワークの問題が発生した際に、障害分析のためにネットワークトラフィックをキャプチャします。
このためには、送信元ネットワーク機器は、膨大なデータストリームからユーザーにとって重要なトラフィックをフィルタリングし、コピーを作成し、各コピーフレームを、受信機器に正しくルーティングできる十分な追加情報を含む特別な「スーパーフレームコンテナ」にカプセル化する必要があります。さらに、受信機器が監視対象の元のトラフィックを抽出して完全に復元できるようにする必要があります。
受信側デバイスは、ERSPANパケットのデカプセル化をサポートする別のサーバーであってもよい。
さらに、GREヘッダーのプロトコルタイプフィールドは、内部ERSPANタイプも示します。プロトコルタイプフィールドが0x88BEの場合はERSPANタイプII、0x22EBの場合はERSPANタイプIIIを示します。
1. タイプI
タイプIのERSPANフレームは、元のミラーフレームのヘッダー上にIPとGREを直接カプセル化します。このカプセル化により、元のフレームに38バイト(MAC 14バイト、IP 20バイト、GRE 4バイト)が追加されます。このフォーマットの利点は、ヘッダーサイズがコンパクトで伝送コストが削減されることです。しかし、GREフラグとバージョンフィールドを0に設定するため、拡張フィールドは含まれず、タイプIは広く使用されていないため、これ以上拡張する必要はありません。
タイプIのGREヘッダー形式は以下のとおりです。
さらに、ERSPANタイプIIフレームフォーマットでは、GREヘッダーと元のミラーフレームの間に8バイトのERSPANヘッダーが追加されます。
タイプIIのERSPANヘッダー形式は以下のとおりです。
最後に、元の画像フレームの直後には、標準的な4バイトのイーサネット巡回冗長検査(CRC)コードが続きます。
注目すべきは、実装上、ミラーフレームには元のフレームのFCSフィールドが含まれておらず、代わりにERSPAN全体に基づいて新しいCRC値が再計算される点である。つまり、受信側デバイスは元のフレームのCRCの正当性を検証できず、破損していないフレームのみがミラーリングされるとしか考えられない。
3. タイプIII
タイプIIIでは、ネットワーク管理、侵入検知、パフォーマンスおよび遅延分析など、ますます複雑化・多様化するネットワーク監視シナリオに対応するため、より大型で柔軟性の高い複合ヘッダーが導入されています。これらのシナリオでは、ミラーフレームの元のパラメータすべてを把握する必要があり、元のフレーム自体には含まれていないパラメータも含まれます。
ERSPANタイプIII複合ヘッダーには、必須の12バイトヘッダーと、オプションの8バイトのプラットフォーム固有サブヘッダーが含まれます。
タイプIIIのERSPANヘッダー形式は以下のとおりです。
また、元のミラーフレームの後には4バイトのCRCが続きます。
タイプIIIのヘッダー形式からわかるように、タイプIIをベースにVer、VLAN、COS、T、Session IDフィールドを保持することに加えて、次のような多くの特殊フィールドが追加されています。
• BSO: ERSPAN を介して伝送されるデータ フレームのロードの完全性を示すために使用されます。00 は良好なフレーム、11 は不良フレーム、01 は短いフレーム、11 は長いフレームです。
• タイムスタンプ: システム時刻と同期したハードウェアクロックからエクスポートされます。この 32 ビットフィールドは、少なくとも 100 マイクロ秒のタイムスタンプ粒度をサポートします。
• フレームタイプ(P)とフレームタイプ(FT):前者はERSPANがイーサネットプロトコルフレーム(PDUフレーム)を伝送するかどうかを指定するために使用され、後者はERSPANがイーサネットフレームまたはIPパケットを伝送するかどうかを指定するために使用されます。
• HW ID: システム内のERSPANエンジンの一意の識別子。
• Gra (タイムスタンプの粒度): タイムスタンプの粒度を指定します。たとえば、00B は 100 マイクロ秒の粒度、01B は 100 ナノ秒の粒度、10B は IEEE 1588 の粒度を表し、11B はより高い粒度を実現するためにプラットフォーム固有のサブヘッダーを必要とします。
• プラットフォームIDとプラットフォーム固有情報:プラットフォーム固有情報のフィールドは、プラットフォームIDの値に応じて形式と内容が異なります。
上記でサポートされた各種ヘッダーフィールドは、通常のERSPANアプリケーションで使用でき、元のトランクパケットとVLAN IDを維持したまま、エラーフレームやBPDUフレームをミラーリングすることも可能です。さらに、ミラーリング中に各ERSPANフレームに重要なタイムスタンプ情報やその他の情報フィールドを追加することもできます。
ERSPAN独自の機能ヘッダーを使用することで、ネットワークトラフィックをより詳細に分析し、対象となるネットワークトラフィックに一致するACLをERSPANプロセスにマウントするだけで済みます。
ERSPANはRDMAセッションの可視性を実装します
RDMAシナリオにおいて、ERSPANテクノロジーを使用してRDMAセッションの可視化を実現する例を見てみましょう。
RDMAリモートダイレクトメモリアクセス(RDMA)は、インテリジェントネットワークインターフェースカード(IC)とスイッチを使用して、サーバーAのネットワークアダプタからサーバーBのメモリへの読み書きを可能にし、高帯域幅、低遅延、低リソース使用率を実現します。ビッグデータや高性能分散ストレージのシナリオで広く使用されています。
RoCEv2RDMA over Converged Ethernet Version 2。RDMAデータはUDPヘッダーにカプセル化されます。宛先ポート番号は4791です。
RDMAの日常的な運用と保守には、大量のデータ収集が必要です。これらのデータは、日々の水位基準線や異常警報の収集、異常箇所の特定などに使用されます。ERSPANと組み合わせることで、膨大なデータを迅速に取得し、マイクロ秒単位の転送品質データやスイッチングチップのプロトコル相互作用状態を把握できます。データの統計分析を通じて、RDMAのエンドツーエンド転送品質の評価と予測が可能になります。
RDAMセッションの可視化を実現するには、トラフィックをミラーリングする際にERSPANがRDMAインタラクションセッションのキーワードを照合する必要があり、エキスパート拡張リストを使用する必要があります。
エキスパートレベルの拡張リストマッチングフィールド定義:
UDFは、UDFキーワード、ベースフィールド、オフセットフィールド、値フィールド、マスクフィールドの5つのフィールドで構成されます。ハードウェアエントリの容量に制限されるため、使用できるUDFは合計8つまでです。1つのUDFは最大2バイトまで一致させることができます。
• UDFキーワード:UDF1...UDF8 UDFマッチングドメインの8つのキーワードが含まれています
• ベースフィールド: UDF マッチングフィールドの開始位置を識別します。以下
L4_ヘッダー(RG-S6520-64CQに適用)
L5_ヘッダー(RG-S6510-48VS8Cq用)
・オフセット:ベースフィールドに基づくオフセットを示します。値の範囲は0~126です。
・値フィールド:一致値。マスクフィールドと組み合わせて、一致させる特定の値を設定できます。有効ビットは2バイトです。
• マスクフィールド: マスク、有効ビットは2バイト
(追記:同じUDFマッチングフィールドで複数のエントリを使用する場合、ベースフィールドとオフセットフィールドは同じでなければなりません。)
RDMAセッションの状態に関連する2つの重要なパケットは、輻輳通知パケット(CNP)と否定応答(NAK)です。
前者は、スイッチから送信されたECNメッセージを受信した後(eoutバッファがしきい値に達したとき)、RDMA受信機によって生成されます。このメッセージには、輻輳を引き起こしているフローまたはQPに関する情報が含まれています。後者は、RDMA送信にパケット損失応答メッセージがあることを示すために使用されます。
エキスパートレベルの拡張リストを使用して、これら2つのメッセージを照合する方法を見ていきましょう。
エキスパートアクセスリスト拡張RDMA
udp 任意の任意の任意の任意の eq 4791 を許可udf 1 l4_header 8 0x8100 0xFF00(RG-S6520-64CQと互換性あり)
udp 任意の任意の任意の任意の eq 4791 を許可udf 1 l5_header 0 0x8100 0xFF00(対応品番:RG-S6510-48VS8CQ)
エキスパートアクセスリスト拡張RDMA
udp 任意の任意の任意の任意の eq 4791 を許可udf 1 l4_header 8 0x1100 0xFF00 udf 2 l4_header 20 0x6000 0xFF00(RG-S6520-64CQと互換性あり)
udp 任意の任意の任意の任意の eq 4791 を許可udf 1 l5_header 0 0x1100 0xFF00 udf 2 l5_header 12 0x6000 0xFF00(対応品番:RG-S6510-48VS8CQ)
最終段階として、エキスパート拡張リストを適切なERSPANプロセスにマウントすることで、RDMAセッションを視覚化できます。
最後に書いてください
ERSPANは、ますます大規模化するデータセンターネットワーク、ますます複雑化するネットワークトラフィック、そしてますます高度化するネットワーク運用・保守要件において、不可欠なツールの1つです。
運用保守の自動化が進むにつれ、Netconf、RESTconf、gRPCといった技術は、ネットワーク自動運用保守を学ぶ学生の間で人気を集めています。ミラーリングされたトラフィックを返送するための基盤プロトコルとしてgRPCを使用することにも、多くの利点があります。例えば、HTTP/2プロトコルをベースとしているため、同一接続下でのストリーミングプッシュメカニズムをサポートできます。また、ProtoBufエンコーディングにより、JSON形式と比較して情報のサイズが半分に削減され、データ伝送がより高速かつ効率的になります。ERSPANを使用して関心のあるストリームをミラーリングし、それをgRPC経由で分析サーバーに送信すれば、ネットワークの自動運用保守の能力と効率が大幅に向上することを想像してみてください。
投稿日時:2022年5月10日










