FortiGateVM on AWS でSD-WAN/ADVPN2.0を試す(第一回:概要編)
はじめに
NTTデータ セキュリティ&ネットワーク事業部 テクニカル・グレードの田中智志です。主にお客様へのネットワークシステムの提案/設計構築や、新規サービス開発を担当しております。最近はAmazon Web Services(AWS)やFortiGateを触って試すといった機会が多いです。本BlogではAWS上にデプロイしたFortiGateVMを含む構成でADVPN2.0とSD-WANのトラフィックコントロールについて試してみましたので、概論から実際の検証結果までを不定期連載の中で紹介していきたいと思います。
第一回は検証構成と使用するテクニック、FortiGateVMのAWS上でのデプロイまでとなります。
FortiGateとは
FortiGateは米Fortinet社が販売する統合脅威管理 (UTM) アプライアンスであり、UTM市場において非常に高いシェアを維持し続けている製品です。近年はネットワーク機能の充実著しく、SD-WANルータとしての名声も高まってきています。
NTTデータのFortinet製品における取り組み
NTTデータは、Fortinet製品による次世代ファイアウォール(NGFW)、セキュアSD-WAN、ゼロトラストネットワークアクセスのサービスを拡大したことが評価され、2024年度のFortinet Japan Partner Awardsにて「Japan MSSP Partner of the Year」を受賞しています。
ADVPN2.0とは
ADVPN(Auto-Discovery VPN)はFortiGateの動的IPsec VPN機能です。ADVPNを活用することで、トラフィック状況に基づいた経路制御や、ハブ&スポークトポロジにおいてスポーク間トンネル(Shortcut)を使用した効率的な通信が可能になります。
近年リリースされたADVPN2.0ではトランスポートグループによるShortcutの制御などが強化され、よりSD-WANに特化したテクノロジーに進化しています。
AWS上にFortiGateVMをデプロイするメリット
AWSにFortiGateVMをHUBルータとしてデプロイし、オンプレミスのFortiGateとハブ&スポークVPNトポロジを形成することでAWSリソースへのダイレクトなリーチャビリティを提供可能なエンタープライズネットワークが構成できます。さらにFortiGateの持つ機能を組み合わせることで「セキュアSD-WAN」を実現することが可能です。
AWS上にデプロイした仮想ルータとAWSリソースのコネクティビティは、Cloud On-Ramp、Transit Gateway Connect、AWS Cloud WANのTunnel-less接続といったソリューションが用意されており、柔軟に統合することが可能になっています。
検証構成
今回は下図のような構成を試しています。
・HUB:FortiGateVM on AWS
・Spoke(DC):FortiGate 40F
・Spoke(Branch):FortiGate 40F
期待する動作
Spoke間の通信にはADVPN Shortcutを使用してHUBを経由しない直接通信を行います。
SD-WANルールを定義し、Spoke(Branch)のPCから、特定のインターネットアクセスはDIAされ、それ以外はSpoke(DC)にRIAされます。
ポイントとなるテクニック:
BGP on Loopback
FortiGate同士でのiBGPセッションにおいて各デバイスのループバックインターフェースを終端とする手法です。BGPピア間のプレフィックスとトンネル用のIPアドレスが不要となりコンフィグレーションおよびネットワーク全体にアドバタイズされるルート数を大幅に削減できます。アドバタイズするルートのネクストホップアドレスは各ルータのループバックインターフェースになります。
IKE extension:exchange-ip-addrv4
自身のループバックアドレスのルート情報をIKE拡張により対向機器にアドバタイズできる機能です。これはIPsec(HUB-Spoke)だけでなく、ADVPN Shortcut(Spoke-Spoke)でも機能します。ルーティングプロトコルを使用せずに前述のBGP on Loopbackを実現することができます。
RR(Route Reflector)レスのダイナミックBGP
FortiOS7.4以降の新機能です。ADVPN2.0のハブ&スポークトポロジにおいて、HUBルータはSpokeルータの持つルート情報をすべて学習しますが、Spokeルータは他のSpokeルータのルート情報を保持する必要はなく、デフォルトルートもしくはSpokeルータのループバックアドレスおよびLANプレフィックスのサマリールートのみ学習します。Spoke-Spoke間のトラフィックが発生した場合はADVPN Shortcut上でSpokeから直接LANプレフィックスのルートを学習します。ネクストホップとなるのはBGP on LoopbackによりSpokeルータのループバックアドレスが使用されますが、exchange-ip-addrv4によってアドバタイズされるため問題なく再帰解決されます。このメカニズムによりSpokeルータの保持するルーティング情報を最小限に抑えることができ、HUBルータにおけるBGPルートリフレクションは不要となるためネットワーク全体のスケーラビリティ向上に大きく寄与します。
SD-WANルール
FortiGateのSD-WAN/ADVPN2.0のアーキテクチャドキュメントではトラフィックコントロールをルーティングプロトコルで決定するのではなく、SD-WANルールで行うとよいという指針が示されています。基本的にはBGPなどのルーティングプロトコルですべての必要なルート情報について学習し、かつ複数のルート情報がある場合はECMP(等コストマルチパス)で保持しておき、最終的にはSD-WANルールによって様々な条件下での最適なルートにトラフィックをステアリングすることで、BGPなどのルーティングプロトコルよりもインテリジェンスなルート制御が実現できるという方針です。なお、FortiGateにおけるルーティングの処理順序は以下の通りFIB[1]よりもSD-WANルールが優先されます(tie-breakの設定により変更可能)。この特性について正確に理解することがSD-WAN/ADVPN2.0を扱う上で非常に重要なポイントだと思います。
構築:
FortiGateVM on AWSのデプロイ
AWS上にFortiGateVMをデプロイするまでのプロセスは以下になります。FortiGateVMにログインするための準備作業は割愛しています。(Session Managerによる踏み台サーバからのアクセスなど)
- AWSにVPCを作成する(手順割愛)
- VPCにEC2をデプロイする
Marcket PlaceからFortiGateVMを選択し、必要なNICもここで作成しておきます。ライセンス形態によってPAYGもしくはBYOLのAMIを選択します。
- Elastic IPアドレス(AWSの外部からインターネットアクセスするためのパブリックIPアドレス)を作成する
- Elastic IPアドレスをEC2のNICおよびプライベートIPアドレスと関連付ける
- パケットをルーティング可能にするためEC2のソース/宛先チェックをオフにする
- セキュリティグループを適切に設定する
ブランチからのIPsec VPN通信で使用する4500/udpを忘れずに許可します。 - 適切なポートのプライベートIPアドレスに対してブラウザアクセスする
初回ログイン時はusername=admin、password=<instance-id>となっています。ログイン後すぐにパスワードの変更が必要です。 - (BYOLの場合)ライセンスをアップロードする
- FortiGateVMのGUIにログインする
初回ログイン時にFortiOSの動画が表示されます。惜しみつつ「Don’t show again」をONにします。
- ネットワークインターフェースの確認、設定をする
・EC2インスタンスをデプロイした際の設定どおりになっていること
・追加した順にPort番号がアサインされていること
・IPアドレスやDNSサーバ情報をAWSのDHCPで取得していること
・適切なインターフェースにPING、HTTPS、SSH許可の設定をする
- WAN IPにAWSで割り当てたElastic IPが表示されていることを確認する
まとめ
今回はFortiGateVM on AWSにおけるSD-WAN/ADVPN2.0の概論と、FortiGateVMをAWSへデプロイする手法について紹介しました。次回はFortiGateの設定を中心に紹介していく予定です。ご期待ください!
参考文献
-
Forwarding Information Base:ルーティングプロトコルにより学習されたルート情報を含むすべてのアクティブなルート情報のテーブル ↩︎

NTT DATA公式アカウントです。 技術を愛するNTT DATAの技術者が、気軽に楽しく発信していきます。 当社のサービスなどについてのお問い合わせは、 お問い合わせフォーム nttdata.com/jp/ja/contact-us/ へお願いします。