다음을 통해 공유


PowerShell을 사용하여 사이트 간 연결 및 ExpressRoute 공존 연결 구성

이 문서에서는 공존하는 ExpressRoute 및 사이트 간 VPN 연결을 구성합니다. 사이트 간 VPN 및 ExpressRoute를 구성하는 기능이 있으면 여러 장점이 있습니다. 사이트 간 VPN을 ExpressRoute의 보안 장애 조치(failover) 경로로 구성하거나, 사이트 간 VPN을 사용하여 ExpressRoute를 통해 연결되지 않은 사이트에 연결할 수 있습니다. 이 문서에서는 두 시나리오를 모두 구성하는 단계를 설명합니다. 이 문서는 Resource Manager 배포 모델에 적용됩니다.

사이트 간 VPN과 ExpressRoute가 공존하는 연결을 구성하면 여러 장점이 있습니다.

  • 사이트 간 VPN을 ExpressRoute에 대한 안전한 장애 조치(failover) 경로로 구성할 수 있습니다.
  • 또는 사이트 간 VPN을 사용하여 ExpressRoute를 통해 연결되어 있지 않은 사이트에 연결할 수 있습니다.

이 문서에서는 두 시나리오를 모두 구성하는 단계를 설명합니다. 이 문서는 Resource Manager 배포 모델에 적용되며 PowerShell을 사용합니다. 설명서를 아직 사용할 수는 없지만 Azure Portal을 사용하여 이러한 시나리오를 구성할 수도 있습니다. 어떤 게이트웨이를 먼저 구성해도 상관 없습니다. 일반적으로 새 게이트웨이 또는 게이트웨이 연결을 추가할 때 가동 중지 시간이 발생하지 않습니다.

참고 항목

ExpressRoute 회로를 통해 사이트 간 VPN을 만들려면 Microsoft 피어링을 통한 사이트간 VPN을 참조하세요.

제한 및 제한 사항

  • 경로 기반 VPN Gateway만 지원됩니다. 경로 기반 VPN 게이트웨이를 사용해야 합니다. 여러 정책 기반 VPN 디바이스에 연결에 설명된 대로 '정책 기반 트래픽 선택기'용으로 구성된 VPN 연결을 통해 경로 기반 VPN 게이트웨이를 사용할 수도 있습니다.
  • ExpressRoute-VPN Gateway 공존 구성은 기본 SKU 공용 IP에서 지원되지 않습니다.
  • ExpressRoute와 VPN 간의 전송 라우팅을 사용하려면 Azure VPN Gateway의 ASN을 65515로 설정해야 하며 Azure Route Server를 사용해야 합니다. Azure VPN Gateway는 BGP 라우팅 프로토콜을 지원합니다. ExpressRoute와 Azure VPN이 함께 작동하려면 Azure VPN 게이트웨이의 자율 시스템 번호를 기본값인 65515로 유지해야 합니다. 이전에 65515 이외의 ASN을 선택하고 설정을 65515로 변경하는 경우 설정을 적용하려면 VPN 게이트웨이를 다시 설정해야 합니다.
  • 게이트웨이 서브넷은 /27 또는 더 짧은 접두사(예: /26, /25)여야 합니다. 그렇지 않으면 ExpressRoute 가상 네트워크 게이트웨이를 추가할 때 오류 메시지가 표시됩니다.

구성 디자인

ExpressRoute에 대한 장애 조치(failover) 경로로 사이트 간 VPN 구성

ExpressRoute 연결에 대한 백업으로 사이트 간 VPN 연결을 구성할 수 있습니다. 이 연결은 Azure 프라이빗 피어링 경로에 연결된 가상 네트워크에만 적용됩니다. Azure Microsoft 피어링을 통해 액세스할 수 있는 서비스에 대한 VPN 기반 장애 조치(failover) 솔루션은 없습니다. ExpressRoute 회로는 항상 기본 링크입니다. ExpressRoute 회로가 실패하면 데이터는 사이트 간 VPN 경로를 통해 전송됩니다. 비대칭 라우팅을 방지하려면 로컬 네트워크 구성에서 사이트 간 VPN을 통한 ExpressRoute 회로를 사용해야 합니다. ExpressRoute를 수신한 경로에 대해 더 높은 로컬 기본 설정을 설정하여 ExpressRoute 경로를 사용할 수 있습니다.

참고

  • ExpressRoute Microsoft 피어링을 사용하도록 설정한 경우 ExpressRoute 연결에서 Azure VPN 게이트웨이의 공용 IP 주소를 받을 수 있습니다. 사이트 간 VPN 연결을 백업으로 설정하려면 VPN 연결을 인터넷으로 라우팅하도록 온-프레미스 네트워크를 구성해야 합니다.

  • 두 경로가 동일한 경우 사이트 간 VPN보다 ExpressRoute 회로 경로가 사용되며, Azure는 가장 긴 접두사 일치 항목을 사용하여 패킷의 대상에 대한 경로를 선택합니다.

사이트 간 VPN 연결이 ExpressRoute의 백업으로 표시된 다이어그램.

사이트 간 VPN을 구성하여 ExpressRoute를 통해 연결되지 않은 사이트에 연결

일부 사이트는 사이트 간 VPN을 통해 Azure에 직접 연결하고 일부 사이트는 ExpressRoute를 통해 연결된 네트워크를 구성할 수 있습니다.

공존

사용할 단계 선택

두 가지 절차 중에서 선택할 수 있습니다. 연결할 기존 가상 네트워크가 있는지 아니면 새 가상 네트워크를 만들 것인지에 따라 구성 절차를 선택합니다.

  • VNet이 없어서 만들어야 하는 경우

    가상 네트워크가 아직 없는 경우 이 절차에서는 Resource Manager 배포 모델을 사용하여 새 가상 네트워크를 만들고 새 ExpressRoute 및 사이트 간 VPN 연결을 만드는 과정을 안내합니다.

  • 이미 Resource Manager 배포 모델 VNet이 있는 경우

    기존 사이트 간 VPN 또는 ExpressRoute에 연결된 가상 네트워크가 이미 있을 수 있습니다. 이 시나리오에서 게이트웨이 서브넷 접두사가 /28 이상(/29, /30 등)이면 기존 게이트웨이를 삭제해야 합니다. 기존 VNet 섹션에 대해 공존 연결을 구성하는 단계에서는 게이트웨이를 삭제한 다음, 새 ExpressRoute 및 사이트 간 VPN 연결을 만드는 과정을 안내합니다.

    게이트웨이를 삭제하고 다시 만드는 경우 프레미스 간 연결에 대한 가동 중지 시간이 발생합니다. 그러나 VM 및 서비스는 게이트웨이를 구성하는 동안 인터넷을 통해 연결할 수 있습니다.

시작하기 전에

이 문서의 단계 및 예제에서는 Azure PowerShell Az 모듈을 사용합니다. 컴퓨터에 Az 모듈을 로컬로 설치하려면 Azure PowerShell 설치를 참조하세요. 새 Az 모듈에 대한 자세한 내용은 새 Azure PowerShell Az 모듈 소개를 참조하세요. PowerShell cmdlet은 자주 업데이트됩니다. 최신 버전을 실행하지 않는 경우 지침에 지정된 값이 실패할 수 있습니다. 시스템에 설치된 PowerShell 버전을 찾으려면 Get-Module -ListAvailable Az cmdlet을 사용합니다.

Azure PowerShell 또는 CLI를 로컬로 설치하는 대신 Azure Cloud Shell을 사용하여 대부분의 PowerShell cmdlet 및 CLI 명령을 실행할 수 있습니다. Azure Cloud Shell은 공통 Azure 도구가 사전 설치되고 계정으로 사용하도록 구성된 체험 대화형 셸입니다. Azure Cloud Shell에서 이 문서에 포함된 코드를 실행하려면 Cloud Shell 세션을 열고 코드 블록의 복사 단추를 사용하여 코드를 복사한 다음, Windows 및 Linux에서는 Ctrl+Shift+V, macOS에서는 Cmd+Shift+V를 사용하여 Cloud Shell 세션에 붙여 넣습니다. 붙여넣은 텍스트는 자동으로 실행되지 않습니다. Enter를 눌러 코드를 실행합니다.

Cloud Shell을 시작하는 몇 가지 방법이 있습니다.

옵션 링크
코드 블록의 오른쪽 위 모서리에서 사용을 클릭합니다. 이 문서의 Cloud Shell
브라우저에서 Cloud Shell을 엽니다. https://shell.azure.com/powershell
Azure Portal의 오른쪽 위 모서리에 있는 메뉴에서 Cloud Shell 단추를 클릭합니다. 포털의 Cloud Shell

이 절차에서는 공존하는 VNet과 사이트 간 연결 및 ExpressRoute 연결을 만드는 방법을 안내합니다. 이 구성에 사용할 cmdlet은 지금까지 사용하던 것과 약간 다를 수 있습니다. 다음 지침에 지정된 cmdlet을 사용해야 합니다.

  1. 로그인하고 구독을 선택합니다.

    Azure Cloud Shell을 사용하는 경우 '사용해 보세요'를 클릭한 후 자동으로 Azure 계정에 로그인합니다. 로컬로 로그인하려면 상승된 권한으로 PowerShell 콘솔을 열고 cmdlet을 실행하여 연결합니다.

    Connect-AzAccount
    

    둘 이상의 구독이 있는 경우 Azure 구독 목록을 가져옵니다.

    Get-AzSubscription
    

    사용할 구독을 지정합니다.

    Select-AzSubscription -SubscriptionName "Name of subscription"
    
  2. 변수를 정의하고 리소스 그룹을 만듭니다.

    $location = "Central US"
    $resgrp = New-AzResourceGroup -Name "ErVpnCoex" -Location $location
    $VNetASN = 65515
    
  3. GatewaySubnet을 포함하여 가상 네트워크를 만듭니다. 가상 네트워크 만들기에 대한 자세한 내용은 가상 네트워크 만들기를 참조하세요. 서브넷 만들기에 대한 자세한 내용은 서브넷 만들기를 참조하세요.

    Important

    GatewaySubnet은 /27 또는 더 짧은 접두사(예: /26 또는 /25)여야 합니다.

    새 가상 네트워크를 만듭니다.

    $vnet = New-AzVirtualNetwork -Name "CoexVnet" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AddressPrefix "10.200.0.0/16"
    

    AppGatewaySubnet이라는 두 개의 서브넷을 추가합니다.

    Add-AzVirtualNetworkSubnetConfig -Name "App" -VirtualNetwork $vnet -AddressPrefix "10.200.1.0/24"
    Add-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet -AddressPrefix "10.200.255.0/24"
    

    가상 네트워크 구성을 저장합니다.

    $vnet = Set-AzVirtualNetwork -VirtualNetwork $vnet
    
  4. 다음으로, 사이트 간 VPN 게이트웨이를 만듭니다. VPN 게이트웨이 구성에 대한 자세한 내용은 사이트 간 연결로 VNet 구성을 참조하세요. GatewaySku는 VpnGw1, VpnGw2, VpnGw3, StandardHighPerformance VPN 게이트웨이에 대해서만 지원됩니다. ExpressRoute-VPN Gateway 공존 구성은 기본 SKU에서 지원되지 않습니다. VpnType은 RouteBased여야 합니다.

    $gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    $gwIP = New-AzPublicIpAddress -Name "VPNGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic
    $gwConfig = New-AzVirtualNetworkGatewayIpConfig -Name "VPNGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id
    New-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw1"
    

    Azure VPN 게이트웨이는 BGP 라우팅 프로토콜을 지원합니다. 다음 명령에서 -Asn 플래그를 추가하여 가상 네트워크에 대해 ASN(AS 번호)을 지정할 수 있습니다. Asn 매개 변수를 지정하지 않으면 기본적으로 AS 번호는 65515입니다.

    $azureVpn = New-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "Vpn" -VpnType "RouteBased" -GatewaySku "VpnGw1"
    

    참고 항목

    공존하는 게이트웨이의 경우 기본 ASN 65515를 사용해야 합니다. 자세한 내용은 제한 사항을 참조하세요.

    $azureVpn.BgpSettings.BgpPeeringAddress$azureVpn.BgpSettings.Asn을 실행하면 Azure가 VPN 게이트웨이에 사용하는 BGP 피어링 IP와 AS 번호를 찾을 수 있습니다. 자세한 내용은 Azure VPN Gateway에 대한 BGP 구성을 참조하세요.

  5. 로컬 사이트 VPN Gateway 엔터티를 만듭니다. 이 명령은 온-프레미스 VPN Gateway를 구성하지 않습니다. 대신, Azure VPN Gateway를 연결할 수 있도록 공용 IP 주소 및 온-프레미스 주소 공간과 같은 로컬 게이트웨이 설정을 제공할 수 있게 해줍니다.

    로컬 VPN 디바이스가 고정 라우팅만을 지원하는 경우 다음과 같은 방식으로 고정 경로를 구성할 수 있습니다.

    $MyLocalNetworkAddress = @("10.100.0.0/16","10.101.0.0/16","10.102.0.0/16")
    $localVpn = New-AzLocalNetworkGateway -Name "LocalVPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -GatewayIpAddress *<Public IP>* -AddressPrefix $MyLocalNetworkAddress
    

    로컬 VPN 디바이스가 BGP를 지원하고 동적 라우팅을 사용하도록 설정하려는 경우 로컬 VPN 디바이스의 BGP 피어링 IP 및 AS 번호를 알아야 합니다.

    $localVPNPublicIP = "<Public IP>"
    $localBGPPeeringIP = "<Private IP for the BGP session>"
    $localBGPASN = "<ASN>"
    $localAddressPrefix = $localBGPPeeringIP + "/32"
    $localVpn = New-AzLocalNetworkGateway -Name "LocalVPNGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -GatewayIpAddress $localVPNPublicIP -AddressPrefix $localAddressPrefix -BgpPeeringAddress $localBGPPeeringIP -Asn $localBGPASN
    
  6. 새 Azure VPN Gateway에 연결할 로컬 VPN 디바이스를 구성합니다. VPN 디바이스 구성에 대한 자세한 내용은 VPN 디바이스 구성을 참조하세요.

  7. Azure의 사이트 간 VPN 게이트웨이를 로컬 게이트웨이에 연결합니다.

    $azureVpn = Get-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName
    New-AzVirtualNetworkGatewayConnection -Name "VPNConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $azureVpn -LocalNetworkGateway2 $localVpn -ConnectionType IPsec -SharedKey <yourkey>
    
  8. 기존 ExpressRoute 회로에 연결하는 경우 8~9단계를 건너뛰고, 10단계로 이동합니다. ExpressRoute 회로를 구성합니다. ExpressRoute 회로 구성에 대한 자세한 내용은 ExpressRoute 회로 만들기를 참조하세요.

  9. ExpressRoute 회로를 통해 Azure 프라이빗 피어링을 구성합니다. ExpressRoute 회로를 통한 Azure 개인 피어링에 대한 자세한 내용은 피어링 구성을 참조하세요.

  10. ExpressRoute 게이트웨이를 만듭니다. ExpressRoute 게이트웨이 구성에 대한 자세한 내용은 ExpressRoute 게이트웨이 구성을 참조하세요. GatewaySKU는 Standard, HighPerformance 또는 UltraPerformance이어야 합니다.

    $gwSubnet = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet
    $gwIP = New-AzPublicIpAddress -Name "ERGatewayIP" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -AllocationMethod Dynamic
    $gwConfig = New-AzVirtualNetworkGatewayIpConfig -Name "ERGatewayIpConfig" -SubnetId $gwSubnet.Id -PublicIpAddressId $gwIP.Id
    $gw = New-AzVirtualNetworkGateway -Name "ERGateway" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -IpConfigurations $gwConfig -GatewayType "ExpressRoute" -GatewaySku Standard
    
  11. ExpressRoute 게이트웨이를 ExpressRoute 회로에 연결합니다. 이 단계를 완료하면 ExpressRoute를 통해 온-프레미스 네트워크와 Azure 간의 연결이 설정됩니다. 링크 작업에 대한 자세한 내용은 Vnet을 ExpressRoute에 연결을 참조하세요.

    $ckt = Get-AzExpressRouteCircuit -Name "YourCircuit" -ResourceGroupName "YourCircuitResourceGroup"
    New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName $resgrp.ResourceGroupName -Location $location -VirtualNetworkGateway1 $gw -PeerId $ckt.Id -ConnectionType ExpressRoute
    

VPN Gateway에 지점 및 사이트 간 구성을 추가하려면

다음 단계에 따라 공존 설정에서 VPN 게이트웨이에 지점 및 사이트 간 구성을 추가할 수 있습니다. VPN 루트 인증서를 업로드하려면 PowerShell을 컴퓨터에 로컬로 설치하거나 Azure Portal을 사용해야 합니다.

  1. VPN 클라이언트 주소 풀을 추가합니다.

    $azureVpn = Get-AzVirtualNetworkGateway -Name "VPNGateway" -ResourceGroupName $resgrp.ResourceGroupName
    Set-AzVirtualNetworkGateway -VirtualNetworkGateway $azureVpn -VpnClientAddressPool "10.251.251.0/24"
    
  2. VPN 게이트웨이에 대한 Azure에 VPN 루트 인증서를 업로드합니다. 이 예제에서는 루트 인증서가 다음 PowerShell cmdlet이 실행되는 로컬 컴퓨터에 저장되고 사용자가 PowerShell을 로컬로 실행하고 있다고 가정합니다. Azure Portal을 사용하여 인증서를 업로드할 수도 있습니다.

    $p2sCertFullName = "RootErVpnCoexP2S.cer" 
    $p2sCertMatchName = "RootErVpnCoexP2S" 
    $p2sCertToUpload=get-childitem Cert:\CurrentUser\My | Where-Object {$_.Subject -match $p2sCertMatchName} 
    if ($p2sCertToUpload.count -eq 1){write-host "cert found"} else {write-host "cert not found" exit} 
    $p2sCertData = [System.Convert]::ToBase64String($p2sCertToUpload.RawData) 
    Add-AzVpnClientRootCertificate -VpnClientRootCertificateName $p2sCertFullName -VirtualNetworkGatewayname $azureVpn.Name -ResourceGroupName $resgrp.ResourceGroupName -PublicCertData $p2sCertData
    

지점 및 사이트 간 VPN에 대한 자세한 내용은 지점 및 사이트 간 연결 구성을 참조하세요.

ExpressRoute와 Azure VPN 간의 전송 라우팅을 사용하도록 설정하려면 다음을 수행합니다.

ExpressRoute에 연결된 로컬 네트워크 중 하나와 사이트 간 VPN 연결에 연결된 다른 로컬 네트워크 간에 연결을 사용하도록 설정하려면 Azure Route Server를 설정해야 합니다.

다음 단계

ExpressRoute에 대한 자세한 내용은 ExpressRoute FAQ를 참조하세요.