FortiGate IPsec 2025年10月3日
Dead Peer Detection (DPD)とは?FortiGateでの役割と設定方法
はじめに
IPsec VPNを運用していると、次のようなトラブルに遭遇することがあります。
- 回線が切れているのに、VPNトンネルが「確立中」のまま残る
- 通信が止まっているのに、セッションがクリアされずフェイルオーバーできない
このような「VPNが固まる」状態を防ぐ仕組みが DPD(Dead Peer Detection) です。
本記事では、DPDの仕組みとFortiGateでの設定方法、そして利用時の注意点について解説します。
DPDとは
- Dead Peer Detection = VPNの対向装置が生きているかどうかを確認する仕組み。
- ICMP(ping)ではなく IKEキープアライブメッセージ で判定するのが特徴。
- 相手が応答しない場合、既存のセッションをクリアして 再ネゴシエーションを開始する。
これにより、「相手がダウンしているのにVPNが張りっぱなし」という状態を防ぎます。
FortiGateにおけるDPDのモード
1. on-demand(デフォルト)
動作
- FortiGateが 自分からトラフィックを送信しているのに、一定時間応答がないとき にDPDを送信。
- トラフィックが全く流れていないアイドル時には、原則としてDPDを積極的に送らない。
メリット
- 不要なときにはDPDを送らないため、無駄な制御トラフィックを減らせる。
- 帯域やCPU負荷を最小化できる。
デメリット
- 完全アイドル時に回線が落ちても検知が遅れる。
- 「夜間に落ちて、翌朝アクセスするまで発覚しない」といったケースが起こりうる。
利用シーン
- ダイヤルアップ接続や、アクセス頻度が低いVPN。
- トラフィックが流れるタイミングで検知できれば十分なケース。
2. on-idle(推奨)
動作
- トラフィックの有無に関わらず、一定間隔で必ずDPDメッセージを送信。
- 相手が応答しない場合はセッションを削除し、再ネゴシエーションを開始。
メリット
- アイドル時でも確実に死活監視できる。
- 回線障害や相手機器ダウンを早期に検知可能。
- フェイルオーバーやSD-WAN切替の安定性が向上する。
デメリット
- 常にDPDを送るため、わずかにオーバーヘッドが増える。
- とはいえ現代の機器ではほぼ無視できるレベル。
利用シーン
- 拠点間VPNの標準構成。
- 冗長回線/SD-WAN環境でのフェイルオーバー検知。
3. disable(非推奨)
動作
- DPDを使わず、IKEの再送やタイムアウトに任せる。
メリット
- 古い機器でDPD非対応の場合の互換性確保。
デメリット
- 相手がダウンしてもトンネルが張りっぱなしになる。
- フェイルオーバーが遅れ、通信断が長引く。
利用シーン
- 相手機器がDPD非対応の特殊ケース。
- 通常の運用では避けるべき。
設定例
Phase1-Interfaceでの設定
config vpn ipsec phase1-interface
edit "VPN-P1"
set interface "wan1"
set remote-gw 198.51.100.1
set ike-version 2
set dpd on-idle # DPDモードを指定
set dpd-retryinterval 10 # チェック間隔(秒)
set dpd-retrycount 3 # 再試行回数
next
end
動作イメージ
上記設定なら「10秒ごとにチェック → 応答なし3回」で、約30秒でセッションが切断され再ネゴシエーションが走る。
注意点
- DPDはping監視ではない
→ IKEメッセージで確認するため、LAN側障害は検知できない。 - 双方向で設定することが望ましい
→ 一方だけ有効だと「片側は切れたと判断、もう片側はまだ張れている」といった不一致が起きる。 - SD-WANヘルスチェックと混同しない
→ DPDは「VPN対向の死活監視」、ヘルスチェックは「リンク品質の監視」。併用することでフェイルオーバーを確実にできる。
まとめ
- DPDは IPsec VPNの死活監視機能。
- モードは on-demand(節約型)、on-idle(確実型)、disable(非推奨)の3種類。
- 拠点間VPN構成では on-idle がベストプラクティス。
- dpd-retryinterval と dpd-retrycount を調整することで、検知速度を環境に合わせて最適化できる。