편집

다음을 통해 공유


하이브리드 VPN 연결 문제 해결

Azure Virtual Network
Azure VPN Gateway
Windows Server

이 문서에서는 온-프레미스 네트워크와 Azure 간의 VPN 게이트웨이 연결 문제를 해결하기 위한 몇 가지 팁을 제공합니다. 일반적인 VPN 관련 오류 문제 해결에 대한 일반적인 내용은 일반적인 VPN 관련 오류문제 해결을 참조하세요.

VPN 어플라이언스 작동이 올바르게 작동하는지 확인합니다.

다음 권장 사항은 온-프레미스 VPN 어플라이언스가 올바르게 작동하는지 확인하는 데 유용합니다.

VPN 어플라이언스에 의해 생성된 로그 파일에서 오류 또는 오류를 확인합니다. 이렇게 하면 VPN 어플라이언스 작동이 제대로 작동하는지 확인하는 데 도움이 됩니다. 이 정보의 위치는 어플라이언스마다 다릅니다. 예를 들어 Windows Server에서 RRAS를 사용하는 경우 다음 PowerShell 명령을 사용하여 RRAS 서비스에 대한 오류 이벤트 정보를 표시할 수 있습니다.

Get-EventLog -LogName System -EntryType Error -Source RemoteAccess | Format-List -Property *

각 항목의 Message 속성은 오류에 대한 설명을 제공합니다. 몇 가지 일반적인 예는 다음과 같습니다.

  • RRAS VPN 네트워크 인터페이스 구성에서 Azure VPN 게이트웨이에 대해 지정된 잘못된 IP 주소로 인해 연결할 수 없습니다.

    EventID            : 20111
    MachineName        : on-premises-vm
    Data               : {41, 3, 0, 0}
    Index              : 14231
    Category           : (0)
    CategoryNumber     : 0
    EntryType          : Error
    Message            : RoutingDomainID- {00000000-0000-0000-0000-000000000000}: A demand dial connection to the remote
                            interface AzureGateway on port VPN2-4 was successfully initiated but failed to complete
                            successfully because of the following error: The network connection between your computer and
                            the VPN server could not be established because the remote server is not responding. This could
                            be because one of the network devices (for example, firewalls, NAT, routers, and so on) between your computer
                            and the remote server is not configured to allow VPN connections. Please contact your
                            Administrator or your service provider to determine which device may be causing the problem.
    Source             : RemoteAccess
    ReplacementStrings : {{00000000-0000-0000-0000-000000000000}, AzureGateway, VPN2-4, The network connection between
                            your computer and the VPN server could not be established because the remote server is not
                            responding. This could be because one of the network devices (for example, firewalls, NAT, routers, and so on)
                            between your computer and the remote server is not configured to allow VPN connections. Please
                            contact your Administrator or your service provider to determine which device may be causing the
                            problem.}
    InstanceId         : 20111
    TimeGenerated      : 3/18/2024 1:26:02 PM
    TimeWritten        : 3/18/2024 1:26:02 PM
    UserName           :
    Site               :
    Container          :
    
  • RRAS VPN 네트워크 인터페이스 구성에서 잘못된 공유 키를 지정합니다.

    EventID            : 20111
    MachineName        : on-premises-vm
    Data               : {233, 53, 0, 0}
    Index              : 14245
    Category           : (0)
    CategoryNumber     : 0
    EntryType          : Error
    Message            : RoutingDomainID- {00000000-0000-0000-0000-000000000000}: A demand dial connection to the remote
                            interface AzureGateway on port VPN2-4 was successfully initiated but failed to complete
                            successfully because of the following error: Internet key exchange (IKE) authentication credentials are unacceptable.
    
    Source             : RemoteAccess
    ReplacementStrings : {{00000000-0000-0000-0000-000000000000}, AzureGateway, VPN2-4, IKE authentication credentials are
                            unacceptable.
                            }
    InstanceId         : 20111
    TimeGenerated      : 3/18/2024 1:34:22 PM
    TimeWritten        : 3/18/2024 1:34:22 PM
    UserName           :
    Site               :
    Container          :
    

다음 PowerShell 명령을 사용하여 RRAS 서비스를 통해 연결 시도에 대한 이벤트 로그 정보를 가져올 수도 있습니다.

Get-EventLog -LogName Application -Source RasClient | Format-List -Property *

연결에 실패할 경우 이 로그에는 다음과 유사한 오류가 포함됩니다.

EventID            : 20227
MachineName        : on-premises-vm
Data               : {}
Index              : 4203
Category           : (0)
CategoryNumber     : 0
EntryType          : Error
Message            : CoId={B4000371-A67F-452F-AA4C-3125AA9CFC78}: The user SYSTEM dialed a connection named
                        AzureGateway that has failed. The error code returned on failure is 809.
Source             : RasClient
ReplacementStrings : {{B4000371-A67F-452F-AA4C-3125AA9CFC78}, SYSTEM, AzureGateway, 809}
InstanceId         : 20227
TimeGenerated      : 3/18/2024 1:29:21 PM
TimeWritten        : 3/18/2024 1:29:21 PM
UserName           :
Site               :
Container          :

연결 확인

VPN 게이트웨이에서 연결 및 라우팅을 확인합니다. VPN 어플라이언스는 Azure VPN Gateway를 통해 트래픽을 올바르게 라우팅하지 않을 수 있습니다. PsPing 같은 도구를 사용하여 VPN 게이트웨이 간 연결 및 라우팅을 확인합니다. 예를 들어 온-프레미스 컴퓨터에서 VNet에 있는 웹 서버로의 연결을 테스트하려면 다음 명령을 실행합니다(<<web-server-address>> 웹 서버의 주소로 대체).

PsPing -t <<web-server-address>>:80

온-프레미스 컴퓨터가 웹 서버로 트래픽을 라우팅할 수 있는 경우 다음과 유사한 출력이 표시됩니다.

D:\PSTools> psping -t 10.20.0.5:80

PsPing v2.01 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

TCP connect to 10.20.0.5:80:
Infinite iterations (warmup 1) connecting test:
Connecting to 10.20.0.5:80 (warmup): 6.21ms
Connecting to 10.20.0.5:80: 3.79ms
Connecting to 10.20.0.5:80: 3.44ms
Connecting to 10.20.0.5:80: 4.81ms

    Sent = 3, Received = 3, Lost = 0 (0% loss),
    Minimum = 3.44ms, Maximum = 4.81ms, Average = 4.01ms

온-프레미스 컴퓨터가 지정된 대상과 통신할 수 없는 경우 다음과 같은 메시지가 표시됩니다.

D:\PSTools>psping -t 10.20.1.6:80

PsPing v2.01 - PsPing - ping, latency, bandwidth measurement utility
Copyright (C) 2012-2014 Mark Russinovich
Sysinternals - www.sysinternals.com

TCP connect to 10.20.1.6:80:
Infinite iterations (warmup 1) connecting test:
Connecting to 10.20.1.6:80 (warmup): This operation returned because the timeout period expired.
Connecting to 10.20.1.6:80: This operation returned because the timeout period expired.
Connecting to 10.20.1.6:80: This operation returned because the timeout period expired.
Connecting to 10.20.1.6:80: This operation returned because the timeout period expired.
Connecting to 10.20.1.6:80:
    Sent = 3, Received = 0, Lost = 3 (100% loss),
    Minimum = 0.00ms, Maximum = 0.00ms, Average = 0.00ms

온-프레미스 방화벽에서 VPN 트래픽을 전달할 수 있고 올바른 포트가 열려 있는지 확인합니다.

온-프레미스 VPN 어플라이언스가 Azure VPN 게이트웨이와 호환되는 암호화 방법을 사용하는지 확인합니다. 정책 기반 라우팅의 경우 Azure VPN Gateway는 AES256, AES128 및 3DES 암호화 알고리즘을 지원합니다. 경로 기반 게이트웨이는 AES256 및 3DES를 지원합니다. 자세한 내용은 사이트 및 사이트 간의 VPN Gateway 연결 대한 VPN 디바이스 및 IPsec/IKE 매개 변수에 대한참조하세요.

Azure VPN Gateway 문제 확인

다음 권장 사항은 Azure VPN 게이트웨이에 문제가 있는지 확인하는 데 유용합니다.

Azure VPN Gateway 진단 로그에서 잠재적인 문제를 검사합니다. 자세한 내용은 단계별 Azure Resource Manager VNet 게이트웨이 진단 로그 캡처.

Azure VPN Gateway 및 온-프레미스 VPN 어플라이언스가 동일한 공유 인증 키로 구성되어 있는지 확인합니다. 다음 Azure CLI 명령을 사용하여 Azure VPN Gateway에 저장된 공유 키를 볼 수 있습니다.

azure network vpn-connection shared-key show <<resource-group>> <<vpn-connection-name>>

온-프레미스 VPN 어플라이언스에 적합한 명령을 사용하여 해당 어플라이언스에 대해 구성된 공유 키를 표시합니다.

Azure VPN Gateway를 보유하는 GatewaySubnet 서브넷이 NSG와 연결되어 있지 않은지 확인합니다.

다음 Azure CLI 명령을 사용하여 서브넷 세부 정보를 볼 수 있습니다.

azure network vnet subnet show -g <<resource-group>> -e <<vnet-name>> -n GatewaySubnet

네트워크 보안 그룹 ID 데이터 필드가 없는지 확인합니다. 다음 예제에서는 할당된 NSG(VPN-Gateway-Group)가 있는 GatewaySubnet 인스턴스에 대한 결과를 보여 줍니다. 이렇게 하면 이 NSG에 대해 정의된 규칙이 있는 경우 게이트웨이가 제대로 작동하지 않을 수 있습니다.

C:\>azure network vnet subnet show -g profx-prod-rg -e profx-vnet -n GatewaySubnet
    info:    Executing command network vnet subnet show
    + Looking up virtual network "profx-vnet"
    + Looking up the subnet "GatewaySubnet"
    data:    Id                              : /subscriptions/########-####-####-####-############/resourceGroups/profx-prod-rg/providers/Microsoft.Network/virtualNetworks/profx-vnet/subnets/GatewaySubnet
    data:    Name                            : GatewaySubnet
    data:    Provisioning state              : Succeeded
    data:    Address prefix                  : 10.20.3.0/27
    data:    Network Security Group id       : /subscriptions/########-####-####-####-############/resourceGroups/profx-prod-rg/providers/Microsoft.Network/networkSecurityGroups/VPN-Gateway-Group
    info:    network vnet subnet show command OK

Azure VNet의 가상 머신이 VNet 외부에서 들어오는 트래픽을 허용하도록 구성되어 있는지 확인합니다. 이러한 가상 머신을 포함하는 서브넷과 연결된 NSG 규칙을 확인합니다. 다음 Azure CLI 명령을 사용하여 모든 NSG 규칙을 볼 수 있습니다.

azure network nsg show -g <<resource-group>> -n <<nsg-name>>

Azure VPN Gateway가 연결되어 있는지 확인합니다. 다음 Azure PowerShell 명령을 사용하여 Azure VPN 연결의 현재 상태를 확인할 수 있습니다. <<connection-name>> 매개 변수는 가상 네트워크 게이트웨이와 로컬 게이트웨이를 연결하는 Azure VPN 연결의 이름입니다.

Get-AzureRmVirtualNetworkGatewayConnection -Name <<connection-name>> - ResourceGroupName <<resource-group>>

다음 코드 조각은 게이트웨이가 연결되고(첫 번째 예제), 연결이 끊어진 경우 생성된 출력을 강조 표시합니다(두 번째 예제).

PS C:\> Get-AzureRmVirtualNetworkGatewayConnection -Name profx-gateway-connection -ResourceGroupName profx-prod-rg

AuthorizationKey           :
VirtualNetworkGateway1     : Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkGateway
VirtualNetworkGateway2     :
LocalNetworkGateway2       : Microsoft.Azure.Commands.Network.Models.PSLocalNetworkGateway
Peer                       :
ConnectionType             : IPsec
RoutingWeight              : 0
SharedKey                  : ####################################
ConnectionStatus           : Connected
EgressBytesTransferred     : 55254803
IngressBytesTransferred    : 32227221
ProvisioningState          : Succeeded
...
PS C:\> Get-AzureRmVirtualNetworkGatewayConnection -Name profx-gateway-connection2 -ResourceGroupName profx-prod-rg

AuthorizationKey           :
VirtualNetworkGateway1     : Microsoft.Azure.Commands.Network.Models.PSVirtualNetworkGateway
VirtualNetworkGateway2     :
LocalNetworkGateway2       : Microsoft.Azure.Commands.Network.Models.PSLocalNetworkGateway
Peer                       :
ConnectionType             : IPsec
RoutingWeight              : 0
SharedKey                  : ####################################
ConnectionStatus           : NotConnected
EgressBytesTransferred     : 0
IngressBytesTransferred    : 0
ProvisioningState          : Succeeded
...

기타 문제

다음 권장 사항은 호스트 VM 구성, 네트워크 대역폭 사용률 또는 애플리케이션 성능에 문제가 있는지 확인하는 데 유용합니다.

  • 방화벽 구성을 확인합니다. 서브넷의 Azure VM에서 실행되는 게스트 운영 체제의 방화벽이 온-프레미스 IP 범위에서 허용되는 트래픽을 허용하도록 올바르게 구성되었는지 확인합니다.

  • 트래픽 볼륨이 Azure VPN Gateway에서 사용할 수 있는 대역폭 제한에 근접하지 않는지 확인합니다. 이를 확인하는 방법은 온-프레미스에서 실행되는 VPN 어플라이언스에 따라 달라집니다. 예를 들어 Windows Server에서 RRAS를 사용하는 경우 성능 모니터를 사용하여 VPN 연결을 통해 수신 및 전송되는 데이터의 볼륨을 추적할 수 있습니다. RAS Total 개체를 사용하여 Bytes Received/SecBytes Transmitted/Sec 카운터를 선택합니다.

    VPN 네트워크 트래픽성능 카운터

    결과를 VPN 게이트웨이에서 사용할 수 있는 대역폭(기본 SKU의 경우 100Mbps에서 VpnGw3 SKU의 경우 1.25Gbps)과 비교해야 합니다.

    예제 VPN 네트워크 성능 그래프

  • 애플리케이션 로드에 적합한 VM 수와 크기를 배포했는지 확인합니다. Azure VNet의 가상 머신이 느리게 실행되는지 확인합니다. 이 경우 오버로드되거나 부하를 처리하기에 너무 적거나 부하 분산 장치가 올바르게 구성되지 않을 수 있습니다. 이를 확인하려면 진단 정보를 캡처하고 분석합니다. Azure Portal을 사용하여 결과를 검사할 수 있지만 성능 데이터에 대한 자세한 인사이트를 제공할 수 있는 많은 타사 도구도 사용할 수 있습니다.

    Azure DDoS Protection을 사용하여 악의적인 리소스 소모를 방지할 수 있습니다. Azure DDoS Protection애플리케이션 디자인 모범 사례와 결합하여 향상된 DDoS 완화 기능을 제공하여 DDoS 공격에 대한 더 많은 방어를 제공합니다. 경계 가상 네트워크에서 Azure DDOS Protection 사용하도록 설정해야 합니다.

  • 애플리케이션이 클라우드 리소스를 효율적으로 사용하고 있는지 확인합니다. 각 VM에서 실행되는 애플리케이션 코드를 계측하여 애플리케이션이 리소스를 최대한 활용하는지 여부를 확인합니다. Application Insights 같은 도구를 사용할 수 있습니다.

다음 단계

제품 설명서:

Microsoft Learn 모듈: