Configurar uma VPN site a site no emparelhamento da Microsoft para ExpressRoute

Este artigo ajuda você a configurar uma conectividade criptografada segura entre sua rede local e suas redes virtuais do Azure (VNets) sobre uma conexão privada de ExpressRoute. É possível usar o emparelhamento da Microsoft para estabelecer um túnel VPN de IPsec/IKE site a site entre suas redes locais selecionadas e VNets do Azure. Configurar um túnel seguro por meio do ExpressRoute permite a troca de dados com confidencialidade, contra reprodução, autenticidade e integridade.

Observação

Ao configurar a VPN site a site em emparelhamento da Microsoft, você é cobrado pelo gateway de VPN e pela saída de VPN. Para saber mais, veja Preços do Gateway de VPN.

As etapas e os exemplos deste artigo usam os módulos AZ do Azure PowerShell. Para instalar os módulos AZ localmente no computador, confira Instalar o Azure PowerShell. Para saber mais sobre o novo módulo AZ, confira Apresentando o novo módulo AZ do Azure PowerShell. Os cmdlets do PowerShell são atualizados com frequência. Se você não estiver executando a versão mais recente, os valores especificados nas instruções poderão falhar. Para localizar as versões instaladas do PowerShell no sistema, use o cmdlet Get-Module -ListAvailable Az.

Arquitetura

Diagrama de dois túneis IPsec em uma conexão de emparelhamento da Microsoft do ExpressRoute.

Para alta disponibilidade e redundância, você pode configurar vários túneis em dois pares de MSEE-PE de um circuito de ExpressRoute e habilitar o balanceamento de carga entre os túneis.

Diagrama de vários túneis IPsec para criar alta disponibilidade em uma conexão de emparelhamento da Microsoft do ExpressRoute.

Túneis VPN em emparelhamento da Microsoft podem ser terminados usando gateway de VPN ou usando uma Solução de Virtualização de Rede (NVA) disponível por meio do Azure Marketplace. Você pode trocar rotas estática ou dinamicamente nos túneis criptografados sem expor a troca de rota para o emparelhamento da Microsoft subjacente. Nos exemplos neste artigo, BGP (diferente da sessão BGP usada para criar o emparelhamento da Microsoft) é usado para trocar dinamicamente prefixos nos túneis criptografados.

Importante

Para o lado local, normalmente o emparelhamento da Microsoft é terminado no DMZ e o emparelhamento privado é terminado na zona de rede principal. As duas zonas seriam segregadas usando firewalls. Se você estiver configurando o emparelhamento da Microsoft exclusivamente para habilitar o túnel seguro por meio do ExpressRoute, lembre-se de filtrar apenas os IPs públicos de interesse que estão sendo anunciados por meio do emparelhamento da Microsoft.

Fluxo de trabalho

  1. Configure o emparelhamento da Microsoft para seu circuito de ExpressRoute.
  2. Anuncie prefixos de públicos regionais do Azure selecionados para sua rede local por meio de emparelhamento da Microsoft.
  3. Configurar um gateway de VPN e estabelecer encapsulamentos IPsec
  4. Configure o dispositivo VPN local.
  5. Crie a conexão IPsec/IKE site a site.
  6. (Opcional) Configure firewalls/filtragem no dispositivo VPN local.
  7. Teste e valide a comunicação do IPsec sobre o circuito de ExpressRoute.

1. Configurar o emparelhamento da Microsoft

Para configurar uma conexão de VPN site a site no ExpressRoute, você precisa usar o emparelhamento da Microsoft do ExpressRoute.

Depois de configurar o circuito e o emparelhamento da Microsoft, você poderá exibi-lo facilmente usando a página Visão geral no portal do Azure.

Captura de tela da página de visão geral de um circuito do ExpressRoute.

2. Configurar filtros de rota

Um filtro de rota permite identificar os serviços que você deseja consumir por meio de emparelhamento da Microsoft do seu circuito de ExpressRoute. Ele é essencialmente uma lista de permitidos de todos os valores de comunidade do BGP.

Captura de tela da página de visão geral de um filtro de rota.

Neste exemplo, a implantação é apenas na região Azure Oeste dos EUA 2. Uma regra de filtro de rota é adicionada para permitir somente o anúncio de prefixos regionais Azure Oeste dos EUA 2, que têm o valor de comunidade BGP 12076:51026. Especifique os prefixos regionais que você deseja permitir selecionando Gerenciar regra.

Dentro do filtro de rota, você também precisa escolher os circuitos de ExpressRoute para o qual o filtro de rota se aplica. Você pode escolher os circuitos de ExpressRoute selecionando Adicionar circuito. Na figura anterior, o filtro de rota está associado ao exemplo de circuito de ExpressRoute.

2.1 Configurar o filtro de rota

Configure um filtro de rota. Para etapas, consulte Configurar os filtros de rota para emparelhamento da Microsoft.

2.2 Verificar rotas BGP

Depois de criar com êxito o emparelhamento da Microsoft em seu circuito do ExpressRoute e associar um filtro de rota ao circuito, você poderá verificar as rotas BGP recebidas do Microsoft Enterprise Edge (MSEEs) nos dispositivos PE que estão emparelhando com os MSEEs. O comando de verificação varia, dependendo do sistema operacional de seus dispositivos PE.

Exemplos da Cisco

Este exemplo usa um comando Cisco IOS-XE. No exemplo, um roteamento virtual e o encaminhamento (VRF) de instância é usado para isolar o tráfego de emparelhamento.

show ip bgp vpnv4 vrf 10 summary

A saída parcial a seguir mostra que 68 prefixos foram recebidos do vizinho *.243.229.34 com o NÚMERO do Sistema Autônomo (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

Para ver a lista de prefixos recebidos do vizinho, use o exemplo a seguir:

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

Para confirmar que está recebendo o conjunto correto de prefixos, você pode realizar uma verificação cruzada. A saída de comando do PowerShell do Azure a seguir lista os prefixos anunciados por meio do emparelhamento da Microsoft para cada um dos serviços e para cada região do Azure:

Get-AzBgpServiceCommunity

3. Configurar o gateway VPN e túneis IPsec

Nesta seção, são criados os túneis VPN IPsec entre o gateway de VPN do Azure e o dispositivo VPN local. Os exemplos usam dispositivos VPN de roteador de serviço de nuvem da Cisco (CSR1000).

O diagrama a seguir mostra os túneis de VPN IPsec estabelecidos entre o dispositivo VPN local 1 e o par de instâncias de gateway de VPN do Azure. Os dois túneis VPN IPsec estabelecidos entre o dispositivo VPN local 2 e o par de instâncias de gateway de VPN do Azure não estão ilustrados no diagrama. Os detalhes da configuração não estão listados. No entanto, ter mais túneis VPN aprimora a alta disponibilidade.

Diagrama de um túnel VPN estabelecido no ExpressRoute.

Sobre o par de túneis IPsec, é estabelecida uma sessão eBGP para troca de rotas de rede privada. O diagrama a seguir mostra a sessão eBGP estabelecida sobre o par de túneis IPsec:

Diagrama de uma sessão eBGP estabelecida no túnel IPsec.

O diagrama a seguir mostra a visão geral abstraída da rede de exemplo:

Diagrama de um ambiente de rede depois que a VPN é estabelecida entre o local e o Azure.

Sobre os exemplos de modelo do Azure Resource Manager

Nos exemplos, o gateway de VPN e as terminações de túnel IPsec são configurados usando um modelo de Azure Resource Manager. Se você for novato no uso de modelos do Resource Manager ou com relação à compreensão dos fundamentos de modelo do Resource Manager, consulte Entender a estrutura e a sintaxe dos modelos do Azure Resource Manager. O modelo nesta seção cria um ambiente do Azure de campo verde (rede virtual). No entanto, se você tiver uma rede virtual existente, poderá referenciá-la no modelo. Se não tiver familiaridade com as configurações de site a site IPsec/IKE do gateway de VPN, consulte Criar uma conexão site a site.

Observação

Você não precisa usar modelos do Azure Resource Manager para criar esta configuração. Você pode criar essa configuração usando o Portal do Azure ou o PowerShell.

3.1 Declarar as variáveis

Neste exemplo, as declarações de variáveis correspondem à rede de exemplo. Ao declarar variáveis, modifique esta seção para refletir seu ambiente.

"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 Criar rede virtual (rede virtual)

Se você estiver associando uma rede virtual existente aos túneis VPN, ignore esta etapa.

{
  "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 Atribuir endereços IP públicos a instâncias de gateway de VPN

Atribua um endereço IP público para cada instância de um gateway de 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 Especifique a terminação de túnel de VPN local (gateway de rede local)

Os dispositivos VPN locais são chamados de gateway de rede local. O snippet json a seguir também especifica os detalhes de emparelhamento BGP remoto:

{
  "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 Criar o gateway de VPN

Esta seção do modelo configura o gateway de VPN com as configurações necessárias para uma configuração ativo-ativo. Tenha em mente os seguintes requisitos:

  • Crie o gateway VPN com um "RouteBased" VpnType. Essa configuração é obrigatória se você deseja habilitar o roteamento de BGP entre o gateway de VPN e a VPN no local.
  • Para estabelecer túneis de VPN entre as duas instâncias do gateway de VPN e um dispositivo local especificado no modo ativo-ativo, o parâmetro "activeActive" é definido como true no modelo do Gerenciador de Recursos. Para entender mais sobre gateways de VPN altamente disponíveis, consulte Conectividade de gateway de VPN altamente disponível.
  • Para configurar as sessões eBGP entre os túneis de VPN, você deve especificar dois ASNs diferentes em ambos os lados. É preferível especificar números ASN privados. Para obter mais informações, consulte Visão geral de gateways de VPN do BGP e 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 Estabelecer os túneis de IPsec

A ação final do script cria túneis de IPsec entre o gateway de VPN do Azure e o dispositivo VPN local.

{
  "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. Configurar o dispositivo VPN local

O gateway de VPN do Azure é compatível com vários dispositivos VPN de fornecedores diferentes. Para obter informações de configuração e dispositivos validados para trabalhar com o gateway de VPN, consulte Sobre dispositivos VPN.

Ao configurar seu dispositivo VPN, você precisará dos itens a seguir:

  • Uma chave compartilhada. Esse valor é a mesma chave compartilhada que você especificou ao criar a conexão de VPN site a site. Os exemplos usam uma chave compartilhada básica. Recomendamos gerar uma chave mais complexa para uso.
  • O endereço IP público de seu gateway de VPN. Você pode exibir o endereço IP público usando o portal do Azure, o PowerShell ou a CLI. Para localizar o endereço IP público do seu gateway de VPN usando o portal do Azure, navegue até Gateways de rede virtual e selecione o nome do seu gateway.

Normalmente pares de eBGP estão diretamente conectados (geralmente por meio de uma conexão de WAN). No entanto, quando você está configurando o eBGP por túneis de VPN IPsec por meio do emparelhamento da Microsoft do ExpressRoute, há vários domínios de roteamentos entre os pares eBGP. Use o comando ebgp-multihop para estabelecer a relação de vizinho do eBGP entre os dois pares conectados não diretamente. O inteiro que segue o comando ebgp-multihop especifica o valor de TTL (vida útil) nos pacotes BGP. O comando maximum-paths eibgp 2 habilita o balanceamento de carga de tráfego entre os dois caminhos de BGP.

Exemplo de Cisco CSR1000

O exemplo a seguir mostra a configuração para Cisco CSR1000 em uma máquina virtual de Hyper-V como um dispositivo VPN local:

!
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. Configurar a filtragem de dispositivo VPN e firewalls (opcional)

Configure o firewall e a filtragem de acordo com seus requisitos.

6. Testar e validar o túnel de IPsec

O status de túneis de IPsec pode ser verificado no gateway de VPN do Azure por comandos do PowerShell:

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

Saída de exemplo:

ConnectionStatus        : Connected
EgressBytesTransferred  : 17734660
IngressBytesTransferred : 10538211

Para verificar o status de túneis em instâncias de gateway de VPN do Azure de forma independente, use o exemplo a seguir:

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

Saída de exemplo:

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

Você também pode verificar o status de túneis em seu dispositivo VPN local.

Exemplo de Cisco CSR1000:

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

Saída de exemplo:

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

O protocolo de linha na VTI (Interface de Túnel Virtual) não será alterado "para cima" até que a fase 2 do IKE seja concluída. O comando a seguir verifica a associação de segurança:

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

Verificar a conectividade de ponta a ponta entre a rede interna local e a rede virtual do Azure

Se os túneis do IPsec estão funcionando e se as rotas estáticas estão configuradas corretamente, você deve ser capaz de efetuar ping no endereço IP do par de BGP remoto:

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

Verificar as sessões de BGP por meio de IPsec

No gateway de VPN do Azure, verifique o status do par de BGP:

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

Saída de exemplo:

  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

Para verificar a lista de prefixos de rede recebidos pelo eBGP dos concentradores de VPN locais, você pode filtrar por "Origem" do atributo:

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

No exemplo de saída, o ASN 65010 é o número de sistema autônomo BGP em VPN local.

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

Para ver a lista de rotas anunciadas:

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

Saída de exemplo:

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

Exemplo para o Cisco CSR1000 local:

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

A lista de redes anunciado no Cisco CSR1000 local para o gateway de VPN do Azure pode ser listada usando o comando a seguir:

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

Próximas etapas