FortiGateで通信トラブルを切り分けるとき、ログだけでは原因を判断できず、実際に流れているパケットを確認したいことがあります。FortiGate 60Fでは、CLIのdiagnose sniffer packetと、GUIの「ネットワーク > 診断」からパケットをキャプチャできます。
この記事では、FortiGate 60F / FortiOS 7.4.9の実機を使い、CLIで通信をリアルタイムに確認する方法と、GUIでキャプチャ結果を表示・PCAP保存する方法を解説します。旧FortiGateの記事を、現行画面と実機結果に合わせて更新しています。
パケットキャプチャが役立つ場面
パケットキャプチャを使うと、次のような情報を確認できます。
- 対象の通信がFortiGateまで到達しているか
- 通信がどのインターフェースから入り、どこへ出ているか
- 送信元・宛先IPアドレス、ポート番号、プロトコル
- TCPのSYN、ACK、RSTなどのフラグ
- 通信が往復しているか、一方向で止まっているか
ファイアウォールポリシーの許可・拒否を確認するだけなら通信ログの方が手軽です。パケットキャプチャは、ログに出ない通信や、TCPレベルの応答まで確認したい場合に使います。
CLIでdiagnose sniffer packetを実行する
CLIコンソール、SSH、コンソール接続のいずれかでFortiGateへアクセスし、次の形式でコマンドを実行します。
diagnose sniffer packet <interface> '<filter>' <verbose> <count> <timestamp-format>
<interface>: キャプチャするインターフェース名。すべてを対象にする場合はany<filter>: 対象通信を絞るフィルタ。指定しない場合はnone<verbose>: 表示する情報量(1~6)<count>: 取得するパケット数。0または省略時は手動停止するまで継続<timestamp-format>: タイムスタンプ形式。lでFortiGateのローカル時刻
wan1のTCP 443通信を確認する例
今回は、wan1を流れるTCP 443通信を、インターフェース名が分かるverbose 4で取得しました。
diagnose sniffer packet wan1 'tcp and port 443' 4
コマンドを実行すると、送信元・宛先IPアドレス、ポート番号、TCPフラグなどがリアルタイムに表示されます。停止するときはCtrl+Cを押します。

verbose 1~6の違い
| 値 | 表示内容 |
|---|---|
| 1 | パケットヘッダー |
| 2 | パケットヘッダーとIPパケットのデータ |
| 3 | パケットヘッダーとEthernetフレームのデータ |
| 4 | インターフェース名付きのパケットヘッダー |
| 5 | インターフェース名、パケットヘッダー、IPパケットのデータ |
| 6 | インターフェース名、パケットヘッダー、Ethernetフレームのデータ |
通信の有無と経路を確認するだけなら、インターフェース名が表示されるverbose 4が扱いやすいです。パケットの中身まで確認する場合は5または6を使いますが、出力量が増えるため、フィルタと取得数を指定してください。
よく使うフィルタ例
# 特定ホストの通信
diagnose sniffer packet any 'host 192.168.10.45' 4 50 l
# TCP 443通信
diagnose sniffer packet any 'tcp and port 443' 4 50 l
# 送信元と宛先を指定
diagnose sniffer packet any 'src host 192.168.10.45 and dst host 192.168.10.105' 4 50 l
# ICMP通信
diagnose sniffer packet any 'icmp' 4 20 l
GUIの診断メニューでキャプチャする
GUIでは、キャプチャ条件を保存し、取得したパケットのヘッダーを画面上で確認できます。PCAP形式で保存してWiresharkで解析することもできます。
1. パケットキャプチャ画面を開く
ネットワーク > 診断 > パケットキャプチャを開き、「新しいパケットキャプチャ」を選択します。

今回のFortiGate 60Fでは、画面上に「最大6キャプチャ・4,000パケット」と表示されています。この上限は機種やストレージ構成によって異なるため、実際の管理画面に表示される値を確認してください。
2. インターフェースとフィルタを指定する
キャプチャ名、対象インターフェース、最大パケット数を指定します。必要に応じてフィルタを有効にし、ホスト、ポート、プロトコルを絞ります。今回はwan1、最大2,000パケット、ポート443を指定しました。

3. キャプチャを開始・停止する
作成したキャプチャを開始します。実行中はカードが緑色になり、経過時間が表示されます。必要な通信を発生させたら停止します。最大パケット数に達した場合も自動的に完了します。


4. パケットを表示・PCAP保存する
完了したキャプチャを「表示」で開くと、送信元・宛先IPアドレス、ポート番号、プロトコル、TCPフラグなどを確認できます。「.pcapとして保存」を選択すると、Wiresharkで開けるPCAPファイルをダウンロードできます。

パケットキャプチャ時の注意点
- フィルタと取得数を指定する:対象を絞らずに実行すると大量のパケットが表示され、必要な通信を追いにくくなります。
- 管理通信の写り込みに注意する:管理画面へ接続しているインターフェースを対象にすると、自分のHTTPSやSSH通信もキャプチャされます。
- 機密情報として扱う:PCAPにはIPアドレス、ホスト名、通信内容、認証情報などが含まれる可能性があります。保存先と共有範囲を制限し、不要になったファイルは削除してください。
- GUIの保存期間を確認する:今回のディスク非搭載60Fでは、完了から24時間後または再起動時にキャプチャが削除される表示でした。必要なPCAPはその前に保存します。
- ハードウェアオフロードを考慮する:NPUへオフロードされた通信は、CLI snifferで確認できない場合があります。
対象通信が見えず、NPUオフロードが原因と判断できる場合は、対象ポリシーのauto-asic-offloadを一時的に無効化して確認します。性能へ影響するため、本番環境では影響を確認し、作業後に必ず元へ戻してください。
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
CLI・GUI・ミラーポートの使い分け
| 方法 | 向いている用途 |
|---|---|
| CLI sniffer | 短時間で通信の有無や通過インターフェースを確認する |
| GUIパケットキャプチャ | 画面でヘッダーを確認し、PCAPとして保存する |
| ミラーポート(SPAN) | 別のPCへ通信を複製し、Wiresharkで継続的に確認する |
まず通信ログを確認し、さらにパケットレベルの調査が必要な場合にCLIまたはGUIキャプチャを使うと効率的です。別の解析PCで確認したい場合はミラーポートを使います。
- 【FortiGate 60F】ミラーポート(SPAN)設定手順|Wiresharkで通信を確認
- 【FortiGate】通信ログ確認手順|60Fでポリシーヒットを確認する
- FortiGate設定ガイド|初期設定・ポリシー・VPN・障害対応
GUIの操作と保存期間はFortiOSのバージョン、機種、ストレージ構成で異なります。対象機器の表示とFortinet公式ドキュメントも確認してください。

コメント