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

Este artigo ajuda-o a ativar o BGP em ligações VPN site a site (S2S) em vários locais e ligações VNet a VNet com a CLI do Azure. Também pode criar esta configuração com os passos do portal do Azure ou 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 os seus dispositivos VPN no local, denominados elementos de rede BGP ou vizinhos, troquem "rotas" que informem ambos os gateways sobre a disponibilidade e a acessibilidade para que esses prefixos passem pelos gateways ou routers 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 compreender os requisitos técnicos e as considerações da utilização do BGP, veja Acerca do BGP e do Azure Gateway de VPN.

Cada parte deste artigo ajuda-o a formar um bloco modular básico para ativar o BGP na conectividade de rede. Se concluir as três partes (configurar o BGP no gateway, a ligação S2S e a ligação VNet a VNet), crie a topologia conforme mostrado no Diagrama 1.

Diagrama 1

Diagrama a mostrar a arquitetura e as definições de rede.

Pode combinar estas secções para criar uma rede de trânsito multihop mais complexa que satisfaça as suas necessidades.

Pré-requisitos

Ativar o BGP para o gateway de VPN

Esta secção é necessária antes de executar qualquer um dos passos nas outras duas secções de configuração. Os passos de configuração seguintes configuram os parâmetros BGP do gateway de VPN do Azure, conforme mostrado no Diagrama 2.

Diagrama 2

Diagrama a mostrar as definições do gateway de rede virtual.

Criar e configurar a TestVNet1

1. Criar um grupo de recursos

O exemplo seguinte cria um grupo de recursos com o nome TestRG1 na localização "eastus". Se já tiver um grupo de recursos na região onde pretende criar a rede virtual, pode utilizá-lo.

az group create --name TestRG1 --location eastus

2. Criar TestVNet1

O exemplo seguinte cria uma rede virtual denominada TestVNet1 e três sub-redes: GatewaySubnet, FrontEnd e BackEnd. Quando substitui valores, é importante atribuir sempre um nome à sub-rede do gateway especificamente GatewaySubnet. Se der outro nome, a criação da gateway falha.

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

1. Criar o endereço IP público

Solicitar um endereço IP público. O endereço IP público será alocado ao gateway de VPN que criar para a sua 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 Route-Based. Também precisa do parâmetro -Asn adicional para definir o número de sistema autónomo (ASN) para TestVNet1. Criar um gateway, muitas vezes, pode demorar 45 minutos ou mais, dependendo do SKU de gateway selecionado.

Se executar este comando com o --no-wait parâmetro , não verá comentários ou resultados. O --no-wait parâmetro permite que o gateway seja criado em segundo plano. Não significa que o gateway de VPN seja 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

Após a criação do gateway, pode utilizar este gateway para estabelecer uma ligação em vários locais ou uma ligação VNet a VNet com BGP.

3. Obter o endereço IP do elemento de rede BGP do Azure

Depois de criar o gateway, tem de obter o endereço IP do elemento de rede BGP no gateway de VPN do Azure. Este endereço é necessário para configurar o gateway de VPN como um elemento de rede BGP para os seus dispositivos VPN no local.

Execute o seguinte comando.

az network vnet-gateway list -g TestRG1

Anote a bgpSettings secção na parte superior do resultado. Irá utilizar esta opção

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

Se não vir o BgpPeeringAddress apresentado como um endereço IP, o gateway ainda está a ser configurado. Tente novamente quando o gateway estiver concluído.

Estabelecer uma ligação em vários locais com o BGP

Para estabelecer uma ligação em vários locais, tem de criar um gateway de rede local para representar o seu dispositivo VPN no local. Em seguida, ligue o gateway de VPN do Azure ao gateway de rede local. Embora estes passos sejam semelhantes à criação de outras ligações, incluem as propriedades adicionais necessárias para especificar o parâmetro de configuração BGP, conforme mostrado no Diagrama 3.

Diagrama 3

Diagrama a mostrar a configuração de IPsec.

Criar e configurar o gateway de rede local

Este exercício continua a criar a configuração apresentada no diagrama. Confirme que substitui os valores pelos que pretende utilizar para a configuração. Quando estiver a trabalhar com gateways de rede local, tenha em atenção os seguintes aspetos:

  • O gateway de rede local pode estar na mesma localização e grupo de recursos que o gateway de VPN ou pode estar numa localização e grupo de recursos diferente. Este exemplo mostra os gateways em diferentes grupos de recursos em localizações diferentes.
  • O prefixo mínimo que tem de declarar para o gateway de rede local é o endereço anfitrião do endereço IP do elemento de rede BGP no seu dispositivo VPN. Neste caso, é um prefixo /32 de 10.51.255.254/32.
  • Como lembrete, tem de utilizar ASNs BGP diferentes entre as suas redes no local e a rede virtual do Azure. Se forem iguais, terá de alterar o ASN da VNet se os seus dispositivos VPN no local já utilizarem o ASN para efetuar o peering com outros vizinhos BGP.

Antes de continuar, certifique-se de que concluiu a secção Ativar o BGP para o gateway de VPN deste exercício. Repare que, neste exemplo, vai criar um novo grupo de recursos. Além disso, repare nos 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

Ligar o gateway de VNet e o gateway de rede local

Neste passo, vai criar a ligação de TestVNet1 a Site5. Tem de especificar o parâmetro para ativar o --enable-bgp BGP para esta ligaçã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, tem de especificar todo o ID de recurso dos dois gateways para configurar uma ligação entre as redes virtuais.

1. Obter o ID de recurso da VNet1GW

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

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

Na saída, localize a "id": linha. Precisa dos valores entre aspas para criar a ligação na secção seguinte.

Exemplo de saída:

{ 
  "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 possa colá-los facilmente ao criar a sua ligação.

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

2. Obter o ID de recurso do Site5

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

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

3. Criar a ligação TestVNet1 a Site5

Neste passo, vai criar a ligação de TestVNet1 a Site5. Conforme abordado anteriormente, é possível ter ligações BGP e não BGP para o mesmo gateway de VPN do Azure. A menos que o BGP esteja ativado na propriedade de ligação, o Azure não ativa o BGP para esta ligação, apesar de os parâmetros BGP já estarem configurados em ambos os gateways. Substitua os IDs da subscrição 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 do dispositivo no local

O exemplo seguinte lista os parâmetros introduzidos na secção de configuração do BGP no seu dispositivo VPN no 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 peering BGP é iniciada após a ligação IPsec ser estabelecida.

Estabelecer uma ligação VNet a VNet com BGP

Esta secção adiciona uma ligação VNet a VNet com BGP, conforme mostrado no Diagrama 4.

Diagrama 4

Diagrama a mostrar a configuração de rede completa.

As seguintes instruções continuam a partir dos passos nas secções anteriores. Para criar e configurar a TestVNet1 e o gateway de VPN com BGP, tem de concluir a secção Ativar BGP para o gateway de VPN .

Criar TestVNet2 e o gateway de VPN

É importante garantir que o espaço de endereços IP da nova rede virtual, TestVNet2, não se sobrepõe a nenhum dos seus intervalos de VNet.

Neste exemplo, as redes virtuais pertencem à mesma subscrição. Pode configurar ligações VNet a VNet entre diferentes subscrições. Para saber mais, veja Configurar uma ligação VNet a VNet. Certifique-se de que adiciona -EnableBgp $True ao criar as ligações para ativar 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ços de front-end e a sub-rede FrontEnd. O segundo comando cria um espaço de endereços adicional para a sub-rede BackEnd. Os terceiro e quarto comandos criam a sub-rede BackEnd e o 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 o endereço IP público

Solicitar um endereço IP público. O endereço IP público será alocado ao gateway de VPN que criar para a sua 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. Tem de substituir o ASN predefinido nos gateways de VPN do Azure. Os ASNs das redes virtuais ligadas têm de ser diferentes para ativar o BGP e o encaminhamento 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

Ligar os gateways TestVNet1 e TestVNet2

Neste passo, vai criar a ligação de TestVNet1 a Site5. Para ativar o BGP para esta ligação, tem de especificar o --enable-bgp parâmetro.

No exemplo seguinte, 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, tem de especificar todo o ID de recurso dos dois gateways para configurar uma ligação entre as redes virtuais.

1. Obtenha o ID de recurso da VNet1GW

Obtenha o ID de recurso do VNet1GW a partir da 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 o ID de recurso da VNet2GW

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

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

3. Criar as ligações

Crie a ligação de TestVNet1 a TestVNet2 e a ligação de TestVNet2 a TestVNet1. Estes comandos utilizam os IDs de recurso. Para este exercício, a maior parte do ID de recurso já se encontra no exemplo. Certifique-se de que substitui os valores do ID da subscrição pelos seus. O ID da subscrição é utilizado em vários locais no mesmo comando. Ao utilizar este comando para produção, irá substituir todo o ID de recurso de cada objeto que estiver a referenciar.

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

Ative o BGP para ambas as ligações.

Após concluir estes passos, a ligação será estabelecida dentro de alguns minutos. A sessão de peering BGP estará ativada após a conclusão da ligação VNet a VNet.

Passos seguintes

Para obter mais informações sobre o BGP, consulte Acerca do BGP e Gateway de VPN.