はじめに
トラブルシューティングのために snifferコマンドを使用してパケットを取得してみたものの、すべてのパケットを取得できていない場合があります。 これはパケット処理が CPUからネットワークプロセッサ(NP)やセキュリティプロセッサ(SP)といったハードウェアアクセラレーションにオフロードされるために起こります。
対処方法
取得できてないパケットがある理由は、NP/SPにオフロードされるためパケットがカーネルで処理されていないからです。 パケットキャプチャはカーネルの機能であるため、パケットを取得するためにはCPUとカーネルでパケットを処理しなければなりません。
対処策として パケットを取得したいセッションにマッチするポリシー設定でオフロードを無効にします。
# config firewall policy edit <policy_id> set auto-asic-offload disable next end
※オフロードを無効にしていも現在のセッションは終了しません。
パケットを取得できるようにして、トラブルシューティングを行った後は設定を戻しておきます。
# config firewall policy edit <policy_id> set auto-asic-offload enable next end
参考URL
Knowledge Base: Technical Tip: Packet sniffer (CLI/Web GUI) is missing packets while running a trace
- 作者:左門 至峰
- 発売日: 2019/01/18
- メディア: 単行本
- 作者:椎屋 淳伸
- 発売日: 2015/03/17
- メディア: 大型本