Come configurare BGP per Gateway VPN: PowerShell

Questo articolo illustra come abilitare BGP nelle connessioni VPN da sito a sito (S2S) cross-premise e connessioni da rete virtuale a rete virtuale usando Azure PowerShell. Se non si ha familiarità con questo tipo di configurazione, è possibile che sia più facile usare la versione portale di Azure di questo articolo.

BGP è il protocollo di routing standard comunemente usato in Internet per lo scambio di informazioni di routing e raggiungibilità tra due o più reti. BGP consente ai gateway VPN e ai dispositivi VPN locali, denominati peer BGP o vicini, di scambiare "route" che informano entrambi i gateway sulla disponibilità e sulla raggiungibilità per tali prefissi per passare attraverso i gateway o i router coinvolti. BGP può anche abilitare il routing di transito tra più reti propagando a tutti gli altri peer BGP le route che un gateway BGP apprende da un peer BGP.

Per altre informazioni sui vantaggi di BGP e per comprendere i requisiti tecnici e le considerazioni sull'uso di BGP, vedere Informazioni su BGP e Azure Gateway VPN.

Introduzione

Ogni parte di questo articolo consente di creare un blocco predefinito di base per abilitare BGP nella connettività di rete. Se si completano tutte e tre le parti (configurare BGP nel gateway, la connessione S2S e la connessione da rete virtuale a rete virtuale) si compila la topologia, come illustrato nel diagramma 1. È possibile combinare le sezioni per creare una rete di transito a più hop più complessa per soddisfare le proprie esigenze.

Diagramma 1

Diagramma che mostra l'architettura e le impostazioni di rete.

Abilitare BGP per il gateway VPN

Questa sezione è obbligatoria prima dell'esecuzione dei passaggi illustrati nelle altre due sezioni di configurazione. I passaggi di configurazione seguenti configurano i parametri BGP del gateway VPN, come illustrato nel diagramma 2.

Diagramma 2

Diagramma che mostra le impostazioni per il gateway di rete virtuale.

Prima di iniziare

È possibile eseguire i passaggi per questo esercizio usando Azure Cloud Shell nel browser. Se si vuole usare PowerShell direttamente dal computer, installare invece i cmdlet di Azure Resource Manager PowerShell. Per altre informazioni sull'installazione dei cmdlet di PowerShell, vedere Come installare e configurare Azure PowerShell.

Creare e configurare la rete virtuale1

1. Dichiarare le variabili

Per questo esercizio si inizia dichiarando variabili. L'esempio seguente dichiara le variabili usando i valori per questo esercizio. È possibile usare le variabili di esempio (ad eccezione del nome della sottoscrizione) se si esegue la procedura per acquisire familiarità con questo tipo di configurazione. Modificare le variabili e quindi copiare e incollare nella console di PowerShell. Assicurarsi di sostituire i valori con quelli reali durante la configurazione per la produzione.

$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. Connettersi alla sottoscrizione e creare un nuovo gruppo di risorse

Per usare i cmdlet di Resource Manager assicurarsi di passare alla modalità PowerShell. Per altre informazioni, vedere Uso di Windows PowerShell con Gestione risorse.

Se si usa Azure Cloud Shell, si connette automaticamente all'account. Se si usa PowerShell dal computer, aprire la console di PowerShell e connettersi all'account. Per connettersi, usare l'esempio seguente:

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

Creare quindi un nuovo gruppo di risorse.

New-AzResourceGroup -Name $RG1 -Location $Location1

3. Creare TestVNet1

L'esempio seguente mostra come creare una rete virtuale denominata TestVNet1 e tre subnet, denominate rispettivamente GatewaySubnet, FrontEnd e Backend. Quando si sostituiscono i valori, è importante che la subnet gateway venga denominata sempre esattamente GatewaySubnet. Se si assegnano altri nomi, la creazione del gateway ha esito negativo.

$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

Creare il gateway VPN con BGP abilitato

1. Creare le configurazioni IP e subnet

Richiedere l'allocazione di un indirizzo IP pubblico al gateway creato per la rete virtuale. Verranno create anche le configurazioni necessarie per subnet e IP.

$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. Creare il gateway VPN con il numero AS

Creare il gateway di rete virtuale per TestVNet1. BGP richiede un gateway VPN Route-Based e anche un parametro aggiuntivo -Asn per impostare l'ASN (AS Number) per TestVNet1. Assicurarsi di specificare il parametro -Asn . Se non si imposta il parametro -Asn, ASN 65515 (che non funziona per questa configurazione) viene assegnato per impostazione predefinita. La creazione di un gateway può richiedere anche oltre 45 minuti.

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

Una volta creato il gateway, è possibile usarlo per stabilire una connessione cross-premise o una connessione da rete virtuale a rete virtuale con BGP.

3. Ottenere l'indirizzo IP peer di Azure BGP

Dopo aver creato il gateway, è necessario ottenere l'indirizzo IP peer BGP nel gateway VPN. Questo indirizzo è necessario per configurare il gateway VPN come peer BGP per i dispositivi VPN locali.

Se si usa CloudShell, potrebbe essere necessario ripristinare le variabili in caso di timeout della sessione durante la creazione del gateway.

Se necessario, le variabili reestablish:

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

Eseguire il comando seguente e prendere nota del valore "BgpPeeringAddress" dall'output.

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

Output di esempio:

$vnet1gw.BgpSettingsText
{
    "Asn": 65010,
    "BgpPeeringAddress": "10.12.255.30",
    "PeerWeight": 0
}

Se non viene visualizzato BgpPeeringAddress come indirizzo IP, il gateway è ancora in fase di configurazione. Riprovare al completamento del gateway.

Stabilire una connessione cross-premise con BGP

Per stabilire una connessione cross-premise, è necessario creare un gateway di rete locale per rappresentare il dispositivo VPN locale e una connessione per connettere il gateway VPN con il gateway di rete locale, come illustrato in Creare una connessioneda sito a sito. Le sezioni seguenti contengono le proprietà necessarie per specificare i parametri di configurazione BGP, illustrati nel diagramma 3.

Diagramma 3

Diagramma che mostra la configurazione IPsec.

Prima di procedere, assicurarsi di abilitare BGP per il gateway VPN nella sezione precedente.

Passaggio 1: Creare e configurare il gateway di rete locale

1. Dichiarare le variabili

Questo esercizio continua a creare la configurazione illustrata nel diagramma. Sostituire i valori con quelli desiderati per la propria configurazione. Ad esempio, è necessario specificare l'indirizzo IP per il dispositivo VPN. Per questo esercizio, è possibile sostituire un indirizzo IP valido se non si prevede di connettersi al dispositivo VPN in questo momento. In seguito è possibile sostituire l'indirizzo 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"

È necessario tenere presenti due aspetti relativi ai parametri del gateway di rete:

  • Il gateway di rete locale può essere nella stessa località e nello stesso gruppo di risorse del gateway VPN oppure in altri. In questo esempio sono in gruppi di risorse diversi in località diverse.
  • Il prefisso che è necessario dichiarare per il gateway di rete locale è l'indirizzo host dell'indirizzo IP del peer BGP nel dispositivo VPN. In questo caso, è un prefisso /32 di "10.51.255.254/32".
  • Si ricordi che è necessario usare ASN BGP diversi nelle reti locali e nella rete virtuale di Azure. Se sono uguali, è necessario modificare l'ASN della rete virtuale se il dispositivo VPN locale usa già l'asn per eseguire il peering con altri vicini BGP.

2. Creare il gateway di rete locale per Site5

Creare il gruppo di risorse prima di creare il gateway di rete locale.

New-AzResourceGroup -Name $RG5 -Location $Location5

Creare il gateway di rete locale. Si notino i due parametri aggiuntivi per il gateway di rete locale: Asn e BgpPeerAddress.

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

Passaggio 2: Connettere il gateway di rete virtuale e il gateway di rete locale

1. Ottenere i due gateway

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

2. Creare la connessione TestVNet1 a Site5

In questo passaggio viene creata la connessione da TestVNet1 a Site5. È necessario specificare "-EnableBgp $True" per abilitare BGP per questa connessione. Come illustrato in precedenza, è possibile avere connessioni BGP e non BGP per lo stesso gateway VPN. A meno che BGP sia abilitato nella proprietà di connessione, Azure non abilita BGP per questa connessione anche se i parametri BGP sono già configurati in entrambi i gateway.

Redeclare le variabili se necessario:

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

Quindi, eseguire il comando seguente:

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

Configurazione del dispositivo locale

L'esempio seguente elenca i parametri da immettere nella sezione della configurazione BGP nel dispositivo VPN locale per questo esercizio:

- 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

La connessione viene stabilita in pochi minuti e la sessione di peering BGP viene avviata non appena stabilita la connessione IPsec.

Stabilire una connessione da rete virtuale a rete virtuale con BGP

Questa sezione aggiunge una connessione da rete virtuale a rete virtuale con BGP, come illustrato nel diagramma 4.

Diagramma 4

Diagramma che mostra la configurazione di rete completa.

Le istruzioni seguenti sono la prosecuzione dei passaggi precedenti. È prima necessario completare i passaggi descritti nella sezione Abilitare BGP per il gateway VPN per creare e configurare TestVNet1 e il gateway VPN con BGP.

Passaggio 1: Creare TestVNet2 e il gateway VPN

È importante assicurarsi che lo spazio indirizzi IP della nuova rete virtuale, TestVNet2, non si sovrapponga ad alcun intervallo di reti virtuali.

In questo esempio le reti virtuali appartengono alla stessa sottoscrizione. È possibile configurare connessioni da rete virtuale a rete virtuale tra sottoscrizioni diverse. Per altre informazioni, vedere Configurare una connessione tra reti virtuali. Assicurarsi di aggiungere "-EnableBgp $True" quando si creano le connessioni per abilitare BGP.

1. Dichiarare le variabili

Sostituire i valori con quelli desiderati per la propria configurazione.

$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. Creare TestVNet2 nel nuovo gruppo di risorse

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. Creare il gateway VPN per TestVNet2 con parametri BGP

Richiedere l'allocazione di un indirizzo IP pubblico al gateway che verrà creato per la rete virtuale e definire le configurazioni IP e subnet necessarie.

Dichiarare le variabili.

$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

Creare il gateway VPN con il numero AS. È necessario eseguire l'override dell'ASN predefinito nei gateway VPN. Gli ASN per le reti virtuali connesse devono essere diversi per abilitare BGP e il routing di transito.

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

Passaggio 2: Connettere i gateway TestVNet1 e TestVNet2

In questo esempio entrambi i gateway sono nella stessa sottoscrizione. È possibile completare questo passaggio nella stessa sessione di PowerShell.

1. Ottenere entrambi i gateway

Ristabilire le variabili, se necessario:

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

Ottenere entrambi i gateway.

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

2. Creare entrambe le connessioni

In questo passaggio vengono create le connessioni rispettivamente da TestVNet1 a TestVNet2 e da TestVNet2 a TestVNet1.

Connessione Da TestVNet1 a TestVNet2.

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

Connessione Da TestVNet2 a TestVNet1.

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

Importante

Assicurarsi di abilitare BGP per ENTRAMBE le connessioni.

Dopo il completamento di questi passaggi, la connessione viene stabilita entro pochi minuti. Non appena completata la connessione da rete virtuale a rete virtuale, la sessione di peering BGP è attiva.

Se sono state completate tutte e tre le parti di questo esercizio, è stata stabilita la topologia di rete seguente:

Diagramma 4

Diagramma che mostra la rete completa

Per il contesto, facendo riferimento al diagramma 4, se BGP dovesse essere disabilitato tra TestVNet2 e TestVNet1, TestVNet2 non appresse le route per la rete locale, Site5 e quindi non riusciva a comunicare con il sito 5. Dopo aver abilitato BGP, come illustrato nel diagramma 4, tutte e tre le reti saranno in grado di comunicare tramite le connessioni IPsec S2S e da rete virtuale a rete virtuale.

Passaggi successivi

Per altre informazioni su BGP, vedere Informazioni su BGP e Gateway VPN.