第44章 ネットワークパケットのキャプチャー
ネットワークの問題と通信をデバッグするには、ネットワークパケットをキャプチャーできます。以下のセクションでは、ネットワークパケットのキャプチャーに関する手順と追加情報を提供します。
44.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
と組み合わせて使用できます。
前提条件
- XDP プログラムをサポートするネットワークドライバー。
-
XDP プログラムが
enp1s0
インターフェイスに読み込まれている。プログラムが読み込まれていない場合は、xdpdump
が後方互換性としてtcpdump
と同様にパケットをキャプチャーします。
手順
enp1s0
インターフェイスでパケットをキャプチャーして、/root/capture.pcap
ファイルに書き込むには、次のコマンドを実行します。# xdpdump -i enp1s0 -w /root/capture.pcap
- パケットの取得を停止するには、Ctrl+C を押します。
関連情報
-
システム上の
xdpdump(8)
man ページ -
開発者であり、
xdpdump
のソースコードに関心がある場合は、Red Hat カスタマーポータルから対応するソース RPM (SRPM) をダウンロードしてインストールします。