次の方法で共有


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

コントロールまたはデータ プレーン パケットのパケット キャプチャは、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. [パケット キャプチャの開始] ペインで詳細を入力し、[作成] を選択します。

    [1 セッションあたりの最大バイト数] の制限はノードごとに適用されます。 高可用性 (HA) デプロイでは、1 つのノード上でパケット キャプチャがこの制限に達して (もう 1 つのノードが制限に達する前に) 完了する可能性が高いため、1 つ目が完了してもパケット キャプチャは引き続き実行されます。 新たに開始する前に、すべての実行中のパケット キャプチャを停止する必要があります。

  7. パケット キャプチャが完了するまで、ページは数秒ごとに更新されます。 [更新] ボタンを使ってページを更新することもできます。 パケット キャプチャを早期に停止する場合は、[パケット キャプチャの停止] を選択します。

  8. パケット キャプチャが完了すると、AP5GC オンライン サービスによって、指定したストレージ アカウント URL に出力が保存されます。

    HA デプロイでは、2 つのパケット キャプチャ ファイル (ノードごとに 1 つ) がアップロードされます。 これらのファイルは、core-mec-dp-0 または core-mec-dp-1 ポッドに対応して、0 または 1 とラベル付けされます。 1 つのパケット キャプチャが失敗すると、状態ページにはエラーが表示されますが、成功したほうのキャプチャ結果は通常どおりアップロードされます。

  9. パケット キャプチャ出力をダウンロードするには、[ストレージ] 列または [ファイル名] 列で [クリップボードにコピー] ボタンを使用してそれらの詳細をコピーし、ポータルの [検索] ボックスに貼り付けます。 出力をダウンロードするには、ファイルを右クリックし、[ダウンロード] を選択します。

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

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

    kubectl exec -it -n core core-mec-dp-0 -c troubleshooter -- bash
    

    Note

    HA デプロイでは、ノードがダウンして core-mec-dp-0 が存在しない場合があります。 その場合は、代わりに「core-mec-dp-1」を入力します。

  2. 構成されているユーザー プレーン インターフェイスのリストを表示します:

    mect list
    

    これにより、コントロール プレーン ネットワーク (N2) 上の 1 つのインターフェイス、アクセス ネットワーク (N3) 上の 1 つのインターフェイス、およびコア ネットワーク (N6) の 1 つのインターフェイスがレポートされるはずです。

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

    • すべてのインターフェイス上のパケットをキャプチャするには、mectdump -i any -w any.pcap を実行します
    • 1 つのデータ ネットワークで N3 インターフェイスと N6 インターフェイスのパケットをキャプチャするには、2 つの異なるウィンドウで MEC-DP トラブルシューティング ポッドを入力します。 1 つのウィンドウで mectdump -i n3trace -w n3.pcap を実行し、もう一方のウィンドウで mectdump -i n6trace -w n6.pcap を実行します。 個々のデータ ネットワークを選択するには、VLAN ID でフィルター処理します。

    重要

    パケット キャプチャ ファイルは、特にすべてのインターフェイスでパケット キャプチャを実行する場合に大きくなる可能性があります。 パケット キャプチャを実行するときに、フィルターを指定してファイル サイズを小さくします。使用可能なフィルターについては、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>
    

次のステップ

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