Azure VPN Gatewayのサイト間接続を使ってAzureテナント間をVPNで接続してみた
Azure,PowerShell/Azure CLI,VPN Gateway
Azureテナント間をAzure VPN Gatewayのサイト間接続を使って接続してみました。
今回はマイクロソフト公式サイトを参考に、Azureテナント間の接続をPower Shellで実施しました。
Azure portal を使用して VPN ゲートウェイを作成、管理する(公式サイト)
作成手順はこんな感じになりました。
-
-
- VPN Gatewayの作成(各テナントで実施)
- VPN Gateway内での接続を作成(各テナントで実施)
※自分の手順が悪いのか、Azure Portal上では接続が作成できずPower Shell等のCLIでの操作が必須でした。
Azure VPN Gatewayを作成するPower Shell
最初に、VPN Gateway自体の作成を行います。VPN Gatewayには専用のグローバルIPやSubnetが必要になります。
-
-
- グローバルIPやVPN Gateway用のSubnetは新規に作成
- SKUはBasicを指定
- ルートベースを指定
設定内容を環境に合わせて設定し、各テナントでPower Shellを実行します。
#VPN GW Create PowerShell
#RG Name Location
$resourceGroupName = “リソースグループ名"
$location = “Location(ex;eastjapan)"
#VNET Subnet
$VnetName = “Virtual Network Name"
$SubAddress =“XXX.XXX.XXX.XXX/XX"
#Public IP
$PubIPName = “Public Ip Name"
#VPN GW
$GwName = “VPN GW Name"
$gatewayType = “GW Type(ex;Vpn)"
$VpnType = “RouteBased"
$GatewaySKU = “Basic"
#PubIP Create
$Pubip = New-AzPublicIpAddress `
-Name $PubIPName `
-ResourceGroupName $resourceGroupName `
-Location $location `
-AllocationMethod Dynamic
#Subnet Create
$virtualNetwork = get-AzVirtualNetwork `
-Name $VnetName `
-ResourceGroupName $resourceGroupName
Add-AzVirtualNetworkSubnetConfig `
-Name 'GatewaySubnet’ `
-AddressPrefix $SubAddress `
-VirtualNetwork $virtualNetwork `
$virtualNetwork | Set-AzVirtualNetwork
$subnet = Get-AzVirtualNetworkSubnetConfig `
-Name 'GatewaySubnet’ `
-VirtualNetwork $virtualNetwork `
#GW Create
$gwipconf = New-AzVirtualNetworkGatewayIpConfig `
-Name $GwName `
-Subnet $subnet `
-PublicIpAddress $Pubip
New-AzVirtualNetworkGateway `
-Name $GwName `
-ResourceGroupName $resourceGroupName `
-Location $location `
-IpConfigurations $gwipconf `
-GatewayType $gatewayType `
-VpnType $VpnType `
-GatewaySku $GatewaySKU
|
Power Shellを使ってVPN Gatewayの接続を作成
異なるテナント間の接続を作成する場合、Azure Portal上ではできませんでした。。。今回はPower Shellで作成しています。
設定にあたっては、接続先(対抗側)のVPN GatewayのIDが必要になります。以下のコマンドで確認します。(注:今回接続を作成する対抗側のサブスクリプションで下記コマンドを実行します。)
Get-AzVirtualNetworkGateway -Name “VPN GW Name" -ResourceGroupName “Resouece Gropu Name" |fl id
Id : /subscriptions/・・・・
|
上記コマンドのId:で表示される値を、$GwId2の部分に埋めて以下のPower Shellを実行します。(注:接続元と接続先の情報を混同しないように注意します。)
#接続を作成する側の情報
$resourceGroupName1 = “接続元リソースグループ名"
$location1 = “接続元ロケーション(ex;japaneast)"
$GwName1 = “接続先VPN GW 名"
$ConnectionName = “接続名"
$SharedKey = “共有キー (PSK)"
#接続先の情報
$GwName2 = “接続先VPN GW Name"
$GwId2 = “/subscriptions/・・・・/接続先VPN GW 名"
#接続先の情報を作成する
$vnet2gw = New-Object -TypeName Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkGateway
$vnet2gw.Name = $GwName2
$vnet2gw.Id = $GwId2
#接続を作成する
$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $resourceGroupName1
New-AzVirtualNetworkGatewayConnection `
-Name $ConnectionName `
-ResourceGroupName $resourceGroupName1 `
-VirtualNetworkGateway1 $vnet1gw `
-VirtualNetworkGateway2 $vnet2gw `
-Location $location1 `
-ConnectionType Vnet2Vnet `
-SharedKey $SharedKey
|
これで接続が作成されますので、接続先側でも同様に上記Power Shellを実行すると、接続が完了します。
Azure Portal上で、仮想ネットワーク ゲートウェイの接続を選択し、今回作成した接続名をクリックすると、以下のように状態が接続中になるかと思います。

※片方のみ作成されている場合は状態がupdatingになります。