FortiGate vrrp設定例

[更新: 2024年5月29日]

1. 概要

弊社による検証データの一部を公開した記事掲載となります。参考までにご利用ください。

注釈

お客様個別の要件定義、設計、開発・設定補助に関するサポートは、FortiGateVMのライセンスサービスに含まれません。上記、ご注意ください。


1.1 検証条件

  • 本掲載による構成は、後述のvrrpを予定するためルータ+スイッチを利用前提となります。
  • 本掲載による事前検証は、さくらのクラウド環境により実施された内容です。
  • vrrpの設定は其々のアプライアンスに必要ですが、基本masterの設定を記載のうえ省略した掲載となります。
  • FortiGateは、GUIとCLIのサポートとなります。掲載はCLI、GUIを適宜使い分け掲載いたします。
  • 本掲載により利用された検証環境のFortiOSは、両系ともに7.0.12です。
  • コマンドの一部は、<>記載により抽象化、強調記載を行います。お客様が入力を行う際は<>を削除、入力します。

1.2 環境構成図

FortiGateの基本設定例2 構成図から継続し解説します。

vrrp構成を想定するため、下記の通り同一ネットワークにFortiGateVMを構成します。

構成図

構成図

注釈

別途、同一のホスト環境へのVM収容を避けるためgroupタグを利用します。


2. vrrpの設定

本項目は、vrrp設定の一部について、解説します。

注釈

vrrpの設定は、CLIによる操作が必要です。


2.1 インターフェースへのvrrp設定

ssh接続、またはGUI管理画面のCLIコンソールから設定を実施します。下記は設定の参考コマンドです。

インターフェースのコマンド(master)

masterへ設定後、backupにも同様に設定を実施します。

Fortisacloud_master # config system interface
Fortisacloud_master (interface) # edit <対象port>
Fortisacloud_master (port1) # config vrrp
Fortisacloud_master (vrrp) # edit <識別子(数字 1-255)>
new entry '1' added
Fortisacloud_master (1) # set vrip <バーチャルIPアドレス>
Fortisacloud_master (1) # set priority <優先度:標準100>
Fortisacloud_master (1) # show full-configuration
Fortisacloud_master (1) # set adv-interval 5
config vrrp
    edit 1
        set version 2
        set vrgrp 0
        set vrip <バーチャルIPアドレス>
        set priority 255
        set adv-interval 5
        set start-time 3
        set preempt enable
        set status enable
    next
end
Fortisacloud_master (1) # end
Fortisacloud_master (port1) # end
Fortisacloud_master #

注意

さくらのクラウド仕様により設定可能なvrgrp(VRID)の値に制限があります。


2.2 管理画面へのアクセス設定

既存のIPアドレスをデータポートとして活用する際は、管理アクセス用にセカンダリIPアドレスを設定しアクセスを分離することも可能です。


2.2.1 GUIによる設定

GUIによるセカンダリIPアドレスの設定は、下記のメニュー順に操作、IPアドレスを設定します。

インターフェースの編集画面

ネットワーク >>> インターフェース >>> 対象ポート >>> アドレス

インターフェースの編集画面

2.2.2 CLIによる設定

CLI操作は、secondaryipの項目を設定します。

インターフェース(master)

Fortisacloud_master # config system interface
Fortisacloud_master (interface) # edit <対象port>
Fortisacloud_master (port1) # set secondary-IP enable
Fortisacloud_master (port1) # config secondaryip
Fortisacloud_master (secondaryip) # edit <任意のID番号>
new entry '1' added
Fortisacloud_master (1) # set ip <グローバルIPアドレス> <サブネットマスク>
Fortisacloud_master (1) # set <許可するプトロコル>
Fortisacloud_master (1) # end
Fortisacloud_master (port1) # end
Fortisacloud_master #

2.3 ステータスの確認

vrrpをmaster/backupに設定後、アドバタイズメントにより切り替わりの処理を開始します。

CLIにより下記のコマンドを利用、設定情報や状態を確認します。

vrrpの確認コマンド(master)

Fortisacloud_master # get router info vrrp
Interface: port1, primary IP address: <MaseterIPアドレス>
UseVMAC: 0, SoftSW: 0, BrPortIdx: 0, PromiscCount: 0
HA mode: primary (0:0:1) VRRP master number: 1
VRID: 1 verion: 2
    vrip: <バーチャルIPアドレス>, priority: 255 (255,0), state: MASTER
    adv_interval: 1, preempt: 1, ignore_dft: 0 start_time: 3
    master_adv_interval: 100, accept: 1
    vrmac: <仮想macアドレス>
    vrdst:
    vrgrp: 0

vrrpの確認コマンド(backup)

Fortisacloud_backup # get router info vrrp
Interface: port1, primary IP address: <BackupIPアドレス>
UseVMAC: 0, SoftSW: 0, BrPortIdx: 0, PromiscCount: 0
HA mode: primary (0:0:1) VRRP master number: 0
VRID: 1 verion: 2
    vrip: <バーチャルIPアドレス>, priority: 100 (100,0), state: BACKUP
    adv_interval: 1, preempt: 1, ignore_dft: 0 start_time: 3
    master_adv_interval: 100, accept: 1
    vrmac: <仮想macアドレス>
    vrdst:
    vrgrp: 0

注釈

vrrpに仮想MACを利用する際は、CLI操作により各インターフェースの設定 vrrp-virtual-mac を有効化してください。


3. NAT設定

本項目は、VIPに着信したアクセスをDNATによりインライン配下の仮想サーバーへアクセスさせる設定を解説します。

注釈

本解説は、事前にローカルネットワーク、各インターフェースへvrrpの設定済として一部記載を省略します。


3.1 バーチャルIPの設定

DNATに利用するバーチャルIPを設定します。

注釈

一部設定がCLIのみのためCLIによる設定方法を記載します。

バーチャルIPの設定コマンド

Fortisacloud_master # config firewall vip
Fortisacloud_master (vip) # edit <バーチャルIP設定名>
Fortisacloud_master (vrrp_dnat) # set extip <vrrpのバーチャルIPアドレス>
Fortisacloud_master (vrrp_dnat) # set type static-nat
Fortisacloud_master (vrrp_dnat) # set mappedip <NAT先のサーバーアドレス>
Fortisacloud_master (vrrp_dnat) # set extintf port1
Fortisacloud_master (vrrp_dnat) # set arp-reply disable
Fortisacloud_master (vrrp_dnat) # end

注釈

arp-reply は、CLIのみで変更可能、標準では有効(enable)です。vrrpを利用する際は、MACアドレスのARPリクエストを変更します。
https://community.fortinet.com/t5/FortiGate/Technical-Tip-ARP-reply-setting-in-Virtual-IP-IP-Pool/ta-p/192527?externalID=FD38566


3.2 ファイアウォールの設定

作成したバーチャルIPを利用、ファイアウォールの設定を行いNATとアクセス許可を行います。

参考例では、事前に送信元を国内に限定、設定を行います。

注釈

本記載ではJPをロケーションとするアドレス定義の設定を省略します。


3.2.1 GUIによるファイアウォール設定

GUIによるファイアウォールの設定は、下記のメニュー順に操作、ポリシーを設定します。

新規ポリシー編集画面

ポリシー&オブジェクト >>> ファイアウォールポリシー >>> 新規作成

ポリシーの編集画面により各項目を入力します。送信元に国内指定したアドレス設定、宛元に作成したバーチャルIP設定、を行います。

新規ポリシー編集画面

注釈

インスペクションモードは2種類あります。フローベースは軽量な処理を前提とするため機能と処理が簡略化されます。ここでは全ての機能活用と処理簡略化を防ぐためプロキシベースを採用しました。


3.3 ファイアウォールに関する補足

インスペクションモードは、 フローベース プロキシベース の2種類があります。

項目3.2.1の通り其々に特徴があります。下記などを参考にルールを設計し適用ください。

FortiGate document library About inspection modes

https://docs.fortinet.com/document/fortigate/6.2.15/cookbook/721410/about-inspection-modes

注釈

フローベースは、処理軽減が可能ですが、全てのセキュリティプロファイルを設定できません。


4. vrrp構成の注意事項

4.1 異なるゾーン間の冗長

vrrpは同じネットワークセグメント上に構成する必要があります。

異なるゾーンによる冗長を意図する際は、グローバルネットワーク環境が異なるためvrrpでは実現ができません。

異なるゾーンのアクセスを設定する際は、GSLBなどの機能を活用しネットワークの設計ください。

注釈

ブリッジ、ハイブリッド接続などは同じローカルネットワークに属するため仕様制限に接触しません。


4.2 vrrpイベントの監視

死活監視やlink monitorなど複数の方法があります。

Fortigateはオートメーションの機能により特定のID発生を検知後、特定のchat通知やwebhookの利用、メール通知、CLIスクリプトの実行が可能です。

FortiGate document library 27001 - LOG_ID_VRRP_STATE_CHG

https://docs.fortinet.com/document/fortigate/7.4.0/fortios-log-message-reference/27001/27001-log-id-vrrp-state-chg

FortiGate document library Automation stitches

監視と条件を組合せ、vrrpの状態遷移や異常検知を実施ください。

https://docs.fortinet.com/document/fortigate/7.2.5/administration-guide/139441/automation-stitches

イベント ルーターイベント logサンプル

vrrpの切り替わり発生に関するログは、ルーターイベントに格納されます。下記はBackup機に記録されたログの抜粋です。

date=2023-07-11 time=18:44:57 eventtime=1689068697656891523 tz="+0900" logid="0103027001" type="event" subtype="router" level="information" vd="root" logdesc="VRRP state changed" interface="port2" msg="VRRP vrid 1 vrip <IPアドレス> changes state from Master to Backup due to ADVERTISEMENT with higherer priority received" utmref=0:1689068697
date=2023-07-11 time=18:44:57 eventtime=1689068697656849245 tz="+0900" logid="0103027001" type="event" subtype="router" level="information" vd="root" logdesc="VRRP state changed" interface="port1" msg="VRRP vrid 1 vrip <IPアドレス> changes state from Master to Backup due to ADVERTISEMENT with higherer priority received" utmref=0:1689068697
date=2023-07-11 time=18:43:12 eventtime=1689068592863523903 tz="+0900" logid="0103027001" type="event" subtype="router" level="information" vd="root" logdesc="VRRP state changed" interface="port2" msg="VRRP vrid 1 vrip <IPアドレス> changes state from Backup to Master" utmref=0:1689068592
date=2023-07-11 time=18:43:11 eventtime=1689068591351739124 tz="+0900" logid="0103027001" type="event" subtype="router" level="information" vd="root" logdesc="VRRP state changed" interface="port1" msg="VRRP vrid 1 vrip <IPアドレス> changes state from Backup to Master" utmref=0:1689068591

注釈

サンプルのlogは、masterを停止、起動した際のbackup機側に記録された状態遷移発生のログです。