Como configurar o BGP para Gateway de VPN: PowerShell

Este artigo ajuda a habilitar o BGP em conexões VPN S2S (site a site) entre locais e conexões VNet para VNet usando o Azure PowerShell. Se você não estiver familiarizado com esse tipo de configuração, talvez seja mais fácil usar a versão portal do Azure desse artigo.

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 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.

Introdução

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

Diagrama 1

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

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, conforme mostrado no Diagrama 2.

Diagrama 2

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

Antes de começar

Execute as etapas deste exercício usando o Azure Cloud Shell em seu navegador. Caso queira usar o PowerShell diretamente do computador, instale os cmdlets do PowerShell do Azure Resource Manager. Para saber mais sobre como instalar os cmdlets do PowerShell, consulte Como instalar e configurar o Azure PowerShell.

Crie e configure o VNet1

1. Declarar as variáveis

Para este exercício, começaremos declarando as variáveis. O exemplo a seguir declara as variáveis usando os valores para este exercício. Use as variáveis de exemplo (com exceção do nome da assinatura) se estiver executando as etapas para se familiarizar com esse tipo de configuração. Modifique quaisquer variáveis e, em seguida, copie e cole em seu console do PowerShell. Certifique-se de substituir os valores pelos seus próprios ao configurar para a produção.

$Sub1 = "Replace_With_Your_Subscription_Name"
$RG1 = "TestRG1"
$Location1 = "East US"
$VNetName1 = "TestVNet1"
$FESubName1 = "FrontEnd"
$BESubName1 = "Backend"
$GWSubName1 = "GatewaySubnet"
$VNetPrefix11 = "10.11.0.0/16"
$VNetPrefix12 = "10.12.0.0/16"
$FESubPrefix1 = "10.11.0.0/24"
$BESubPrefix1 = "10.12.0.0/24"
$GWSubPrefix1 = "10.12.255.0/27"
$VNet1ASN = 65010
$DNS1 = "8.8.8.8"
$GWName1 = "VNet1GW"
$GWIPName1 = "VNet1GWIP"
$GWIPconfName1 = "gwipconf1"
$Connection12 = "VNet1toVNet2"
$Connection15 = "VNet1toSite5"

2. Conectar à sua assinatura do Azure e criar um novo grupo de recursos

Para usar os cmdlets do Gerenciador de Recursos, alterne para o modo do PowerShell. Para obter mais informações, consulte Usando o Windows PowerShell com o Gerenciador de Recursos.

Caso use o Azure Cloud Shell, se conectará automaticamente à sua conta. Caso use o PowerShell no computador, abra o console do PowerShell e conecte-se à sua conta. Use o exemplo a seguir para ajudar com a conexão:

Connect-AzAccount
Select-AzSubscription -SubscriptionName $Sub1
New-AzResourceGroup -Name $RG1 -Location $Location1

Em seguida, crie um grupo de recursos.

New-AzResourceGroup -Name $RG1 -Location $Location1

3. Criar a TestVNet1

O exemplo a seguir cria uma rede virtual denominada TestVNet1 e três sub-redes, uma chamada GatewaySubnet, outra FrontEnd e outra Backend. Ao substituir valores, é importante você sempre nomear sua sub-rede de gateway especificamente como GatewaySubnet. Se você usar outro nome, a criação do gateway falhará.

$fesub1 = New-AzVirtualNetworkSubnetConfig -Name $FESubName1 -AddressPrefix $FESubPrefix1
$besub1 = New-AzVirtualNetworkSubnetConfig -Name $BESubName1 -AddressPrefix $BESubPrefix1
$gwsub1 = New-AzVirtualNetworkSubnetConfig -Name $GWSubName1 -AddressPrefix $GWSubPrefix1

New-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1 -Location $Location1 -AddressPrefix $VNetPrefix11,$VNetPrefix12 -Subnet $fesub1,$besub1,$gwsub1

Criar o gateway de VPN com BGP habilitado

1. Criar as configurações de IP e sub-redes

Solicite um endereço IP público para ser alocado ao gateway que você criará para sua VNet. Você também definirá as configurações necessárias de IP e sub-rede.

$gwpip1 = New-AzPublicIpAddress -Name $GWIPName1 -ResourceGroupName $RG1 -Location $Location1 -AllocationMethod Dynamic

$vnet1 = Get-AzVirtualNetwork -Name $VNetName1 -ResourceGroupName $RG1
$subnet1 = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet1
$gwipconf1 = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName1 -Subnet $subnet1 -PublicIpAddress $gwpip1

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

Crie o gateway de rede virtual para TestVNet1. O BGP exige um gateway de VPN Baseado em Rota, além de um parâmetro adicional -Asn, para definir o Número AS (ASN) como TestVNet1. Certifique-se de especar o parâmetro -Asn . Se você não definir o parâmetro -Asn, o ASN 65515 (que não funciona para essa configuração) será atribuído por padrão. Criar um gateway pode demorar um pouco (45 minutos ou mais para ser concluído).

New-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1 -Location $Location1 -IpConfigurations $gwipconf1 -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -Asn $VNet1ASN

Depois de criar o gateway, você poderá usar este gateway para estabelecer a conexão entre instalações ou conexão VNet para VNet com BGP.

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

Depois de criar o gateway, você precisará obter o endereço IP do par no nível de protocolo BGP no Gateway de VPN. Esse endereço é necessário para configurar o gateway de VPN como um Par BGP para os dispositivos VPN locais.

Caso esteja usando o CloudShell, talvez seja necessário restabelecer suas variáveis se a sessão atingiu o tempo limite ao criar seu gateway.

Restabelecer variáveis, se necessário:

$RG1 = "TestRG1"
$GWName1 = "VNet1GW"

Execute o comando a seguir e anote o valor "BgpPeeringAddress" da saída.

$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1
$vnet1gw.BgpSettingsText

Saída de exemplo:

$vnet1gw.BgpSettingsText
{
    "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 e uma Conexão para conectar o gateway de VPN com ao gateway de rede local conforme explicado em Criar conexão site a site. As seções a seguir contêm as propriedades necessárias para especificar os parâmetros de configuração do BGP, mostrados no Diagrama 3.

Diagrama 3

Diagrama mostrando a configuração do IPsec.

Antes de continuar, verifique se você habilitou o BGP para o gateway de VPN na seção anterior.

Etapa 1: Criar e configurar o gateway de rede local

1. Declarar as variáveis

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. Por exemplo, você precisa do endereço IP do dispositivo VPN. Para este exercício, você poderá substituir um endereço IP válido se não planeja se conectar ao seu dispositivo VPN no momento. Posteriormente, é possível substituir o endereço IP.

$RG5 = "TestRG5"
$Location5 = "West US"
$LNGName5 = "Site5"
$LNGPrefix50 = "10.51.255.254/32"
$LNGIP5 = "4.3.2.1"
$LNGASN5 = 65050
$BGPPeerIP5 = "10.51.255.254"

Algumas coisas para observar relacionadas aos parâmetros de gateway de rede:

  • O gateway de rede local pode estar no mesmo ou em outro local e grupo de recursos como o gateway de VPN. Este exemplo os mostra em grupos de recursos diferentes em locais diferentes.
  • O prefixo 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".
  • Como lembrete, você deve usar diferentes ASNs BGP entre suas redes locais e a VNet do Azure. Se eles forem iguais, você precisará alterar seu ASN de VNet se o dispositivo VPN local já usar o ASN para emparelhar com outros vizinhos de BGP.

2. Criar o gateway de rede local para site5

Crie o grupo de recursos antes de criar o gateway de rede local.

New-AzResourceGroup -Name $RG5 -Location $Location5

Crie o gateway de rede local. Observe os dois parâmetros adicionais para o gateway de rede local: Asn e BgpPeerAddress.

New-AzLocalNetworkGateway -Name $LNGName5 -ResourceGroupName $RG5 -Location $Location5 -GatewayIpAddress $LNGIP5 -AddressPrefix $LNGPrefix50 -Asn $LNGASN5 -BgpPeeringAddress $BGPPeerIP5

Etapa 2: Conectar o gateway de VNet e o gateway de rede local

1. Obter os dois gateways

$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1  -ResourceGroupName $RG1
$lng5gw  = Get-AzLocalNetworkGateway -Name $LNGName5 -ResourceGroupName $RG5

2. Criar a conexão entre TestVNet1 e Site5

Nesta etapa, você cria a conexão de TestVNet1 para Site5. Você deve especificar "-EnableBGP $True" para habilitar o BGP para essa conexão. 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. 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.

Redeclare suas variáveis, se necessário:

$Connection15 = "VNet1toSite5"
$Location1 = "East US"

Em seguida, execute o seguinte comando:

New-AzVirtualNetworkGatewayConnection -Name $Connection15 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnet1gw -LocalNetworkGateway2 $lng5gw -Location $Location1 -ConnectionType IPsec -SharedKey 'AzureA1b2C3' -EnableBGP $True

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

A conexão é estabelecida após alguns minutos, e a sessão de emparelhamento via protocolo BGP inicia uma vez estabelecida a conexão IPsec.

Estabelecer uma conexão VNet a VNet com BGP

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

Diagrama 4

Diagrama mostrando a configuração de rede completa.

As instruções a seguir continuam das etapas anteriores. É necessário primeiro completar as etapas na seção Habilitar o BGP para o gateway de VPN para criar e configurar o TestVNet1 e o gateway de VPN com BGP.

Etapa 1: 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, veja Configurar uma conexão VNet com VNet. Verifique se você adicionou "-EnableBgp $True" ao criar conexões para habilitar o BGP.

1. Declarar as variáveis

Não se esqueça de substituir os valores com aqueles que você deseja usar para sua configuração.

$RG2 = "TestRG2"
$Location2 = "East US"
$VNetName2 = "TestVNet2"
$FESubName2 = "FrontEnd"
$BESubName2 = "Backend"
$GWSubName2 = "GatewaySubnet"
$VNetPrefix21 = "10.21.0.0/16"
$VNetPrefix22 = "10.22.0.0/16"
$FESubPrefix2 = "10.21.0.0/24"
$BESubPrefix2 = "10.22.0.0/24"
$GWSubPrefix2 = "10.22.255.0/27"
$VNet2ASN = 65020
$DNS2 = "8.8.8.8"
$GWName2 = "VNet2GW"
$GWIPName2 = "VNet2GWIP"
$GWIPconfName2 = "gwipconf2"
$Connection21 = "VNet2toVNet1"
$Connection12 = "VNet1toVNet2"

2. Criar TestVNet2 no novo grupo de recursos

New-AzResourceGroup -Name $RG2 -Location $Location2

$fesub2 = New-AzVirtualNetworkSubnetConfig -Name $FESubName2 -AddressPrefix $FESubPrefix2
$besub2 = New-AzVirtualNetworkSubnetConfig -Name $BESubName2 -AddressPrefix $BESubPrefix2
$gwsub2 = New-AzVirtualNetworkSubnetConfig -Name $GWSubName2 -AddressPrefix $GWSubPrefix2

New-AzVirtualNetwork -Name $VNetName2 -ResourceGroupName $RG2 -Location $Location2 -AddressPrefix $VNetPrefix21,$VNetPrefix22 -Subnet $fesub2,$besub2,$gwsub2

3. Criar um gateway de VPN para TestVNet2 com parâmetros de BGP

Solicite um endereço IP público a ser alocada para o gateway, você criará para a sua rede virtual e defina a sub-rede necessária e configurações de IP.

Declare as variáveis.

$gwpip2    = New-AzPublicIpAddress -Name $GWIPName2 -ResourceGroupName $RG2 -Location $Location2 -AllocationMethod Dynamic

$vnet2     = Get-AzVirtualNetwork -Name $VNetName2 -ResourceGroupName $RG2
$subnet2   = Get-AzVirtualNetworkSubnetConfig -Name "GatewaySubnet" -VirtualNetwork $vnet2
$gwipconf2 = New-AzVirtualNetworkGatewayIpConfig -Name $GWIPconfName2 -Subnet $subnet2 -PublicIpAddress $gwpip2

Crie o gateway de VPN com o número AS. É necessário substituir o ASN padrão em seus gateways de VPN. As ASNs para as VNets conectadas devem ser diferentes para habilitar o BGP e roteamento de tráfego.

New-AzVirtualNetworkGateway -Name $GWName2 -ResourceGroupName $RG2 -Location $Location2 -IpConfigurations $gwipconf2 -GatewayType Vpn -VpnType RouteBased -GatewaySku VpnGw1 -Asn $VNet2ASN

Etapa 2: Conectar os gateways de TestVNet1 e TestVNet2

Neste exemplo, ambos os gateways estão na mesma assinatura. Você pode concluir essa etapa na mesma sessão do PowerShell.

1. Obter ambos os gateways

Restabelecer variáveis, se necessário:

$GWName1 = "VNet1GW"
$GWName2 = "VNet2GW"
$RG1 = "TestRG1"
$RG2 = "TestRG2"
$Connection12 = "VNet1toVNet2"
$Connection21 = "VNet2toVNet1"
$Location1 = "East US"
$Location2 = "East US"

Obter ambos os gateways.

$vnet1gw = Get-AzVirtualNetworkGateway -Name $GWName1 -ResourceGroupName $RG1
$vnet2gw = Get-AzVirtualNetworkGateway -Name $GWName2 -ResourceGroupName $RG2

2. Criar ambas as conexões

Nesta etapa, você cria a conexão de TestVNet1 para TestVNet2 e a conexão de TestVNet2 to TestVNet1.

TestVNet1 para a conexão TestVNet2.

New-AzVirtualNetworkGatewayConnection -Name $Connection12 -ResourceGroupName $RG1 -VirtualNetworkGateway1 $vnet1gw -VirtualNetworkGateway2 $vnet2gw -Location $Location1 -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3' -EnableBgp $True

TestVNet2 para a conexão TestVNet1.

New-AzVirtualNetworkGatewayConnection -Name $Connection21 -ResourceGroupName $RG2 -VirtualNetworkGateway1 $vnet2gw -VirtualNetworkGateway2 $vnet1gw -Location $Location2 -ConnectionType Vnet2Vnet -SharedKey 'AzureA1b2C3' -EnableBgp $True

Importante

Certifique-se de habilitar o BGP para AMBAS as conexões.

Depois de concluir estas etapas, a conexão será estabelecida após alguns minutos. A sessão de emparelhamento via protocolo BGP fica ativa até a conclusão da conexão VNET a VNET.

Se você tiver concluído todas as partes deste exercício, estabeleceu a topologia de rede a seguir:

Diagrama 4

Diagrama mostrando a rede completa

Para o contexto, com relação ao Diagrama 4, se o BGP fosse desabilitado entre TestVNet2 e TestVNet1, o TestVNet2 não aprenderia as rotas para a rede local, Site5 e, portanto, não poderia se comunicar com o Site 5. Depois de habilitar o BGP, conforme mostrado no Diagrama 4, todas as três redes poderão se comunicar pelas conexões S2S de IPsec e VNet a VNet.

Próximas etapas

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