演習 - Azure CLI コマンドを使用してサイト間 VPN ゲートウェイを作成する

完了

これで、パブリック IP アドレス、仮想ネットワーク ゲートウェイ、および接続を作成して、サイト間 VPN ゲートウェイを完成させる準備ができました。 ローカル ネットワーク ゲートウェイを作成したときに、パブリック IP アドレス参照用にプレースホルダーを使用したことを思い出してください。 したがって、ここでのタスクの 1 つは、ご自分の仮想ネットワーク ゲートウェイに割り当てられている実際のパブリック IP アドレスでこれらのゲートウェイを更新することです。

理想的には、ローカル ネットワーク ゲートウェイの前に、パブリック IP アドレスと仮想ネットワーク ゲートウェイを作成する必要があります。 この演習では、ローカル ネットワーク ゲートウェイを更新する方法を確認します。 リモートのネットワーク アドレス空間など、ローカル ネットワーク ゲートウェイでは、いずれの構成要素も同じコマンドを使用して更新することができます。

Azure 側の VPN ゲートウェイを作成する

最初に、接続の Azure エンドに対して VPN ゲートウェイを作成します。 仮想ネットワーク ゲートウェイの作成には、最大で 45 分かかる場合があります。 時間を節約するために、Azure CLI コマンドは --no-wait パラメーターと一緒に使います。 このパラメーターを使用すると、両方の仮想ネットワーク ゲートウェイが同時に作成されるので、これらのリソースを作成するのに必要な全体的な時間を最小限に抑えることができます。

  1. Cloud Shell で次のコマンドを実行して、PIP-VNG-Azure-VNet-1 パブリック IP アドレスを作成します。

    az network public-ip create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-Azure-VNet-1 \
        --allocation-method Static
    
  2. Cloud Shell で次のコマンドを実行して、VNG-Azure-VNet-1 仮想ネットワークを作成します。

    az network vnet create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-Azure-VNet-1 \
        --subnet-name GatewaySubnet 
    
  3. Cloud Shell で次のコマンドを実行して、VNG-Azure-VNet-1 仮想ネットワーク ゲートウェイを作成します。

    az network vnet-gateway create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-Azure-VNet-1 \
        --public-ip-addresses PIP-VNG-Azure-VNet-1 \
        --vnet VNG-Azure-VNet-1 \
        --gateway-type Vpn \
        --vpn-type RouteBased \
        --sku VpnGw1 \
        --no-wait
    

オンプレミスの VPN ゲートウェイを作成する

次に、オンプレミス VPN デバイスをシミュレートするための VPN ゲートウェイを作成します。

  1. Cloud Shell で次のコマンドを実行して、PIP-VNG-HQ-Network パブリック IP アドレスを作成します。

    az network public-ip create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-HQ-Network \
        --allocation-method Static
    
  2. Cloud Shell で次のコマンドを実行して、VNG-HQ-Network 仮想ネットワークを作成します。

    az network vnet create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-HQ-Network \
        --subnet-name GatewaySubnet 
    
  3. Cloud Shell で次のコマンドを実行して、VNG-HQ-Network 仮想ネットワーク ゲートウェイを作成します。

    az network vnet-gateway create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name VNG-HQ-Network \
        --public-ip-addresses PIP-VNG-HQ-Network \
        --vnet VNG-HQ-Network \
        --gateway-type Vpn \
        --vpn-type RouteBased \
        --sku VpnGw1 \
        --no-wait
    
  4. ゲートウェイの作成が完了するまで、30 分以上かかります。 ゲートウェイの作成の進捗状況を監視するには、次のコマンドを実行します。 Linux watch コマンドを使用して az network vnet-gateway list コマンドを定期的に実行します。これにより、進行状況を監視できます。

    watch -d -n 5 az network vnet-gateway list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table
    
  5. 各 VPN ゲートウェイで ProvisioningState として Succeeded が表示されたら、続行する準備が整います。 ゲートウェイが作成された後、Ctrl + C キーを押してコマンドを停止します。

    ActiveActive    EnableBgp    EnablePrivateIpAddress   GatewayType    Location        Name              ProvisioningState    ResourceGroup                         ResourceGuid                          VpnType
    --------------  -----------  ------------------------ -------------  --------------  ----------------  -------------------  -----------------------------  ------------------------------------  ----------
    False           False        False                    Vpn            southcentralus  VNG-Azure-VNet-1  Succeeded            <rgn>[sandbox resource group name]</rgn>  48dc714e-a700-42ad-810f-a8163ee8e001  RouteBased
    False           False        False                    Vpn            southcentralus  VNG-HQ-Network    Succeeded            <rgn>[sandbox resource group name]</rgn>  49b3041d-e878-40d9-a135-58e0ecb7e48b  RouteBased
    

ローカル ネットワーク ゲートウェイの IP 参照を更新する

重要

次の演習を開始するには、事前に仮想ネットワーク ゲートウェイが正常にデプロイされている必要があります。 ゲートウェイは、完了するまでに 30 分以上かかる場合があります。 ProvisioningState として "Succeeded" がまだ表示されていない場合は、待機する必要があります。

このセクションでは、ローカル ネットワーク ゲートウェイで定義されているリモート ゲートウェイの IP アドレス参照を更新します。 VPN ゲートウェイを作成し、それらに IPv4 アドレス割り当てて関連付けるまで、ローカル ネットワーク ゲートウェイを更新することはできません。

  1. 次の Azure CLI コマンドを使用して、両方の仮想ネットワーク ゲートウェイが作成されているかどうかを確認します。 初期状態は "更新中" と表示されます。 VNG-Azure-VNet-1 と VNG-HQ-Network の両方で [Succeeded] と表示されます。

    az network vnet-gateway list \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --output table
    
    Name              Location    GatewayType    VpnType     VpnGatewayGeneration    EnableBgp    EnablePrivateIpAddress    Active    ResourceGuid                        ProvisioningState    ResourceGroup
    ----------------  ----------  -------------  ----------  ----------------------  -----------  ------------------------  --------  ------------------------------------  -------------------  ------------------------------------------
    VNG-Azure-VNet-1  westus      Vpn            RouteBased  Generation1         False        False                     False     9a2e60e6-da57-4274-99fd-e1f8b2c0326d  Succeeded            learn-cfbcca66-16fd-423e-b688-66f242d8f09e
    VNG-HQ-Network    westus      Vpn            RouteBased  Generation1         False        False                     False     c36430ed-e6c0-4230-ae40-cf937a102bcd  Succeeded            learn-cfbcca66-16fd-423e-b688-66f242d8f09e
    

    必ず、ゲートウェイの一覧が正常に返されるまで待ってください。 また、ローカル ネットワーク ゲートウェイのリソースで、"リモート" ゲートウェイおよびネットワークの設定 (これらに基づいて名前が付けられます) が定義されることに注意してください。 たとえば、LNG-Azure-VNet-1 ローカル ネットワーク ゲートウェイには、Azure-VNet-1 の IP アドレスとネットワークなどの情報が含まれます。

  2. Cloud Shell で次のコマンドを実行して、PIP-VNG-Azure-VNet-1 に割り当てられた IPv4 アドレスを取得し、変数に格納します。

    PIPVNGAZUREVNET1=$(az network public-ip show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-Azure-VNet-1 \
        --query "[ipAddress]" \
        --output tsv)
    
  3. Cloud Shell で次のコマンドを実行して、LNG-Azure-VNet-1 ローカル ネットワーク ゲートウェイを更新し、それによって、VNG-Azure-VNet-1 仮想ネットワーク ゲートウェイに接続されているパブリック IP アドレスがポイントされるようにします。

    az network local-gateway update \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name LNG-Azure-VNet-1 \
        --gateway-ip-address $PIPVNGAZUREVNET1
    
  4. Cloud Shell で次のコマンドを実行して、PIP-VNG-HQ-Network に割り当てられた IPv4 アドレスを取得し、変数に格納します。

    PIPVNGHQNETWORK=$(az network public-ip show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name PIP-VNG-HQ-Network \
        --query "[ipAddress]" \
        --output tsv)
    
  5. Cloud Shell で次のコマンドを実行して、LNG-HQ-Network ローカル ネットワーク ゲートウェイを更新し、それによって、VNG-HQ-Network 仮想ネットワーク ゲートウェイに接続されているパブリック IP アドレスがポイントされるようにします。

    az network local-gateway update \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name LNG-HQ-Network \
        --gateway-ip-address $PIPVNGHQNETWORK
    

接続を作成する

ここでは、ゲートウェイのリモート ネットワークのパブリック IP アドレス参照を含むローカル ネットワーク ゲートウェイへの各 VPN ゲートウェイからの接続を作成することで、構成を完了します。

  1. 接続に使用する共有キーを作成します。 次のコマンドの <shared key> は、IPSec の事前共有キーで使うテキスト文字列に置き換えます。 事前共有キーは、128 文字以下の印刷可能な ASCII 文字で構成される文字列です。 ハイフンやチルダなどの特殊文字を含めることはできません。 両方の接続でこの事前共有キーを使います。

    Note

    この例では、共有キーには、任意の数値のセットを使用できます (SHAREDKEY = 123456789)。 運用環境では、ハイフンやチルダなどの特殊文字を "含めず"、128 文字以内の印刷可能な ASCII 文字の文字列を使用することが推奨されます。

    SHAREDKEY=<shared key>
    
  2. LNG-HQ-Network には、シミュレートされたオンプレミス VPN デバイス上の IP アドレスへの参照が含まれていることに注意してください。 Cloud Shell で次のコマンドを実行し、VNG-Azure-VNet-1 から LNG-HQ-Network への接続を作成します。

    az network vpn-connection create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name Azure-VNet-1-To-HQ-Network \
        --vnet-gateway1 VNG-Azure-VNet-1 \
        --shared-key $SHAREDKEY \
        --local-gateway2 LNG-HQ-Network
    
  3. LNG-Azure-VNet-1 には、VNG-Azure-VNet-1 VPN ゲートウェイに関連付けられているパブリック IP アドレスへの参照が含まれていることに注意してください。 この接続は通常、オンプレミス デバイスから作成されます。 Cloud Shell で次のコマンドを実行し、VNG-HQ-Network から LNG-Azure-VNet-1 への接続を作成します。

    az network vpn-connection create \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name HQ-Network-To-Azure-VNet-1  \
        --vnet-gateway1 VNG-HQ-Network \
        --shared-key $SHAREDKEY \
        --local-gateway2 LNG-Azure-VNet-1
    

これで、サイト対サイト接続の構成が完了しました。 これには数分かかる場合がありますが、トンネルが自動的に接続されてアクティブになるはずです。

確認手順

VPN トンネルが接続されていることを確認してみましょう。

  1. 次のコマンドを実行して、Azure-VNet-1-To-HQ-Network が接続されていることを確認します。

    az network vpn-connection show \
        --resource-group <rgn>[sandbox resource group name]</rgn> \
        --name Azure-VNet-1-To-HQ-Network  \
        --output table \
        --query '{Name:name,ConnectionStatus:connectionStatus}'
    

    接続が成功したことを示す、次のような出力が表示されます。 ConnectionStatusConnecting または Unknown と表示されている場合は、1、2 分待ってからコマンドを再実行してください。 接続が完了するまで数分かかることがあります。

    Name                        ConnectionStatus
    --------------------------  ------------------
    Azure-VNet-1-To-HQ-Network  Connected
    

これでサイト対サイトの構成は完了です。 サブネット、論理接続ポイントとの接続を含む最終的なトポロジを次の図に示します。 サービスアプリケーションのサブネットにデプロイされた仮想マシンが相互に通信できるようになり、VPN 接続が正常に確立されました。

Diagram of resources deployed during unit 4 exercise.