PowerShell を使用して Azure Virtual WAN へのサイト間接続を作成する
この記事では、Virtual WAN を使用して、PowerShell で IPsec/IKE (IKEv1 と IKEv2) VPN 接続を介して Azure 内のリソースに接続する方法を示します。 この種類の接続では、外部接続用パブリック IP アドレスが割り当てられていてるオンプレミスの VPN デバイスが必要です。 Virtual WAN の詳細については、Virtual WAN の概要に関するページを参照してください。 この構成は、Azure portal の手順を使用して作成することもできます。
前提条件
Azure サブスクリプションを持っていることを確認します。 Azure サブスクリプションをまだお持ちでない場合は、MSDN サブスクライバーの特典を有効にするか、無料アカウントにサインアップしてください。
仮想ハブのプライベート アドレス空間に使用する IP アドレスの範囲を決定します。 この情報は、仮想ハブを構成するときに使用されます。 仮想ハブは、仮想 WAN によって作成および使用される仮想ネットワークです。 リージョン内の Virtual WAN ネットワークの核となります。 アドレス空間の範囲は、次の特定の規則に準拠している必要があります。
- ハブに指定するアドレス範囲が、接続先の既存の仮想ネットワークと重複することはできません。
- このアドレス範囲が、接続するオンプレミスのアドレス範囲と重複することはできません。
- オンプレミス ネットワーク構成に含まれている IP アドレス範囲になじみがない場合は、それらの詳細を提供できるだれかと調整してください。
Azure PowerShell
この記事では、PowerShell コマンドレットを使用します。 コマンドレットを実行するには、Azure Cloud Shell を使用できます。 Cloud Shell は無料のインタラクティブ シェルです。この記事の手順は、Azure Cloud Shell を使って実行することができます。 一般的な Azure ツールが事前にインストールされており、アカウントで使用できるように構成されています。
Cloud Shell を開くには、コード ブロックの右上の隅にある [Cloudshell を開く] を選択するだけです。 https://shell.azure.com/powershell に移動して、別のブラウザー タブで Cloud Shell を開くこともできます。 [コピー] を選択してコードのブロックをコピーし、Cloud Shell に貼り付けてから、Enter キーを押して実行します。
Azure PowerShell コマンドレットは、ローカルのコンピューターにインストールして実行することもできます。 PowerShell コマンドレットは、頻繁に更新されます。 最新バージョンをインストールしていないと、手順で指定されている値は失敗する場合があります。 コンピューターにインストールされている Azure PowerShell のバージョンを確認するには、Get-Module -ListAvailable Az
コマンドレットを使用します。 インストールまたは更新するには、「Install the Azure PowerShell module (Azure PowerShell モジュールのインストール)」を参照してください。
サインイン
Azure Cloud Shell を使用している場合は、Cloudshell を開いた後にアカウントにサインインするように自動的に指示されます。
Connect-AzAccount
を実行する必要はありません。 サインイン後も、Get-AzSubscription
と Select-AzSubscription
を使用して、必要に応じてサブスクリプションを変更できます。
PowerShell をローカルで実行している場合は、昇格された特権で PowerShell コンソールを開き、Azure アカウントに接続します。
Connect-AzAccount
コマンドレットでは資格情報が求められます。 認証後にアカウント設定がダウンロードされ、Azure PowerShell で使用できるようになります。
Get-AzSubscription
と Select-AzSubscription -SubscriptionName "Name of subscription"
を使用してサブスクリプションを変更できます。
仮想 WAN を作成する
仮想 WAN を作成する前に、仮想 WAN をホストするリソース グループを作成するか、既存のリソース グループを使用する必要があります。 次の例のいずれかを使用します。
この例では、米国東部ロケーションに TestRG という名前の新しいリソース グループを作成します。 代わりに既存のリソース グループを使用したい場合は、$resourceGroup = Get-AzResourceGroup -ResourceGroupName "NameofResourceGroup"
コマンドを修正した後に、独自の値を使用してこの演習の手順を完了できます。
リソース グループを作成します。
New-AzResourceGroup -Location "East US" -Name "TestRG"
New-AzVirtualWan コマンドレットを使用して仮想 WAN を作成します。
$virtualWan = New-AzVirtualWan -ResourceGroupName TestRG -Name TestVWAN1 -Location "East US"
ハブを作成してハブ設定を構成する
ハブは、サイト間、ExpressRoute、またはポイント対サイト機能のためのゲートウェイを含めることができる仮想ネットワークです。 New-AzVirtualHub を使用して仮想ハブを作成します。 この例では、指定されたアドレス プレフィックスとハブのロケーションを使用して Hub1 という名前の既定の仮想ハブを作成します。
$virtualHub = New-AzVirtualHub -VirtualWan $virtualWan -ResourceGroupName "TestRG" -Name "Hub1" -AddressPrefix "10.1.0.0/16" -Location "westus"
サイト間 VPN ゲートウェイを作成する
このセクションでは、参照先の仮想ハブと同じロケーションにサイト間 VPN ゲートウェイを作成します。 VPN ゲートウェイを作成するときは、必要なスケール ユニットを指定します。 ゲートウェイが作成されるまでに、30 分ぐらいかかります。
Azure Cloud Shell を閉じた場合、または接続がタイムアウトした場合は、$virtualHub に対して変数をもう一度宣言する必要がある場合があります。
$virtualHub = Get-AzVirtualHub -ResourceGroupName "TestRG" -Name "Hub1"
New-AzVpnGateway コマンドレットを使用して VPN ゲートウェイを作成します。
New-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1" -VirtualHubId $virtualHub.Id -VpnGatewayScaleUnit 2
VPN ゲートウェイを作成したら、次の例を使用してゲートウェイを表示できます。
Get-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1"
サイトと接続を作成する
このセクションでは、物理的な場所に対応するサイトと接続を作成します。 これらのサイトには、オンプレミスの VPN デバイス エンドポイントが含まれており、仮想 WAN 内の仮想ハブごとに最大 1000 サイトを作成できます。 複数のハブがある場合は、それぞれのハブに 1000 個ずつ作成できます。
VPN ゲートウェイの変数と、オンプレミス サイトに配置されている IP アドレス空間の変数を設定します。 このアドレス空間宛てのトラフィックは、ローカル サイトにルーティングされます。 これは、サイトで BGP が有効になっていない場合に必要です。
$vpnGateway = Get-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1" $vpnSiteAddressSpaces = New-Object string[] 2 $vpnSiteAddressSpaces[0] = "192.168.2.0/24" $vpnSiteAddressSpaces[1] = "192.168.3.0/24"
リンク速度やリンク プロバイダー名に関するメタデータを含むブランチで物理リンクに関する情報を追加したり、オンプレミス デバイスのパブリック IP アドレスを追加したりするためのリンクを作成します。
$vpnSiteLink1 = New-AzVpnSiteLink -Name "TestSite1Link1" -IpAddress "15.25.35.45" -LinkProviderName "SomeTelecomProvider" -LinkSpeedInMbps "10" $vpnSiteLink2 = New-AzVpnSiteLink -Name "TestSite1Link2" -IpAddress "15.25.35.55" -LinkProviderName "SomeTelecomProvider2" -LinkSpeedInMbps "100"
作成したばかりの VPN サイト リンクの変数を参照して、VPN サイトを作成します。
Azure Cloud Shell を閉じた場合、または接続がタイムアウトした場合は、次のように仮想 WAN 変数を再宣言します。
$virtualWan = Get-AzVirtualWAN -ResourceGroupName "TestRG" -Name "TestVWAN1"
New-AzVpnSite コマンドレットを使用して VPN サイトを作成します。
$vpnSite = New-AzVpnSite -ResourceGroupName "TestRG" -Name "TestSite1" -Location "westus" -VirtualWan $virtualWan -AddressSpace $vpnSiteAddressSpaces -DeviceModel "SomeDevice" -DeviceVendor "SomeDeviceVendor" -VpnSiteLink @($vpnSiteLink1, $vpnSiteLink2)
サイト リンク接続を作成します。 この接続は、ブランチ/サイトからスケーラブルなゲートウェイへの 2 つのアクティブ/アクティブ トンネルで構成されます。
$vpnSiteLinkConnection1 = New-AzVpnSiteLinkConnection -Name "TestLinkConnection1" -VpnSiteLink $vpnSite.VpnSiteLinks[0] -ConnectionBandwidth 100 $vpnSiteLinkConnection2 = New-AzVpnSiteLinkConnection -Name "testLinkConnection2" -VpnSiteLink $vpnSite.VpnSiteLinks[1] -ConnectionBandwidth 10
VPN サイトをハブに接続する
New-AzVpnConnection コマンドレットを使用して、VPN サイトをハブのサイト間 VPN ゲートウェイに接続します。
コマンドを実行する前に、次の変数を再宣言する必要がある場合があります。
$virtualWan = Get-AzVirtualWAN -ResourceGroupName "TestRG" -Name "TestVWAN1" $vpnGateway = Get-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1" $vpnSite = Get-AzVpnSite -ResourceGroupName "TestRG" -Name "TestSite1"
VPN サイトをハブに接続します。
New-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection" -VpnSite $vpnSite -VpnSiteLinkConnection @($vpnSiteLinkConnection1, $vpnSiteLinkConnection2)
VNet をハブに接続する
次の手順では、ハブを VNet に接続します。 この演習用に新しいリソース グループを作成した場合、通常はリソース グループ内に仮想ネットワーク (VNet) がまだありません。 以下の手順は、まだない場合に VNet の作成に役立ちます。 次にハブと VNet の間の接続を作成できます。
仮想ネットワークの作成
次の例の値を使用して、VNet を作成できます。 自分の環境用に使用した値の代わりに、例の値を使用するようにしてください。 詳細については、「クイックスタート: 仮想ネットワーク作成のための Azure PowerShell の使用」を参照してください。
VNet を作成する。
$vnet = @{ Name = 'VNet1' ResourceGroupName = 'TestRG' Location = 'eastus' AddressPrefix = '10.21.0.0/16' } $virtualNetwork = New-AzVirtualNetwork @vnet
サブネット設定を指定します。
$subnet = @{ Name = 'Subnet-1' VirtualNetwork = $virtualNetwork AddressPrefix = '10.21.0.0/24' } $subnetConfig = Add-AzVirtualNetworkSubnetConfig @subnet
VNet を設定します。
$virtualNetwork | Set-AzVirtualNetwork
VNet をハブに接続する
VNet を作成したら、次の記事の手順に従って VNet を VWAN ハブに接続します: 「VNet の仮想 WAN ハブへの接続」。
VPN デバイスの構成
オンプレミス VPN デバイスを構成するには、「サイト間: Azure portal」の記事の手順に従います。
リソースをクリーンアップする
作成したリソースは、不要になったら削除してください。 Virtual WAN リソースのいくつかは、依存関係に応じた特定の順序で削除する必要があります。 削除が完了するまでに 30 分程度かかる場合があります。
次の順序ですべてのゲートウェイ エンティティを削除します。
変数を宣言します。
$resourceGroup = Get-AzResourceGroup -ResourceGroupName "TestRG" $virtualWan = Get-AzVirtualWan -ResourceGroupName "TestRG" -Name "TestVWAN1" $virtualHub = Get-AzVirtualHub -ResourceGroupName "TestRG" -Name "Hub1" $vpnGateway = Get-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1"
VPN サイトへの VPN ゲートウェイ接続を削除します。
Remove-AzVpnConnection -ResourceGroupName $vpnGateway.ResourceGroupName -ParentResourceName $vpnGateway.Name -Name "testConnection"
VPN ゲートウェイを削除します。 VPN ゲートウェイを削除すると、それに関連付けられているすべての VPN ExpressRoute 接続も削除されます。
Remove-AzVpnGateway -ResourceGroupName "TestRG" -Name "vpngw1"
この時点では、次の 2 つのいずれかを行うことができます。
- リソース グループ全体を削除すると、それに含まれる残りのすべてのリソース (ハブ、サイト、仮想 WAN など) を削除できます。
- または、リソース グループ内の各リソースを削除することを選択することもできます。
リソース グループ全体を削除するには:
Remove-AzResourceGroup -Name "TestRG"
リソース グループ内の各リソースを削除するには:
VPN サイトを削除します。
Remove-AzVpnSite -ResourceGroupName "TestRG" -Name "TestSite1"
仮想ハブを削除します。
Remove-AzVirtualHub -ResourceGroupName "TestRG" -Name "Hub1"
仮想 WAN を削除します。
Remove-AzVirtualWan -Name "TestVWAN1" -ResourceGroupName "TestRG"
次のステップ
次に、Virtual WAN についてさらに学習するには、「Virtual WAN の FAQ」を参照してください。