【Fortigate】WAN回線冗長(link-monitor設定) FortiOS6.4.2

FortigateでWAN回線を冗長化する際に、リンクモニタ(link monitor)機能を使用します。 リンクモニタ機能とは、監視したいインタフェースから特定の宛先にポーリングを実行し、ポーリングが失敗すると、そのインタフェースを使用したルート情報が無効となります。

以下の記事を前提に構成していますので、先に読んでいただくことをお勧めします。

>> 参考記事 : WAN回線分散(ECMP)FortiOS6.4.2

ECMPロードバランスの方式を送信元IPアドレスに戻し、端末(10.0.1.10)のすべての通信はプライマリ回線に接続されていることを事前に確認します。

WAN回線のモニターは、SD-WAN機能でも実現できます。下記記事もあわせて参考にしてください。

  >> 参考記事 :  SD-WAN機能(WAN回線分散)の動作確認
スポンサーリンク

リンクモニターの設定

CLIで設定します。

# config system link-monitor
(link-monitor) # edit 1
(1) # set srcintf port1
(1) # set server 8.8.8.8
(1) # set gateway-ip 10.0.0.1
(1) # next
(link-monitor) # edit 2
(2) # set srcintf port3
(2) # set server 8.8.8.8
(2) # set gateway-ip 10.0.2.1
(2) # next
(link-monitor) # end
  • srcintf;送信元のインタフェースを指定します。
  • server: ポーリング先のサーバを指定します。デフォルトはICMPです。今回は検証用途ですので、プライマリ、セカンダリとも8.8.8.8を指定します。
  • gateway-ip:ゲートウェイのアドレスを指定します。
スポンサーリンク

リンクモニタの状態確認

CLIで確認します。Link Monitor: 1がセカンダリ回線、Link Monitor: 2がプライマリ回線です。

# diagnose sys link-monitor status

Link Monitor: 1, Status: alive, Server num(1), Flags=0x1 init, Create time: Sat Oct 24 14:39:25 2020
Source interface: port1 (3)
Gateway: 10.0.0.1
Interval: 500 ms
  Peer: 8.8.8.8(8.8.8.8)
        Source IP(10.0.0.99)
        Route: 10.0.0.99->8.8.8.8/32, gwy(10.0.0.1)
        protocol: ping, state: alive
                Latency(Min/Max/Avg): 1.413/1.473/1.436 ms
                Jitter(Min/Max/Avg): 0.001/0.051/0.017
                Packet lost: 0.000%
                Number of out-of-sequence packets: 0
                Fail Times(0/5)
                Packet sent: 25519, received: 25508, Sequence(sent/rcvd/exp): 25520/25520/25521

Link Monitor: 2, Status: alive, Server num(1), Flags=0x1 init, Create time: Sat Oct 24 14:39:25 2020
Source interface: port3 (5)
Gateway: 10.0.2.1
Interval: 500 ms
  Peer: 8.8.8.8(8.8.8.8)
        Source IP(10.0.2.134)
        Route: 10.0.2.134->8.8.8.8/32, gwy(10.0.2.1)
        protocol: ping, state: alive
                Latency(Min/Max/Avg): 3.808/4.052/3.854 ms
                Jitter(Min/Max/Avg): 0.002/0.239/0.040
                Packet lost: 0.000%
                Number of out-of-sequence packets: 0
                Fail Times(0/5)
                Packet sent: 25519, received: 25504, Sequence(sent/rcvd/exp): 25520/25520/25521

プライマリ、セカンダリ回線とも、StatealivePacket lostが0%であり、正常にポーリングの応答があることが確認できます。

ルーティングテーブルを確認するとプライマリ、セカンダリ回線ともデフォルトルートが設定されています。

# get router info routing-table all
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default

Routing table for VRF=0
S*      0.0.0.0/0 [5/0] via 10.0.0.1, port1
                         [5/0] via 10.0.2.1, port3
C       10.0.0.0/24 is directly connected, port1
C       10.0.1.0/24 is directly connected, port2
C       10.0.2.0/24 is directly connected, port3
スポンサーリンク

リンクモニタの動作確認

では、プライマリ回線のルータ上位側を接続断します。

接続断後、リンクモニタの状態を確認します。

# diagnose sys link-monitor status

Link Monitor: 1, Status: alive, Server num(1), Flags=0x1 init, Create time: Sun Oct 25 10:47:50 2020
Source interface: port1 (3)
Gateway: 10.0.0.1
Interval: 500 ms
  Peer: 8.8.8.8(8.8.8.8)
        Source IP(10.0.0.99)
        Route: 10.0.0.99->8.8.8.8/32, gwy(10.0.0.1)
        protocol: ping, state: alive
                Latency(Min/Max/Avg): 1.486/1.534/1.502 ms
                Jitter(Min/Max/Avg): 0.001/0.043/0.013
                Packet lost: 0.000%
                Number of out-of-sequence packets: 0
                Fail Times(0/5)
                Packet sent: 373, received: 362, Sequence(sent/rcvd/exp): 374/374/375

Link Monitor: 2, Status: die, Server num(1), Flags=0x9 init, Create time: Sun Oct 25 10:47:50 2020
Source interface: port3 (5)
Gateway: 10.0.2.1
Interval: 500 ms
  Peer: 8.8.8.8(8.8.8.8)
        Source IP(10.0.2.134)
        Route: 10.0.2.134->8.8.8.8/32, gwy(10.0.2.1)
        protocol: ping, state: die
                Packet lost: 27.000%
                Number of out-of-sequence packets: 0
                Recovery times(0/5) Fail Times(3/5)
                Packet sent: 373, received: 331, Sequence(sent/rcvd/exp): 374/345/346

プライマリ回線側のStatedieとなり、Packet lostのパーセンテージが上昇(0%→27%)しています。

ルーティングテーブルを確認すると、プライマリ回線側のルート情報が消えています。

# get router info routing-table all
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default

Routing table for VRF=0
S*      0.0.0.0/0 [5/0] via 10.0.0.1, port1
C       10.0.0.0/24 is directly connected, port1
C       10.0.1.0/24 is directly connected, port2
C       10.0.2.0/24 is directly connected, port3

端末からGoogleやYahooなどアクセスすると、すべて、セカンダリ回線を経由していることがわかります。

スポンサーリンク

回線復旧

しばらく経過してから、回線を復旧させます。

リンクモニタの状態を確認すると、プライマリ回線のStatealiveになり、Packet lostのパーセンテージが減少(100%→91%)していることが確認できます。

# diagnose sys link-monitor status

Link Monitor: 1, Status: alive, Server num(1), Flags=0x1 init, Create time: Sun Oct 25 10:47:50 2020
Source interface: port1 (3)
Gateway: 10.0.0.1
Interval: 500 ms
  Peer: 8.8.8.8(8.8.8.8)
        Source IP(10.0.0.99)
        Route: 10.0.0.99->8.8.8.8/32, gwy(10.0.0.1)
        protocol: ping, state: alive
                Latency(Min/Max/Avg): 1.478/1.764/1.518 ms
                Jitter(Min/Max/Avg): 0.001/0.261/0.022
                Packet lost: 0.000%
                Number of out-of-sequence packets: 0
                Fail Times(0/5)
                Packet sent: 560, received: 549, Sequence(sent/rcvd/exp): 561/561/562

Link Monitor: 2, Status: alive, Server num(1), Flags=0x1 init, Create time: Sun Oct 25 10:47:50 2020
Source interface: port3 (5)
Gateway: 10.0.2.1
Interval: 500 ms
  Peer: 8.8.8.8(8.8.8.8)
        Source IP(10.0.2.134)
        Route: 10.0.2.134->8.8.8.8/32, gwy(10.0.2.1)
        protocol: ping, state: alive
                Latency(Min/Max/Avg): 3.854/4.297/3.929 ms
                Jitter(Min/Max/Avg): 0.000/0.388/0.063
                Packet lost: 91.000%
                Number of out-of-sequence packets: 0
                Fail Times(0/5)
                Packet sent: 560, received: 340, Sequence(sent/rcvd/exp): 561/561/562

ルーティングテーブルを確認すると、プライマリ、セカンダリ回線ともにデフォルトルートが設定されており、ルートも復旧しています。

# get router info routing-table all
Codes: K - kernel, C - connected, S - static, R - RIP, B - BGP
       O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default

Routing table for VRF=0
S*      0.0.0.0/0 [5/0] via 10.0.0.1, port1
                         [5/0] via 10.0.2.1, port3
C       10.0.0.0/24 is directly connected, port1
C       10.0.1.0/24 is directly connected, port2
C       10.0.2.0/24 is directly connected, port3
スポンサーリンク

参考資料

system link-monitor | CLI Reference

コメント