Como configurar o BGP para o Gateway de VPN do Azure: CLI

Este artigo ajuda você a habilitar o BGP em conexões VPN site a site (S2S) entre locais e conexões VNet-to-VNet usando a CLI do Azure. Você também pode criar essa configuração usando o portal do Azure ou as etapas do PowerShell.

O BGP é o protocolo de encaminhamento padrão utilizado normalmente na Internet para trocar informações de encaminhamento e acessibilidade entre duas ou mais redes. O BGP permite que os gateways de VPN do Azure e seus dispositivos VPN locais, chamados pares ou vizinhos BGP, troquem "rotas" que informarão ambos os gateways sobre a disponibilidade e a acessibilidade para que esses prefixos passem pelos gateways ou roteadores envolvidos. O BGP também pode permitir o encaminhamento de tráfego entre várias redes ao propagar rotas para todos os outros elementos de rede BGP, que um gateway BGP aprende de um elemento de rede BGP.

Para obter mais informações sobre os benefícios do BGP e entender os requisitos técnicos e as considerações do uso do BGP, consulte Sobre o BGP e o Gateway de VPN do Azure.

Cada parte deste artigo ajuda você a formar um bloco de construção básico para habilitar o BGP em sua conectividade de rede. Se você concluir todas as três partes (configurar BGP no gateway, conexão S2S e conexão VNet-to-VNet), criará a topologia conforme mostrado no Diagrama 1.

Diagrama 1

Diagrama mostrando a arquitetura e as configurações de rede.

Você pode combinar essas seções para criar uma rede de trânsito multihop mais complexa que atenda às suas necessidades.

Pré-requisitos

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Habilitar BGP para o gateway VPN

Esta seção é necessária antes de executar qualquer uma das etapas nas outras duas seções de configuração. As etapas de configuração a seguir configuram os parâmetros BGP do gateway de VPN do Azure, conforme mostrado no Diagrama 2.

Diagrama 2

Diagrama mostrando configurações para gateway de rede virtual.

Criar e configurar a TestVNet1

1. Criar um grupo de recursos

O exemplo a seguir cria um grupo de recursos chamado TestRG1 no local "eastus". Se você já tiver um grupo de recursos na região onde deseja criar sua rede virtual, poderá usá-lo.

az group create --name TestRG1 --location eastus

2. Criar TestVNet1

O exemplo a seguir cria uma rede virtual chamada TestVNet1 e três sub-redes: GatewaySubnet, FrontEnd e BackEnd. Ao substituir valores, é importante que você sempre nomeie sua sub-rede de gateway especificamente como GatewaySubnet. Se der outro nome, a criação da gateway falha.

O primeiro comando cria o espaço de endereço front-end e a sub-rede FrontEnd. O segundo comando cria um espaço de endereço adicional para a sub-rede BackEnd. O terceiro e quarto comandos criam a sub-rede BackEnd e GatewaySubnet.

az network vnet create -n TestVNet1 -g TestRG1 --address-prefix 10.11.0.0/16 --subnet-name FrontEnd --subnet-prefix 10.11.0.0/24
az network vnet update -n TestVNet1 --address-prefixes 10.11.0.0/16 10.12.0.0/16 -g TestRG1
 
az network vnet subnet create --vnet-name TestVNet1 -n BackEnd -g TestRG1 --address-prefix 10.12.0.0/24
 
az network vnet subnet create --vnet-name TestVNet1 -n GatewaySubnet -g TestRG1 --address-prefix 10.12.255.0/27

Criar o gateway VPN para TestVNet1 com parâmetros BGP

1. Crie o endereço IP público

Solicitar um endereço IP público. O endereço IP público será alocado para o gateway VPN que você criar para sua rede virtual.

az network public-ip create -n GWPubIP -g TestRG1 --allocation-method Dynamic 

2. Crie o gateway VPN com o número AS

Crie o gateway de rede virtual para TestVNet1. O BGP requer um gateway VPN baseado em rota. Você também precisa do parâmetro -Asn adicional para definir o número do sistema autônomo (ASN) para TestVNet1. Criar um gateway, muitas vezes, pode demorar 45 minutos ou mais, dependendo do SKU de gateway selecionado.

Se você executar esse comando usando o --no-wait parâmetro, não verá nenhum feedback ou saída. O --no-wait parâmetro permite que o gateway seja criado em segundo plano. Isso não significa que o gateway VPN é criado imediatamente.

az network vnet-gateway create -n VNet1GW -l eastus --public-ip-address GWPubIP -g TestRG1 --vnet TestVNet1 --gateway-type Vpn --sku HighPerformance --vpn-type RouteBased --asn 65010 --no-wait

Depois que o gateway é criado, você pode usar esse gateway para estabelecer uma conexão entre locais ou uma conexão VNet-to-VNet com BGP.

3. Obter o endereço IP de mesmo nível do BGP do Azure

Depois que o gateway for criado, você precisará obter o endereço IP de mesmo nível BGP no gateway de VPN do Azure. Esse endereço é necessário para configurar o gateway VPN como um par BGP para seus dispositivos VPN locais.

Execute o seguinte comando.

az network vnet-gateway list -g TestRG1

Anote a bgpSettings seção na parte superior da saída. Você vai usar isso

"bgpSettings": { 
      "asn": 65010, 
      "bgpPeeringAddress": "10.12.255.30", 
      "peerWeight": 0 
    }

Se você não vir o BgpPeeringAddress exibido como um endereço IP, seu gateway ainda está sendo configurado. Tente novamente quando o gateway estiver concluído.

Estabeleça uma conexão entre locais com o BGP

Para estabelecer uma conexão entre locais, você precisa criar um gateway de rede local para representar seu dispositivo VPN local. Em seguida, você conecta o gateway de VPN do Azure com o gateway de rede local. Embora essas etapas sejam semelhantes à criação de outras conexões, elas incluem as propriedades adicionais necessárias para especificar o parâmetro de configuração BGP, conforme mostrado no Diagrama 3.

Diagrama 3

Diagrama mostrando a configuração do IPsec.

Criar e configurar o gateway de rede local

Este exercício continua a construir a configuração mostrada no diagrama. Confirme que substitui os valores pelos que pretende utilizar para a configuração. Ao trabalhar com gateways de rede local, lembre-se do seguinte:

  • O gateway de rede local pode estar no mesmo local e grupo de recursos que o gateway VPN ou pode estar em um local e grupo de recursos diferentes. Este exemplo mostra os gateways em diferentes grupos de recursos em locais diferentes.
  • O prefixo mínimo que você precisa declarar para o gateway de rede local é o endereço de host do seu endereço IP de mesmo nível BGP em seu dispositivo VPN. Neste caso, é um prefixo /32 de 10.51.255.254/32.
  • Você também pode deixar o prefixo vazio se estiver usando BGP para se conectar a essa rede. O gateway de VPN do Azure adicionará internamente uma rota do seu endereço IP de mesmo nível BGP ao túnel IPsec correspondente.
  • Como lembrete, você deve usar ASNs BGP diferentes entre suas redes locais e a rede virtual do Azure. Se eles forem os mesmos, você precisará alterar seu ASN VNet se seus dispositivos VPN locais já usarem o ASN para emparelhar com outros vizinhos BGP.

Antes de continuar, certifique-se de ter concluído a seção Habilitar BGP para seu gateway de VPN deste exercício. Observe que, neste exemplo, você cria um novo grupo de recursos. Além disso, observe os dois parâmetros adicionais para o gateway de rede local: Asn e BgpPeerAddress.

az group create -n TestRG5 -l westus 
 
az network local-gateway create --gateway-ip-address 23.99.221.164 -n Site5 -g TestRG5 --local-address-prefixes 10.51.255.254/32 --asn 65050 --bgp-peering-address 10.51.255.254

Conectar o gateway VNet e o gateway de rede local

Nesta etapa, você cria a conexão de TestVNet1 para Site5. Você deve especificar o parâmetro para habilitar o --enable-bgp BGP para essa conexão.

Neste exemplo, o gateway de rede virtual e o gateway de rede local estão em grupos de recursos diferentes. Quando os gateways estão em grupos de recursos diferentes, você deve especificar toda a ID do recurso dos dois gateways para configurar uma conexão entre as redes virtuais.

1. Obtenha o ID do recurso do VNet1GW

Use a saída do comando a seguir para obter a ID do recurso para VNet1GW:

az network vnet-gateway show -n VNet1GW -g TestRG1

Na saída, localize a "id": linha. Você precisa dos valores entre aspas para criar a conexão na próxima seção.

Saída de exemplo:

{ 
  "activeActive": false, 
  "bgpSettings": { 
    "asn": 65010, 
    "bgpPeeringAddress": "10.12.255.30", 
    "peerWeight": 0 
  }, 
  "enableBgp": true, 
  "etag": "W/\"<your etag number>\"", 
  "gatewayDefaultSite": null, 
  "gatewayType": "Vpn", 
  "id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW",

Copie os valores depois "id": para um editor de texto, como o Bloco de Notas, para que você possa colá-los facilmente ao criar sua conexão.

"id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW"

2. Obtenha o ID do recurso do Site5

Use o seguinte comando para obter a ID de recurso do Site5 da saída:

az network local-gateway show -n Site5 -g TestRG5

3. Crie a conexão TestVNet1-to-Site5

Nesta etapa, você cria a conexão de TestVNet1 para Site5. Como discutido anteriormente, é possível ter conexões BGP e não BGP para o mesmo gateway de VPN do Azure. A menos que o BGP esteja habilitado na propriedade de conexão, o Azure não habilitará o BGP para essa conexão, mesmo que os parâmetros BGP já estejam configurados em ambos os gateways. Substitua os IDs de assinatura pelos seus.

az network vpn-connection create -n VNet1ToSite5 -g TestRG1 --vnet-gateway1 /subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW --enable-bgp -l eastus --shared-key "abc123" --local-gateway2 /subscriptions/<subscription ID>/resourceGroups/TestRG5/providers/Microsoft.Network/localNetworkGateways/Site5

Configuração de dispositivo local

O exemplo a seguir lista os parâmetros inseridos na seção de configuração BGP em seu dispositivo VPN local para este exercício:

- Site5 ASN            : 65050
- Site5 BGP IP         : 10.51.255.254
- Prefixes to announce : (for example) 10.51.0.0/16
- Azure VNet ASN       : 65010
- Azure VNet BGP IP    : 10.12.255.30
- Static route         : Add a route for 10.12.255.30/32, with nexthop being the VPN tunnel interface on your device
- eBGP Multihop        : Ensure the "multihop" option for eBGP is enabled on your device if needed

Após alguns minutos, a ligação deverá ser estabelecida. A sessão de emparelhamento BGP é iniciada depois que a conexão IPsec é estabelecida.

Estabelecer uma conexão VNet-to-VNet com BGP

Esta seção adiciona uma conexão VNet-to-VNet com BGP, conforme mostrado no Diagrama 4.

Diagrama 4

Diagrama mostrando a configuração completa da rede.

As instruções a seguir continuam a partir das etapas nas seções anteriores. Para criar e configurar o TestVNet1 e o gateway VPN com BGP, você deve concluir a seção Habilitar BGP para seu gateway VPN.

Criar TestVNet2 e o gateway VPN

É importante certificar-se de que o espaço de endereço IP da nova rede virtual, TestVNet2, não se sobreponha a nenhum dos seus intervalos de VNet.

Neste exemplo, as redes virtuais pertencem à mesma assinatura. Você pode configurar conexões VNet-to-VNet entre diferentes assinaturas. Para saber mais, consulte Configurar uma conexão VNet-to-VNet. Certifique-se de adicionar -EnableBgp $True ao criar as conexões para habilitar o BGP.

1. Criar um novo grupo de recursos

az group create -n TestRG2 -l eastus

2. Criar TestVNet2 no novo grupo de recursos

O primeiro comando cria o espaço de endereço front-end e a sub-rede FrontEnd. O segundo comando cria um espaço de endereço adicional para a sub-rede BackEnd. O terceiro e quarto comandos criam a sub-rede BackEnd e GatewaySubnet.

az network vnet create -n TestVNet2 -g TestRG2 --address-prefix 10.21.0.0/16 --subnet-name FrontEnd --subnet-prefix 10.21.0.0/24
az network vnet update -n TestVNet2 --address-prefixes 10.21.0.0/16 10.22.0.0/16 -g TestRG2
 
az network vnet subnet create --vnet-name TestVNet2 -n BackEnd -g TestRG2 --address-prefix 10.22.0.0/24
 
az network vnet subnet create --vnet-name TestVNet2 -n GatewaySubnet -g TestRG2 --address-prefix 10.22.255.0/27

3. Crie o endereço IP público

Solicitar um endereço IP público. O endereço IP público será alocado para o gateway VPN que você criar para sua rede virtual.

az network public-ip create -n GWPubIP2 -g TestRG2 --allocation-method Dynamic

4. Crie o gateway VPN com o número AS

Crie o gateway de rede virtual para TestVNet2. Você deve substituir o ASN padrão em seus gateways de VPN do Azure. Os ASNs para as redes virtuais conectadas devem ser diferentes para habilitar o BGP e o roteamento de trânsito.

az network vnet-gateway create -n VNet2GW -l eastus --public-ip-address GWPubIP2 -g TestRG2 --vnet TestVNet2 --gateway-type Vpn --sku Standard --vpn-type RouteBased --asn 65020 --no-wait

Conecte os gateways TestVNet1 e TestVNet2

Nesta etapa, você cria a conexão de TestVNet1 para Site5. Para habilitar o BGP para essa conexão, você deve especificar o --enable-bgp parâmetro.

No exemplo a seguir, o gateway de rede virtual e o gateway de rede local estão em grupos de recursos diferentes. Quando os gateways estão em grupos de recursos diferentes, você deve especificar toda a ID do recurso dos dois gateways para configurar uma conexão entre as redes virtuais.

1. Obtenha o ID do recurso do VNet1GW

Obtenha a ID de recurso de VNet1GW a partir da saída do seguinte comando:

az network vnet-gateway show -n VNet1GW -g TestRG1

Exemplo de valor para o recurso de gateway:

"/subscriptions/<subscripion ID value>/resourceGroups/TestRG2/providers/Microsoft.Network/virtualNetworkGateways/VNet2GW"

2. Obtenha o ID do recurso do VNet2GW

Obtenha a ID do recurso de VNet2GW a partir da saída do seguinte comando:

az network vnet-gateway show -n VNet2GW -g TestRG2

3. Crie as conexões

Crie a conexão de TestVNet1 para TestVNet2 e a conexão de TestVNet2 para TestVNet1. Esses comandos usam as IDs de recurso. Para este exercício, a maior parte do ID do recurso já está no exemplo. Certifique-se de substituir os valores de ID da assinatura pelos seus. O ID da assinatura é usado em vários lugares no mesmo comando. Ao usar esse comando para produção, você substituirá todo o ID do recurso para cada objeto ao qual está fazendo referência.

az network vpn-connection create -n VNet1ToVNet2 -g TestRG1 --vnet-gateway1 /subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW --enable-bgp -l eastus --shared-key "abc123" --vnet-gateway2 /subscriptions/<subscription ID>/resourceGroups/TestRG2/providers/Microsoft.Network/virtualNetworkGateways/VNet2GW
az network vpn-connection create -n VNet2ToVNet1 -g TestRG2 --vnet-gateway1 /subscriptions/<subscription ID>/resourceGroups/TestRG2/providers/Microsoft.Network/virtualNetworkGateways/VNet2GW --enable-bgp -l eastus --shared-key "abc123" --vnet-gateway2 /subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW

Importante

Habilite o BGP para ambas as conexões.

Depois de concluir essas etapas, a conexão será estabelecida em alguns minutos. A sessão de emparelhamento BGP será ativada após a conclusão da conexão VNet-to-VNet.

Próximos passos

Para obter mais informações sobre BGP, consulte Sobre BGP e VPN Gateway.