はじめに
FortiGate で冗長化(High Availability)を構成する場合、メーカー独自のクラスタ機能である HA(FGCP: FortiGate Clustering Protocol) を利用するのが一般的です。設定が同期され、セッションも引き継がれるため、FortiGate 同士で構成するなら HA の利用が適しています。
ただし、HA では対応できず、あえて VRRP を選択する場面もいくつか存在します。
- 他社ベンダーとの冗長化: Cisco ルーターと FortiGate を組み合わせて冗長構成を組みたい場合
- 移行期間の並行稼働: 旧ルーターから新 FortiGate へ、ゲートウェイを段階的に切り替えたい場合
- 特殊な L2 設計: 複数機器でゲートウェイ IP を共有したい場合など
本記事では、オープンスタンダードな冗長化プロトコルである VRRP(Virtual Router Redundancy Protocol)を、FortiGate で設定する手順について整理します。検証は FortiOS 7.4 / 7.6 系を前提にしています。VRRP の設定構文は FortiOS 8.0 の管理ガイドでも同一の体系が確認できますが、本記事の記載内容は 7.4 / 7.6 系での検証に基づくものです。
- HA(FGCP)と VRRP の主要な違いと使い分け
- 実務で使える VRRP の CLI 設定手順(Master / Backup)
- 回線障害時に切り替える「経路監視(
vrdst)」の設定 - 設計時に押さえておきたい制約事項とトラブルシューティングのポイント
FortiGate HA(FGCP)と VRRP の違い
FortiGate には、メーカー独自の高可用性機能 HA(FGCP) が備わっています。「FortiGate 2 台で冗長化したい」という要件であれば、まずは HA の利用が適しています。
一方、VRRP はオープンスタンダードな規格で、「ゲートウェイの IP アドレスを複数機器で共有する」機能に特化しています。両者の主要な違いは、設定や通信状態(セッション)が同期されるか という点にあります。
機能比較表
| 項目 | HA(FGCP) | VRRP |
|---|---|---|
| 同期機能 | 設定・ログ・セッションを同期 | なし(個別に動作) |
| 設定の手間 | Master のみで完結(同期される) | 各機器で個別に設定 |
| 切り替わり | シームレス(通信断ほぼなし) | 通信断が発生(再接続が必要) |
| 互換性 | FortiGate 同士のみ | 他社製品と混在可能(標準規格) |
| 構成台数 | 通常 2 台(最大 4 台) | 制限なし(理論上 255 台) |
参考: Fortinet Document Library / VRRP(FortiOS 7.6.4)
“VRRP is an open standard High Availability protocol, so it can be used between FortiGate and another vendor firewall.”
(VRRP はオープンスタンダードな高可用性プロトコルであり、FortiGate と他社ファイアウォールの間で利用できます)
https://docs.fortinet.com/document/fortigate/7.6.4/administration-guide/850547/vrrp
使い分けのポイント
HA(FGCP)を選ぶ場面
- FortiGate 同士で冗長化を組む場合(基本はこちら)
- 障害時に Web 会議や VPN を切断させたくない場合(セッション同期が必要)
- 設定を一元管理して運用負荷を抑えたい場合
VRRP を選ぶ場面
- マルチベンダー構成: 「メインは Cisco ルーター、バックアップは FortiGate」など、メーカーが混在する環境
- システム移行期: 稼働中の既存ルータ(他社製)を残したまま、新 FortiGate を追加してゲートウェイを切り替えたい場合
- 設定の分離: 2 台で異なるポリシーや設定を入れて運用したい場合
なお、FortiGate には HA 以外にも FGSP(FortiGate Session Life Support Protocol)など複数の冗長化方式があり、要件によって使い分けが変わります。冗長化方式の全体像は次のセクションで整理します。
HSRP など他のゲートウェイ冗長化プロトコルとの比較や、要件からプロトコルを絞り込む手順は、関連記事『HSRP と VRRP の違い|FHRP の選定基準と判断の順序』で整理しています。
FortiGate の冗長化選択肢の全体像
VRRP と HA の比較に加え、FortiGate には複数の冗長化方式が用意されています。要件に応じた選定の参考として、主要な選択肢を整理します。
| 方式 | 動作概要 | 同期範囲 | 主な用途 |
|---|---|---|---|
| HA(FGCP)A-P | アクティブ・スタンバイの 2 台構成 | 設定・ログ・セッションを同期 | 標準的な冗長化(最も一般的) |
| HA(FGCP)A-A | アクティブ・アクティブの負荷分散 | 設定・ログ・セッションを同期 | スループット重視・高負荷環境 |
| FGSP | セッションのみを同期するクラスタ | セッション同期のみ(設定は独立) | 設定を個別運用しつつ通信断を抑えたい場合 |
| VRRP | ゲートウェイ IP を複数機器で共有 | なし | マルチベンダー、移行期間の並行稼働 |
| SD-WAN(複数 ISP) | 出口経路の冗長化 | – | WAN 回線の冗長化(機器冗長とは別軸) |
選定の目安として、「FortiGate 同士で完全な冗長化が必要」なら HA(FGCP)、「設定は個別運用したいがセッション断は避けたい」なら FGSP、「他社機器との混在やゲートウェイ IP 共有が必要」なら VRRP という整理ができます。機器単位の冗長化と回線単位の冗長化(SD-WAN)は併用が前提になるケースが多いため、組み合わせて検討することをおすすめします。
公式ドキュメントでは、Backup が FortiGate である場合、VRRP フェイルオーバー時に進行中のセッション情報が引き継がれない旨が明記されています。セッション断を避けたい要件では、この点が方式選定の分かれ目になります。
VDOM を併用する環境では、VRRP は対象 VDOM 内で完結する設計になります。複数 VDOM を運用する場合の前提整理は、関連記事『FortiGate VDOM の設定と GUI/CLI の違い|LAG+VLAN 構成例』(https://mytech-blog.com/fortigate-vdom/)も参考にしてください。
VRRP 設定例


Master(Primary)側の設定
通常時に通信を処理するメイン機(Master)の設定です。VRRP では Priority(優先度) の数値が最も大きい機器が Master に選出されます。FortiGate での最大値である 255 を設定し、Master として動作させます。
前提
- 物理 IP:
192.168.100.251 - 仮想 IP(VRIP):
192.168.100.254 - インターフェース:
port3
config system interface
edit "port3"
set vdom "root"
set ip 192.168.100.251 255.255.255.0
set allowaccess ping
set vrrp-virtual-mac enable
# ▼ ここから VRRP の設定
config vrrp
edit 1
# ▲ この "edit 1" の数値が VRID(仮想ルーター ID)として機能
set version 2
set vrip 192.168.100.254
set priority 255
next
end
next
endコマンドの補足
edit 1-
この数値が VRID(仮想ルータ ID)そのもの を表します。
set vridというコマンドは存在しないため、別途記述する必要はありません。VRID は対向機器と一致させる必要があり、FortiGate の有効範囲は 1〜255 です。 set version-
VRRPv2(既定)と VRRPv3 から選択します。他社機器と接続する場合はバージョンを揃える ことが重要です。Cisco 機器はモデル・IOS バージョンにより既定が異なるため、接続前に確認することをおすすめします。
set vrrp-virtual-mac enable-
VRRP 仮想 MAC アドレス(
00-00-5E-00-01-XX)を有効化します。他社機器との連携や、フェイルオーバー時の ARP テーブル更新を高速化したい場合に有効化 をおすすめします。
参考: Fortinet Community / Configuration Example: How to configure VRRP between a FortiGate and a Cisco router
“It is also important to ensure the following command is issued on the FortiGate network interface. This enables the VRRP virtual MAC address between the two devices: set vrrp-virtual-mac enable”
(FortiGate のインターフェースでset vrrp-virtual-mac enableを有効化することが重要です。これにより 2 機器間で VRRP 仮想 MAC アドレスが利用されます)
https://community.fortinet.com/t5/FortiGate/Configuration-Example-How-to-configure-VRRP-between-a-FortiGate/ta-p/196781
Backup(Secondary)側の設定
障害時に備えて待機する予備機(Backup)の設定です。Master よりも低い Priority を設定することで、待機側として動作します。
前提
- 物理 IP:
192.168.100.252 - 仮想 IP(VRIP):
192.168.100.254(Master と同じ)
config system interface
edit "port3"
set vdom "root"
set ip 192.168.100.252 255.255.255.0
set allowaccess ping
set vrrp-virtual-mac enable
# ▼ ここから VRRP の設定
config vrrp
edit 1
# ▲ "edit 1" の数値が VRID(Master と一致させる)
set version 2
set vrip 192.168.100.254
set priority 100
next
end
next
end【設定まとめ】Master と Backup の比較
Master と Backup の設定の違いは、基本的に 「自身の物理 IP」 と 「Priority(優先度)」 の 2 点だけです。
| 設定項目 | Master(FG01) | Backup(FG02) | 備考 |
|---|---|---|---|
| 物理 IP | 192.168.100.251 | 192.168.100.252 | 機器固有のアドレス |
| 仮想 IP(VRIP) | 192.168.100.254 | 192.168.100.254 | 同一にする |
VRID(edit の番号) | 1 | 1 | 同一にする |
| Priority | 255(最高) | 100(低) | この差で Master / Backup を決定 |
| Version | 2 | 2 | 対向と揃える(v2 / v3) |
| 仮想 MAC | enable | enable | 他社連携・高速切替時に有効 |
Preempt(切り戻し)設定について
VRRP には Preempt(プリエンプト) という機能があります。Master がダウンして Backup が昇格した後、復旧した Master が即座に Master の座を取り戻す動作を制御するパラメータです。
- 既定値:
enable(有効) - 動作: 復旧した Master(Priority 255)を検知すると、Backup(Priority 100)は待機状態に戻ります
通常はそのままで問題ありませんが、回線が瞬断しやすい環境で頻繁な切り替わりを避けたい場合は、set preempt disable を設定することもあります。
参考: Fortinet Document Library / Preempt mode(FortiOS 7.6.5)
“When preempt mode is enabled (the default setting), a higher priority backup router can preempt a lower priority primary router.”
(Preempt モードが有効な場合(既定)、優先度の高い Backup ルータが優先度の低い Primary ルータを置き換えることが可能です)
https://docs.fortinet.com/document/fortigate/7.6.5/administration-guide/762726/preempt-mode
タイマーパラメータと既定値の早見表
VRRP の挙動は複数のタイマー値で決まります。他社機器と接続する場合、これらの値を揃えないとネゴシエーションが成立しないことがあります。FortiGate の既定値と仕様範囲をまとめます。
| パラメータ | 既定値 | 仕様範囲 | 役割・補足 |
|---|---|---|---|
priority | 100 | 1〜255 | 大きい値が Master に選出される。Master 側は 255 を推奨 |
adv-interval | 1 秒 | 1〜255 秒 | Master が Advertisement を送信する間隔 |
start-time | 3 秒 | 1〜255 秒 | 起動直後に Advertisement の送受信を待つ時間 |
preempt | enable | enable / disable | 復旧した Master が再昇格するかを制御 |
version | 2 | 2 / 3 | VRRPv2 / VRRPv3 の選択。対向と揃える必要あり |
vrgrp | 0 | 0〜65535 | VRRP グループ ID。複数 VRID を連動させる場合に使用 |
| Backup 昇格までの待機時間 | 約 3 秒 | – | adv-interval × 3 で算出(既定 1 秒 × 3) |
| マルチキャストアドレス | 224.0.0.18 | – | VRRP Advertisement の宛先(IPv4) |
| プロトコル番号 | 112 | – | IP プロトコル番号 |
ベンダーの資料では「adv-interval の 3 倍」と簡略に説明されることが多いのですが、RFC 5798 では priority から算出される Skew Time が加算されます。既定値どうしの構成では 3 秒ではなく 3.6 秒前後が目安になります。算出式の詳細は関連記事『VRRP とは|Master 選出と priority 設計の落とし穴』で整理しています。
参考: Fortinet Document Library / VRRP failover(FortiOS 7.4.4)
“The waiting period is three times the adv-interval. … The VRRP startup time is the time a backup or primary VRRP router waits before sending or receiving VRRP advertisements before potentially changing state (start-time in seconds, 1 – 255, default = 3).”
(Backup ルータの待機時間はadv-intervalの 3 倍です。起動時間の既定値は 3 秒、範囲は 1〜255 秒です)
https://docs.fortinet.com/document/fortigate/7.4.4/administration-guide/237072/vrrp-failover
FortiOS 7.6 系での新機能: ミリ秒単位の Hello タイマー
FortiOS 7.6.0 以降では、Advertisement 間隔をミリ秒単位で設定できるようになりました。秒単位では実現できなかったサブセコンドのフェイルオーバーが可能になり、可用性要件が高い環境で活用できます。ただし、対向機器側もミリ秒単位設定に対応している必要があるため、構成前に対向側の仕様確認をおすすめします。
重要機能: 経路監視(vrdst)で障害時に切り替える
VRRP を設計する際、見落としやすい挙動があります。「ルータの電源が落ちたら切り替わるが、上流のインターネット回線が切れても切り替わらない」 というものです。
経路監視が必要な理由
VRRP は標準では「自身のインターフェースが UP / DOWN か」のみを判定します。FortiGate の上流に接続されている ONU や上位ルータが故障しても、FortiGate との間の LAN ケーブルが UP のままであれば、FortiGate のインターフェースは UP と判定されます。
結果、Master 状態が維持されたまま、上流への通信だけが届かない サイレント障害(パケットが黙って失われる状態) が発生する可能性があります。これを回避するための仕組みが 経路監視(vrdst) です。
監視設定
以前は config system link-monitor を VRRP と組み合わせる複雑な設定が必要でしたが、現在は VRRP 設定の中に set vrdst(Virtual Router Destination)を追加するだけで構成できます。
動作の仕組み
- 指定した IP アドレス(例: 8.8.8.8)へ常時 Ping を送信します
- 到達性が失われると、Master は VRRP Advertisement の送信を停止します
- Backup が Advertisement を受信できなくなり、待機時間の経過後に Master へ昇格します(フェイルオーバー)
Priority が低下するわけではない点に注意が必要です。Master が能動的に Priority を下げて通知する動作は、後述の vrdst-priority を設定した場合に限られます。
設定コマンド(Master / Backup 共通)
config system interface
edit "port3"
config vrrp
edit 1
# ▼ 監視先の IP アドレス(例: Google Public DNS)
set vrdst 8.8.8.8
next
end
next
end参考: Fortinet Document Library / VRRP failover(FortiOS 7.6.4)
“it stops sending VRRP advertisement messages”
(Primary が監視先に接続できない場合、VRRP Advertisement の送信を停止します)
https://docs.fortinet.com/document/fortigate/7.6.4/administration-guide/237072/vrrp-failover
設計時のポイント
- 監視先
-
直上の上位ルーター(GW)や信頼性の高い 8.8.8.8 などを設定します。vrdst は最大 2 つまで指定可能で、複数指定する場合はスペース区切りで記述します。
set vrdst 10.10.10.20 10.20.20.102 つ設定した場合の判定条件(両方が到達不能になったときのみか、片方でも障害判定されるか)は、公式ドキュメントで明示されていません。2 つ指定する構成を採用する場合は、事前の検証をおすすめします。
- 共通設定
-
この設定は Master だけでなく Backup 側にも入れておくこと をおすすめします。Backup 側の上流が落ちている状態で Master に昇格してしまう事故の防止につながります。
Link Monitor との使い分け
ネット上の古い記事には config system link-monitor を使う方法が書かれていることがあります。
- Link Monitor
-
インターフェースのダウンやルーティング制御を行う汎用機能。VRRP との連携設定はやや複雑です。
vrdst(推奨)-
VRRP 専用の監視機能。設定がシンプルで、VRRP のステータス変更に直結します。新規構築では
vrdstの利用が標準的です。
vrdst-priority で高速フェイルオーバーを実現する
vrdst だけでは、上流障害時に Master が Advertisement を停止してから Backup が昇格するまで、adv-interval × 3(既定で約 3 秒)の待機時間が発生します。この待機時間を短縮するには、vrdst-priority オプションが利用できます。
vrdst-priority は、vrdst 監視先への到達性が失われた際、Master 自身が Advertisement に含める Priority を能動的に低下させて Backup へ通知する 仕組みです。Backup は Advertisement の停止を待つことなく、Priority の逆転を即座に検知して Master に昇格できます。
設定例
config system interface
edit "port3"
config vrrp
edit 1
set vrip 192.168.100.254
set priority 255
set vrdst 8.8.8.8
set vrdst-priority 10 # ← 障害時に通知する低下後の Priority
next
end
next
endこの例では、Master 機の通常 Priority は 255 ですが、vrdst の 8.8.8.8 への到達性が失われた瞬間、自身の Priority を 10 として Advertisement を送信します。Backup の Priority(100)のほうが高くなるため、即座にフェイルオーバーが発生します。
公式ドキュメントでも、このオプションが IPv4 VRRP のフェイルオーバー時間を短縮する目的で利用できると説明されています。
なお、vrdst-priorityは IPv4 VRRP では従来から利用可能ですが、IPv6 VRRP(VRRP6)では FortiOS 7.6.x 以降での対応となっています。古い FortiOS で IPv6 を利用する場合は注意が必要です。


設計時に押さえたい制約事項
VRRP は標準規格でシンプルですが、設計段階で把握しておかないと後から手戻りにつながるポイントがあります。導入前に確認したい制約を整理します。
インターフェース・トポロジに関する制約
- VRRP は物理インターフェースまたは VLAN インターフェースでのみ設定可能
-
複数の物理ポートを束ねた hardware-switch インターフェースでは構成できません。LAG(aggregate)や VLAN 上では構成可能です。
- 同一サブネット内に閉じる
-
VRRP は L2 隣接が前提のプロトコルです。ルータを跨いだ広域構成では利用できず、ピア同士は同じ L2 セグメントに所属する必要があります。
- マルチキャスト通信が前提
-
VRRP は
224.0.0.18を使用します。中間スイッチで IGMP snooping により VRRP マルチキャストが遮断されないか、設計段階で確認することをおすすめします。
セッション・通信の取り扱いに関する制約
- セッション同期がない
-
フェイルオーバー時に既存セッションは切断されます。HTTP / HTTPS / VPN / SSH などは再接続が必要になる前提で設計してください。HA(FGCP)と最も大きく異なる点です。
- 下流機器の ARP キャッシュに依存
-
仮想 MAC(
vrrp-virtual-mac enable)を有効化しない場合、フェイルオーバー時に下流機器の ARP テーブル更新(gratuitous ARP の伝播)まで通信断時間が伸びる可能性があります。 - 状態通知のみで経路情報は流れない
-
VRRP はルーターの状態を通知するプロトコルであり、ルーティング情報を交換しません。経路冗長は別途 OSPF や BGP、SD-WAN などで設計します。
バージョン・認証に関する制約
- VRRPv3 では認証フィールドが廃止
-
VRRPv2 にはパスワード認証フィールドがありましたが、VRRPv3 では仕様から削除されています。認証要件がある場合はバージョン選定で考慮が必要です。
- 対向と Version の整合が必要
-
Cisco IOS では既定が VRRPv2、新しい IOS XE では VRRPv3 が既定など、機器によって異なります。
set versionを明示的に指定し、対向側と揃える設計をおすすめします。
VDOM 環境での制約
- VRRP 設定は VDOM 内で完結
-
マルチ VDOM 環境では、対象 VDOM 内のインターフェースに対して個別に設定します。Global ビューで一括管理することはできません。
参考: Fortinet Community / Technical Tip: FortiGate VRRP configuration and debug
“VRRP can be configured only on physical interfaces or VLAN interfaces. It is not possible to configure VRRP on hardware-switch interfaces where multiple physical interfaces are combined into a hardware-switch interface.”
(VRRP は物理インターフェースまたは VLAN インターフェース上でのみ構成可能です。複数の物理インターフェースを束ねた hardware-switch インターフェース上では構成できません)
https://community.fortinet.com/t5/FortiGate/Technical-Tip-FortiGate-VRRP-configuration-and-debug/ta-p/197015
動作確認コマンドと見方
設定が完了したら、以下のコマンドでステータスを確認します。
① VRRP ステータスの確認
最も基本的な確認コマンドです。自分が現在 Master(PRIMARY)か Backup かを確認します。
get router info vrrpMaster 機の表示例(正常時)
Interface: port3, primary IP address: 192.168.100.251
VRID: 1
vrip: 192.168.100.254
priority: 255, state: PRIMARY <-- ★ここを確認
vrdst: 8.8.8.8Backup 機の表示例(正常時)
Interface: port3, primary IP address: 192.168.100.252
VRID: 1
vrip: 192.168.100.254
priority: 100, state: BACKUP <-- ★ここを確認確認ポイント
state:PRIMARYなら稼働中、BACKUPなら待機中です。priority: 設定どおりの値か確認します。Master 機なのに priority が下がっている場合、vrdst監視が作動している可能性があります。
② 監視状況の確認(Ping ステータス)
set vrdst で設定した監視先に Ping が応答しているかを確認します。vrdst は内部的に link-monitor の仕組みを利用しているため、以下のコマンドで状態を確認できます。
diagnose sys link-monitor status表示例
Link Monitor: vrrp-1-1, Status: alive <-- ★ここを確認
Peer: 8.8.8.8(8.8.8.8)
protocol: ping, state: alive
Packet lost: 0.000% <-- パケットロス率
Latency(Min/Max/Avg): 3.6/4.6/4.1 ms確認ポイント
Status:aliveなら正常。dieの場合は監視失敗(障害判定された状態)です。- トラブルシュート: 意図せずフェイルオーバーが発生する場合、
Packet lostを確認し、回線品質の劣化に起因するフラッピングかを切り分けます。
③ VRRP デバッグログの確認
VRRP のネゴシエーションが成立しない場合、デバッグログの出力で原因を切り分けます。
# デバッグログを有効化
diagnose debug application vrrpd -1
diagnose debug enable
# 確認後はデバッグを無効化
diagnose debug disable
diagnose debug resetよくあるエラー出力例
[vrrp_packet_proc:1411]: cannot find vrt (11, 39)
↑ ↑
| └ 受信した VRID(対向側)
└─── 受信したインターフェース番号このログは、自機で設定している VRID と対向機器が送信している VRID が一致していないことを示しています。Cisco 機器との接続時に最も発生しやすいトラブルで、両機器の VRID を再確認することで解消します。
④ VRRP パケットのキャプチャ
VRRP Advertisement が物理層・L2 層で正しく送受信されているかを確認するには、パケットキャプチャが有効です。
# VRRP(プロトコル番号 112)のパケットをキャプチャ
diagnose sniffer packet <インターフェース名> "proto 112" 4 0 a
# 例: diagnose sniffer packet port3 "proto 112" 4 0 aMaster からの Advertisement が確認できない場合、以下の可能性があります。
- 中間スイッチでの VRRP マルチキャスト(
224.0.0.18)の遮断 - VLAN タグ不一致
- インターフェースの物理リンクダウン
⑤ Master / Backup の状態が頻繁に切り替わる場合
意図せず Master / Backup の状態が頻繁に変わる(フラッピング)場合、以下のチェックをおすすめします。
start-timeを延長してみる-
スパニングツリーが有効な L2 スイッチを経由する場合、起動直後に Advertisement が遅延することがあります。
set start-time 10のように延長すると安定するケースがあります。 Packet lostを確認-
diagnose sys link-monitor statusで監視先へのパケットロス率を確認し、回線品質に起因するフラッピングかを切り分けます。 vrgrpの設定漏れ-
複数 VRID を連動させたい場合に
vrgrpが未設定のままだと、片方だけが切り替わる挙動になります。
まとめ
本記事では、FortiGate における VRRP(Virtual Router Redundancy Protocol)の設定手順について整理しました。
- FortiGate 同士の冗長化は HA(FGCP)が基本、他社製品との連携では VRRP を選択
config vrrp配下のedit <番号>が VRID として機能し、set vridの記述は不要- Cisco との接続では
set vrrp-virtual-mac enableとset versionの整合が前提 - priority 255 は Cisco 側で設定できないため、対向構成では 1〜254 で揃える
- vrdst 単体の動作は Advertisement の送信停止であり、priority の低下ではない
- 高速切替が必要な場合は vrdst-priority で Master が priority を能動的に低下
- hardware-switch 非対応・L2 隣接前提・セッション非同期などの制約を事前に把握
以上、最後までお読みいただきありがとうございました。

