CLI를 사용하여 사이트 간 VPN 연결로 가상 네트워크 만들기

이 문서에서는 Azure CLI를 사용하여 온-프레미스 네트워크에서 VNet으로 사이트 간 VPN 게이트웨이 연결을 만드는 방법을 보여 줍니다. 이 문서의 단계는 Resource Manager 배포 모델에 적용됩니다. 다른 배포 도구 또는 배포 모델을 사용하는 경우 다음 목록에서 별도의 옵션을 선택하여 이 구성을 만들 수도 있습니다.

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

사이트 간 VPN 게이트웨이 연결은 IPsec/IKE(IKEv1 또는 IKEv2) VPN 터널을 통해 온-프레미스 네트워크를 Azure 가상 네트워크에 연결하는 데 사용됩니다. 이 연결 유형은 할당된 외부 연결 공용 IP 주소를 갖고 있는 온-프레미스에 있는 VPN 디바이스를 필요로 합니다. VPN Gateway에 대한 자세한 내용은 VPN Gateway 정보를 참조하세요.

시작하기 전에

구성을 시작하기 전에 다음 기준을 충족하는지 확인합니다.

  • 호환되는 VPN 디바이스 및 이 디바이스를 구성할 수 있는 사람이 있는지 확인합니다. 호환되는 VPN 디바이스 및 디바이스 구성에 대한 자세한 내용은 VPN 디바이스 정보를 참조하세요.
  • VPN 디바이스에 대한 외부 연결 공용 IPv4 주소가 있는지 확인합니다.
  • 온-프레미스 네트워크에 있는 IP 주소 범위에 익숙하지 않은 경우 세부 정보를 제공할 수 있는 다른 사람의 도움을 받아야 합니다. 이 구성을 만들 때 Azure가 온-프레미스 위치에 라우팅할 IP 주소 범위 접두사를 지정해야 합니다. 온-프레미스 네트워크의 어떤 서브넷도 사용자가 연결하려는 가상 네트워크 서브넷과 중첩될 수 없습니다.
  • 이 문서에는 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. 리소스 그룹 만들기

다음 예제에서는 'eastus' 위치에 'TestRG1'이라는 리소스 그룹을 만듭니다. VNet을 만들려는 지역에 이미 리소스 그룹이 있는 경우 그 리소스 그룹을 대신 사용할 수 있습니다.

az group create --name TestRG --location eastus

3. 가상 네트워크 만들기

아직 가상 네트워크가 없으면 az network vnet create 명령을 사용하여 만듭니다. 가상 네트워크를 만들 때 지정하는 주소 공간이 온-프레미스 네트워크에 있는 주소 공간과 겹치지 않는지 확인하세요.

참고 항목

이 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 주소를 확보하거나 추가 주소 범위를 지정하여 해당 범위에 속한 게이트웨이 서브넷을 만들 수 있습니다.

az network vnet subnet create 명령을 사용하여 게이트웨이 서브넷을 만듭니다.

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

Important

게이트웨이 서브넷으로 작업할 때 NSG(네트워크 보안 그룹)를 게이트웨이 서브넷에 연결하지 마세요. 네트워크 보안 그룹을 이 서브넷에 연결하면 가상 네트워크 게이트웨이(VPN 및 ExpressRoute 게이트웨이)가 예상대로 작동하지 않을 수 있습니다. 네트워크 보안 그룹에 대한 자세한 내용은 네트워크 보안 그룹이란?을 참조하세요.

5. 로컬 네트워크 게이트웨이 만들기

로컬 네트워크 게이트웨이는 일반적으로 온-프레미스 위치를 가리킵니다. Azure가 참조할 수 있는 사이트 이름을 지정한 다음, 연결을 만들 온-프레미스 VPN 디바이스의 IP 주소를 지정합니다. 또한 VPN Gateway를 통해 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 Gateway에는 공용 IP 주소가 있어야 합니다. 먼저 IP 주소 리소스를 요청하고, 가상 네트워크 게이트웨이를 만들 때 참조합니다. VPN Gateway가 생성될 때 IP 주소는 리소스에 동적으로 할당됩니다. 게이트웨이를 삭제하고 다시 만드는 경우에만 공용 IP 주소가 변경됩니다. VPN Gateway의 크기 조정, 다시 설정 또는 기타 내부 유지 관리/업그레이드 시에는 변경되지 않습니다.

az network public-ip create 명령을 사용하여 공용 IP 주소를 요청합니다.

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

7. VPN 게이트웨이 만들기

가상 네트워크 VPN Gateway 만들기. 종종 선택한 게이트웨이 SKU에 따라 게이트웨이를 만드는 데 45분 이상 걸릴 수 있습니다.

다음 값을 사용합니다.

  • 사이트 간 구성에 대한 --gateway-typeVpn입니다. 게이트웨이 유형은 항상 구현하는 구성에 따라 다릅니다. 자세한 내용은 게이트웨이 유형을 참조하세요.
  • --vpn-typeRouteBased(일부 설명서에서 동적 게이트웨이라고 함)입니다.
  • 사용할 게이트웨이 SKU를 선택합니다. 특정 SKU에 대한 구성 제한이 있습니다. 자세한 내용은 게이트웨이 SKU를 참조하세요.

az network vnet-gateway create 명령을 사용하여 VPN Gateway를 만듭니다. '--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 주소입니다. Azure Portal, PowerShell 또는 CLI를 사용하여 공용 IP 주소를 볼 수 있습니다. 가상 네트워크 게이트웨이의 공용 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'은 테스트하려는 연결의 이름을 나타냅니다. 연결이 계속 설정 중이면 연결 상태가 '연결 중'으로 표시됩니다. 연결이 설정되면 상태가 '연결됨'으로 변경됩니다. 환경에 대한 값으로 다음 예제를 수정합니다.

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

다른 방법을 사용하여 연결을 확인하려면 VPN Gateway 연결 확인을 참조하세요.

가상 컴퓨터에 연결하려면

VM에 대한 원격 데스크톱 연결을 만들어 가사 네트워크에 배포된 VM에 연결할 수 있습니다. 처음에 VM에 연결할 수 있는지 확인하는 가장 좋은 방법은 컴퓨터 이름이 아닌 개인 IP 주소를 사용하여 연결하는 것입니다. 이렇게 하면 연결할 수 있는지, 아니면 이름 확인이 제대로 구성되었는지를 테스트할 수 있습니다.

  1. 개인 IP 주소를 찾습니다. Azure Portal에서 VM의 속성을 살펴보거나 PowerShell을 사용하여 VM의 개인 IP 주소를 찾을 수 있습니다.

    • 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에 대한 이름 확인을 참조하세요.

RDP 연결에 대한 자세한 내용은 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 Gateway를 삭제할 필요가 없습니다.

변경할 때마다 변경하려는 접두사뿐 아니라 전체 접두사 목록을 지정해야 합니다. 이 예제에서는 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 주소가 변경된 경우 해당 변경 내용을 반영하도록 로컬 네트워크 게이트웨이를 수정해야 합니다. 기존 VPN Gateway 연결을 제거하지 않고도(있는 경우) 게이트웨이 IP 주소를 변경할 수 있습니다. 게이트웨이 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 Gateway 공용 IP 주소 보기

가상 네트워크 게이트웨이의 공용 IP 주소를 찾으려면 az network public-ip list 명령을 사용합니다. 이 예제는 읽기 쉽도록 공용 IP 목록을 테이블 형식으로 표시하도록 출력 형식이 지정됩니다.

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

다음 단계