この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
はじめに
Azure Virtual Wan(以下仮想WAN)はネットワークやセキュリティをまとめて一つのリソースとして管理することができます。そのため、大量のネットワークをピアリングする必要がある際には管理がとてもしやすくなるメリットがあります。
今回はそんな仮想WANの接続方法について説明していきます
シナリオ
今回はシンプルに下の図のような3つのvnetを接続し、仮想WAN(実際は仮想ハブ)で制御する方法をご紹介します

仮想WANの設定
早速作成していきます。
仮想WANの設定項目はリソースグループと名前程度です。
種類の部分は基本的にはスタンダードを選びましょう。
(BasicではExpressRouteやVnet間の接続ができません)
https://docs.microsoft.com/ja-jp/azure/virtual-wan/virtual-wan-about

仮想ハブの設定
仮想WANができたら次に仮想ハブを作成します。
仮想ハブではリソースグループの他にハブに割り当てるアドレス空間が必要となります。
このアドレス空間を使ってvnet間の接続がルーティングされるため、接続されるネットワークとアドレス空間は
被ってはいけないのでご注意ください。
また、同時にExpressRouteやVPN用のゲートウェイも作成できます。
※こちらはデプロイ完了まで少し時間がかかります。

仮想ハブが作成できたら、仮想ハブのリソース画面>ルーティングからルートテーブルを確認しましょう。
デフォルトで”Default”と”None”というルートテーブルが存在するはずです。
“Default”のルートテーブルはVPNやExpressRouteから経路情報が広報されてくるルートテーブルなので
これらのサービスを使う際にはご注意ください。
(今回はvnet同士の接続なので設定不要ですが、vnet以外の接続をする場合新しく作成するルートテーブルにはラベルを使って新規ルートテーブルに広報しないといけないです)

ルーティングを構成する
ハブが作成できたらルーティングを構成していきます。
今回は”Default”のルートテーブルは使わずに新しく3つのルートテーブルを作成します。
“ルートテーブルの作成”からルートテーブルの名前を入れて作成します。



ルートテーブルを作成したら”接続”と呼ばれるvnetとハブを接続する設定を行います。
こちらは仮想ハブの”仮想ネットワーク接続”から設定を行っていきます

接続する仮想ネットワークと関連付けるルートテーブル、
ルートテーブルへ伝達に接続をしたいルートテーブルを選んで設定していきます。
(推奨として、Defaultは全てのネットワークと基本的につなげることをお勧めします)


疎通確認
設定を終えたら早速確認を行います。
確認はpingを使って実施します。
以下各vnet内のVMのIPは以下の通りです。
vnetA-vm 10.50.0.4
vnetB-vm 10.50.1.4
vnetC-vm 10.50.2.4
これらを使って疎通確認を行います。
なお、確認用スクリプトは以下です。
(AzurePortal上から実施したいため、Powershellを使います)
$Env:Computername
Write-Output "vnetA-vm----------"
ping 10.50.0.4 -w 1000
Write-Output "vnetB-vm----------"
ping 10.50.1.4 -w 1000
Write-Output "vnetC-vm----------"
ping 10.50.2.4 -w 1000
vnetA-vm(vnetA内のVM、vnetB× vnetC〇)

vnetB-vm(vnetB内のVM、vnetA× vnetC〇)

vnetC-vm(vnetC内のVM、vnetA〇 vnetB〇)

想定通りの動きをしています。
まとめ
仮想WANを使うことで、ピアリングをせずにvnet同士を接続することができました。
また、接続をうまく組み合わせることで同一ハブ内でもvnet間の接続を制御することができるため
vnetが多数存在する場合は、vwanのリソース画面を見ることで確認がとれるため非常に便利な機能です。
また、vwanにはルーティング制御も行えるためUDRでは実施できないvnetレベルでの経路制御も可能です。
AzureFirewallも統合でき、ルートテーブルの次ホップで選択できるため複数のネットワークを一元管理する際には是非検討してみてください。

おまけ
おまけとして、”接続”作成後のルートテーブルの変化を添付しておきます
