CLI を使用したサイト間 VPN 接続を持つ仮想ネットワークの作成

この記事では、Azure CLI を使用して、オンプレミス ネットワークから VNet へのサイト間 VPN Gateway 接続を作成する方法について説明します。 この記事の手順は、Resource Manager デプロイ モデルに適用されます。 また、この構成の作成には、次のリストから別のオプションを選択して、別のデプロイ ツールまたはデプロイ モデルを使用することもできます。

Site-to-site VPN Gateway cross-premises connection diagram for CLI article.

サイト間 VPN Gateway 接続は、IPsec/IKE (IKEv1 または IKEv2) VPN トンネルを介してオンプレミス ネットワークを Azure 仮想ネットワークに接続するために使用します。 この種類の接続では、外部接続用パブリック IP アドレスが割り当てられていてるオンプレミスの VPN デバイスが必要です。 VPN Gateway の詳細については、「VPN Gateway について」を参照してください。

開始する前に

構成を開始する前に、以下の条件を満たしていることを確認します。

  • 互換性のある VPN デバイスがあり、デバイスを構成できる人員がいることを確認します。 互換性のある VPN デバイスとデバイスの構成の詳細については、VPN デバイスの概要に関する記事を参照してください。
  • VPN デバイスの外部接続用パブリック IPv4 アドレスがあることを確認します。
  • オンプレミス ネットワーク構成に含まれている IP アドレス範囲になじみがない場合は、それらの詳細を提供できる担当者と連携する必要があります。 この構成を作成する場合は、Azure がオンプレミスの場所にルーティングする IP アドレス範囲のプレフィックスを指定する必要があります。 オンプレミス ネットワークのサブネットと接続先の仮想ネットワーク サブネットが重複しないようにしなければなりません。
  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

  • この記事では、Azure CLI のバージョン 2.0 以降が必要です。 Azure Cloud Shell を使用している場合は、最新バージョンが既にインストールされています。

値の例

次の値を使用して、テスト環境を作成できます。また、この値を参考にしながら、この記事の例を確認していくこともできます。

#Example values

VnetName                = VNet1 
ResourceGroup           = TestRG1 
Location                = eastus 
AddressSpace            = 10.1.0.0/16 
SubnetName              = Frontend
Subnet                  = 10.1.0.0/24 
GatewaySubnet           = 10.1.255.0/27 
LocalNetworkGatewayName = Site1
LNG Public IP           = <On-premises VPN device IP address>
LocalAddrPrefix1        = 10.0.0.0/24
LocalAddrPrefix2        = 20.0.0.0/24   
GatewayName             = VNet1GW 
PublicIP                = VNet1GWIP 
GatewayType             = Vpn 
ConnectionName          = VNet1toSite2

1.サブスクリプションへの接続

CLI をローカルで実行することを選択した場合、お使いのサブスクリプションに接続します。 ブラウザーで Azure Cloud Shell を使用している場合は、お使いのサブスクリプションに接続する必要はありません。 Azure Cloud Shell で自動的に接続されます。 ただし、接続した後に、正しいサブスクリプションを使用していることを確認したい場合もあります。

az login コマンドで Azure サブスクリプションにサインインし、画面上の指示に従います。 サインインの詳細については、「Azure CLI を使ってみる」を参照してください。

az login

複数の Azure サブスクリプションを所有している場合は、アカウントのサブスクリプションが一覧表示されます。

az account list --all

使用するサブスクリプションを指定します。

az account set --subscription <replace_with_your_subscription_id>

2.リソース グループを作成する

次の例では、"TestRG1" という名前のリソース グループを "eastus" の場所に作成します。 VNet を作成するリージョンにリソース グループが既にある場合は、代わりにそのリソース グループを使用できます。

az group create --name TestRG --location eastus

3.仮想ネットワークの作成

まだ仮想ネットワークがない場合は、az network vnet create コマンドを使って作成します。 仮想ネットワークを作成する際は、指定したアドレス空間がオンプレミス ネットワーク内に存在するあらゆるアドレス空間と重複していないことを確認します。

Note

この VNet をオンプレミスの場所に接続するには、オンプレミスのネットワーク管理者と調整を行って、この仮想ネットワーク専用に使用できる IP アドレスの範囲を見つけ出す必要があります。 VPN 接続の両側に重複するアドレス範囲が存在する場合、トラフィックが期待どおりにルーティングされない可能性があります。 また、この VNet を別の VNet に接続する場合、アドレス空間を他の VNet と重複させることはできません。 したがって、慎重にネットワーク構成を計画してください。

次の例では、"VNet1" という名前の仮想ネットワークと "Subnet1" というサブネットを作成します。

az network vnet create --name VNet1 --resource-group TestRG1 --address-prefix 10.1.0.0/16 --location eastus --subnet-name Subnet1 --subnet-prefix 10.1.0.0/24

4.ゲートウェイ サブネットを作成する

仮想ネットワーク ゲートウェイは、"ゲートウェイ サブネット" と呼ばれる特定のサブネットを使用します。 ゲートウェイ サブネットは、仮想ネットワークの構成時に指定した仮想ネットワーク IP アドレス範囲に含まれます。 そこには、仮想ネットワーク ゲートウェイのリソースやサービスによって使用される IP アドレスが含まれます。 ゲートウェイのリソースを Azure でデプロイするためには、サブネットに "GatewaySubnet" という名前を付ける必要があります。 異なるサブネットを指定してゲートウェイのリソースをデプロイすることはできません。 "GatewaySubnet" という名前のサブネットが存在しない場合、VPN ゲートウェイを作成するときにエラーが発生します。

ゲートウェイ サブネットを作成するときに、サブネットに含まれる IP アドレスの数を指定します。 必要な IP アドレスの数は、作成する VPN ゲートウェイの構成によって異なります。 一部の構成では、他の構成よりも多くの IP アドレスを割り当てる必要があります。 作成するゲートウェイ サブネットには /27 または /28 を使用することをお勧めします。

アドレス空間がサブネットと重複していることを示すエラーや、ご使用の仮想ネットワークのアドレス空間内にサブネットが存在しないことを示すエラーが表示された場合は、VNet のアドレス範囲をチェックしてください。 仮想ネットワーク用に作成したアドレス範囲から、十分な IP アドレスを確保できない場合があります。 たとえば、既定のサブネットがアドレス範囲全体にわたる場合、新たに別のサブネットを作成するだけの IP アドレスは残っていません。 既存のアドレス空間内のサブネットを調整して IP アドレスを解放するか、または新たに別のアドレス範囲を指定して、そこにゲートウェイ サブネットを作成してください。

ゲートウェイ サブネットを作成するには、azure network vnet subnet create コマンドを使用します。

az network vnet subnet create --address-prefix 10.1.255.0/27 --name GatewaySubnet --resource-group TestRG1 --vnet-name VNet1

重要

ゲートウェイ サブネットを使う場合は、ゲートウェイ サブネットにネットワーク セキュリティ グループ (NSG) を関連付けないようにしてください。 ネットワーク セキュリティ グループをこのサブネットに関連付けると、仮想ネットワーク ゲートウェイ (VPN と ExpressRoute ゲートウェイ) が想定どおりに機能しなくなる可能性があります。 ネットワーク セキュリティ グループの詳細については、ネットワーク セキュリティ グループの概要に関するページを参照してください。

5.ローカル ネットワーク ゲートウェイを作成する

ローカル ネットワーク ゲートウェイは通常、オンプレミスの場所を指します。 サイトに Azure が参照できる名前を付け、接続を作成するオンプレミス VPN デバイスの IP アドレスを指定します。 また、VPN ゲートウェイを介して VPN デバイスにルーティングされる IP アドレスのプレフィックスも指定します。 指定するアドレスのプレフィックスは、オンプレミス ネットワークのプレフィックスです。 オンプレミス ネットワークが変わった場合は、プレフィックスを簡単に更新できます。

次の値を使用します。

  • --gateway-ip-address は、オンプレミス VPN デバイスの IP アドレスです。
  • --local-address-prefixes は、オンプレミスのアドレス空間です。

複数のアドレス プレフィックスを含むローカル ネットワーク ゲートウェイを追加するには、az network local-gateway create コマンドを使用します。

az network local-gateway create --gateway-ip-address 23.99.221.164 --name Site2 --resource-group TestRG1 --local-address-prefixes 10.0.0.0/24 20.0.0.0/24

6. パブリック IP アドレスを要求する

VPN ゲートウェイには、パブリック IP アドレスが必要です。 これにはまず IP アドレスのリソースを要求したうえで、仮想ネットワーク ゲートウェイの作成時にそのリソースを参照する必要があります。 IP アドレスは、VPN ゲートウェイの作成時にリソースに対して動的に割り当てられます。 パブリック IP アドレスが変わるのは、ゲートウェイが削除され、再度作成されたときのみです。 VPN ゲートウェイのサイズ変更、リセット、その他の内部メンテナンス/アップグレードでは、IP アドレスは変わりません。

パブリック IP アドレスを要求するには、az network public-ip create コマンドを使用します。

az network public-ip create --name VNet1GWIP --resource-group TestRG1 --allocation-method Static --sku Standard

7.VPN ゲートウェイを作成する

仮想ネットワーク VPN ゲートウェイを作成します。 選択したゲートウェイ SKU によっては、ゲートウェイの作成に 45 分以上かかる場合も少なくありません。

次の値を使用します。

  • サイト間構成の --gateway-typeVpn です。 ゲートウェイの種類は常に、実装する構成に対応するものとなります。 詳細については、「ゲートウェイの種類」を参照してください。
  • --vpn-typeRouteBased です (一部のドキュメントでは動的ゲートウェイと呼ばれます)。
  • 使用するゲートウェイ SKU を選択します。 特定の SKU には構成の制限があります。 詳細については、「ゲートウェイの SKU」を参照してください。

VPN ゲートウェイの作成には、az network vnet-gateway create コマンドを使用します。 このコマンドの実行時に "--no-wait" パラメーターを使用した場合には、フィードバックや出力が表示されなくなります。 このパラメーターは、ゲートウェイをバックグラウンドで作成するためのものです。 ゲートウェイの作成には 45 分以上かかります。

az network vnet-gateway create --name VNet1GW --public-ip-address VNet1GWIP --resource-group TestRG1 --vnet VNet1 --gateway-type Vpn --vpn-type RouteBased --sku VpnGw1 --no-wait 

8.VPN デバイスの構成

オンプレミス ネットワークとのサイト間接続には VPN デバイスが必要です。 この手順では、VPN デバイスを構成します。 VPN デバイスを構成する際に、次の情報が必要になります。

  • 共有キー。 これは、サイト間 VPN 接続を作成するときに指定するのと同じ共有キーです。 ここで紹介している例では、基本的な共有キーを使用しています。 実際には、もっと複雑なキーを生成して使用することをお勧めします。

  • 仮想ネットワーク ゲートウェイのパブリック IP アドレス。 パブリック IP アドレスは、Azure Portal、PowerShell、または CLI を使用して確認できます。 仮想ネットワーク ゲートウェイのパブリック IP アドレスを探すときには、az network public-ip list コマンドを使用します。 読みやすいように、出力は書式設定され、パブリック IP の一覧が表形式で表示されます。

    az network public-ip list --resource-group TestRG1 --output table
    

VPN デバイス構成スクリプトをダウンロードするには

ご利用の VPN デバイスによっては、VPN デバイス構成スクリプトをダウンロードできる場合があります。 詳細については、VPN デバイス構成スクリプトのダウンロードに関するページを参照してください。

その他の構成情報については、次のリンクを参照してください

9.VPN 接続を作成する

仮想ネットワーク ゲートウェイとオンプレミス VPN デバイスとの間にサイト間 VPN 接続を作成します。 共有キーの値は VPN デバイスの構成された共有キーの値と一致する必要があるため、特に注意してください。

接続の作成には、az network vpn-connection create コマンドを使用します。

az network vpn-connection create --name VNet1toSite2 --resource-group TestRG1 --vnet-gateway1 VNet1GW -l eastus --shared-key abc123 --local-gateway2 Site2

しばらくすると、接続が確立されます。

10.VPN 接続の確認

接続に成功したことを確認するには、az network vpn-connection show コマンドを使用します。 この例では、"--name" はテストする接続の名前を示しています。 接続が確立中の場合は、接続状態は "Connecting" と表示されます。 接続が確立されると、状態は "Connected" に変更されます。 環境の値を使用して次の例を変更します。

az network vpn-connection show --name <connection-name> --resource-group <resource-group-name>

別の方法で接続を確認する場合は、「VPN Gateway 接続の確認」を参照してください。

仮想マシンに接続するには:

VM へのリモート デスクトップ接続を作成すると、仮想ネットワークにデプロイされている VM に接続できます。 VM に接続できるかどうかを初めて確認する際に最も良い方法は、その VM のコンピューター名ではなく、プライベート IP アドレスを使って接続してみることです。 この方法であれば、名前の解決が適切に構成されているかではなく、VM に接続できるかどうかをテストすることができます。

  1. プライベート IP アドレスを特定します。 VM のプライベート IP アドレスは、Azure portal で VM のプロパティを表示するか、PowerShell を使うと確認できます。

    • Azure portal: Azure portal で VM を見つけます。 VM のプロパティを表示すると、 プライベート IP アドレスが表示されます。

    • PowerShell: この例を使って、リソース グループの VM とプライベート IP アドレスの一覧を表示します。 このコマンドは、使用前に変更を加える必要はありません。

      $VMs = Get-AzVM
      $Nics = Get-AzNetworkInterface | Where-Object VirtualMachine -ne $null
      
      foreach ($Nic in $Nics) {
      $VM = $VMs | Where-Object -Property Id -eq $Nic.VirtualMachine.Id
      $Prv = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAddress
      $Alloc = $Nic.IpConfigurations | Select-Object -ExpandProperty PrivateIpAllocationMethod
      Write-Output "$($VM.Name): $Prv,$Alloc"
      }
      
  2. 仮想ネットワークに接続されていることを確認します。

  3. タスク バーの検索ボックスに「RDP」または「リモート デスクトップ接続」と入力して、リモート デスクトップ接続を開きます。 次に、[リモート デスクトップ接続] を選びます。 このほか、PowerShell で mstsc コマンドを使ってリモート デスクトップ接続を開くこともできます。

  4. リモート デスクトップ接続で、VM のプライベート IP アドレスを入力します。 [オプションの表示] を選んでその他の設定を調整してから、接続できます。

VPN 接続を使って VM に接続する際に問題が発生した場合には、次の点を確認してください。

  • VPN 接続が成功したことを確認します。
  • VM のプライベート IP アドレスに接続していることを確認します。
  • プライベート IP アドレスを使って VM に接続できるものの、コンピューター名では接続できない場合には、DNS が正しく構成されているかどうかを確認します。 VM の名前解決のしくみについては、VM の名前解決に関するページを参照してください。

詳細については、VM に対するリモート デスクトップ接続のトラブルシューティングに関するページを参照してください。

一般的なタスク

このセクションでは、使用頻度の高いコマンドのうち、サイト間構成の操作に役立つものを紹介しています。 CLI のネットワーク関連のコマンドの一覧については、Azure CLI のネットワーク関連のコマンドのページを参照してください。

ローカル ネットワーク ゲートウェイを表示するには

ローカル ネットワーク ゲートウェイの一覧を表示するには、az network local-gateway list コマンドを使用します。

az network local-gateway list --resource-group TestRG1

ローカル ネットワーク ゲートウェイ IP アドレスのプレフィックスを変更するには (ゲートウェイに接続していない場合)

ゲートウェイに接続していない場合に IP アドレスのプレフィックスを追加または削除するには、ローカル ネットワーク ゲートウェイの作成に使用するコマンド az network local-gateway create を使います。 このコマンドは、VPN デバイスのゲートウェイ IP アドレスの更新にも使用できます。 現在の設定を上書きするには、ローカル ネットワーク ゲートウェイの既存の名前を使用します。 別の名前を使用した場合には、既存のゲートウェイが上書きされずに、新しいローカル ネットワーク ゲートウェイが作成されます。

変更を加えるたびに、変更するプレフィックスだけでなく、プレフィックスの一覧全体を指定する必要があります。 今回は、保持する必要があるプレフィックスだけを指定します。 今回の場合、10.0.0.0/24 と 20.0.0.0/24 です。

az network local-gateway create --gateway-ip-address 23.99.221.164 --name Site2 -g TestRG1 --local-address-prefixes 10.0.0.0/24 20.0.0.0/24

ローカル ネットワーク ゲートウェイ IP アドレスのプレフィックスを変更するには (ゲートウェイに接続している場合)

ゲートウェイに接続している状態で IP アドレスのプレフィックスを追加または削除する場合には、az network local-gateway update を使ってプレフィックスを更新します。 これに伴い、VPN 接続のためにある程度のダウンタイムが発生します。 IP アドレスのプレフィックスを変更するときに、VPN ゲートウェイを削除する必要はありません。

変更を加えるたびに、変更するプレフィックスだけでなく、プレフィックスの一覧全体を指定する必要があります。 この例では、10.0.0.0/24 と 20.0.0.0/24 が既に存在します。 更新にあたっては、追加する 30.0.0.0/24 と 40.0.0.0/24 も含め、プレフィックスを 4 つともすべて指定します。

az network local-gateway update --local-address-prefixes 10.0.0.0/24 20.0.0.0/24 30.0.0.0/24 40.0.0.0/24 --name VNet1toSite2 -g TestRG1

ローカル ネットワーク ゲートウェイの "gatewayIpAddress" を変更するには

接続先の VPN デバイスのパブリック IP アドレスが変更された場合には、ローカル ネットワーク ゲートウェイを変更してアドレスの変更を反映する必要があります。 ゲートウェイの IP アドレスは、既存の VPN ゲートウェイ接続 (がある場合には、その接続) を削除することなく変更できます。 ゲートウェイの IP アドレスを変更するには、az network local-gateway update コマンドを使用します。値 "Site2" と "TestRG1" は独自の値に置き換えてください。

az network local-gateway update --gateway-ip-address 23.99.222.170 --name Site2 --resource-group TestRG1

出力に表示されている IP アドレスが正しいことを確認します。

"gatewayIpAddress": "23.99.222.170",

共有キーの値を確認するには

共有キーの値が VPN デバイスの構成に使用したものと同じ値であることを確認します。 異なる場合は、デバイスの値を使用して接続をもう一度実行するか、返された値でデバイスを更新します。 値が一致する必要があります。 共有キーを表示するには、az network vpn-connection-list を使用します。

az network vpn-connection shared-key show --connection-name VNet1toSite2 --resource-group TestRG1

VPN ゲートウェイのパブリック IP アドレスを表示するには

仮想ネットワーク ゲートウェイのパブリック IP アドレスを探すときには、az network public-ip list コマンドを使用します。 読みやすいように、この例の出力には書式を設定し、パブリック IP の一覧が表形式で表示されるようにしてあります。

az network public-ip list --resource-group TestRG1 --output table

次のステップ