Red Hat Training

A Red Hat training course is available for RHEL 8

第45章 ネットワークパケットのキャプチャー

ネットワークの問題と通信をデバッグするには、ネットワークパケットをキャプチャーできます。以下のセクションでは、ネットワークパケットのキャプチャーに関する手順と追加情報を提供します。

45.1. XDP プログラムがドロップしたパケットを含むネットワークパケットをキャプチャーするために xdpdump を使用

xdpdump ユーティリティーは、ネットワークパケットをキャプチャーします。tcpdump ユーティリティーとは異なり、xdpdump はこのタスクに extended Berkeley Packet Filter(eBPF) プログラムを使用します。これにより、xdpdump は Express Data Path (XDP) プログラムによりドロップされたパケットをキャプチャーできます。tcpdump などのユーザー空間ユーティリティーは、この削除されたパッケージや、XDP プログラムによって変更された元のパケットをキャプチャーできません。

xdpdump を使用して、インターフェースにすでに割り当てられている XDP プログラムをデバッグすることができます。したがって、ユーティリティーは、XDP プログラムを起動し、終了する前にパケットをキャプチャーできます。後者の場合、xdpdump は XDP アクションもキャプチャーします。デフォルトでは、xdpdump は XDP プログラムのエントリーで着信パケットをキャプチャーします。

重要

AMD および Intel 64 ビット以外のアーキテクチャーでは、xdpdump ユーティリティーはテクノロジープレビュー機能としてのみ提供されます。テクノロジープレビューの機能は、Red Hat の本番環境のサービスレベルアグリーメント (SLA) ではサポートされず、機能的に完全ではないことがあるため、Red Hat では実稼働環境での使用を推奨していません。これらのプレビューは、近々発表予定の製品機能をリリースに先駆けてご提供します。これにより、お客様は機能性をテストし、開発プロセス中にフィードバックをお寄せいただくことができます。

テクノロジープレビュー機能のサポート範囲については、Red Hat カスタマーポータルの「テクノロジープレビュー機能のサポート範囲」を参照してください。

xdpdump には、パケットフィルターまたはデコード機能がないことに注意してください。ただし、パケットのデコードに tcpdump と組み合わせて使用できます。

この手順では、enp1s0 インターフェース上のパケットをすべてキャプチャーして、/root/capture.pcap ファイルに書き込む方法を説明します。

前提条件

  • XDP プログラムをサポートするネットワークドライバー。
  • XDP プログラムが enp1s0 インターフェースに読み込まれている。プログラムが読み込まれていない場合は、xdpdump が後方互換性として tcpdump と同様にパケットを キャプチャー します。

手順

  1. enp1s0 インターフェースでパケットをキャプチャーして、/root/capture.pcap ファイルに書き込むには、次のコマンドを実行します。

    # xdpdump -i enp1s0 -w /root/capture.pcap
  2. パケットの取得を停止するには、Ctrl+C を押します。

関連情報

  • xdpdump の詳細は、xdpdump(8) の man ページを参照してください。
  • 開発者であり、xdpdump のソースコードに関心がある場合は、Red Hat カスタマーポータルから対応するソース RPM (SRPM) をダウンロードしてインストールします。