パケット コア インスタンスでパケット キャプチャを実行する

コントロールまたはデータ プレーン パケットのパケット キャプチャは、MEC-Dataplane Trace ツールを使用して実行されます。 MEC-Dataplane (MEC-DP) Trace は、コマンド ライン インターフェイス (CLI) で実行されるデータ ネットワーク パケット アナライザー コンピューター プログラムである tcpdump に似ています。 MEC-DP Trace を使用すると、デバイス上のアクセス ネットワーク (N3 インターフェイス) またはデータ ネットワーク (N6 インターフェイス) 上の任意のユーザー プレーン インターフェイスと、コントロール プレーン (N2 インターフェイス) でパケットを監視および記録できます。 MEC-DP Trace には、Azure portal または Azure CLI を使用してアクセスできます。

パケット キャプチャは、パケットを Linux カーネル インターフェイスにミラーリングすることによって機能し、その後 tcpdump を使用して監視できます。 このハウツー ガイドでは、パケット コア インスタンスでパケット キャプチャを実行する方法について説明します。

重要

パケット キャプチャを実行すると、システムのパフォーマンスとデータ プレーンのスループットが低下します。 そのため、このツールは初期テスト中に小規模でのみ使用することをお勧めします。

前提条件

パケット キャプチャを実行するには、AP5GC サイトがデプロイされている必要があります。

コマンド ラインを使用してパケット キャプチャを実行するには、次のことを行う必要があります。

  • パケット コア インスタンスが実行されている Azure Arc 対応の Kubernetes クラスターを表す Kubernetes - Azure Arc リソースを識別します。
  • ローカル マシンに、Azure Arc 対応 Kubernetes クラスターへのコア kubectl アクセス権があることを確認してください。 これにはコア kubeconfig ファイルが必要で、このファイルは「コア名前空間アクセス」に従って取得できます。

Azure portal を使用したパケット キャプチャの実行

ストレージ アカウントを設定する

診断パッケージを保存するためのストレージ アカウントを設定する必要があります。

  1. 次の追加構成を使用して、診断情報用のストレージ アカウントを作成します。
    1. [データ保護] タブの [アクセス制御] で、[バージョン レベルの変更可能性のサポートを有効にする] を選択します。 これにより、次のステップでアカウントの時間ベースの保持ポリシーを指定できます。
    2. ストレージ アカウントのコンテンツを一定期間後に自動的に削除する場合は、ストレージ アカウントに対して既定の時間ベースのアイテム保持ポリシーを構成します。
    3. 診断情報用のコンテナーを作成します。
    4. コンテナー BLOB URL を書き留めます。 次に例を示します。
      https://storageaccountname.blob.core.windows.net/diagscontainername
      1. ストレージ アカウントに移動します。
      2. 診断情報の収集に使用するコンテナー BLOB の右側にある ... シンボルを選択します。
      3. コンテキスト メニューで [コンテナーのプロパティ] を選択します。
      4. [コンテナーのプロパティ] ビューの [URL] フィールドの内容をコピーします。
  2. ユーザー割り当て ID を作成し、ストレージ BLOB データ共同作成者 ロールを使用して、上記で作成したストレージ アカウントにそれを割り当てます。

    ヒント

    サイトの作成時に、ユーザー割り当て ID を既に作成して関連付けている可能性があります。

  3. サイトの [Packet core control plane]\(パケット コア コントロール プレーン\) リソースに移動します。
  4. 左側のメニューの [設定][ID] を選択します。
  5. [追加] を選択します。
  6. 作成したユーザー署名付きマネージド ID を選択し、 [追加] を選択します。

重要

ユーザー割り当てマネージド ID を作成したら、ダミー構成を変更してパケット コア構成を更新する必要があります。 これは、デプロイに影響を与えないのでそのままにしておいてもよい変更である場合も、すぐに元に戻す必要がある変更である場合もあります。 「パケット コア インスタンスを変更する」を参照してください。 パケット コア構成を更新しない場合、パケット キャプチャは失敗します。

パケット キャプチャを開始する

  1. Azure portal にサインインします。
  2. パケット キャプチャを実行するサイトの [パケット コア コントロール ペイン] 概要ページに移動します。
  3. 左側の [ヘルプ] セクションで [パケット キャプチャ] を選択します。 これにより、パケット キャプチャ ビューが開きます。
  4. ポータルを使用してパケット キャプチャを初めて実行した場合は、ストレージ アカウントの構成を求めるエラー メッセージが表示されます。 その場合:
    1. エラー メッセージ内のリンクに従います。
    2. 診断ストレージ用に構成されたストレージ アカウント コンテナーの URL を入力し、[変更] を選択します。

      ヒント

      ストレージ アカウント コンテナーの URL がない場合:

      1. ストレージ アカウントに移動します。
      2. パケット キャプチャに使用するコンテナーの右側にある [...] シンボルを選択します。
      3. コンテキスト メニューで [コンテナーのプロパティ] を選択します。
      4. [URL] フィールドの内容をコピーします。
    3. パケット キャプチャ ビューに戻ります。
  5. [パケット キャプチャを開始する] を選択します。
  6. [パケット キャプチャの開始] ペインで詳細を入力し、[作成] を選択します。
  7. パケット キャプチャが完了するまで、ページは数秒ごとに更新されます。 [更新] ボタンを使ってページを更新することもできます。 パケット キャプチャを早期に停止する場合は、[パケット キャプチャの停止] を選択します。
  8. パケット キャプチャが完了すると、AP5GC オンライン サービスによって、指定したストレージ アカウント URL に出力が保存されます。
  9. パケット キャプチャ出力をダウンロードするには、[ストレージ] 列または [ファイル名] 列で [クリップボードにコピー] ボタンを使用してそれらの詳細をコピーし、ポータルの [検索] ボックスに貼り付けます。 出力をダウンロードするには、ファイルを右クリックし、[ダウンロード] を選択します。

Azure CLI を使用したパケット キャプチャの実行

  1. Azure Arc 対応 Kubernetes クラスターへの kubectl アクセス権を持つコマンド ラインで、MEC-DP トラブルシューティング ポッドを入力します。

    kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- bash
    
  2. 構成されているユーザー プレーン インターフェイスのリストを表示します:

    mect list
    

    これにより、コントロール プレーン ネットワーク (N2) 上の 1 つのインターフェイス、アクセス ネットワーク (N3) 上の 1 つのインターフェイス、およびアタッチされている各データ ネットワーク (N6) のインターフェイスがレポートされます。 次に例を示します。

    n2trace
    n3trace
    n6trace0 (Data Network: internet)
    n6trace1 (Data Network: enterprise)
    n6trace2 (Data Network: test)
    
  3. 通常 tcpdump に渡すパラメーターを指定して、mectdump を実行します。 特に、インターフェイスを指定する -i と、書き込み先を指定する -w を使用します。 完了したら、Ctrl + C キーを押してツールを閉じます。一般的な使用例を次に示します。

    • すべてのインターフェイスでキャプチャ パケットを実行するには、mectdump -i any -w any.pcap を実行します
    • 単一のデータ ネットワークに対して N3 インターフェイスと N6 インターフェイスのキャプチャ パケットを実行するには、2 つの異なるウィンドウで MEC-DP トラブルシューティング ポッドを入力します。 1 つのウィンドウで mectdump -i n3trace -w n3.pcap を実行し、もう一方のウィンドウで mectdump -i <N6 interface> -w n6.pcap を実行します (手順 2 に示すように、データ ネットワークに N6 インターフェイスを使用します)。

    重要

    パケット キャプチャ ファイルは、特にすべてのインターフェイスでパケット キャプチャを実行する場合に大きくなる可能性があります。 パケット キャプチャを実行するときに、フィルターを指定してファイル サイズを小さくします。使用可能なフィルターについては、tcpdump のドキュメントを参照してください。

  4. コンテナーを終了します。

    exit
    
  5. 出力ファイルをコピーします。

    kubectl cp -n core core-mec-dp-0:<path to output file> <location to copy to> -c troubleshooter
    

    パケットの書き込み中に tcpdump が停止した可能性があり、その場合はこの手順で unexpected EOF を示すエラーが発生する可能性があります。 ただし、ファイルは正常にコピーされているはずですが、ターゲット出力ファイルを調べて確認することができます。

  6. 出力ファイルを削除します。

        kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- rm <path to output file>
    

次のステップ

デプロイを監視し、分析を表示するためのその他のオプションについては、次を参照してください。