Como configurar o BGP para VPN Gateway: PowerShell

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 o Azure PowerShell. Se você não estiver familiarizado com esse tipo de configuração, talvez seja mais fácil usar a versão deste artigo do portal do Azure.

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 as gateways VPN e os seus dispositivos VPN locais, denominados BGP peers ou vizinhos, troquem "rotas" que informarão ambas as gateways sobre a disponibilidade e acessibilidade desses prefixos através das 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 entender os requisitos técnicos e as considerações do uso do BGP, consulte Sobre o BGP e o Gateway de VPN do Azure.

Introdução

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. Você pode combinar essas seções para criar uma rede de trânsito multihop mais complexa que atenda às suas necessidades.

Diagrama 1

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

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

Diagrama 2

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

Antes de começar

Você pode executar as etapas para este exercício usando o Azure Cloud Shell em seu navegador. Se você quiser usar o PowerShell diretamente do seu computador, instale os cmdlets do PowerShell do Azure Resource Manager. Para obter mais informações sobre como instalar os cmdlets do PowerShell, veja How to install and configure Azure PowerShell (Como instalar e configurar o Azure PowerShell) .

Criar e configurar VNet1

1. Declare suas variáveis

Para este exercício, começamos por declarar variáveis. O exemplo a seguir declara as variáveis usando os valores para este exercício. Você pode usar 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 no console do PowerShell. Verifique se substitui os valores pelos seus quando configurar para 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. Conecte-se à sua assinatura e crie um novo grupo de recursos

Para usar os cmdlets do Gerenciador de Recursos, alterne para o modo do PowerShell. Para obter mais informações, veja Utilizar o Windows PowerShell com o Resource Manager.

Se você usar o Azure Cloud Shell, se conectará automaticamente à sua conta. Se você usa o PowerShell do seu computador, abra o console do PowerShell e conecte-se à sua conta. Utilize o seguinte exemplo para o ajudar na ligação:

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

Em seguida, crie um novo grupo de recursos.

New-AzResourceGroup -Name $RG1 -Location $Location1

3. Criar TestVNet1

O exemplo a seguir cria uma rede virtual chamada TestVNet1 e três sub-redes, uma chamada GatewaySubnet, uma chamada FrontEnd e uma chamada Backend. Quando estiver a substituir os valores, é importante que dê sempre à sub-rede do gateway o nome específico GatewaySubnet. Se der outro nome, a criação da gateway falha.

$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

Crie o gateway VPN com BGP habilitado

1. Crie as configurações de IP e sub-rede

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

$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. 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 e também um parâmetro adicional -Asn para definir o ASN (número AS) para TestVNet1. Certifique-se de especificar 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. A criação de um gateway pode demorar algum tempo (45 minutos ou mais).

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

Depois que o gateway for criado, você poderá usá-lo para estabelecer conexão entre locais ou conexão VNet-to-VNet com BGP.

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

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

Se você estiver usando o CloudShell, talvez seja necessário restabelecer suas variáveis se a sessão atingir o tempo limite durante a criação do gateway.

Restabelecer as variáveis, se necessário:

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

Execute o seguinte comando 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 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 e uma conexão para conectar o gateway VPN com o 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 BGP, mostrados no Diagrama 3.

Diagrama 3

Diagrama mostrando a configuração do IPsec.

Antes de continuar, certifique-se de que ativou o BGP para o gateway VPN na secção anterior.

Etapa 1: Criar e configurar o gateway de rede local

1. Declare suas variáveis

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. Por exemplo, você precisa do endereço IP do seu dispositivo VPN. Para este exercício, você pode substituir um endereço IP válido se não planeja se conectar ao seu dispositivo VPN no momento. Mais tarde, você pode 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 a observar em relação aos parâmetros do gateway de rede local:

  • O gateway de rede local pode estar no mesmo local ou em um grupo de recursos diferente do gateway VPN. Este exemplo os mostra em diferentes grupos de recursos 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 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 VNet do Azure. Se eles forem os mesmos, você precisará alterar seu ASN VNet se seu dispositivo VPN local já usa o ASN para emparelhar com outros vizinhos BGP.

2. Crie o gateway de rede local para o 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 VNet e o gateway de rede local

1. Obtenha os dois gateways

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

2. Crie a conexão TestVNet1 para 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. Como discutido anteriormente, é possível ter conexões BGP e não BGP para o mesmo gateway 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 os 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

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

A conexão é estabelecida após alguns minutos e a sessão de emparelhamento BGP é iniciada assim 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 das etapas anteriores. Você deve primeiro concluir as etapas na seção Habilitar BGP para o gateway VPN para criar e configurar o TestVNet1 e o gateway VPN com BGP.

Etapa 1: Criar o 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 obter mais informações, consulte Configurar uma conexão VNet-to-VNet. Certifique-se de adicionar o "-EnableBgp $True" ao criar as conexões para habilitar o BGP.

1. Declare suas variáveis

Confirme que substitui os valores pelos que pretende utilizar para a 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. Crie o gateway VPN para TestVNet2 com parâmetros BGP

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

Declarar 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 VPN com o número AS. Você deve substituir o ASN padrão em seus gateways de VPN. Os ASNs para as redes virtuais conectadas devem ser diferentes para habilitar o BGP e o roteamento de trânsito.

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

Etapa 2: Conectar os gateways TestVNet1 e TestVNet2

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

1. Obtenha ambos os gateways

Restabelecer as variáveis, se necessário:

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

Obtenha ambos os gateways.

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

2. Crie ambas as conexões

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

TestVNet1 para TestVNet2 conexão.

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

Conexão TestVNet2 para TestVNet1.

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

Importante

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

Depois de concluir essas etapas, a conexão é estabelecida após alguns minutos. A sessão de emparelhamento BGP é ativada assim que a conexão VNet-to-VNet é concluída.

Se você concluiu as três partes deste exercício, estabeleceu a seguinte topologia de rede:

Diagrama 4

Diagrama mostrando a rede completa

Para contextualizar, referindo-se 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, como mostrado no Diagrama 4, todas as três redes poderão se comunicar pelas conexões IPsec e VNet-to-VNet do S2S.

Próximos passos

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