Azure Virtual WANのハブ間接続がPreviewになったので試す

2019年12月3日

本記事はAzure Advent Calendar 2019の3日目の記事になります。

https://qiita.com/advent-calendar/2019/azure

はじめに

Azure Virtual WANですが、Site to Site VPN接続が通常のVPN Gatewayのトンネル数が最大30に対して、ひとつのハブに対して1000本まで張れる利点の他、対応しているネットワーク機器の場合(BarracudaやPalo Altoなど)VPNとBGPの設定を自動で行える等の利点があります。

Virtual WAN のドキュメント

Virtual WAN内にはリージョン内に1つの「ハブ」を作成する事ができ、基本的にこのハブに対してVPN接続やExpress Route接続、Azure VNET Peeringで他のネットワークを接続して相互に通信を行えるサービスですが、残念なことにいままではリージョンが異なる複数のハブ間の接続(ルーティング)に対応していませんでした。

いつになったら対応するのかなーと思っていましたが、Ignite 2019のタイミングでPreview開始となりました。

Announcing enhancements to Azure Virtual WAN

というわけで、お試ししました!

Virtual WANの作成

Azureポータルから適当なリソースグループを先ず作成して、続いて「+リソースの作成」からフィルタに「virtual wan」等と入力して該当リソース「仮想 WAN」を探します。

「作成」を押して次に進みます。

リソースグループは先に作成したリソースグループ名を選択します。 「名前」は適当に。
リージョンはとりあえず東日本にしました。
種類は「Standard」のままを選びます。最後に「作成及び確認」をクリックします。

確認画面では「作成」をクリックします。

少し待つとデプロイが完了します。

ハブの作成

まずはメインとなるハブを作成します。
ハブは複数のリージョンにそれぞれ1つ作成することができます(東日本に1つ、東南アジアに1つなど)。

「ハブ」メニューから「+新しいハブ」をクリックします。

地域は「東日本」で。「名前」にはハブ固有のユニークな名前をつけます。
「ハブプライベートアドレス空間」は/24以上にしておくのが良いでしょう。このアドレス空間内に内部的にVPN GWやExpress GWが作成されると思われます。
オフィシャル情報でどのくらい空けるべきなのか記載を見つけたら追記しますね。
入力が終わったら「次:サイト対サイト>」をクリックします。

続いてSite to Site VPN接続の設定です。「サイト対サイト(VPNゲートウェイ)を作成しますか?」は「はい」を選びます。
ゲートウェイスケールユニットは、今回は試用目的なので一番小さい「1スケールユニット」を選びます。
その他の設定タブは今回はデフォルトのままで良いので「確認及び作成」をクリックします。

確認画面では「作成」をクリックします。

ハブのデプロイまで30分くらいかかるので 気長に待ちます。

無事、東日本のハブが追加されました。

VPNサイトの作成

オンプレミスなどとSite to Site VPN接続を行うためのAzure Virtual Wan側の設定を行います。従来からの言い方だと、「ローカルネットワークゲートウェイ」と「接続」リソースの作成にあたります。

今回は事前にAzure上に別の仮想ネットワーク(192.168.0.0/24)を作成しておき、そこに配置した仮想ネットワークゲートウェイと今回作成したVirtual WANの東日本ハブ間で接続したいと思います。

まずは、Virtual WANのブレードから「VPNサイト」を選択後、「+サイトの作成」をクリックします。

「地域」は東日本。「名前」欄は適当に。「デバイスベンダー」も適当に。

「ボーダーゲートウェイプロトコル」?、ああ、BGPですか。今回は対向側のネットワーク構成もシンプルなので、使いません。
プライベートアドレス空間には対向側にルーティングするアドレス空間を入力します。対向側が多段に繋がっている場合には複数のアドレス空間を指定可能です。
「ハブ」は先程作った東日本にあるハブを選択します。
最後に「リンク」をクリックします。

「リンク名」「プロバイダー名」は適当に。
「速度」はMbps単位で指定なので、とりあえず10を入れました。
「IPアドレス」にはSite to Site VPN接続を行う対向側のゲートウェイアドレス(今回はAzure VPN GatewayのPIP)を入力します。
最後に「確認及び作成」をクリックします。

確認画面では「作成」をクリックします。

「VPNサイト」のメニューからサイト一覧表示後に、「1個のハブ」の左にある「>」をクリックすると、関連付けられているVPNサイトが表示されます。

VPN構成のダウンロード

通常のAzure VPN Gatewayと異なり、Virtual WAN側のVPN GatewayのIPアドレスや、接続に必要なパスフレーズが画面に出ないのです。

Virtual WANのVPNサイトページから「↓サイト間VPN構成をダウンロードする」をクリックします。


「ここをクリックしてダウンロード」をクリックして、jsonファイルをクライアントPCにダウンロードしてきます。

jsonファイルを開き、中の「gatewayConfiguration」に書かれているInstance0/1がVirtual WAN側のVPN GWアドレスです。
Active/Active構成となっているので2つありますが、今回はInstance0のIPアドレスのみ使用します。
また「connectionConfiguration」に書かれているPSKがオンプレ側の接続設定に必要なパスフレーズです。

 [
(省略) 
         "gatewayConfiguration": {
          "IpAddresses": {
            "Instance0": "52.155.117.165",
            "Instance1": "52.155.119.143"
          }
        },
        "connectionConfiguration": {
          "IsBgpEnabled": false,
          "PSK": "0Jb952I3afFNgBSLlni31rHclMgyLO3u",
          "IPsecParameters": {
            "SADataSizeInKilobytes": 102400000,
            "SALifeTimeInSeconds": 3600
          }
        }
 (省略)
] 

オンプレ側の接続

通常はオンプレミス側のルータ設定となるので、各機種毎に設定は異なります。
今回はオンプレ側をAzureで代替しているので、普通に仮想ネットワーク内にVPN GWを立てて、ローカルネットワークゲートウェイと接続リソースを作成して繋げました。

今回はVirtual WANの先にある別のネットワーク(10.0.0.0/16)にもつなげる予定なので、ルーティングの設定に追加しておきました。

一応接続済みになりましたね。

別サイトの作成

前章までと同じ手順で、別リージョンにハブを作成して、そこに対してSite to Site VPN接続を行います。

構成としては以下のようになりました。

ネットワーク間転送の有効化の確認

念の為の確認ですが、Virtual Wanの構成メニューを開くと、ハブ間転送がちゃんと有効になっていますね。

Virtual WANの疎通確認

on-premises01のネットワーク上のLinuxからon-premises02のLinuxに繋げてみますが、Virtual WANのハブ間(リージョン間)を経由して接続できました。

ブランチ間接続の拒否設定

疎通要件によっては、各ブランチ(VPN接続元)を相互接続はしてほしくなく、純粋にVirtual WANで「仮想ネットワーク接続」を使ってAzure内の仮想ネットワークのみに接続したい場合もあると思います。

その場合には「構成」メニューから「ブランチ間接続」の設定を「ブランチ間の接続なし」に変更することで、相互接続ができなくなります。

複数の拠点からSite to Site VPN接続を行う構成だが、拠点間の接続は拒否したい場合(それもルーティングベースで拒否するのではなく)に有効な設定かと。

おわりに

まだPreviewではありますが、複数の拠点間をAny to Anyで接続できるWAN基盤として使ってみました。

無論Azureの仮想ネットワークとも併せて接続することで、複数拠点から閉域網を使ってクラウドサービスを利用することができるでしょう。

利用料金ですが、今回の検証した構成でオンプレ側の料金を含めない場合、2つのバブそれぞれにVPN S2Sの一番小さいスケールユニットを配置したので、6万円/月~くらいでしょうか(データ転送料金含まず)。

高いか安いかはコメントしづらいですが、グローバル規模でWANを自前で構築するのに比べれば格安なのではと思います。