FortiGateのSD-WAN設定について
当記事では、FortiGateにおけるSD-WAN(software-defined wide area network)の設定方法について記載します。
目次
前提条件
本記事内の環境は、FortiGateのwan1をISP①(192.168.110.0/24)、wan2をISP②(192.168.120.0/24)と仮定して設定します。
- FortiOS
- 7.0.8 build0418
- 動作モード
- NATモード
環境図については以下の通りです。
SD-WANとは
SD-WANとは、広域ネットワークをソフトウェアによって管理する技術となります。
ヘルスチェックやルールを用いて特定のトラフィックを自動的にルーティングし、ネットワークの負荷を低減します。
SD-WANの設定の流れ
FortiGateにてSD-WANを構築する場合、以下の設定をしていきます。
- SD-WANゾーンへの追加
- スタティックルートの設定
- パフォーマンスSLAの作成
- SD-WANルールの作成
SD-WANゾーンへの追加
デフォルトで作成されている[virtual-wan-link]に対してインターフェイスを追加します。
※インターフェイス設定については割愛しております。
wan1
wan2
- ゲートウェイ:ゲートウェイIPを指定します。
※DHCP/PPPoEの場合は、ダイナミックまたは指定を選択します。
基本的にダイナミックで問題ございません。 - コスト:最小コスト(SLA)で使用する値となります。
- プライオリティ:ルーティングのプライオリティを指定します。
※主に暗黙のルールに合致したトラフィックのルーティングに使用されます。
スタティックルートの設定
スタティックルートの設定を行います。
パフォーマンスSLAの作成
インターネット上のサーバに対して、各インターフェイスを介してリンクの正常性をモニタリング(ヘルスチェック)する設定となります。
インターフェイスがヘルスチェックに失敗した場合、そのインターフェイス上のルートはSD-WANグループから削除され、トラフィックは他のインターフェイスを介してルーティングされます。
今回はGoogle社のPublic DNSサーバに対してpingによるモニタリング設定を行います。
※実運用において、宛先となるサーバは、可用性の高い複数のサーバに対して行うことが望ましいです。
- [ネットワーク] > [SD-WAN > [パフォーマンスSLA]に移動します。
- [新規作成]を押下します。
- 各項目を設定します。
- 名前:任意
- プローブモード:今回は[アクティブ]を設定します。
- プロトコル:ヘルスチェックに利用するプロトコル指定します。
今回は、[ping]を設定します。
※GUI上ではping、http、dnsのみ設定可能となりますが、CLI上では、更にtcp-echo、udp-echo、twamp、tcp-connect、ftpも指定することが可能です。 - サーバ:プローブを送信する先のサーバを指定します。
今回は[8.8.8.8]を設定します。
※1つのSLAに対して最大2つまで登録可能となります。 - 参加インターフェイス:SLAにてチェックを行うインターフェイスを指定します。
- SLAターゲット:有効にすることでトラフィックが流れる経路を制御するためのしきい値を設定できます。
- レイテンシ
- ジッタ
- パケットロス
-
- リンクステータス:ステータスを確認する頻度と有効/無効の基準を設定します。
- チェック間隔:プローブを送出する間隔
- 非アクティブまでの失敗回数:非アクティブとなるまでの失敗回数
- リンク回復までの回数:アクティブとなるまでの成功回数
- スタティックルートのアップデート:非アクティブ時にスタティックルートを無効にするかを設定します。
- リンクステータス:ステータスを確認する頻度と有効/無効の基準を設定します。
- [OK]を選択すると設定したルールが追加されます。
SD-WANルールの作成
セッションをSD-WANメンバーにどのように配布するかを制御する設定となります。
- [ネットワーク[ > [SD-WAN > [SD-WANルール]に移動します。
- [新規作成]を押下します。
- 各項目を設定します。(発信インターフェイスの設定によって一部設定が異なります。)
※画像はベストクオリティの設定例となります。
- 名前:任意
- 送信元:送信元を指定します。
- 宛先:宛先を指定します。
- 発信インターフェイス:発信インターフェイスをどのように選択するかの方法を選択します。
- マニュアル:送出するインターフェイスを手動(優先するインターフェイス/ゾーンプリファレンス)で設定します。
- ベストクオリティ:計測された結果の良いインターフェイスを自動で選択します。
- 最小コスト(SLA):SLAターゲットの条件を満たすインターフェイスのうち一番コストの低いインターフェイスを選択します。
- 帯域幅の最大化(SLA):SLAターゲットの条件を満たすインターフェイス間でロードバランシングされます。
- 優先するインターフェイス/ゾーンプリファレンス:ルールに該当した際にルーティングするインターフェイスまたゾーンを指定します。
- 計測されたSLA:SLAを選択します。※ベストクオリティのみ
- クオリティ基準:[レイテンシ][ジッタ][パケットロス][ダウンストリーム][アップストリーム][帯域幅][カスタマイズ]を選択します。
※ベストクオリティのみ - 必要なSLAターゲット:SLAを選択します。※最小コスト(SLA)/ 帯域幅の最大化(SLA)のみ
- 順方向/逆方向DSCP:有効にするとDSCPの値を変更可能となります。
- [OK]を選択すると設定したルールが追加されます。
Tips
動作の確認
動作の確認は、以下の内容を確認します。
- モニタリング状況の確認
# diagnose sys link-monitor interface [インターフェイス名] # diagnose sys link-monitor interface wan1 Interface(wan1): state(up, since Sat Jan 28 19:52:33 2023), bandwidth(up:409555bps, down:1155589bps), session count(IPv4:1166, IPv6:0), tx(795393001901 bytes), rx(1772828492260 bytes), latency(6.68), jitter(4.15), packet-loss(0.00). # diagnose sys link-monitor interface wan2 Interface(wan2): state(up, since Wed Jan 25 18:45:10 2023), bandwidth(up:327560bps, down:906788bps), session count(IPv4:3, IPv6:0), tx(304432497016 bytes), rx(705741824777 bytes), latency(1.62), jitter(0.23), packet-loss(0.00). # diagnose sys sdwan health-check status Health Check(HealthCheck): Seq(1 wan1): state(alive), packet-loss(0.000%) latency(1.699), jitter(0.128) sla_map=0x1 Seq(2 wan2): state(alive), packet-loss(0.000%) latency(3.767), jitter(1.324) sla_map=0x1
- SD-WANルールにおけるルーティングを行うインターフェイスの確認
GUI
※チェックがなく他の作成したルールに該当しない場合は、暗黙のルールによってインターフェイスを指定されます。
CLI
# diagnose sys sdwan service Service(1): Address Mode(IPV4) flags=0x200 use-shortcut-sla Gen(8), TOS(0x0/0x0), Protocol(0: 1->65535), Mode(priority), link-cost-factor(bibandwidth), link-cost-threshold(10), heath-check(Health_Check1) Members(2): 1: Seq_num(1 wan1), alive, bibandwidth: 1997156Kbps, selected 2: Seq_num(2 wan2), alive, bibandwidth: 1997363Kbps, selected Src address(1): 0.0.0.0-255.255.255.255 Dst address(1): 0.0.0.0-255.255.255.255
上記結果では、wan1の帯域幅よりもwan2の帯域幅の方が大きくなっておりますが、ルーティングされるインターフェイスとしては、wan1が選択されます。
理由としては、デフォルトで[link-cost-threshold]が10%となっており、seq_num(1)インターフェイスの値がseq_num(2)インターフェイスの値よりも10%下回るまでseq_num(1)インターフェイスが選択されるからです。
- L2SWのGi1/0/1をシャットダウンした際の結果について(ネットワークの到達性がない場合を想定)
# diagnose sys sdwan service Service(1): Address Mode(IPV4) flags=0x200 use-shortcut-sla Gen(8), TOS(0x0/0x0), Protocol(0: 1->65535), Mode(priority), link-cost-factor(bibandwidth), link-cost-threshold(10), heath-check(Health_Check1) Members(2): 1: Seq_num(2 wan2), alive, bibandwidth: 1998685Kbps, selected 2: Seq_num(1 wan1), dead Src address(1): 0.0.0.0-255.255.255.255 Dst address(1): 0.0.0.0-255.255.255.255
特定の通信のみを指定のインターフェイスから送出する方法について
運用上、SaaSサービス側で片方の固定 IPアドレスのみ許可している場合やYouTubeやWeb会議通信といった大容量通信を特定のインターフェイスに制限する場合は以下のような設定を行います。
- 宛先を指定します。
- 発信インターフェイス[マニュアル]を選択します。
- 優先するインターフェイスで送出したいインターフェイスのみを選択します。
※上記設定を行ったとしても、指定したインターフェイスのヘルスチェックが失敗した場合、ルールとしてマッチされなくなり、他にマッチ可能なルールにて通信が行われます。(他にない場合、暗黙のルールにマッチされます。)
以上でFortiGateにおけるSD-WANの設定方法についての説明を終了いたします。
記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。