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
É 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
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
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
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
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
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.