演習 - Azure CLI コマンドを使用してサイト間 VPN ゲートウェイを作成する
これで、パブリック IP アドレス、仮想ネットワーク ゲートウェイ、および接続を作成して、サイト間 VPN ゲートウェイを完成させる準備ができました。 ローカル ネットワーク ゲートウェイを作成したときに、パブリック IP アドレス参照用にプレースホルダーを使用したことを思い出してください。 したがって、ここでのタスクの 1 つは、ご自分の仮想ネットワーク ゲートウェイに割り当てられている実際のパブリック IP アドレスでこれらのゲートウェイを更新することです。
理想的には、ローカル ネットワーク ゲートウェイの前に、パブリック IP アドレスと仮想ネットワーク ゲートウェイを作成する必要があります。 この演習では、ローカル ネットワーク ゲートウェイを更新する方法を確認します。 リモートのネットワーク アドレス空間など、ローカル ネットワーク ゲートウェイでは、いずれの構成要素も同じコマンドを使用して更新することができます。
Azure 側の VPN ゲートウェイを作成する
最初に、接続の Azure エンドに対して VPN ゲートウェイを作成します。 仮想ネットワーク ゲートウェイの作成には、最大で 45 分かかる場合があります。 時間を節約するために、Azure CLI コマンドは --no-wait
パラメーターと一緒に使います。 このパラメーターを使用すると、両方の仮想ネットワーク ゲートウェイが同時に作成されるので、これらのリソースを作成するのに必要な全体的な時間を最小限に抑えることができます。
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
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
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 ゲートウェイを作成します。
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
Cloud Shell で次のコマンドを実行して、VNG-HQ-Network 仮想ネットワークを作成します。
az network vnet create \ --resource-group <rgn>[sandbox resource group name]</rgn> \ --name VNG-HQ-Network \ --subnet-name GatewaySubnet
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
ゲートウェイの作成が完了するまで、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
各 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 アドレス割り当てて関連付けるまで、ローカル ネットワーク ゲートウェイを更新することはできません。
次の 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 アドレスとネットワークなどの情報が含まれます。
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)
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
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)
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 ゲートウェイからの接続を作成することで、構成を完了します。
接続に使用する共有キーを作成します。 次のコマンドの
<shared key>
は、IPSec の事前共有キーで使うテキスト文字列に置き換えます。 事前共有キーは、128 文字以下の印刷可能な ASCII 文字で構成される文字列です。 ハイフンやチルダなどの特殊文字を含めることはできません。 両方の接続でこの事前共有キーを使います。Note
この例では、共有キーには、任意の数値のセットを使用できます (SHAREDKEY = 123456789)。 運用環境では、ハイフンやチルダなどの特殊文字を "含めず"、128 文字以内の印刷可能な ASCII 文字の文字列を使用することが推奨されます。
SHAREDKEY=<shared key>
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
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 トンネルが接続されていることを確認してみましょう。
次のコマンドを実行して、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}'
接続が成功したことを示す、次のような出力が表示されます。
ConnectionStatus
がConnecting
またはUnknown
と表示されている場合は、1、2 分待ってからコマンドを再実行してください。 接続が完了するまで数分かかることがあります。Name ConnectionStatus -------------------------- ------------------ Azure-VNet-1-To-HQ-Network Connected
これでサイト対サイトの構成は完了です。 サブネット、論理接続ポイントとの接続を含む最終的なトポロジを次の図に示します。 サービスとアプリケーションのサブネットにデプロイされた仮想マシンが相互に通信できるようになり、VPN 接続が正常に確立されました。