Устранение неполадок при гибридном VPN-подключенииTroubleshoot a hybrid VPN connection

В этой статье приводится ряд советов по устранению неполадок при подключение между локальной сетью и Azure с использованием VPN-шлюза.This article gives some tips for troubleshooting a VPN gateway connection between an on-premises network and Azure. Общие сведения об устранении неполадок, связанных с VPN, см. здесь.For general information on troubleshooting common VPN-related errors, see Troubleshooting common VPN related errors.

Проверка работы VPN-устройстваVerify the VPN appliance is functioning correctly

Следующие рекомендации помогут определить, правильно ли работает ваше локальное VPN-устройство.The following recommendations are useful for determining if your on-premises VPN appliance is functioning correctly.

Проверьте все файлы журнала, созданные VPN-устройством, на наличие ошибок или сбоев.Check any log files generated by the VPN appliance for errors or failures. Так вы сможете определить, правильно ли функционирует VPN-устройство.This will help you determine if the VPN appliance is functioning correctly. Расположение этих сведений будет различаться в зависимости от устройства.The location of this information will vary according to your appliance. Например, при использовании RRAS на базе Windows Server 2012 для отображения сведений об ошибке события для службы RRAS можно использовать следующую команду PowerShell:For example, if you are using RRAS on Windows Server 2012, you can use the following PowerShell command to display error event information for the RRAS service:

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

В свойстве Message каждой записи содержится описание ошибки.The Message property of each entry provides a description of the error. Несколько распространенных примеров:Some common examples are:

  • Отсутствие подключения, возможной причиной которого является неправильный IP-адрес для шлюза Azure VPN в конфигурации сетевого интерфейса VPN RRAS.Inability to connect, possibly due to an incorrect IP address specified for the Azure VPN gateway in the RRAS VPN network interface configuration.

    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/2016 1:26:02 PM
    TimeWritten        : 3/18/2016 1:26:02 PM
    UserName           :
    Site               :
    Container          :
    
  • Неправильный общий ключ, заданный в конфигурации сетевого интерфейса VPN RRAS.The wrong shared key being specified in the RRAS VPN network interface configuration.

    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/2016 1:34:22 PM
    TimeWritten        : 3/18/2016 1:34:22 PM
    UserName           :
    Site               :
    Container          :
    

Вы также можете получить сведения из журнала событий о попытках установить подключение через службу RRAS с помощью следующей команды PowerShell:You can also obtain event log information about attempts to connect through the RRAS service using the following PowerShell command:

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

В случае сбоя подключения этот журнал будет содержать ошибки, которые выглядят следующим образом:In the event of a failure to connect, this log will contain errors that look similar to the following:

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/2016 1:29:21 PM
TimeWritten        : 3/18/2016 1:29:21 PM
UserName           :
Site               :
Container          :

Проверка подключенияVerify connectivity

Проверьте подключение и маршрутизацию через VPN-шлюз.Verify connectivity and routing across the VPN gateway. VPN-устройство может неправильно осуществлять маршрутизацию трафика через VPN-шлюз Azure.The VPN appliance may not be correctly routing traffic through the Azure VPN Gateway. Используйте PsPing для проверки подключения и маршрутизации через VPN-шлюз.Use a tool such as PsPing to verify connectivity and routing across the VPN gateway. Например, чтобы проверить соединение с локального компьютера на веб-сервер, расположенный в виртуальной сети, выполните следующую команду (заменив <<web-server-address>> адресом веб-сервера):For example, to test connectivity from an on-premises machine to a web server located on the VNet, run the following command (replacing <<web-server-address>> with the address of the web server):

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

Если локальный компьютер может осуществлять маршрутизацию трафика на веб-сервер, отобразится результат, аналогичный приведенному ниже:If the on-premises machine can route traffic to the web server, you should see output similar to the following:

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

Если локальный компьютер не может связаться с указанным адресом назначения, появятся такие сообщения:If the on-premises machine cannot communicate with the specified destination, you will see messages like this:

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-трафика и что открыты соответствующие порты.Verify that the on-premises firewall allows VPN traffic to pass and that the correct ports are opened.

Убедитесь, что в предварительном VPN-аппарате используется метод шифрования, совместимый с VPN шлюзом Azure.Verify that the on-premises VPN appliance uses an encryption method that is compatible with the Azure VPN gateway. Для маршрутизации на основе политик VPN-шлюз Azure поддерживает алгоритмы шифрования AES256, AES128 и 3DES.For policy-based routing, the Azure VPN gateway supports the AES256, AES128, and 3DES encryption algorithms. Шлюзы на основе маршрута поддерживают AES256 и 3DES.Route-based gateways support AES256 and 3DES. См. дополнительные сведения об VPN-устройствах и параметрах IPsec/IKE для подключений "сеть — сеть" через VPN-шлюз.For more information, see About VPN devices and IPsec/IKE parameters for Site-to-Site VPN Gateway connections.

Проверка на наличие проблем с VPN-шлюзом AzureCheck for problems with the Azure VPN gateway

Для определения проблемы с VPN-шлюзом Azure полезны следующие рекомендации:The following recommendations are useful for determining if there is a problem with the Azure VPN gateway:

Изучите журналы диагностики VPN-шлюза Azure на наличие потенциальных проблем.Examine Azure VPN gateway diagnostic logs for potential issues. Для получения дополнительной информации, ee шаг за шагом: Захват Azure ресурс менеджер VNet шлюз Диагностические журналы.For more information, ee Step-by-Step: Capturing Azure Resource Manager VNet Gateway Diagnostic Logs.

Убедитесь, что VPN-шлюз Azure и локальное VPN-устройство настроены с использованием одного и того же общего ключа проверки подлинности.Verify that the Azure VPN gateway and on-premises VPN appliance are configured with the same shared authentication key. Вы можете просмотреть общий ключ, сохраненный VPN-шлюзом Azure, используя следующую команду Azure CLI:You can view the shared key stored by the Azure VPN gateway using the following Azure CLI command:

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

Для просмотра общего ключа, настроенного для этого устройства, используйте команду, подходящую для вашего локального VPN-устройства.Use the command appropriate for your on-premises VPN appliance to show the shared key configured for that appliance.

Убедитесь, что подсеть GatewaySubnet, в которой размещен VPN-шлюз Azure, не связана с NSG.Verify that the GatewaySubnet subnet holding the Azure VPN gateway is not associated with an NSG.

Сведения о подсети можно просмотреть, используя следующую команду Azure CLI:You can view the subnet details using the following Azure CLI command:

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

Убедитесь, что нет поля данных под названием Network Security Group ID.Ensure there is no data field named Network Security Group ID. В следующем примере показаны результаты для экземпляра подсети GatewaySubnet с назначенной NSG (VPN-Gateway-Group).The following example shows the results for an instance of the GatewaySubnet that has an assigned NSG (VPN-Gateway-Group). Если для этой NSG определены какие-либо правила, шлюз может неправильно работать.This can prevent the gateway from working correctly if there are any rules defined for this 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 настроены для разрешения передачи трафика, поступающего из виртуальной сети.Verify that the virtual machines in the Azure VNet are configured to permit traffic coming in from outside the VNet. Проверьте все правила NSG, связанные с подсетями, содержащими эти виртуальные машины.Check any NSG rules associated with subnets containing these virtual machines. Все правила NSG можно просмотреть, используя следующую команду Azure CLI:You can view all NSG rules using the following Azure CLI command:

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

Убедитесь, что подключен VPN-шлюз Azure.Verify that the Azure VPN gateway is connected. Чтобы проверить текущее состояние VPN-подключения Azure, можно использовать следующую команду Azure PowerShell.You can use the following Azure PowerShell command to check the current status of the Azure VPN connection. Параметр <<connection-name>> представляет собой имя VPN-подключения Azure, которое связывает шлюз виртуальной сети с локальным.The <<connection-name>> parameter is the name of the Azure VPN connection that links the virtual network gateway and the local gateway.

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

В следующем фрагменте кода показаны результаты для подключенного (первый пример) и отключенного шлюза (второй пример):The following snippets highlight the output generated if the gateway is connected (the first example), and disconnected (the second example):

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
...

Прочие проблемыMiscellaneous issues

Следующие рекомендации помогут определить, имеются ли проблемы с конфигурацией виртуальной машины узла, использованием пропускной способности сети или производительностью приложения:The following recommendations are useful for determining if there is an issue with Host VM configuration, network bandwidth utilization, or application performance:

Проверьте конфигурацию брандмауэра.Verify firewall configuration. Проверьте правильность настройки брандмауэра в гостевой ОС на виртуальных машинах Azure в подсети, чтобы разрешить передачу трафика из локальных диапазонов IP-адресов.Verify that the firewall in the guest operating system running on the Azure VMs in the subnet is configured correctly to allow permitted traffic from the on-premises IP ranges.

Убедитесь, что объем трафика не приближается к лимиту пропускной способности VPN-шлюза Azure.Verify that the volume of traffic is not close to the limit of the bandwidth available to the Azure VPN gateway. Это можно проверить по локальному запущенному VPN-устройству.How to verify this depends on the VPN appliance running on-premises. Например, при использовании RRAS на базе Windows Server 2012 можно использовать системный монитор для отслеживания объема данных, полученных и переданных по VPN-подключению.For example, if you are using RRAS on Windows Server 2012, you can use Performance Monitor to track the volume of data being received and transmitted over the VPN connection. С помощью объекта Всего RAS выберите счетчики Получено байт/сек и Передано байт/сек:Using the RAS Total object, select the Bytes Received/Sec and Bytes Transmitted/Sec counters:

Счетчики производительности для мониторинга трафика VPN

Следует сравнить результаты с пропускной способностью VPN-шлюза (от 100 Мбит/с для SKU "Базовый" или "Стандартный" до 1,25 Гбит/с для SKU VpnGw3):You should compare the results with the bandwidth available to the VPN gateway (from 100 Mbps for the Basic SKU to 1.25 Gbps for VpnGw3 SKU):

Пример графика производительности сети VPN

Убедитесь, что вы развернули правильное количество виртуальных машин нужного размера в соответствии с загруженностью приложения.Verify that you have deployed the right number and size of VMs for your application load. Определите, работает ли какая-либо из виртуальных машин в виртуальной сети Azure медленно.Determine if any of the virtual machines in the Azure VNet are running slowly. Если это так, то они могут быть перегружены, возможно, их слишком мало для такой загрузки или подсистемы балансировки нагрузки настроены неправильно.If so, they may be overloaded, there may be too few to handle the load, or the load-balancers may not be configured correctly. Чтобы определить это, соберите и проанализируйте диагностические сведения.To determine this, capture and analyze diagnostic information. Вы можете проверить результаты, используя портал Azure. Кроме того, вы можете воспользоваться различными сторонними средствами, чтобы получить подробное представление о производительности.You can examine the results using the Azure portal, but many third-party tools are also available that can provide detailed insights into the performance data.

Убедитесь, что приложение эффективно использует облачные ресурсы.Verify that the application is making efficient use of cloud resources. Выполните инструментирование кода приложений, выполняемых на каждой виртуальной машине, чтобы определить, используют ли приложения ресурсы максимально эффективно.Instrument application code running on each VM to determine whether applications are making the best use of resources. Используйте такое средство, как Application Insights.You can use tools such as Application Insights.