コンテンツにスキップ

パケットキャプチャ

vifdump は Argo データプレーンの仮想インターフェース上でパケットをキャプチャします。5つのコマンドはすべて F5 のものであり、debug API には含まれていません。

このページに出力がない理由(具体的に)

Section titled “このページに出力がない理由(具体的に)”

Site CLI における引数のアリティは、引数なしでコマンドを実行することで確認できます。コマンドは not sufficient args for command <name> と返答します。これは読み取り専用コマンドに対しては安全です。このドキュメント作業中に vifdump に適用したところ、まだ登録中だったノード上でエラーが一切返されませんでした。キャプチャが開始されたかどうかは不明です。なぜなら、確認できる前にノードが破棄され再構築されたためです。

これがハーネスの設計の根本的な根拠です。実行はデフォルトで拒否されており、拒否リストに基づくものではありません。vifdump は誰も思いつかなかったため、いかなる拒否リストにも含まれていませんでした。明示的な許可リストのみが、誰も思いつかなかったコマンドを拒否できます。

指定した vif 上でパケットをキャプチャします。

Terminal window
execcli vifdump <vif-id> [options]

vif id は vif --list から取得してください。

1つの vif またはすべての vif 上で、ドロップされたパケットをキャプチャします。

Terminal window
execcli vifdump-d <vif-id|all>

dropstats と組み合わせて使用します。dropstats はドロップが発生していることとどのカウンターが増加しているかを示し、vifdump-d は実際のパケットを表示します。

前回の実行で残ったキャプチャを停止します。

Terminal window
execcli vifdump-stop

アプライアンス自身の説明は「前回の実行が異常終了した場合に vifdump コマンドを停止する」となっており、これは失敗モードが想定されていることを示しています。キャプチャは、それを開始したセッションよりも長く生き続ける可能性があります。vifdump を実行した後、まだ動いているか不明な場合はこのコマンドを実行してください。

キャプチャファイルを Argo コンテナからホストの /tmp/vifdump/ にコピーします。

Terminal window
execcli vifdump-file-cp

docker cp $(argo):/tmp/. /tmp/vifdump/ と同等です。キャプチャはコンテナ内部に書き込まれるため、このコマンドが必要になります。

Argo コンテナから .pcap ファイルを削除します。

Terminal window
execcli vifdump-file-rm

作業が終わったらこれを実行してください。 vifdump-stop とともに、キャプチャ作業のクリーンアップペアを構成します。また、他の誰かがキャプチャを実行したままにしている可能性があるノードを引き継いだ場合に、最初に実行すべき2つのコマンドです。