PowerShell を使用して VPN ゲートウェイを作成する
この記事は、PowerShell を使用して Azure VPN ゲートウェイを作成する際に役立ちます。 VPN ゲートウェイが使用されるのは、ご利用のオンプレミスのネットワークへの VPN 接続を作成するときです。 また、仮想ネットワークへの接続に VPN ゲートウェイを使用することもできます。 この記事の一部の設定の詳細については、「VPN ゲートウェイの作成 - ポータル」を参照してください。
- 図の左側には、この記事の手順を使って作成する仮想ネットワークと VPN ゲートウェイが示されています。
- 図の右側に示すように、後でさまざまな種類の接続を追加できます。 たとえば、サイト間接続やポイント対サイト接続を作成できます。 構築できるさまざまな設計アーキテクチャを確認するには、「VPN Gateway の設計」を参照してください。
この記事の手順では、Generation 2 VpnGw2AZ SKU を使用して、仮想ネットワーク、サブネット、ゲートウェイ サブネット、ルートベースのゾーン冗長アクティブ/アクティブ モードの VPN ゲートウェイ (仮想ネットワーク ゲートウェイ) を作成します。 ゲートウェイが作成されたら、接続を構成できます。
- 代わりに Basic SKU を使用して VPN ゲートウェイを作成する場合は、Basic SKU VPN ゲートウェイの作成に関する記事を参照してください。
- 可能であれば、アクティブ/アクティブ モードの VPN ゲートウェイを作成することをお勧めします。 アクティブ/アクティブ モードの VPN ゲートウェイでは、標準モードの VPN ゲートウェイよりも可用性とパフォーマンスが向上します。 アクティブ/アクティブ ゲートウェイの詳細については、「アクティブ/アクティブ モード ゲートウェイについて」を参照してください。
- 可用性ゾーンとゾーン冗長ゲートウェイの詳細については、「可用性ゾーンとは」を参照してください。
Note
この記事の手順では、ゲートウェイ SKU VpnGw2AZ を使用します。これは、Azure 可用性ゾーンをサポートする SKU です。 ご使用のリージョンで可用性ゾーンがサポートされていない場合は、代わりに AZ 以外の SKU を使用してください。 SKU の詳細については、「ゲートウェイ SKU について」を参照してください。
開始する前に
これらの手順には、Azure サブスクリプションが必要です。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
この記事では、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 リソース グループは New-AzResourceGroup コマンドを使用して作成します。 リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 PowerShell をローカルで実行している場合は、昇格された特権で PowerShell コンソールを開き、Connect-AzAccount
コマンドを使用して Azure に接続します。
New-AzResourceGroup -Name TestRG1 -Location EastUS
仮想ネットワークの作成
まだ仮想ネットワークがない場合は、New-AzVirtualNetwork を使用して作成してください。 仮想ネットワークを作成する際は、指定したアドレス空間がオンプレミス ネットワーク内に存在するどのアドレス空間とも重複していないことを確認します。 VPN 接続の両側に重複するアドレス範囲が存在する場合、トラフィックが期待どおりにルーティングされない可能性があります。 また、この仮想ネットワークを別の仮想ネットワークに接続する場合、アドレス空間を別の仮想ネットワークと重複させることはできません。 したがって、慎重にネットワーク構成を計画してください。
次の例では、EastUS の場所に、VNet1 という名前の仮想ネットワークを作成します。
$virtualnetwork = New-AzVirtualNetwork `
-ResourceGroupName TestRG1 `
-Location EastUS `
-Name VNet1 `
-AddressPrefix 10.1.0.0/16
New-AzVirtualNetworkSubnetConfig コマンドレットを使用してサブネット構成を作成します。 この演習では、FrontEnd サブネットは使用しません。 ご自身のサブネット名を代わりに使用できます。
$subnetConfig = Add-AzVirtualNetworkSubnetConfig `
-Name FrontEnd `
-AddressPrefix 10.1.0.0/24 `
-VirtualNetwork $virtualnetwork
Set-AzVirtualNetwork コマンドレットを使用して仮想ネットワークのサブネット構成を設定します。
$virtualnetwork | Set-AzVirtualNetwork
ゲートウェイ サブネットの追加
仮想ネットワーク ゲートウェイ リソースは、GatewaySubnet という名前の特定のサブネットにデプロイされます。 ゲートウェイ サブネットは、仮想ネットワークの構成時に指定する仮想ネットワーク IP アドレス範囲の一部です。
GatewaySubnet という名前のサブネットが存在しない場合、VPN ゲートウェイを作成するときにエラーが発生します。 作成するゲートウェイ サブネットは /27 (またはそれ以上) を使用するものにすることをお勧めします。 たとえば、/27 や /26 です。 詳細については、VPN Gateway の設定 - ゲートウェイ サブネットに関する記事を参照してください。
重要
ゲートウェイ サブネット上のネットワーク セキュリティ グループ (NSG) はサポートされていません。 ネットワーク セキュリティ グループをこのサブネットに関連付けると、仮想ネットワーク ゲートウェイ (VPN と ExpressRoute ゲートウェイ) が想定どおりに機能しなくなる可能性があります。 ネットワーク セキュリティ グループの詳細については、「ネットワーク セキュリティ グループ (NSG) について」を参照してください。
仮想ネットワーク用の変数を設定します。
$vnet = Get-AzVirtualNetwork -ResourceGroupName TestRG1 -Name VNet1
Add-AzVirtualNetworkSubnetConfig コマンドレットを使用してゲートウェイ サブネットを作成します。
Add-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -AddressPrefix 10.1.255.0/27 -VirtualNetwork $vnet
Set-AzVirtualNetwork コマンドレットを使用して仮想ネットワークのサブネット構成を設定します。
$vnet | Set-AzVirtualNetwork
パブリック IP アドレスを要求する
VPN ゲートウェイには、パブリック IP アドレスが必要です。 VPN ゲートウェイへの接続を作成するときは、これが、ユーザーが指定する IP アドレスです。 アクティブ/アクティブ モード ゲートウェイの場合、各ゲートウェイ インスタンスには、それぞれ独自のパブリック IP アドレス リソースがあります。 これにはまず IP アドレスのリソースを要求したうえで、仮想ネットワーク ゲートウェイの作成時にそのリソースを参照する必要があります。 さらに、末尾が AZ のゲートウェイ SKU の場合は、ゾーン設定も指定する必要があります。 この例では、3 つすべてのリージョン ゾーンを指定するので、ゾーン冗長構成を指定します。
IP アドレスは、VPN ゲートウェイの作成時にリソースに対して割り当てられます。 パブリック IP アドレスが変わるのは、ゲートウェイが削除され、再度作成されたときのみです。 VPN ゲートウェイのサイズ変更、リセット、その他の内部メンテナンス/アップグレードでは、IP アドレスは変わりません。
次の例を使用して、各ゲートウェイ インスタンスの静的パブリック IP アドレスを要求します。
$gw1pip1 = New-AzPublicIpAddress -Name "VNet1GWpip1" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard -Zone 1,2,3
アクティブ/アクティブ ゲートウェイを作成するには (推奨)、2 つ目のパブリック IP を要求します。
$gw1pip2 = New-AzPublicIpAddress -Name "VNet1GWpip2" -ResourceGroupName "TestRG1" -Location "EastUS" -AllocationMethod Static -Sku Standard -Zone 1,2,3
ゲートウェイ IP アドレスの構成の作成
ゲートウェイの構成で、使用するサブネットとパブリック IP アドレスを定義します。 次の例を使用してゲートウェイ構成を作成します。
$vnet = Get-AzVirtualNetwork -Name VNet1 -ResourceGroupName TestRG1
$subnet = Get-AzVirtualNetworkSubnetConfig -Name 'GatewaySubnet' -VirtualNetwork $vnet
$gwipconfig1 = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig1 -SubnetId $subnet.Id -PublicIpAddressId $gw1pip1.Id
$gwipconfig2 = New-AzVirtualNetworkGatewayIpConfig -Name gwipconfig2 -SubnetId $subnet.Id -PublicIpAddressId $gw1pip2.Id
VPN ゲートウェイを作成する
選択したゲートウェイ SKU によっては、ゲートウェイの作成に 45 分以上かかる場合も少なくありません。 ゲートウェイが作成されたら、仮想ネットワークとオンプレミスの場所の間の接続を作成できます。 または、仮想ネットワークと別の仮想ネットワークの間の接続を作成します。
New-AzVirtualNetworkGateway コマンドレットを使用して VPN ゲートウェイを作成します。 この例では、両方のパブリック IP アドレスが参照され、ゲートウェイが EnableActiveActiveFeature
スイッチを使用してアクティブ/アクティブとして構成されていることに注意してください。 この例では、オプションの -Debug
スイッチを追加します。 別の SKU を使用してゲートウェイを作成する場合は、「ゲートウェイ SKU について」を参照して、構成要件に最適な SKU を判別します。
New-AzVirtualNetworkGateway -Name VNet1GW -ResourceGroupName TestRG1 `
-Location "East US" -IpConfigurations $gwipconfig1,$gwipconfig2 -GatewayType "Vpn" -VpnType RouteBased `
-GatewaySku VpnGw2AZ -VpnGatewayGeneration Generation2 -EnableActiveActiveFeature -Debug
VPN ゲートウェイを表示する
Get-AzVirtualNetworkGateway コマンドレットを使用して VPN ゲートウェイを表示できます。
Get-AzVirtualNetworkGateway -Name Vnet1GW -ResourceGroup TestRG1
ゲートウェイ IP アドレスを表示する
各 VPN ゲートウェイ インスタンスには、パブリック IP アドレス リソースが割り当てられます。 リソースに関連付けられている IP アドレスを表示するには、Get-AzPublicIpAddress コマンドレットを使用します。 ゲートウェイ インスタンスごとに繰り返します。 アクティブ/アクティブ ゲートウェイには、インスタンスごとに異なるパブリック IP アドレスが割り当てられます。
Get-AzPublicIpAddress -Name VNet1GWpip1 -ResourceGroupName TestRG1
リソースをクリーンアップする
作成したリソースが不要になったら、Remove-AzResourceGroup コマンドを使用してリソース グループを削除します。 これによって、リソース グループと、それに含まれるすべてのリソースが削除されます。
Remove-AzResourceGroup -Name TestRG1
次のステップ
ゲートウェイが作成されたら、接続を構成できます。