VNet Peering を試してみる


Public Previewとなった VNet Peering を試してみました！

# VNet Peering とは？
同じリージョンにある2つのVNetをAzureのバックボーンネットワークで繋ぐことができるようになります。
今までのVNET-to-VNETのように、ゲートウェイを作る必要がなく、VNET同士を低レイテンシーで接続することが可能になります。

# 検証構成
とりあえず、こんな感じの構成にしてみます。
<img width="476" alt="VNetPeering構成.png" src="https://qiita-image-store.s3.amazonaws.com/0/41379/0cd7a0e4-fbc8-dfdc-2fd8-4ec77d1e2c16.png">


# 事前準備
VNet Peering を利用するには、現在のところ機能の登録(という表現で正しいかは不明)をサブスクリプション毎に行う必要があります。
PowerShellから以下のコマンドを実行することで、登録が可能です。

```ps1:
# AllowVnetPeeringの有効化
Register-AzureRmProviderFeature -ProviderNamespace Microsoft.Network -FeatureName AllowVnetPeering

# プロバイダの登録
Register-AzureRmResourceProvider -ProviderNamespace Microsoft.Network
```

現在の登録状況を以下のコマンドで確認し、RegistrationStateが「Registered」になっていれば準備完了です。

```ps1:
Get-AzureRmProviderFeature -FeatureName AllowVnetPeering -ProviderNamespace Microsoft.Network
```
<img width="233" alt="SnapCrab_NoName_2016-8-2_21-49-40_No-00.png" src="https://qiita-image-store.s3.amazonaws.com/0/41379/65290b0b-bccd-d020-e282-cccafc8b37e0.png">


# PowerShellからピアリングの作成
PowerShellから以下のコマンドを実行します。

```ps1:
Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionName "【サブスクリプション名】"

$rgName = "【リソースグループ名】"

# 仮想ネットワークリソースの取得
$eastvnet = Get-AzureRmVirtualNetwork -Name yuashi-eastvnet -ResourceGroupName $rgName
$eastvnet2 = Get-AzureRmVirtualNetwork -Name yuashi-eastvnet2 -ResourceGroupName $rgName
$eastvnet3 = Get-AzureRmVirtualNetwork -Name yuashi-eastvnet3 -ResourceGroupName $rgName

# ペアリングの設定 eastvnet ⇔ eastvnet2
Add-AzureRmVirtualNetworkPeering -Name LinkToEastvnet2 -VirtualNetwork $eastvnet -RemoteVirtualNetworkId  $eastvnet2.Id
Add-AzureRmVirtualNetworkPeering -Name LinkToEastvnet -VirtualNetwork $eastvnet2 -RemoteVirtualNetworkId  $eastvnet.Id

# ペアリングの設定 eastvnet ⇔ eastvnet3
Add-AzureRmVirtualNetworkPeering -Name LinkToEastvnet3 -VirtualNetwork $eastvnet -RemoteVirtualNetworkId  $eastvnet3.Id
Add-AzureRmVirtualNetworkPeering -Name LinkToEastvnet -VirtualNetwork $eastvnet3 -RemoteVirtualNetworkId  $eastvnet.Id

# ペアリングの設定 eastvnet2 ⇔ eastvnet3
Add-AzureRmVirtualNetworkPeering -Name LinkToEastvnet3 -VirtualNetwork $eastvnet2 -RemoteVirtualNetworkId  $eastvnet3.Id
Add-AzureRmVirtualNetworkPeering -Name LinkToEastvnet2 -VirtualNetwork $eastvnet3 -RemoteVirtualNetworkId  $eastvnet2.Id
```

# 管理ポータルからステータスの確認
仮想ネットワークのピアリングブレードにて、各仮想ネットワークのピアリング状態が「Connected」になっていることを確認します。
<img width="482" alt="SnapCrab_NoName_2016-8-2_20-55-29_No-00.png" src="https://qiita-image-store.s3.amazonaws.com/0/41379/370a45ef-aedf-8bcf-f397-f23af37dc7e7.png">
<img width="473" alt="SnapCrab_NoName_2016-8-2_20-55-59_No-00.png" src="https://qiita-image-store.s3.amazonaws.com/0/41379/075b58e7-eb8d-b9ba-aaec-375b577e7981.png">
<img width="471" alt="SnapCrab_NoName_2016-8-2_20-56-19_No-00.png" src="https://qiita-image-store.s3.amazonaws.com/0/41379/9400c116-a051-5f09-0622-62480813c012.png">

# 接続状態の確認
すべての仮想ネットワークがつながっていることが確認できます。
<img width="642" alt="SnapCrab_yuashi-east1vm - 137352403389 - リモート デスクトップ接続_2016-8-2_21-30-15_No-00.png" src="https://qiita-image-store.s3.amazonaws.com/0/41379/396ef911-68aa-b410-d84a-9aaef13e03b7.png">
<img width="642" alt="SnapCrab_yuashi-east2vm - 137311463389 - リモート デスクトップ接続_2016-8-2_21-30-46_No-00.png" src="https://qiita-image-store.s3.amazonaws.com/0/41379/358147ba-1615-134a-5c58-85339fd8e846.png">
<img width="641" alt="SnapCrab_yuashi-east3vm - 40115250253389 - リモート デスクトップ接続_2016-8-2_21-30-59_No-00.png" src="https://qiita-image-store.s3.amazonaws.com/0/41379/4667b2e6-444d-7a06-8730-21165d46a5b6.png">