연습 - Azure CLI 명령을 사용하여 사이트 간 VPN 게이트웨이 만들기
이제 공용 IP 주소, 가상 네트워크 게이트웨이 및 연결을 만들어 사이트 간 VPN 게이트웨이를 완성할 수 있습니다. 로컬 네트워크 게이트웨이를 만들 때 공용 IP 주소 참조의 자리 표시자를 사용했던 사실을 기억하세요. 따라서 이제 수행해야 할 작업 중 하나는 실제 공용 IP 주소를 가상 네트워크 게이트웨이에 할당하여 이러한 게이트웨이를 업데이트하는 것입니다.
공용 IP 주소 및 가상 네트워크 게이트웨이를 만든 후에 로컬 네트워크 게이트웨이를 만드는 것이 이상적입니다. 이 연습에서는 로컬 네트워크 게이트웨이를 업데이트하는 방법을 알아봅니다. 동일한 명령을 사용하여 원격 네트워크 주소 공간과 같은 로컬 네트워크 게이트웨이의 모든 구성 요소를 업데이트할 수 있습니다.
Azure 쪽 VPN 게이트웨이 만들기
먼저, Azure 쪽 연결의 VPN 게이트웨이를 만듭니다. 가상 네트워크 게이트웨이 하나를 만드는 데 최대 45분이 걸릴 수 있습니다. 시간을 절약하기 위해 Azure CLI 명령과 --no-wait
매개 변수를 사용하겠습니다. 이 매개 변수를 사용하면 두 가상 네트워크 게이트웨이를 동시에 만들 수 있으므로 이러한 리소스를 만드는 데 필요한 전체 시간을 최소화할 수 있습니다.
PIP-VNG-Azure-VNet-1 공용 IP 주소를 만들려면 Cloud Shell에서 다음 명령을 실행합니다.
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 게이트웨이를 만듭니다.
PIP-VNG-HQ-Network 공용 IP 주소를 만들려면 Cloud Shell에서 다음 명령을 실행합니다.
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가 성공으로 표시되면 계속 진행할 수 있습니다. 게이트웨이가 생성된 후 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가 "성공"으로 표시될 때까지 기다려야 합니다.
이 섹션에서는 로컬 네트워크 게이트웨이에 정의된 원격 게이트웨이 IP 주소 참조를 업데이트합니다. VPN 게이트웨이를 만들어서 IPv4 주소를 할당하고 연결하기 전에는 로컬 네트워크 게이트웨이를 업데이트할 수 없습니다.
다음 Azure CLI 명령을 실행하여 두 가상 네트워크 게이트웨이가 생성되었는지 확인할 수 있습니다. 초기 상태에 업데이트 중이 표시됩니다. VNG-Azure-VNet-1 및 VNG-HQ-Network 모두에 대해 성공을 확인하려고 합니다.
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에서 다음 명령을 실행하여 VNG-Azure-VNet-1 가상 네트워크 게이트웨이에 연결된 공용 IP 주소를 가리키도록 LNG-Azure-VNet-1 로컬 네트워크 게이트웨이를 업데이트합니다.
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에서 다음 명령을 실행하여 VNG-HQ-Network 가상 네트워크 게이트웨이에 연결된 공용 IP 주소를 가리키도록 LNG-HQ-Network 로컬 네트워크 게이트웨이를 업데이트합니다.
az network local-gateway update \ --resource-group <rgn>[sandbox resource group name]</rgn> \ --name LNG-HQ-Network \ --gateway-ip-address $PIPVNGHQNETWORK
연결 만들기
각 VPN 게이트웨이에서 해당 게이트웨이의 원격 네트워크에 대한 공용 IP 주소 참조를 포함하는 로컬 네트워크 게이트웨이로 연결하여 구성을 완료합니다.
연결에 사용할 공유 키를 만듭니다. 다음 명령에서
<shared key>
를 IPSec 사전 공유 키에 사용할 텍스트 문자열로 바꿉니다. 사전 공유 키는 출력 가능한 ASCII 문자로 구성된 128자 이하의 문자열입니다. 하이픈 및 물결표와 같은 특수 문자는 포함할 수 없습니다. 두 연결 모두에 이 사전 공유 키를 사용합니다.참고
이 예제에서 모든 숫자 집합은 공유 키 SHAREDKEY=123456789에 대해 작동합니다. 프로덕션 환경에서는 128자를 초과하지 않고 하이픈 또는 물결표와 같은 특수 문자가 ‘포함되지 않은’ 인쇄 가능한 ASCII 문자의 문자열을 사용하는 것이 좋습니다.
SHAREDKEY=<shared key>
LNG-HQ-Network에는 시뮬레이션된 온-프레미스 VPN 디바이스의 IP 주소에 대한 참조가 포함되어 있다는 사실을 기억하세요. VNG-Azure-VNet-1과 LNG-HQ-Network 간의 연결을 만들려면 Cloud Shell에서 다음 명령을 실행합니다.
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 주소에 대한 참조가 포함되어 있다는 사실을 기억하세요. 일반적으로 이러한 연결은 온-프레미스 디바이스에서 만듭니다. VNG-HQ-Network와 LNG-Azure-VNet-1 간의 연결을 만들려면 Cloud Shell에서 다음 명령을 실행합니다.
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 연결이 설정되었습니다.