Настройка VPN типа "сеть — сеть" через пиринг Microsoft ExpressRoute

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

Примечание

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

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

Архитектура

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

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

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

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

Важно

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

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

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

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

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

После настройки вашего контура и пиринга Microsoft, вы можете легко просмотреть их на странице Обзор портала Azure.

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

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

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

В этом примере развертывание находится только в регионе Azure West US 2 . Правило фильтра маршрутов добавляется, чтобы разрешить только рекламу региональных префиксов Azure West US 2, которая имеет значение сообщества BGP 12076:51026. Укажите региональные префиксы, которые требуется разрешить, выбрав "Управление правилом".

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

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

Настройка фильтра маршрутов. Чтобы ознакомиться с инструкциями, см. раздел Настройка фильтров маршрутов для Microsoft Peering.

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

После успешного создания пиринга Microsoft по каналу ExpressRoute и сопоставления фильтра маршрутов с каналом, вы можете проверить маршруты BGP, полученные от Microsoft Enterprise Edge (MSEE) на устройствах 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 перечислены префиксы, рекламируемые через пиринг Microsoft для каждой службы и каждого региона Azure:

Get-AzBgpServiceCommunity

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

В этом разделе создаются vpn-туннели IPsec между VPN-шлюзом Azure и локальным VPN-устройством. В примерах используются VPN-устройства Cisco Cloud Service Router (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 Объявление переменных

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

"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": "VpnGw1AZ",               // Azure VPN gateway SKU (AZ-redundant; use VpnGw1 for regions without availability zone support)
  "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 Autonomous System 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": "2024-05-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": "Static"
    },
    "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": "Static"
    },
    "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-шлюз с помощью VpnType "RouteBased". Этот параметр является обязательным, если требуется включить маршрутизацию BGP между VPN-шлюзом и локальной сетью VPN.
  • Чтобы установить VPN-туннели между двумя экземплярами VPN-шлюза и заданным локальным устройством в активно-активном режиме, параметр activeActive имеет значение true в шаблоне Resource Manager. Дополнительные сведения о высокодоступных VPN-шлюзах см. в статье "Высокодоступное подключение 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": "Static",
        "subnet": {
          "id": "[variables('gatewaySubnetRef')]"
        },
        "publicIPAddress": {
          "id": "[resourceId('Microsoft.Network/publicIPAddresses',variables('gatewayPublicIPName1'))]"
        }
      },
      "name": "vnetGtwConfig1"
    },
    {
      "properties": {
        "privateIPAllocationMethod": "Static",
        "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 через пиринг Microsoft ExpressRoute существует несколько доменов маршрутизации между одноранговыми узлами eBGP. Используйте команду ebgp-multihop , чтобы установить связь соседа eBGP между двумя не напрямую подключенными одноранговых узлами. Целое число, следующее за командой ebgp-multihop, указывает время жизни (TTL) в пакетах BGP. Команда maximum-paths eibgp 2 обеспечивает балансировку нагрузки трафика между двумя путями BGP.

Пример CSR1000 Cisco

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

!
crypto ikev2 proposal az-PROPOSAL
 encryption aes-cbc-256 aes-cbc-128
 integrity sha256
 group 14
!
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-устройстве.

Пример CSR1000 Cisco:

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: SHA256, Hash: SHA256, DH Grp:14, 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: SHA256, Hash: SHA256, DH Grp:14, 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

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

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

Чтобы проверить список сетевых префиксов, полученных через eBGP из локальной концентратора VPN, можно отфильтровать по атрибуту 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

Дальнейшие действия