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

FortiGate HA 構成時の仮想 MAC アドレスについて解説します

目次

本記事について

本記事では、Fortinet 社のファイアウォール製品である FortiGate について、HA 構成時に使用される仮想 MAC アドレスの仕組みを説明します。

本記事では NAT モードにおける HA の動作について説明しています。

動作確認環境

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

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

HA 構成時に FortiGate のプライマリ機が使われる仕組み

FortiGate に隣接する機器(端末、ルータ、スイッチなど)が FortiGate の持つ IP アドレス宛に初めて通信する際の流れは以下の通りです。

  • 送信元端末は FortiGate の持つ IP アドレスに対する ARP リクエスト(ブロードキャスト)を送信します
  • FortiGate のプライマリ機は ARP リクエストに応答します
    • セカンダリ機は ARP リクエストに応答しません
  • 経路途中のスイッチは ARP 応答から FortiGate の MAC アドレスと接続ポートの対応を学習します
  • 送信元端末は ARP 応答から MAC アドレスを学習します

この後、端末は学習した MAC アドレス宛に通信を行い、経路途中のスイッチは MAC アドレステーブルをもとにプライマリ機と接続するポートから出力します。このような流れでプライマリ機を通る通信が実現しています。

HA で使用する MAC は仮想 MAC アドレス

HA 構成時に FortiGate が使用する MAC アドレスは物理インターフェースに紐づく実 MAC アドレスではなく、それとは別の仮想 MAC アドレスです。

HA 構成時は、各物理インターフェースに対して仮想 MAC アドレスが割り当てられます。ただし、この仮想 MAC アドレスはプライマリ機のみが持ちます。フェイルオーバーが発生した場合は、仮想 MAC アドレスは新しいプライマリ機に移ります。

各物理インターフェースの仮想 MAC アドレスはプライマリ機にてget hardware nicコマンドを実行することにより確認できます。

FortiGate-60F-01 # get hardware nic wan1
Description         :FortiASIC NP6XLITE Adapter
Driver Name         :FortiASIC NP6XLITE Driver
Board               :60F
lif id              :0
lif oid             :64
netdev oid          :64
Current_HWaddr       00:09:0f:09:00:00
Permanent_HWaddr     74:78:a6:dd:9e:b4
========== Link Status ==========

上記出力例の「Current_HWaddr 00:09:0f:09:00:00」の部分が仮想 MAC アドレスです。
一方その下の「Permanent_HWaddr」は実 MAC アドレスです。

仮想 MAC アドレスの決定規則

各インターフェースの仮想 MAC アドレスはランダムではなく一定の規則に基づいて決まります。
その規則は以下の通りです。

仮想 MAC 決定規則
  • 00:09:0f:09:[group-id(16進数)]:[vcluster_integer + idx]
  • group-id は HA 設定の中で設定する Group ID の値です (デフォルト値なら 0)
  • vcluster_integer はマルチ VDOM を使用している場合に VDOM 別に決まる値です。マルチ VDOM を使用していない場合は「0」になります
  • idx はインターフェース ID です

以下に仮想 MAC アドレスの例を示します。

  • FortiGate-60F v7.4.3
  • Group ID 設定は 0
  • マルチ VDOM は使用していない
インターフェース仮想 MAC アドレス
wan100:09:0f:09:00:00
wan200:09:0f:09:00:01
dmz00:09:0f:09:00:02
internal100:09:0f:09:00:03
internal200:09:0f:09:00:04
internal300:09:0f:09:00:05
internal400:09:0f:09:00:06
internal500:09:0f:09:00:07
a00:09:0f:09:00:08
b00:09:0f:09:00:09

管理インターフェースでは仮想 MAC は使われない

HA 設定の「管理インターフェースの予約」で指定しているインターフェースについては仮想 MAC アドレスは使われず、実 MAC アドレスがそのまま使用されます。

フェイルオーバーが発生したときの動作

FortiGate でフェイルオーバーが発生すると、通信経路は新プライマリ機に切り替わります。その仕組みは以下の通りです。

  • 仮想 MAC アドレスが新プライマリ機に移ります
  • 新プライマリ機は FortiGate が持つ IP に対する GARP(ブロードキャスト)を送信します
  • 経路途中のスイッチは GARP から FortiGate の MAC アドレスと接続ポートの対応を再学習します
  • 送信元端末は GARP から MAC アドレスを再学習します

FortiGate から GARP が送信されることにより経路途中のスイッチは FortiGate の仮想 MAC アドレスの接続先ポートが変わったことを即座に学習でき、通信断時間は最小限で済みます。

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

フェイルオーバー発生時に新プライマリ機から GARP が送信されるかどうかや、送信間隔、送信回数は設定変更することができます。設定はconfig system ha内で行います。

デフォルトの設定は以下の通りです。

config system ha
    set gratuitous-arps enable
    set arps 5
    set arps-interval 8
end
  • gratuitous-arps:GARP を送信するかどうかです。デフォルトでは enable です
  • arps:GARP 送信回数です。デフォルトでは 5 回です
  • arps-interval:GARP 送信間隔です。デフォルトでは 8 秒間隔です

GARP のパケットキャプチャ

以下は上記構成例の端末において取得したフェイルオーバー時のキャプチャです。FortiGate から GARP が 8 秒間隔で 5 回送信されていることが分かります。

仮想 MAC アドレスの競合に注意

同一セグメント内に FortiGate の HA クラスタが 2 セット存在する場合を考えます。HA の仮想 MAC アドレスは主に Group ID とインターフェース ID で決まるため、どちらのクラスタも Group ID がデフォルトの 0 のままで、かつ接続インターフェースが同一の場合、仮想 MAC アドレスが同じになり通信が不安定になります。

このように同一セグメントに複数の HA クラスタが存在する場合は仮想 MAC アドレスの競合を避けるために Group ID をデフォルトから変更するといった対応が必要になります。

以上です。


【おすすめ】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をコピーしました!

コメント

コメントする

目次