Azure の仮想ネットワークで以下のようなマルチサイト VPN を設定するための方法をまとめてみたいと思います。
基本的な内容としては、マルチサイト VPN の構成 が参考になります。
上記のマルチサイト VPN の設定は仮想ネットワーク間をサイト間 VPN で設定する方法とあまり変わりません。
異なるサブスクリプションで VNET 間接続を試してみる
■仮想ネットワークの初期作成
マルチサイト VPN の設定はベースとして作成した仮想ネットワークを「スクリプト」「PowerShell」を用いて設定を行います。
最初に仮想ネットワークの初期設定を行います。
- VNET01~VNET03 に対応したローカルネットワークを作成
作成する際には各仮想ネットワークの VPN のゲートウェイの IP アドレスが不明なため、「0.0.0.0」を設定
今回は以下ローカルネットワークを作成
名前 アドレス空間 VPN ゲートウェイアドレス VNET01-LN 10.0.0.0/16 0.0.0.0 VNET02-LN 10.1.0.0/16 0.0.0.0 VNET03-LN 10.2.0.0/16 0.0.0.0 - VNET01 の仮想ネットワークを作成
設定としては以下の設定を行う。
# GUI からは単一のサイト間の VPN 設定しかできないため、最初に VNET01 と VNET02 間の設定を行う
項目 設定 名前 VNET01 サイト間 VPN の構成 ? ローカルネットワーク VNET02-LN アドレス空間 10.0.0.0/16 ゲートウェイ サブネットの追加 ボタンをクリック - VNET01 の仮想ネットワークのダッシュボードから「ゲートウェイの作成」を「動的ルーティング」を使用して実施
静的ルーティングと動的ルーティングについてはこちらから
仮想ネットワークに使用する VPN デバイスについて
-
VNET02 の仮想ネットワークを作成
設定としては以下の設定を行う。項目 設定 名前 VNET02 サイト間 VPN の構成 ? ローカルネットワーク VNET01-LN アドレス空間 10.1.0.0/16 ゲートウェイ サブネットの追加 ボタンをクリック - VNET02 の仮想ネットワークのダッシュボードから「ゲートウェイの作成」を「動的ルーティング」を使用して実施
-
VNET03 の仮想ネットワークを作成
設定としては以下の設定を行う。項目 設定 名前 VNET03 サイト間 VPN の構成 ? ローカルネットワーク VNET01-LN アドレス空間 10.2.0.0/16 ゲートウェイ サブネットの追加 ボタンをクリック - VNET03 の仮想ネットワークのダッシュボードから「ゲートウェイの作成」を「動的ルーティング」を使用して実施
各仮想ネットワークのゲートウェイの作成が完了したら次の作業を実施します。
■VPN ゲートウェイアドレスの設
定
ゲートウェイの作成が完了すると、各仮想ネットワークの VPN ゲートウェイアドレスがわかりますので、ローカルネットワークに対して VPN ゲートウェイアドレスを設定します。
ゲートウェイの IP アドレスは、仮想ネットワークのダッシュボードか Azure PowerShell で確認を行います。
Add-AzureAccount $Subscription = Get-AzureSubscription | Out-GridView -OutputMode Single $Subscription | Select-AzureSubscription -Current $Sites = Get-AzureVNetSite | Where-Object {$_.name -like "VNET0*"} foreach ($Site in $Sites){ Get-AzureVNetGateway -VNetName $Site.Name | ft $Site.Name, State, VIPAddress }
IP を確認したら、ローカル ネットワークを編集し、ゲートウェイアドレスを設定します。
これを各ローカルネットワークに対して実施します。
■スクリプトのダウンロードとマルチサイト VPN の設定
ここまでの作業は GUI ベースでできたのですがマルチサイト VPN の設定は、現状、仮想ネットワークの構成スクリプトをダウンロードして手動で変更する必要があります。
設定は以下の手順で実施します。
- ポータルの仮想ネットワークから「エクスポート」をクリックし、マルチサイト VPN を設定するサブスクリプションの仮想ネットワーク設定をファイルに保存する。
- ダウンロードした仮想ネットワークのスクリプトの以下の箇所を編集する。
編集前
<Gateway> <ConnectionsToLocalNetwork> <LocalNetworkSiteRef name="VNET02-LN"><Connection type="IPsec" /></LocalNetworkSiteRef> </ConnectionsToLocalNetwork> </Gateway>
編集後
<Gateway> <ConnectionsToLocalNetwork> <LocalNetworkSiteRef name="VNET02-LN"><Connection type="IPsec" /></LocalNetworkSiteRef> <LocalNetworkSiteRef name="VNET03-LN"><Connection type="IPsec" /></LocalNetworkSiteRef> </ConnectionsToLocalNetwork> </Gateway>
VNET01 の仮想ネットワークの VPN 接続先を 「VNET02-LN」のみから、「VNET02-LN」と「VNET03-LN」に変更を行っている。
- 「新規」→「仮想ネットワーク」→「構成のインポート」からスクリプトをダウンロードしたサブスクリプションに対して、変更したスクリプトをインポートする。
これでマルチサイト VPN がとなります。
今回は VNET01 がマルチサイトで VPN を設定している仮想ネットワークになります。
設定前は以下のようになっていますが、
マルチサイト VPN のスクリプトインポート後は以下のような表示になります。
■事前共有キーの設定
最後に事前共有キーの設定を行います。
まずは以下の Azure PowerShell で事前共有キーを取得します。
Get-AzureVNetGatewayKey -VNetName VNET01 -LocalNetworkSiteName VNET02-LN Get-AzureVNetGatewayKey -VNetName VNET01 -LocalNetworkSiteName VNET03-LN
まずは、VNET01 と VNET02 の事前共有キーを設定してみたいと思います。
最初に取得できた事前共有キーの情報を使用して以下のようなコマンドレットで設定を行います。
# 上記の例では TdW で始まるキーを使用しています。
Set-AzureVNetGatewayKey -VNetName VNET01 -LocalNetworkSiteName VNET02-LN -SharedKey TdWAA<省略>wqwI Set-AzureVNetGatewayKey -VNetName VNET02 -LocalNetworkSiteName VNET01-LN -SharedKey TdWAA<省略>wqwI
次に VNET01 と VNET03 間の設定を行います。
# こちらは VIX で始まるキーを使用しています。
Set-AzureVNetGatewayKey -VNetName VNET01 -LocalNetworkSiteName VNET03-LN -SharedKey VIXU<省略>BsKY Set-AzureVNetGatewayKey -VNetName VNET03 -LocalNetworkSiteName VNET01-LN -SharedKey VIXU<省略>BsKY
以上で設定は完了です。
作業の流れがわかっていれば、それほど悩まずに設定できそうですね。