연습 - Azure CLI 명령을 사용하여 사이트 간 VPN 게이트웨이 만들기

완료됨

이제 공용 IP 주소, 가상 네트워크 게이트웨이 및 연결을 만들어 사이트 간 VPN 게이트웨이를 완성할 수 있습니다. 로컬 네트워크 게이트웨이를 만들 때 공용 IP 주소 참조의 자리 표시자를 사용했던 사실을 기억하세요. 따라서 이제 수행해야 할 작업 중 하나는 실제 공용 IP 주소를 가상 네트워크 게이트웨이에 할당하여 이러한 게이트웨이를 업데이트하는 것입니다.

공용 IP 주소 및 가상 네트워크 게이트웨이를 만든 후에 로컬 네트워크 게이트웨이를 만드는 것이 이상적입니다. 이 연습에서는 로컬 네트워크 게이트웨이를 업데이트하는 방법을 알아봅니다. 동일한 명령을 사용하여 원격 네트워크 주소 공간과 같은 로컬 네트워크 게이트웨이의 모든 구성 요소를 업데이트할 수 있습니다.

Azure 쪽 VPN 게이트웨이 만들기

먼저, Azure 쪽 연결의 VPN 게이트웨이를 만듭니다. 가상 네트워크 게이트웨이 하나를 만드는 데 최대 45분이 걸릴 수 있습니다. 시간을 절약하기 위해 Azure CLI 명령과 --no-wait 매개 변수를 사용하겠습니다. 이 매개 변수를 사용하면 두 가상 네트워크 게이트웨이를 동시에 만들 수 있으므로 이러한 리소스를 만드는 데 필요한 전체 시간을 최소화할 수 있습니다.

  1. 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
    
  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. 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
    
  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성공으로 표시되면 계속 진행할 수 있습니다. 게이트웨이가 생성된 후 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 주소를 할당하고 연결하기 전에는 로컬 네트워크 게이트웨이를 업데이트할 수 없습니다.

  1. 다음 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 주소 및 네트워크와 같은 정보가 포함되어 있습니다.

  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에서 다음 명령을 실행하여 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
    
  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에서 다음 명령을 실행하여 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 주소 참조를 포함하는 로컬 네트워크 게이트웨이로 연결하여 구성을 완료합니다.

  1. 연결에 사용할 공유 키를 만듭니다. 다음 명령에서 <shared key>를 IPSec 사전 공유 키에 사용할 텍스트 문자열로 바꿉니다. 사전 공유 키는 출력 가능한 ASCII 문자로 구성된 128자 이하의 문자열입니다. 하이픈 및 물결표와 같은 특수 문자는 포함할 수 없습니다. 두 연결 모두에 이 사전 공유 키를 사용합니다.

    참고

    이 예제에서 모든 숫자 집합은 공유 키 SHAREDKEY=123456789에 대해 작동합니다. 프로덕션 환경에서는 128자를 초과하지 않고 하이픈 또는 물결표와 같은 특수 문자가 ‘포함되지 않은’ 인쇄 가능한 ASCII 문자의 문자열을 사용하는 것이 좋습니다.

    SHAREDKEY=<shared key>
    
  2. LNG-HQ-Network에는 시뮬레이션된 온-프레미스 VPN 디바이스의 IP 주소에 대한 참조가 포함되어 있다는 사실을 기억하세요. VNG-Azure-VNet-1LNG-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
    
  3. LNG-Azure-VNet-1에는 VNG-Azure-VNet-1 VPN 게이트웨이와 연결된 공용 IP 주소에 대한 참조가 포함되어 있다는 사실을 기억하세요. 일반적으로 이러한 연결은 온-프레미스 디바이스에서 만듭니다. VNG-HQ-NetworkLNG-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 터널이 연결되었는지 확인합니다.

  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.