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

Este artigo ajuda a habilitar o BGP em conexões VPN S2S (site a site) entre locais e conexões VNet para 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 roteamento padrão usado na Internet para a troca de informações de roteamento e acessibilidade entre duas ou mais redes. O BGP habilita os gateways de VPN do Azure e os dispositivos de VPN locais, chamados de pares ou vizinhos BGP, para trocar "rotas" que informarão ambos os gateways sobre a disponibilidade e a acessibilidade para que esses prefixos percorram os gateways ou os roteadores envolvidos. O BGP também pode habilitar o roteamento de trânsito entre várias redes propagando rotas que um gateway BGP obtém de um par no nível de protocolo BGP para todos os outros pares no nível de protocolo BGP.

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

Cada parte deste artigo ajuda a constituir 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 o BGP no gateway, a conexão site a site e a conexão VNet a VNet), você criará a topologia conforme mostrado no Diagrama 1.

Diagrama 1

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

É possível combinar essas seções para compilar uma rede de trânsito com saltos múltiplos mais complexa que atenda às suas necessidades.

Pré-requisitos

Habilitar o BGP para o gateway de 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 definem os parâmetros de BGP do gateway de VPN do Azure, conforme mostrado no Diagrama 2:

Diagrama 2

Diagrama mostrando as configurações do gateway de rede virtual

Criar e configurar a TestVNet1

1. Criar um grupo de recursos

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

az group create --name TestRG1 --location eastus

2. Criar a TestVNet1

O exemplo a seguir cria uma rede virtual denominada 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 você usar outro nome, a criação do gateway falhará.

O primeiro comando cria o espaço de endereçamento front-end e a sub-rede FrontEnd. O segundo comando cria um espaço de endereçamento adicional para a sub-rede de BackEnd. Os comandos terceiro e quarto 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 de VPN para TestVNet1 com parâmetros de BGP

1. Criar um endereço IP público

Solicite um endereço IP público. O endereço IP público será alocado ao gateway de VPN que criado para rede virtual.

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

2. Criar o gateway de VPN com o número AS

Crie o gateway de rede virtual para TestVNet1. O BGP requer um gateway de VPN baseado em rota. Além disso, será necessário o parâmetro adicional -Asn para definir o ASN (número de sistema autônomo) como TestVNet1. Criar um gateway pode levar 45 minutos ou mais, dependendo do SKU de gateway selecionado.

Se você executar esse comando usando o parâmetro --no-wait, não receberá nenhum feedback ou saída. O parâmetro --no-wait permite que o gateway seja criado em segundo plano. Isso não significa que a criação do gateway de VPN ocorrerá 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 de criar o gateway, você poderá usar este gateway para estabelecer a conexão entre instalações ou conexão VNet a VNet com BGP.

3. Obter o endereço IP do par no nível de protocolo BGP do Azure

Após a criação do gateway, você precisará obter o endereço IP do par no nível de protocolo BGP no gateway de VPN do Azure. Esse endereço é necessário para configurar o gateway de VPN como um par no nível de protocolo BGP para os dispositivos VPN locais.

Execute o comando a seguir.

az network vnet-gateway list -g TestRG1

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

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

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

Estabelecer uma conexão entre instalações com BGP

Para estabelecer uma conexão entre instalações, você precisará criar um gateway de rede local para representar o dispositivo VPN local. Em seguida, conecte 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 os parâmetros de configuração do 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 compilar a configuração mostrada no diagrama. Não se esqueça de substituir os valores com aqueles que você deseja usar para sua configuração. Ao trabalhar com gateways de rede local, lembre-se das seguintes ações:

  • O gateway de rede local pode estar no mesmo local e no mesmo grupo de recursos que o gateway de VPN, ou em um local e grupo de recursos diferente. Este exemplo os mostra os gateways em grupos de recursos diferentes 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 do par no nível de protocolo BGP em seu dispositivo VPN. Nesse caso, é um prefixo /32 de 10.51.255.254/32.
  • Você também pode deixar o prefixo em branco se estiver usando o BGP para se conectar a essa rede. O gateway de VPN do Azure adicionará internamente uma rota de seu endereço IP de par de 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 iguais, você precisará alterar o ASN de VNet se os dispositivos VPN locais já utilizam o ASN para emparelhar com outros vizinhos de BGP.

Antes de prosseguir, conclua a seção Habilitar o 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 de VNet e o gateway de rede local

Nesta etapa, você cria a conexão de TestVNet1 para Site5. É necessário especificar o parâmetro --enable-bgp para habilitar o 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 estiverem em grupos de recursos diferentes, será necessário especificar toda a ID de recurso dos dois gateways para configurar uma conexão entre redes virtuais.

1. Obter a ID de recurso da VNet1GW

Utilize o resultado do seguinte comando para obter a ID do recurso para VNet1GW:

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

Na saída, localize a linha "id":. 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 após "id": em 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. Obter a ID do recurso do Site5

Utilize o seguinte comando para obter a ID do recurso do Site5 a partir da saída:

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

3. Criar a conexão entre TestVNet1 e Site5

Nesta etapa, você cria a conexão de TestVNet1 para Site5. Conforme discutido anteriormente, é possível ter conexões BGP e conexões que não são de 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 parâmetros BGP já estejam configurados em ambos os gateways. Substitua as IDs da assinatura pela sua.

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

Configurar o dispositivo local

O exemplo a seguir lista os parâmetros que você inserirá na seção de configuração de 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

Depois de alguns minutos, a conexão deve ser estabelecida. A sessão de emparelhamento BGP começa após a conexão IPsec ser estabelecida.

Estabelecer uma conexão VNet a VNet com BGP

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

Diagrama 4

Diagrama mostrando a configuração de rede completa.

As instruções a seguir continuam a partir das etapas anteriores nas seções anteriores. Para criar e configurar o TestVNet1 e o gateway de VPN com BGP, é necessário completar a seção Habilitar o BGP para o gateway de VPN.

Criar TestVNet2 e o gateway de 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 de rede virtual a rede entre assinaturas diferentes. Para saber mais, confira Configurar uma conexão VNet para VNet. Verifique se você adicionou -EnableBgp $True ao criar conexões para habilitar o BGP.

1. Criar um 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çamento front-end e a sub-rede FrontEnd. O segundo comando cria um espaço de endereçamento adicional para a sub-rede de BackEnd. Os comandos terceiro e quarto 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. Criar um endereço IP público

Solicite um endereço IP público. O endereço IP público será alocado ao gateway de VPN que criado para rede virtual.

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

4. Criar o gateway de 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. As ASNs para as redes virtuais conectadas devem ser diferentes para habilitar o BGP e roteamento de tráfego.

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

Conectar os gateways de TestVNet1 e TestVNet2

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

No exemplo a seguir, o gateway de rede virtual e o gateway de rede local estão em diferentes grupos de recursos. Quando os gateways estiverem em grupos de recursos diferentes, será necessário especificar toda a ID de recurso dos dois gateways para configurar uma conexão entre redes virtuais.

1. Obter a ID de recurso da VNet1GW

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

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

Valor de exemplo para o recurso de gateway:

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

2. Obter a ID de recurso da VNet2GW

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

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

3. Criar 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 da ID do recurso já está no exemplo. Não se esqueça de substituir os valores da ID da assinatura pelos seus próprios. A ID da assinatura é usada em vários locais no mesmo comando. Ao usar esse comando para produção, você substituirá toda a ID do recurso para cada objeto referenciado.

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 as duas conexões.

Após concluir essas etapas, a conexão será estabelecida em alguns minutos. A sessão de emparelhamento do BGP será iniciada quando a conexão VNet a VNet for concluída.

Próximas etapas

Para obter mais informações sobre o BGP, confira Sobre o BGP e o Gateway de VPN.