Azure 上で vMX の冗長化を構成する
概要
本ドキュメントでは、Microsoft Azure 内に高可用性の VPN コンセントレータを展開するための詳細なアーキテクチャを解説します。リファレンスアーキテクチャと、Azure 上でのフェイルオーバー実現方法の詳細を含み、GA で実現可能な拡張性の高い構成例を示します。
重要:本ドキュメントはあくまで参照用途です。Azure Function を用いた HA 構築の高レベルな考え方を説明するものであり、本文中の GitHub プロジェクトファイルや Microsoft のリンクは Cisco Meraki がサポート/更新するものではありません。お客様ご自身でスクリプトを作成してください。
MX ウォームスペア とは異なり、vMX は別々のダッシュボード ネットワークに展開されるため、それぞれにライセンスが必要になります。
リファレンスアーキテクチャ
下図のリファレンスアーキテクチャでは、2 つの異なる Azure 可用性ゾーン内に配置された 2 つの VNET に Cisco Meraki vMX を展開し、それぞれの SD-WAN VNET から Azure リソースをホストする VNET へ VNET ピアリングを構成しています。新規 VNET 展開時にはこのプロセスを自動化でき、可用性ゾーンを跨いでソフトウェアおよびハードウェアの冗長性を確保できます。
Azure Marketplace から vMX ネットワーク仮想アプライアンスを展開する際は、vMX Setup Guide for Microsoft Azure をご参照ください。
Azure 上の vMX に高可用性を提供するため、Azure Functions を利用してプライマリ/スタンバイ vMX 間の自動フェイルオーバーを実現します。ユーザー定義ルート(UDR)で Azure のデフォルトルートを上書きし、アクティブ側 vMX へトラフィックを誘導します。アクティブ vMX がダウンすると、Azure ルートテーブルの次ホップがセカンダリ vMX に切り替わります。
vMX と Azure Functions は同一のサブスクリプションかつリージョン内に配置し、各 vMX は専用のリソースグループに展開します。
異なる可用性ゾーンを使用することで、同一物理ホスト上で稼働するリスクを低減できます。vMX は別々の SD-WAN サブネットに展開することを推奨します。
本ソリューションでは 2 台の Azure 仮想マシンに vMX をアクティブ-パッシブ構成でホストします:
UDR テーブルエントリのフェイルオーバーは Azure Function App により自動化されます。関数は Azure Gateway のルートテーブルに対し、アクティブ vMX のインターフェイス IP を次ホップとして設定します。Function App は vMX の状態を監視し、UDR の上書きをトリガしてフェイルオーバーを実現します。初期設定時に VM 生存性チェックの間隔(デフォルト 30 秒)が指定されます。Azure ではこの間隔を短縮しないことを推奨しています。
以下はフェイルオーバー機能に必要な Azure Function 内の主要変数例です:
Primary vMX Name |
プライマリ vMX をホストする仮想マシンの名前 |
Secondary vMX Name |
スタンバイ vMX をホストする仮想マシンの名前 |
vMX Resource Group Name |
vMX が含まれるリソースグループの名前 |
vMX UDR Tag |
リソースに付与するタグ値 |
vMX Probe Retires |
3(Down と判定する前に再試行する回数) |
vMX Delay |
2(再試行間隔) |
vMX MONITOR |
vMX のステータス管理 |
HA vMX をサポートする Azure Functions の実装については、以下を参照してください:
https://github.com/Azure/ha-nva-fo
Azure Functions に関する詳細は以下を参照してください:
https://docs.microsoft.com/en-us/azure/azure-functions/
VNET ピアリングの設定に関する詳細は以下を参照してください:
https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-peering-overview
VNET ピアリングの自動化に関する詳細は以下を参照してください:
https://docs.microsoft.com/en-us/rest/api/virtualnetwork/virtualnetworkpeerings
上記リンクはあくまで参考用であり、Cisco Meraki サポートチームによるサポートや更新対象ではありません。これらの記事やスクリプトを利用した展開・トラブルシューティングについては、該当記事の著者へお問い合わせください。