FortiGate HA 構成時の MAC アドレスの仕組みを理解しよう

ファイアウォール(UTM)

作業環境

  • FortiGate-VM64 7.0.5

HA の VIP と MAC アドレスの話

ネットワーク機器で HA を構成する場合 VIP が使用されますが、このとき VIP に対応する MAC アドレスが何になるか、ということが割と重要になります。

MAC アドレスのパターンとしては機種や設定によって主に以下の 2 パターンがあります。

VIP の MAC アドレスのパターン
  • アクティブ機の実 MAC アドレスが使用されるパターン
  • 仮想 MAC アドレスが使用されるパターン

FortiGate では仮想 MAC アドレスが使用される

FortiGate で HA を構成する場合、MAC アドレスとしては仮想 MAC アドレスが使用されます。

HA を構成する各メンバは各インターフェースで実 MAC アドレスを持ちますが、プライマリ機では MAC アドレスとして仮想 MAC アドレスを持ってそれを使用することになります。

プライマリ機が切り替わると仮想 MAC アドレスは新プライマリ機に移ります。

各インターフェースの仮想 MAC アドレスはプライマリ機で以下コマンドを実行することで確認できます。

  • get hardware nic <interface 名>

以下出力例の Hwaddr: の部分に仮想 MAC アドレスが表示されます。

FortiGate01 # get hardware nic port1
Name:            port1
...
Hwaddr:          00:09:0f:09:00:00
Permanent Hwaddr:00:0c:29:72:bc:02
...

なお Permanent Hwaddr: は実 MAC アドレスです。

セカンダリ機では Hwaddr:Permanent Hwaddr: の両方に実 MAC アドレスが表示されます。

FortiGate02 # get hardware nic port1
Name:            port1
...
Hwaddr:          00:0c:29:f3:9a:de
Permanent Hwaddr:00:0c:29:f3:9a:de
...

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

仮想 MAC は以下の規則で決定されます。

仮想 MAC アドレスの規則
  • 00:09:0f:09:<group-id(16進数)>:(<vcluster_integer> + <idx>)
  • group-id: グループ ID(config system haset group-id)、デフォルトは 0
  • vcluster_integer: バーチャルクラスタ ID(VDOM 使用時に関係)
  • idx: インターフェース・インデックス番号(0,1,2,…)

FortiGate-VM での仮想 MAC アドレスの例:

Interface仮想 MAC アドレス
port100:09:0f:09:00:00
port200:09:0f:09:00:01
port300:09:0f:09:00:02
port400:09:0f:09:00:03
port500:09:0f:09:00:04
port600:09:0f:09:00:05
port700:09:0f:09:00:06
port800:09:0f:09:00:07
port900:09:0f:09:00:08
port1000:09:0f:09:00:09

「管理インターフェース」では仮想 MAC は無い

HA 設定における「管理インターフェース」と設定されているインターフェースでは仮想 MAC アドレスは使用されず、各メンバで実 MAC アドレスが使用されます。

port8 を管理インターフェースに設定している場合:

FortiGate01 # get hardware nic port8
Name:            port8
...
Hwaddr:          00:0c:29:72:bc:48
Permanent Hwaddr:00:0c:29:72:bc:48
...

FortiGate02 # get hardware nic port8
Name:            port8
...
Hwaddr:          00:0c:29:f3:9a:24
Permanent Hwaddr:00:0c:29:f3:9a:24
...

仮想 MAC が重複するケース

ネットワーク環境によっては、仮想 MAC が重複することがあります。

具体的には、同じセグメント内に 2 つ以上の FortiGate HA クラスタが存在し、グループ ID をデフォルトの 0 のままにしている場合です。

このような場合には、仮想 MAC が重複しないようにグループ ID を変更するなどの対応が必要となります。

プライマリ機切り替わり時の GARP の話

一般的に HA 構成がされている機器クラスタでは、アクティブ機が切り替わると新アクティブ機から GARP が送信され、隣接機器に VIP の MAC アドレスが変わったことを知らせます。

FortiGate の HA の場合、VIP の MAC アドレスには仮想 MACが使用されるため、プライマリ機の切り替わり前後で VIP の MAC アドレスが変わることはありません。ただ、プライマリ機切り替わり後に新プライマリ機からの GARP 送信は実施されます。

デフォルトでは 8 秒間隔で 5 回、GARP が送信されます。

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

GARP のパケットキャプチャ:

参考資料

Cluster virtual MAC addresses | Handbook


タイトルとURLをコピーしました