FortiGateのGARP(Gratuitous ARP)について詳しく説明します。
GARP(Gratuitous ARP)は、自分自身のIPアドレスに対するARPリクエストまたはリプライをネットワークにブロードキャストする仕組みです。
通常のARPは「あるIPアドレスに対応するMACアドレスを知りたい」ときに使いますが、GARPは「このIPはこのMACだよ」と周囲に知らせるために用いられます。
FortiGateファイアウォールでは、GARPが以下のような文脈で使われます。
FortiGateのHA(アクティブ/パッシブ)構成では、プライマリデバイスからセカンダリにフェイルオーバーした際、仮想IP(またはフローティングIP)のMACアドレスが変わることがあります。
問題
スイッチやルーターなどのネットワーク機器が古いMACアドレスをARPキャッシュに保持していると、パケットが新しいアクティブノードに届かない可能性があります。
解決
FortiGateはフェイルオーバー後にGARPを送信して、周囲の機器に「このIPは今はこのMACですよ」と通知し、ネットワークを即座に収束させます。
インターフェースが起動すると、FortiGateは自身のインターフェースIPアドレスに対するGARPをブロードキャストします。
これにより、近隣の機器のARPテーブルに自身を登録させることができます。
FortiGateは自身のインターフェースに設定されたIPアドレスが他の機器で既に使用されていないか確認するために、GARP(ARPリクエスト)を送信し応答があるかどうかを監視することがあります。
GARPの送信自体はFortiOS内部で自動的に管理されており、CLIで「GARPを有効/無効にする」といった直接的な制御は基本的に提供されていません。
ただし、HAやVRRPの設定の一部としてGARP送信タイミングや通知方法に影響を与えるパラメータを設定することができます。
FortiGateのCLIで以下のように入力することで、ARPパケット(GARP含む)をキャプチャできます。
diagnose sniffer packet any "arp" 4
GARPは送信元IPとターゲットIPが同じになっている点が特徴です。
ARP, Request who-has 192.168.1.1 tell 192.168.1.1
または、
ARP, Reply 192.168.1.1 is-at 00:09:0f:aa:bb:cc
ケース | 問題 | 対処 |
---|---|---|
HA切替後に通信断が発生 | スイッチが旧MACに送信している | FortiGate側がGARPを正しく送っているか確認。必要に応じてスイッチのMACアドレスエイジング時間を短縮。 |
インターフェース有効化後も接続できない | ARPテーブルに古い情報が残っている | diagnose arp list でFortiGateのARP情報を確認。リモート側で手動クリアも検討。 |
GARPが多すぎてネットワークが混雑 | GARPを過剰に送っている可能性あり | 通常は問題にならないが、異常なGARP送信がある場合はファームウェアバグの可能性も。サポートに相談。 |
FortiGateがVRRPを使う場合にもGARPは重要です。
マスターが切り替わった後に新しいマスターがGARPを送信することで、L2/L3デバイスに通知します。
これは、フェイルオーバー時のダウンタイム短縮に非常に重要です。
項目 | 説明 |
---|---|
GARPとは | 自分のIPアドレスをネットワークに通知するARPパケット |
FortiGateでの用途 | HA切替、IP重複検出、ARPテーブル更新など |
通信確認方法 | diagnose sniffer packet any "arp" で確認 |
明示的な設定可否 | 直接のGARP設定は不可(HAやVRRP設定で制御) |
トラブル対策 | スイッチの設定見直し、パケットキャプチャで動作確認 |
以上、FortiGateのGARPについてでした。
最後までお読みいただき、ありがとうございました。