Azure VPN Gatewayを使ってテナント間を接続をしてみた

 

Azureのネットワーク接続には、Virtual Network Peering等色々な手段があります。

Azureの別テナント間を直接接続は、Azure VPN Gatewayのサイト間接続で実現できます。

そこで、今回は以下のサイトを参考に、Azureテナント間の接続をPower Shellで実施しました。

https://docs.microsoft.com/ja-jp/azure/vpn-gateway/vpn-gateway-tutorial-create-gateway-powershell

1 .VPN Gatewayを作成する為のPower Shell

以下のサンプルでは、グローバルIPやSubnetを新規に作成しています。
今回はSKUはBasic、ルートベースで作成しています。各接続環境に必要な情報を設定し、各テナントで下記Power Shellを実行します。

#VPN GW Create PowerShell

#RG Name Location
$resourceGroupName = “Resouece Gropu Name”
$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

異なるテナント間の接続を作成する場合は、GUIから出来ず、Power Shell等で作成する必要があります。 まず、接続先(対抗側)のVPN GatewayのIDが必要になります。以下のコマンドで確認します。(注:今回接続を作成する対抗側のサブスクリプションで下記コマンドを実行します。)

Get-AzVirtualNetworkGateway -Name “VPN GW Name” -ResourceGroupName “Resouece Gropu Name” |fl id

Id : /subscriptions/・・・・

 

上記コマンドのId:で表示される値を、$GwId2の部分に埋めて以下のPower Shellを実行します。(注:接続元と接続先の情報を混同しないように注意します。)

#接続を作成する側の情報
$resourceGroupName1 = “接続元RG名”
$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になります。