Настройка VPN типа "сеть — сеть" через пиринговый канал Майкрософт ExpressRoute

Эта статья поможет вам настроить безопасное зашифрованное подключение между локальной сетью и виртуальными сетями Azure через закрытое подключение ExpressRoute. Вы можете использовать пиринг Майкрософт для создания VPN-туннеля типа "сеть — сеть" IPsec/IKE между выбранными локальными сетями и виртуальными сетями Azure. Настройка безопасного туннеля через ExpressRoute обеспечивает конфиденциальный обмен данными, защиту от повтора, подлинность и целостность данных.

Примечание.

При настройке VPN типа "сеть — сеть" через пиринговый канал Майкрософт вы платите за VPN-шлюз и исходящий трафик VPN. Дополнительные сведения см. на странице цен на VPN-шлюз.

В шагах и примерах в этой статье используются модули Az для Azure PowerShell. Чтобы установить модули Az локально, см. статью Установка Azure PowerShell. Чтобы узнать о модуле Az, см. статью Знакомство с новым модулем Az для Azure PowerShell. Командлеты PowerShell часто обновляются. Если вы не используете последнюю версию, применение значений, указанных в инструкциях, может привести к сбою. Чтобы найти установленные в системе версии PowerShell, используйте командлет Get-Module -ListAvailable Az.

Архитектура

Схема двух туннелей IPsec через пиринговое подключение Microsoft ExpressRoute.

Чтобы обеспечить высокую доступность и избыточность, вы можете настроить несколько туннелей через две пары MSEE-PE каналов ExpressRoute и включить балансировку нагрузки между туннелями.

Схема нескольких туннелей IPsec для создания высокого уровня доступности через пиринговое подключение ExpressRoute Майкрософт.

VPN-туннели через пиринговый канал Майкрософт можно завершить либо с помощью VPN-шлюза, либо с помощью соответствующего сетевого виртуального модуля (NVA), доступного в Azure Marketplace. Вы можете менять маршруты статически или динамически через зашифрованные туннели, не отображая обмен маршрутов в базовом пиринговом канале Майкрософт. В примерах в этой статье BGP (отличный от сеанса BGP, используемого для создания пиринга Майкрософт) используется для динамического обмена префиксами по зашифрованным туннелям.

Внимание

На стороне локальной среды пиринг Майкрософт обычно завершается в сети периметра, а частный пиринг завершается в основной сети. Две зоны будут разделены с помощью брандмауэров. Если вы настроите пиринг Майкрософт исключительно для обеспечения безопасного туннелирования через ExpressRoute, не забудьте фильтровать только публичные IP-адреса, которые объявляются через пиринг Майкрософт.

Рабочий процесс

  1. Настройте пиринг Майкрософт для своего канала ExpressRoute.
  2. Объявите выбранные региональные префиксы Azure в своей локальной сети через пиринг Майкрософт.
  3. Настройте VPN-шлюз и установите IPsec-туннели.
  4. Настройте локальное VPN-устройство.
  5. Создайте подключение типа "сеть — сеть" IPsec/IKE.
  6. (Необязательно.) Настройте брандмауэры или фильтрацию на локальном VPN-устройстве.
  7. Протестируйте и проверьте обмен данными IPsec через канал ExpressRoute.

1. Настройка пиринга Майкрософт

Чтобы настроить VPN-подключение типа "сеть — сеть" через ExpressRoute, необходимо использовать пиринг Microsoft ExpressRoute.

После настройки канала и пиринга Майкрософт его можно легко просмотреть с помощью страницы обзора в портал Azure.

Снимок экрана: страница обзора канала ExpressRoute.

2. Настройка фильтров маршрута

Фильтр маршрутов позволяет вам идентифицировать службы, которые можно использовать через пиринг Майкрософт по каналу ExpressRoute. Это, по сути, список разрешений всех значений сообщества BGP.

Снимок экрана: страница обзора фильтра маршрутов.

В этом примере развертывание выполнено только в регионе Azure Западная часть США 2. Добавляется правило фильтра маршрута, чтобы разрешить объявление только региональных префиксов Azure Западная часть США 2, которое имеет значение сообщества BGP 12076:51026. Укажите региональные префиксы, которые хотите разрешить, выбрав правило управления.

В пределах фильтра маршрутов вам также необходимо выбрать каналы ExpressRoute, для которых применяется фильтр. Вы можете выбрать каналы ExpressRoute, щелкнув Добавить цепь. На предыдущем рисунке фильтр маршрутов связан с примером канала ExpressRoute.

2.1 Настройка фильтра маршрутов

Создайте фильтр маршрутов. Инструкции см. в статье Configure route filters for Microsoft peering: Azure portal (Настройка фильтров маршрутов для пиринга Майкрософт с помощью портала Azure).

2.2 Проверка маршрутов BGP

После успешного создания пиринга Майкрософт по каналу ExpressRoute и сопоставлению фильтра маршрутов с каналом можно проверить маршруты BGP, полученные от Microsoft Enterprise Edge (MSE) на устройствах PE, которые пиринговая связь с MSEE. Команда проверки может измениться в зависимости от операционной системы ваших устройств PE.

Примеры Cisco

В этом примере используется команда Cisco IOS-XE. В этом примере для изоляции пирингового трафика используется экземпляр виртуальной маршрутизации и перенаправления (VRF).

show ip bgp vpnv4 vrf 10 summary

Следующие частичные выходные данные показывают, что 68 префиксов были получены от соседа *.243.229.34 с номером автономной системы (ASN) 12076 (MSEE):

...

Neighbor        V           AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
X.243.229.34    4        12076   17671   17650    25228    0    0 1w4d           68

Чтобы просмотреть список префиксов, полученных от соседнего узла, используйте следующий пример:

sh ip bgp vpnv4 vrf 10 neighbors X.243.229.34 received-routes

Чтобы убедиться, что вы получаете правильный набор префиксов, можно выполнить перекрестную проверку. В следующих выходных данных команды Azure PowerShell показаны префиксы, объявляемые с помощью пиринга Майкрософт для каждой службы и региона Azure:

Get-AzBgpServiceCommunity

3. Настройка VPN-шлюза и туннелей IPsec

В этом разделе между VPN-шлюзом Azure и локальным VPN-устройством создаются VPN-туннели IPsec. В примерах используются VPN-устройства маршрутизатора облачной службы Cisco (CSR1000).

На следующей схеме показаны VPN-туннели IPsec, установленные между локальным VPN-устройством 1 и парой экземпляров VPN-шлюза Azure. Два туннеля VPN IPsec, установленные между локальным VPN-устройством 2 и парой экземпляра VPN-шлюза Azure, не показаны на схеме. Сведения о конфигурации не перечислены. Однако при наличии более VPN-туннелей улучшается высокий уровень доступности.

Схема установленного VPN-туннеля через ExpressRoute.

Через пару туннелей IPsec устанавливается сеанс eBGP для обмена маршрутами частной сети. На следующей схеме показан сеанс eBGP, устанавливаемый через пару туннелей IPsec:

Схема установленного сеанса eBGP по туннелю IPsec.

На следующей схеме показан абстрактный обзор примера сети:

Схема сетевой среды после установки VPN между локальной средой и Azure.

Сведения о примерах шаблона Azure Resource Manager

В примерах VPN-шлюз и завершение туннелирования IPsec настраиваются с помощью шаблона Azure Resource Manager. Если вы не знакомы с использованием шаблонов Resource Manager или основные сведения о шаблонах Resource Manager, ознакомьтесь со статьей "Общие сведения о структуре и синтаксисе шаблонов Azure Resource Manager". Шаблон в этом разделе создает зеленую среду Azure (виртуальную сеть). Однако если у вас есть существующая виртуальная сеть, вы можете ссылаться на нее в шаблоне. Если вы не знакомы с конфигурациями VPN-шлюза IPsec/IKE типа "сеть — сеть", см. статью "Создание подключения типа "сеть — сеть".

Примечание.

Чтобы создать эту конфигурацию, вам не нужно использовать шаблоны Azure Resource Manager. Ее можно создать с помощью портала Azure или PowerShell.

3.1. Объявление переменных

В этом примере объявление переменных соответствует примеру сети. При объявлении переменных измените этот раздел в соответствии со своей средой.

  • Переменная localAddressPrefix представляет собой массив значений локальных IP-адресов для завершения туннелей IPsec.
  • gatewaySku определяет пропускную способность VPN. Дополнительные сведения о gatewaySku и vpnType см. в разделе SKU шлюзов. Дополнительные сведения см. на странице цен на VPN-шлюз.
  • Параметр vpnType должен иметь значение RouteBased.
"variables": {
  "virtualNetworkName": "SecureVNet",       // Name of the Azure VNet
  "azureVNetAddressPrefix": "10.2.0.0/24",  // Address space assigned to the VNet
  "subnetName": "Tenant",                   // subnet name in which tenants exists
  "subnetPrefix": "10.2.0.0/25",            // address space of the tenant subnet
  "gatewaySubnetPrefix": "10.2.0.224/27",   // address space of the gateway subnet
  "localGatewayName": "localGW1",           // name of remote gateway (on-premises)
  "localGatewayIpAddress": "X.243.229.110", // public IP address of the on-premises VPN device
  "localAddressPrefix": [
    "172.16.0.1/32",                        // termination of IPsec tunnel-1 on-premises 
    "172.16.0.2/32"                         // termination of IPsec tunnel-2 on-premises 
  ],
  "gatewayPublicIPName1": "vpnGwVIP1",    // Public address name of the first VPN gateway instance
  "gatewayPublicIPName2": "vpnGwVIP2",    // Public address name of the second VPN gateway instance 
  "gatewayName": "vpnGw",                 // Name of the Azure VPN gateway
  "gatewaySku": "VpnGw1",                 // Azure VPN gateway SKU
  "vpnType": "RouteBased",                // type of VPN gateway
  "sharedKey": "string",                  // shared secret needs to match with on-premises configuration
  "asnVpnGateway": 65000,                 // BGP Autonomous System number assigned to the VPN Gateway 
  "asnRemote": 65010,                     // BGP Autonmous Syste number assigned to the on-premises device
  "bgpPeeringAddress": "172.16.0.3",      // IP address of the remote BGP peer on-premises
  "connectionName": "vpn2local1",
  "vnetID": "[resourceId('Microsoft.Network/virtualNetworks', variables('virtualNetworkName'))]",
  "gatewaySubnetRef": "[concat(variables('vnetID'),'/subnets/','GatewaySubnet')]",
  "subnetRef": "[concat(variables('vnetID'),'/subnets/',variables('subnetName'))]",
  "api-version": "2017-06-01"
},

3.2. Создание виртуальной сети (виртуальная сеть)

Если вы связываете существующую виртуальную сеть с VPN-туннелями, можно пропустить этот шаг.

{
  "apiVersion": "[variables('api-version')]",
  "type": "Microsoft.Network/virtualNetworks",
  "name": "[variables('virtualNetworkName')]",
  "location": "[resourceGroup().location]",
  "properties": {
    "addressSpace": {
      "addressPrefixes": [
        "[variables('azureVNetAddressPrefix')]"
      ]
    },
    "subnets": [
      {
        "name": "[variables('subnetName')]",
        "properties": {
          "addressPrefix": "[variables('subnetPrefix')]"
        }
      },
      {
        "name": "GatewaySubnet",
        "properties": {
          "addressPrefix": "[variables('gatewaySubnetPrefix')]"
        }
      }
    ]
  },
  "comments": "Create a Virtual Network with Subnet1 and Gatewaysubnet"
},

3.3 Назначение общедоступных IP-адресов экземплярам VPN-шлюза

Назначьте общедоступный IP-адрес для каждого экземпляра VPN-шлюза.

{
  "apiVersion": "[variables('api-version')]",
  "type": "Microsoft.Network/publicIPAddresses",
    "name": "[variables('gatewayPublicIPName1')]",
    "location": "[resourceGroup().location]",
    "properties": {
      "publicIPAllocationMethod": "Dynamic"
    },
    "comments": "Public IP for the first instance of the VPN gateway"
  },
  {
    "apiVersion": "[variables('api-version')]",
    "type": "Microsoft.Network/publicIPAddresses",
    "name": "[variables('gatewayPublicIPName2')]",
    "location": "[resourceGroup().location]",
    "properties": {
      "publicIPAllocationMethod": "Dynamic"
    },
    "comments": "Public IP for the second instance of the VPN gateway"
  },

3.4 Указание завершения локального VPN-туннеля (шлюз локальной сети)

Локальные VPN-устройства называются шлюзами локальной сети. В следующем фрагменте кода json указаны сведения об удаленном пиринговом узле BGP:

{
  "apiVersion": "[variables('api-version')]",
  "type": "Microsoft.Network/localNetworkGateways",
  "name": "[variables('localGatewayName')]",
  "location": "[resourceGroup().location]",
  "properties": {
    "localNetworkAddressSpace": {
      "addressPrefixes": "[variables('localAddressPrefix')]"
    },
    "gatewayIpAddress": "[variables('localGatewayIpAddress')]",
    "bgpSettings": {
      "asn": "[variables('asnRemote')]",
      "bgpPeeringAddress": "[variables('bgpPeeringAddress')]",
      "peerWeight": 0
    }
  },
  "comments": "Local Network Gateway (referred to your on-premises location) with IP address of remote tunnel peering and IP address of remote BGP peer"
},

3.5. Создание VPN-шлюза

В этом разделе шаблона настраивается VPN-шлюз с необходимыми параметрами для конфигурации "активный — активный". Не забывайте о следующих требованиях:

  • Создайте VPN-шлюз с параметром "RouteBased" VpnType. Это обязательный параметр, если вы хотите включить маршрутизацию BGP между VPN-шлюзом и локальной сетью VPN.
  • Чтобы установить VPN-туннели между двумя экземплярами VPN-шлюза и данным локальным устройством в режиме "активный — активный", параметр "activeActive" должен иметь значение true в шаблоне Resource Manager. Чтобы получить представление о высокой доступности VPN-шлюзов, см. статью Настройка высокодоступных подключений: распределенных и между виртуальными сетями.
  • Чтобы настроить сеансы eBGP между VPN-туннелями, необходимо указать два различных номера ASN с обеих сторон. Предпочтительнее указать частные номера ASN. Дополнительные сведения см. в статье Обзор использования BGP с VPN-шлюзами Azure.
{
"apiVersion": "[variables('api-version')]",
"type": "Microsoft.Network/virtualNetworkGateways",
"name": "[variables('gatewayName')]",
"location": "[resourceGroup().location]",
"dependsOn": [
  "[concat('Microsoft.Network/publicIPAddresses/', variables('gatewayPublicIPName1'))]",
  "[concat('Microsoft.Network/publicIPAddresses/', variables('gatewayPublicIPName2'))]",
  "[concat('Microsoft.Network/virtualNetworks/', variables('virtualNetworkName'))]"
],
"properties": {
  "ipConfigurations": [
    {
      "properties": {
        "privateIPAllocationMethod": "Dynamic",
        "subnet": {
          "id": "[variables('gatewaySubnetRef')]"
        },
        "publicIPAddress": {
          "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('gatewayPublicIPName1'))]"
        }
      },
      "name": "vnetGtwConfig1"
    },
    {
      "properties": {
        "privateIPAllocationMethod": "Dynamic",
        "subnet": {
          "id": "[variables('gatewaySubnetRef')]"
        },
        "publicIPAddress": {
          "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('gatewayPublicIPName2'))]"
        }
      },
          "name": "vnetGtwConfig2"
        }
      ],
      "sku": {
        "name": "[variables('gatewaySku')]",
        "tier": "[variables('gatewaySku')]"
      },
      "gatewayType": "Vpn",
      "vpnType": "[variables('vpnType')]",
      "enableBgp": true,
      "activeActive": true,
      "bgpSettings": {
        "asn": "[variables('asnVpnGateway')]"
      }
    },
    "comments": "VPN Gateway in active-active configuration with BGP support"
  },

3.6 Установка туннелей IPsec

Последнее действие сценария создает туннели IPsec между VPN-шлюзом Azure и локальным VPN-устройством.

{
  "apiVersion": "[variables('api-version')]",
  "name": "[variables('connectionName')]",
  "type": "Microsoft.Network/connections",
  "location": "[resourceGroup().location]",
  "dependsOn": [
    "[concat('Microsoft.Network/virtualNetworkGateways/', variables('gatewayName'))]",
    "[concat('Microsoft.Network/localNetworkGateways/', variables('localGatewayName'))]"
  ],
  "properties": {
    "virtualNetworkGateway1": {
      "id": "[resourceId('Microsoft.Network/virtualNetworkGateways', variables('gatewayName'))]"
    },
    "localNetworkGateway2": {
      "id": "[resourceId('Microsoft.Network/localNetworkGateways', variables('localGatewayName'))]"
    },
    "connectionType": "IPsec",
    "routingWeight": 0,
    "sharedKey": "[variables('sharedKey')]",
    "enableBGP": "true"
  },
  "comments": "Create a Connection type site-to-site (IPsec) between the Azure VPN Gateway and the VPN device on-premises"
  }

4. Настройка локального VPN-устройства

VPN-шлюз Azure совместим со многими VPN-устройствами от разных поставщиков. Сведения о конфигурации и устройствах, проверенных для работы с VPN-шлюзом, см. в разделе "Сведения о VPN-устройствах".

Чтобы настроить локальное VPN-устройство, вам потребуется следующее:

  • Общий ключ. Это значение совпадает с общим ключом, указанным при создании VPN-подключения типа "сеть — сеть". В примерах используются простые общие ключи. Для практического использования рекомендуется создавать более сложные ключи.
  • Общедоступный IP-адрес вашего VPN-шлюза. Общедоступный IP-адрес можно просмотреть с помощью портала Azure, PowerShell или CLI. Чтобы найти общедоступный IP-адрес VPN-шлюза с помощью портала Azure, перейдите к разделу Шлюзы виртуальной сети и выберите имя шлюза.

Обычно пиринговые узлы eBGP подключены напрямую (часто через глобальную сеть). Однако при настройке eBGP по VPN-туннелям IPsec через пиринг ExpressRoute Майкрософт существует несколько доменов маршрутизации между одноранговым подключением eBGP. Используйте команду ​bgp-multihop, чтобы установить соседнюю связь eBGP между двумя пиринговыми узлами, подключенными не напрямую. Целое число, следующее за командой ebgp-multihop, указывает время жизни (TTL) в пакетах BGP. Команда maximum-paths eibgp 2 обеспечивает балансировку нагрузки трафика между двумя путями BGP.

Пример Cisco CSR1000

В следующем примере показана конфигурация Cisco CSR1000 на виртуальной машине Hyper-V в качестве локального VPN-устройства:

!
crypto ikev2 proposal az-PROPOSAL
 encryption aes-cbc-256 aes-cbc-128 3des
 integrity sha1
 group 2
!
crypto ikev2 policy az-POLICY
 proposal az-PROPOSAL
!
crypto ikev2 keyring key-peer1
 peer azvpn1
  address 52.175.253.112
  pre-shared-key secret*1234
 !
!
crypto ikev2 keyring key-peer2
 peer azvpn2
  address 52.175.250.191
  pre-shared-key secret*1234
 !
!
!
crypto ikev2 profile az-PROFILE1
 match address local interface GigabitEthernet1
 match identity remote address 52.175.253.112 255.255.255.255
 authentication remote pre-share
 authentication local pre-share
 keyring local key-peer1
!
crypto ikev2 profile az-PROFILE2
 match address local interface GigabitEthernet1
 match identity remote address 52.175.250.191 255.255.255.255
 authentication remote pre-share
 authentication local pre-share
 keyring local key-peer2
!
crypto ikev2 dpd 10 2 on-demand
!
!
crypto ipsec transform-set az-IPSEC-PROPOSAL-SET esp-aes 256 esp-sha-hmac
 mode tunnel
!
crypto ipsec profile az-VTI1
 set transform-set az-IPSEC-PROPOSAL-SET
 set ikev2-profile az-PROFILE1
!
crypto ipsec profile az-VTI2
 set transform-set az-IPSEC-PROPOSAL-SET
 set ikev2-profile az-PROFILE2
!
!
interface Loopback0
 ip address 172.16.0.3 255.255.255.255
!
interface Tunnel0
 ip address 172.16.0.1 255.255.255.255
 ip tcp adjust-mss 1350
 tunnel source GigabitEthernet1
 tunnel mode ipsec ipv4
 tunnel destination 52.175.253.112
 tunnel protection ipsec profile az-VTI1
!
interface Tunnel1
 ip address 172.16.0.2 255.255.255.255
 ip tcp adjust-mss 1350
 tunnel source GigabitEthernet1
 tunnel mode ipsec ipv4
 tunnel destination 52.175.250.191
 tunnel protection ipsec profile az-VTI2
!
interface GigabitEthernet1
 description External interface
 ip address x.243.229.110 255.255.255.252
 negotiation auto
 no mop enabled
 no mop sysid
!
interface GigabitEthernet2
 ip address 10.0.0.1 255.255.255.0
 negotiation auto
 no mop enabled
 no mop sysid
!
router bgp 65010
 bgp router-id interface Loopback0
 bgp log-neighbor-changes
 network 10.0.0.0 mask 255.255.255.0
 network 10.1.10.0 mask 255.255.255.128
 neighbor 10.2.0.228 remote-as 65000
 neighbor 10.2.0.228 ebgp-multihop 5
 neighbor 10.2.0.228 update-source Loopback0
 neighbor 10.2.0.228 soft-reconfiguration inbound
 neighbor 10.2.0.228 filter-list 10 out
 neighbor 10.2.0.229 remote-as 65000	
 neighbor 10.2.0.229 ebgp-multihop 5
 neighbor 10.2.0.229 update-source Loopback0
 neighbor 10.2.0.229 soft-reconfiguration inbound
 maximum-paths eibgp 2
!
ip route 0.0.0.0 0.0.0.0 10.1.10.1
ip route 10.2.0.228 255.255.255.255 Tunnel0
ip route 10.2.0.229 255.255.255.255 Tunnel1
!

5. Настройка фильтрации VPN-устройств и брандмауэров (необязательно)

Настройте брандмауэр и фильтрацию в соответствии с требованиями.

6. Тестирование и проверка туннеля IPsec

Состояние туннелей IPsec можно проверить в VPN-шлюзе Azure с помощью следующих команд PowerShell:

Get-AzVirtualNetworkGatewayConnection -Name vpn2local1 -ResourceGroupName myRG | Select-Object  ConnectionStatus,EgressBytesTransferred,IngressBytesTransferred | fl

Пример результата:

ConnectionStatus        : Connected
EgressBytesTransferred  : 17734660
IngressBytesTransferred : 10538211

Чтобы проверить состояние туннелей в экземплярах VPN-шлюза Azure независимо друг от друга, используйте следующий пример:

Get-AzVirtualNetworkGatewayConnection -Name vpn2local1 -ResourceGroupName myRG | Select-Object -ExpandProperty TunnelConnectionStatus

Пример результата:

Tunnel                           : vpn2local1_52.175.250.191
ConnectionStatus                 : Connected
IngressBytesTransferred          : 4877438
EgressBytesTransferred           : 8754071
LastConnectionEstablishedUtcTime : 11/04/2017 17:03:30

Tunnel                           : vpn2local1_52.175.253.112
ConnectionStatus                 : Connected
IngressBytesTransferred          : 5660773
EgressBytesTransferred           : 8980589
LastConnectionEstablishedUtcTime : 11/04/2017 17:03:13

Вы также можете проверить состояние туннеля на своем локальном VPN-устройстве.

Пример Cisco CSR1000

show crypto session detail
show crypto ikev2 sa
show crypto ikev2 session detail
show crypto ipsec sa

Пример результата:

csr1#show crypto session detail

Crypto session current status

Code: C - IKE Configuration mode, D - Dead Peer Detection
K - Keepalives, N - NAT-traversal, T - cTCP encapsulation
X - IKE Extended Authentication, F - IKE Fragmentation
R - IKE Auto Reconnect

Interface: Tunnel1
Profile: az-PROFILE2
Uptime: 00:52:46
Session status: UP-ACTIVE
Peer: 52.175.250.191 port 4500 fvrf: (none) ivrf: (none)
      Phase1_id: 52.175.250.191
      Desc: (none)
  Session ID: 3
  IKEv2 SA: local 10.1.10.50/4500 remote 52.175.250.191/4500 Active
          Capabilities:DN connid:3 lifetime:23:07:14
  IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 0.0.0.0/0.0.0.0
        Active SAs: 2, origin: crypto map
        Inbound:  #pkts dec'ed 279 drop 0 life (KB/Sec) 4607976/433
        Outbound: #pkts enc'ed 164 drop 0 life (KB/Sec) 4607992/433

Interface: Tunnel0
Profile: az-PROFILE1
Uptime: 00:52:43
Session status: UP-ACTIVE
Peer: 52.175.253.112 port 4500 fvrf: (none) ivrf: (none)
      Phase1_id: 52.175.253.112
      Desc: (none)
  Session ID: 2
  IKEv2 SA: local 10.1.10.50/4500 remote 52.175.253.112/4500 Active
          Capabilities:DN connid:2 lifetime:23:07:17
  IPSEC FLOW: permit ip 0.0.0.0/0.0.0.0 0.0.0.0/0.0.0.0
        Active SAs: 2, origin: crypto map
        Inbound:  #pkts dec'ed 668 drop 0 life (KB/Sec) 4607926/437
        Outbound: #pkts enc'ed 477 drop 0 life (KB/Sec) 4607953/437

Протокол линии в интерфейсе виртуального туннеля (VTI) не изменяется на "вверх" до завершения этапа IKE 2. Следующая команда проверяет сопоставление безопасности:

csr1#show crypto ikev2 sa

IPv4 Crypto IKEv2  SA

Tunnel-id Local                 Remote                fvrf/ivrf            Status
2         10.1.10.50/4500       52.175.253.112/4500   none/none            READY
      Encr: AES-CBC, keysize: 256, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK
      Life/Active Time: 86400/3277 sec

Tunnel-id Local                 Remote                fvrf/ivrf            Status
3         10.1.10.50/4500       52.175.250.191/4500   none/none            READY
      Encr: AES-CBC, keysize: 256, PRF: SHA1, Hash: SHA96, DH Grp:2, Auth sign: PSK, Auth verify: PSK
      Life/Active Time: 86400/3280 sec

IPv6 Crypto IKEv2  SA

csr1#show crypto ipsec sa | inc encaps|decaps
    #pkts encaps: 177, #pkts encrypt: 177, #pkts digest: 177
    #pkts decaps: 296, #pkts decrypt: 296, #pkts verify: 296
    #pkts encaps: 554, #pkts encrypt: 554, #pkts digest: 554
    #pkts decaps: 746, #pkts decrypt: 746, #pkts verify: 746

Проверка сквозного подключения между локальной сетью и виртуальной сетью Azure

Если туннели IPsec работают и статические маршруты настроены правильно, вы сможете проверить связь с IP-адресом удаленного узла BGP:

csr1#ping 10.2.0.228
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.0.228, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 5/5/5 ms

#ping 10.2.0.229
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 10.2.0.229, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 4/5/6 ms

Проверка сеансов BGP через IPsec

Проверьте состояние узла BGP в VPN-шлюзе Azure:

Get-AzVirtualNetworkGatewayBGPPeerStatus -VirtualNetworkGatewayName vpnGtw -ResourceGroupName SEA-C1-VPN-ER | ft

Пример результата:

  Asn ConnectedDuration LocalAddress MessagesReceived MessagesSent Neighbor    RoutesReceived State    
  --- ----------------- ------------ ---------------- ------------ --------    -------------- -----    
65010 00:57:19.9003584  10.2.0.228               68           72   172.16.0.10              2 Connected
65000                   10.2.0.228                0            0   10.2.0.228               0 Unknown  
65000 07:13:51.0109601  10.2.0.228              507          500   10.2.0.229               6 Connected

Чтобы проверить список префиксов сети, полученных через локальный VPN-концентратор eBGP, выполните фильтрацию по атрибуту "Origin":

Get-AzVirtualNetworkGatewayLearnedRoute -VirtualNetworkGatewayName vpnGtw -ResourceGroupName myRG  | Where-Object Origin -eq "EBgp" |ft

В выходных данных примера ASN 65010 — это номер автономной системы BGP в локальной сети VPN.

AsPath LocalAddress Network      NextHop     Origin SourcePeer  Weight
------ ------------ -------      -------     ------ ----------  ------
65010  10.2.0.228   10.1.10.0/25 172.16.0.10 EBgp   172.16.0.10  32768
65010  10.2.0.228   10.0.0.0/24  172.16.0.10 EBgp   172.16.0.10  32768

Чтобы просмотреть список объявленных маршрутов:

Get-AzVirtualNetworkGatewayAdvertisedRoute -VirtualNetworkGatewayName vpnGtw -ResourceGroupName myRG -Peer 10.2.0.228 | ft

Пример результата:

AsPath LocalAddress Network        NextHop    Origin SourcePeer Weight
------ ------------ -------        -------    ------ ---------- ------
       10.2.0.229   10.2.0.0/24    10.2.0.229 Igp                  0
       10.2.0.229   172.16.0.10/32 10.2.0.229 Igp                  0
       10.2.0.229   172.16.0.5/32  10.2.0.229 Igp                  0
       10.2.0.229   172.16.0.1/32  10.2.0.229 Igp                  0
65010  10.2.0.229   10.1.10.0/25   10.2.0.229 Igp                  0
65010  10.2.0.229   10.0.0.0/24    10.2.0.229 Igp                  0

Пример для CSR1000 Cisco в локальной среде.

csr1#show ip bgp neighbors 10.2.0.228 routes
BGP table version is 7, local router ID is 172.16.0.10
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   10.2.0.0/24      10.2.0.228                             0 65000 i
 r>   172.16.0.1/32    10.2.0.228                             0 65000 i
 r>   172.16.0.2/32    10.2.0.228                             0 65000 i
 r>   172.16.0.3/32   10.2.0.228                             0 65000 i

Total number of prefixes 4

Список сетей, объявленных из локального Cisco CSR1000 для VPN-шлюза Azure, можно указать с помощью следующей команды:

csr1#show ip bgp neighbors 10.2.0.228 advertised-routes
BGP table version is 7, local router ID is 172.16.0.10
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
              t secondary path,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>   10.0.0.0/24      0.0.0.0                  0         32768 i
 *>   10.1.10.0/25     0.0.0.0                  0         32768 i

Total number of prefixes 2

Следующие шаги