【注意】FortiGate RAM 2GB以下の小型モデルで ver.7.4.4からProxy機能廃止、ver.7.6.0からSSL-VPN機能廃止 被害者が散見しています> Membership

FortiGate トランスペアレント HA での切り替わり時の GARP 送信の仕様について解説

目次

本記事について

本記事では、Fortinet 社のファイアウォール製品である FortiGate に関して、トランスペアレントモードで HA を構成している場合における切り替わり(フェイルオーバー)発生時の GARP 送信の仕様について説明します。

動作確認環境

本記事の内容は以下の機器にて動作確認を行った結果に基づいて作成されています。

  • FortiGate-60F
    • バージョン 7.4.3

HA のフェイルオーバー時の GARP 送信

FortiGate のデフォルトのオペレーションモードである NAT モードにて HA を構成している場合、フェイルオーバーが発生したタイミングで新プライマリ機から GARP が送信されます。この GARP により隣接機器からの通信先が新プライマリ機に切り替わり通信断時間を最小限にすることができます。

NAT モードにおける GARP について詳しくはこちらの記事を確認してください。

ではトランスペアレントモードの FortiGate で HA を構成している場合は GARP は送信されるのでしょうか?

答えは YES です。

トランスペアレントモードの HA でもフェイルオーバー発生時に新プライマリ機から GARP が送信されます。

以下で詳しく説明します。

トランスペアレントモード HA での基本通信動作

以下図のように FortiGate はトランスペアレントモードで HA を構成しています。internal1 は内部ネットワークのスイッチに接続し、wan1 は外部ネットワークのスイッチに接続しています。内部ネットワーク端末は外部ネットワーク側のルータのアドレスをデフォルトゲートウェイと設定しています。

端末が初めて外部ネットワークと通信する際は、デフォルトゲートウェイであるルータの MAC アドレスを取得する必要があります。このときの ARP 通信の流れは以下のようになります。

  • 端末から ARP 要求 (ブロードキャスト) が送信されます
  • 内部ネットワークのスイッチは ARP 要求をブロードキャストします
  • FortiGate のプライマリ機は ARP 要求を転送します。一方セカンダリ機は ARP 要求を転送しません
  • 外部ネットワーク側のスイッチを経由してルータに ARP 要求が届きます

ARP 要求を受け取ったルータは ARP 応答します。

  • ルータは ARP 応答します
  • FortiGate のプライマリ機は ARP 応答を転送します
  • 内部ネットワークのスイッチは ARP 応答を転送すると当時に、ルータの MAC アドレスと接続ポートの組み合わせを MAC アドレステーブルに記録します
  • 端末が ARP 応答を受信しルータの MAC アドレスを学習します

上記の③で内部ネットワークのスイッチがルータの MAC アドレスの接続ポートを FortiGate のプライマリ機と接続するポートとして学習することにより、以後のルータ宛の通信がプライマリ機を通るようにスイッチングされるようになります。

なお外部ネットワーク側のスイッチでも同様に端末の MAC アドレスと接続ポートを学習しています。

フェイルオーバー発生時の GARP 送信の仕様

トランスペアレントモードの HA でもフェイルオーバー発生時に新プライマリ機から GARP が送信されます。

例えば以下の構成でプライマリ機の wan1 で障害が発生した場合を考えます。

  • プライマリ機の wan1 リンクで障害が発生します
  • FortiGate でフェイルオーバーが発生します
  • 新プライマリ機の各インターフェースから GARP が送信されます

この時 FortiGate の新プライマリ機から送信される GARP は、FortiGate が持つ仮想 MAC アドレスに関する GARP の他、FortiGate が学習している隣接機器の MAC アドレスに関する GARP も送信されます

以下は実際にフェイルオーバー発生時に内部ネットワークでパケットキャプチャした結果です。FortiGate の MAC アドレスの他、Cisco の MAC アドレスに関する GARP が送信されていることが分かります。この MAC アドレスは外部ネットワークのルータの MAC アドレスです。

FortiGate はトランスペアレントモードのため自分自身は IP アドレスを持たないため、Sender IP は 0.0.0.0 となっています。

外部ネットワークのルータの MAC アドレスに関する GARP が送信されることにより、内部ネットワークのスイッチでは当該ルータの MAC アドレスと接続ポートの組み合わせを再学習します。これにより以後の当該ルータ宛の通信が新プライマリ機を通るようにスイッチングされるようになります。

GARP 送信に関する設定

GARP 送信有無は HA に関する設定項目により制御されています。該当コンフィグは以下です。

config system ha
    set gratuitous-arps enable
    set arps 5
    set arps-interval 8
end

上記設定は 8 秒間隔で 5 回 GARP が送信されることを意味しています。

この設定は NAT モードにおける GARP 送信設定と同じです。

FortiGate で学習されている MAC アドレスの確認コマンド

FortiGate でどの MAC アドレスが学習されているかについては、以下のコマンドで確認できます。

学習済み MAC アドレス確認コマンド
  • diag netlink brctl name host root.b

以下は実行例です。

FortiGate-60F-01 # diag netlink brctl name host root.b
show bridge control interface root.b host.
fdb: hash size=8192, used=13, num=13, depth=1, gc_time=4, ageing_time=3
Bridge root.b host table
port no device  devname mac addr                ttl     attributes
  4     8       internal1       00:e0:4c:27:ff:4a       4        Hit(4)
  9     13      a       00:09:0f:09:00:08       0       Local Static
  1     5       wan1    00:09:0f:09:00:00       0       Local Static
  7     11      internal4       00:09:0f:09:00:06       0       Local Static
  4     8       internal1       00:09:0f:09:00:03       0       Local Static
  4     8       internal1       00:22:0c:be:79:81       5        Hit(5)
  2     6       wan2    00:09:0f:09:00:01       0       Local Static
  1     5       wan1    00:42:68:f4:c5:20       13       Hit(13)
  6     10      internal3       00:09:0f:09:00:05       0       Local Static
 10     14      b       00:09:0f:09:00:09       0       Local Static
  3     7       dmz     00:09:0f:09:00:02       0       Local Static
  5     9       internal2       00:09:0f:09:00:04       0       Local Static
  1     5       wan1    00:42:68:f4:c5:27       2        Hit(2)

なお、この学習済み MAC アドレスリストはプライマリ機とセカンダリ機の間で同期されます。

マルチ VDOM を使用している場合は確認コマンドが変わりますので注意してください。

トランスペアレントモードでも GARP を出す FortiGate は優秀

本記事の検証構成のように、トランスペアレントモードの HA の各機器が同一スイッチに接続している構成では、仮に新プライマリ機から GARP が送信されない場合、隣接スイッチの MAC アドレステーブルが更新されません。MAC アドレステーブルが更新されないと、スイッチは相変わらず旧プライマリ機向けにスイッチングしてしまうため、フェイルオーバー発生時に通信が復旧しないことになってしまいます。

FortiGate の場合はトランスペアレントモードの HA でもフェイルオーバー発生時に新プライマリ機から GARP が送信されるためこの心配はありません。この点、優秀であるといえます。

一方、例えば Palo Alto 社製のファイアウォールの場合、トランスペアレントモードの HA ではフェイルオーバー発生時に新プライマリ機から GARP が送信されません。このため、本記事と同様の構成ではフェイルオーバー発生時に通信が復旧しないことになります。実際この仕様が問題になった案件を見たことがあります。

メーカによって仕様が異なるため注意しておきましょう。

参考資料

あわせて読みたい
Technical Tip: How to check MAC-address table in Transparent mode Description This article describes how to check MAC-address table in Transparent mode. Solution In transparent mode, to forward L2 traffic, the FortiGate does a...

【おすすめ】FortiGate の設計構築中なら以下の記事も役立つかもです

Amazon アフィリエイトリンク

以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。

note メンバーシップへの参加もお待ちしています!

note(ノート)
陰の構築者たちのメンバーシップ|シェイド@陰の構築者 ネットワーク設計構築をする人に役立つメンバーシップです。 独自ブログ(https://shadowgarden.org/)にてネットワークエンジニア向け情報を発信しており、その活動を応援...

【アフィリエイト】おすすめ WordPress テーマ【SWELL

当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。

また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。

技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。

レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次