Como configurar o BGP para o Gateway de VPN: PowerShell

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 Azure PowerShell. Se não estiver familiarizado com este tipo de configuração, poderá ser mais fácil utilizar a versão do portal do Azure deste artigo.

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 e os seus dispositivos VPN no local, denominados pares ou vizinhos BGP, 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 de utilização do BGP, veja About BGP and Azure VPN Gateway (Acerca do BGP e do Gateway de VPN do Azure).

Introdução

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, ligação S2S e ligação VNet a VNet), crie a topologia conforme mostrado no Diagrama 1. Pode combinar estas secções para criar uma rede de trânsito multihop mais complexa que satisfaça as suas necessidades.

Diagrama 1

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

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 seguintes passos de configuração configuram os parâmetros BGP do gateway de VPN, conforme mostrado no Diagrama 2.

Diagrama 2

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

Antes de começar

Pode executar os passos para este exercício com o Azure Cloud Shell no browser. Se quiser utilizar o PowerShell diretamente a partir do 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 a VNet1

1. Declarar as variáveis

Para este exercício, começamos por declarar variáveis. O exemplo seguinte declara as variáveis com os valores deste exercício. Pode utilizar as variáveis de exemplo (com exceção do nome da subscrição) se estiver a executar os passos para se familiarizar com este tipo de configuração. Modifique as variáveis e, em seguida, copie e cole para a consola 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. Ligue-se à sua subscrição e crie um novo grupo de recursos

Para utilizar os cmdlets do Resource Manager, certifique-se de que muda para o modo PowerShell. Para obter mais informações, veja Utilizar o Windows PowerShell com o Resource Manager.

Se utilizar o Azure Cloud Shell, ligue-se automaticamente à sua conta. Se utilizar o PowerShell a partir do computador, abra a consola do PowerShell e ligue-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 seguinte cria uma rede virtual com o nome TestVNet1 e três sub-redes, uma denominada GatewaySubnet, uma chamada FrontEnd e outra chamada Back-end. 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

Criar o gateway de VPN com o BGP ativado

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

Peça a atribuição de um endereço IP público ao gateway que irá criar para a sua VNet. Também irá 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. 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 e também um parâmetro adicional -Asn para definir o ASN (Número AS) para TestVNet1. Certifique-se de que especifica o parâmetro -Asn . Se não definir o parâmetro -Asn, o ASN 65515 (que não funciona para esta configuração) é atribuído por predefiniçã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

Assim que o gateway for criado, pode utilizar este gateway para estabelecer ligação entre locais ou ligação VNet a VNet com BGP.

3. Obter o endereço IP do Elemento Da Rede BGP do Azure

Assim que o gateway for criado, terá de obter o endereço IP do Elemento da Rede BGP no gateway de VPN. Este endereço é necessário para configurar o gateway de VPN como um Elemento de Rede BGP para os seus dispositivos VPN no local.

Se estiver a utilizar o CloudShell, poderá ter de restabelecer as variáveis se a sessão exceder o limite de tempo durante a criação do gateway.

Se necessário, restabelecer variáveis:

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

Execute o seguinte comando e anote o valor "BgpPeeringAddress" na saída.

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

Exemplo de saída:

$vnet1gw.BgpSettingsText
{
    "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 entre locais com o BGP

Para estabelecer uma ligação entre locais, tem de criar um gateway de rede local para representar o seu dispositivo VPN no local e uma ligação para ligar o gateway de VPN ao gateway de rede local, conforme explicado em Criar ligação site a site. As secções seguintes contêm as propriedades necessárias para especificar os parâmetros de configuração BGP, apresentados no Diagrama 3.

Diagrama 3

Diagrama a mostrar a configuração do IPsec.

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

Passo 1: Criar e configurar o gateway de rede local

1. Declarar as variáveis

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. Por exemplo, precisa do endereço IP do seu dispositivo VPN. Para este exercício, pode substituir um endereço IP válido se não planear ligar ao seu dispositivo VPN neste momento. Mais tarde, 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"

Alguns aspetos a ter em conta relativamente aos parâmetros do gateway de rede local:

  • O gateway de rede local pode estar na mesma localização ou grupo de recursos diferente do gateway de VPN. Este exemplo mostra-os em diferentes grupos de recursos em diferentes localizações.
  • O prefixo que precisa de declarar para o gateway de rede local é o endereço anfitrião do seu 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 VNet do Azure. Se forem iguais, terá de alterar o ASN da VNet se o seu dispositivo VPN no local já utilizar o ASN para efetuar o peering com outros vizinhos BGP.

2. Criar 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. Repare nos 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

Passo 2: Ligar 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 ligação TestVNet1 a Site5

Neste passo, vai criar a ligação de TestVNet1 a Site5. Tem de especificar "-EnableBGP $True" para ativar o BGP para esta ligação. Conforme abordado anteriormente, é possível ter ligações BGP e não BGP para o mesmo gateway de VPN. 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.

Volte a declarar as 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 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

A ligação é estabelecida após alguns minutos e a sessão de peering BGP é iniciada assim que a ligação IPsec for 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 anteriores. Primeiro, tem de concluir os passos na secção Ativar BGP para o gateway de VPN para criar e configurar a TestVNet1 e o gateway de VPN com BGP.

Passo 1: 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 obter mais informações, veja Configurar uma ligação VNet a VNet. Certifique-se de que adiciona o "-EnableBgp $True" ao criar as ligações para ativar o BGP.

1. Declarar as 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. Criar o gateway de VPN para TestVNet2 com parâmetros BGP

Peça a atribuição de um endereço IP público ao gateway que irá criar para a VNet 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 de VPN com o número AS. Tem de substituir o ASN predefinido nos gateways de VPN. Os ASNs das VNets ligadas têm de ser diferentes para ativar o BGP e o encaminhamento de trânsito.

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

Passo 2: Ligar os gateways TestVNet1 e TestVNet2

Neste exemplo, ambos os gateways estão na mesma subscrição. Pode concluir este passo na mesma sessão do PowerShell.

1. Obter ambos os gateways

Se necessário, restabelecer variáveis:

$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. Criar ambas as ligações

Neste passo, vai criar a ligação de TestVNet1 a TestVNet2 e a ligação de TestVNet2 a TestVNet1.

Ligação TestVNet1 a TestVNet2.

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

Ligação TestVNet2 a TestVNet1.

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

Importante

Certifique-se de que ativa o BGP para ambas as ligações.

Depois de concluir estes passos, a ligação é estabelecida após alguns minutos. A sessão de peering de BGP é ativada assim que a ligação VNet a VNet estiver concluída.

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

Diagrama 4

Diagrama a mostrar a rede completa

Para contexto, referindo-se ao Diagrama 4, se o BGP fosse desativado entre TestVNet2 e TestVNet1, TestVNet2 não aprenderia as rotas para a rede no local, Site5 e, portanto, não conseguiria comunicar com o Site 5. Depois de ativar o BGP, conforme mostrado no Diagrama 4, as três redes poderão comunicar através das ligações S2S IPsec e VNet a VNet.

Passos seguintes

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