FortigateでWAN回線を冗長化する際に、リンクモニタ(link monitor)機能を使用します。 リンクモニタ機能とは、監視したいインタフェースから特定の宛先にポーリングを実行し、ポーリングが失敗すると、そのインタフェースを使用したルート情報が無効となります。
以下の記事を前提に構成していますので、先に読んでいただくことをお勧めします。
>> 参考記事 : WAN回線分散(ECMP)FortiOS6.4.2ECMPロードバランスの方式を送信元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
プライマリ、セカンダリ回線とも、StateがaliveでPacket 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
プライマリ回線側のStateがdieとなり、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などアクセスすると、すべて、セカンダリ回線を経由していることがわかります。
回線復旧
しばらく経過してから、回線を復旧させます。
リンクモニタの状態を確認すると、プライマリ回線のStateがaliveになり、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
コメント