Come configurare BGP per Azure Gateway VPN: interfaccia della riga di comando

Questo articolo illustra come abilitare BGP in connessioni VPN da sito a sito (S2S) cross-premise e connessioni da rete virtuale a rete virtuale tramite l'interfaccia della riga di comando di Azure. È anche possibile creare questa configurazione usando i passaggi portale di Azure o PowerShell.

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 di Azure e ai dispositivi VPN locali, denominati peer o vicini BGP, di scambiare "route" che informeranno entrambi i gateway sulla disponibilità e la raggiungibilità per tali prefissi di 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.

Ogni parte di questo articolo illustra come 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 da sito a sito e la connessione da rete virtuale a rete virtuale) si compila la topologia, come illustrato nel diagramma 1.

Diagramma 1

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

È possibile combinare le sezioni per creare una rete di transito a più hop più complessa per soddisfare le proprie esigenze.

Prerequisiti

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 di Azure, come illustrato nel diagramma 2.

Diagramma 2

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

Creare e configurare TestVNet1

1. Creare un gruppo di risorse

L'esempio seguente crea un gruppo di risorse denominato TestRG1 nella posizione "eastus". Se è già disponibile un gruppo di risorse nell'area in cui si vuole creare la rete virtuale, è possibile usarlo.

az group create --name TestRG1 --location eastus

2. Creare TestVNet1

L'esempio seguente mostra come creare una rete virtuale denominata TestVNet1 e tre subnet (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.

Il primo comando crea lo spazio degli indirizzi front-end e la subnet FrontEnd. Il secondo comando crea uno spazio indirizzi aggiuntivo per la subnet BackEnd. Il terzo e il quarto comando creano la subnet 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

Creare il gateway VPN per TestVNet1 con i parametri BGP

1. Creare l'indirizzo IP pubblico

Richiedere un indirizzo IP pubblico. L'indirizzo IP pubblico verrà allocato al gateway VPN creato per la rete virtuale.

az network public-ip create -n GWPubIP -g TestRG1 --allocation-method Dynamic 

2. Creare il gateway VPN con il numero AS

Creare il gateway di rete virtuale per TestVNet1. BGP richiede un gateway VPN basato su route. È necessario anche il parametro aggiuntivo -Asn per la configurazione del valore ASN (Autonomous System Number, Numero sistema autonomo) per TestVNet1. La creazione di un gateway spesso richiede anche più di 45 minuti di tempo a seconda dello SKU gateway selezionato.

Se si esegue questo comando usando il parametro --no-wait, non viene visualizzato alcun output o commento. Il parametro --no-wait consente la creazione in background del gateway. Non significa che il gateway VPN venga creato immediatamente.

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

Dopo avere 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 del peer BGP di Azure

Dopo avere creato il gateway, è necessario ottenere l'indirizzo IP del peer BGP per il gateway VPN di Azure. Questo indirizzo è necessario per configurare il gateway VPN come peer BGP per i dispositivi VPN locali.

Eseguire il comando indicato di seguito.

az network vnet-gateway list -g TestRG1

Prendere nota della bgpSettings sezione nella parte superiore dell'output. Si userà questo

"bgpSettings": { 
      "asn": 65010, 
      "bgpPeeringAddress": "10.12.255.30", 
      "peerWeight": 0 
    }

Se BgpPeeringAddress non viene visualizzato come indirizzo IP, il gateway è ancora in fase di configurazione. Riprovare al termine 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. Connettere quindi il gateway VPN di Azure al gateway di rete locale. Anche se questi passaggi sono simili alla creazione di altre connessioni, includono le proprietà aggiuntive necessarie per specificare il parametro di configurazione BGP, come illustrato nel diagramma 3.

Diagramma 3

Diagramma che mostra la configurazione IPsec.

Creare e configurare il gateway di rete locale

Questo esercizio continua a creare la configurazione illustrata nel diagramma. Sostituire i valori con quelli desiderati per la propria configurazione. Quando si usano i gateway di rete locali, occorre tenere presente quanto segue:

  • Il gateway di rete locale può essere nella stessa posizione e nello stesso gruppo di risorse del gateway VPN oppure in una posizione e in un gruppo di risorse diversi. In questo esempio i gateway sono in gruppi di risorse diversi in posizioni diverse.
  • Il prefisso minimo 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 valori ASN BGP diversi nelle reti locali e nella rete virtuale di Azure. Se sono uguali, è necessario modificare l'ASN della rete virtuale se i dispositivi VPN locali usano già l'ASN per eseguire il peering con altri vicini BGP.

Prima di procedere, assicurarsi di aver completato la sezione Abilitare BGP per il gateway VPN di questo esercizio. Si noti che in questo esempio viene creato un nuovo gruppo di risorse. Si notino anche i due parametri aggiuntivi per il gateway di rete locale: 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

Connettere il gateway di rete virtuale e il gateway di rete locale

In questo passaggio viene creata la connessione da TestVNet1 a Site5. È necessario specificare il parametro --enable-bgp per abilitare BGP per questa connessione.

In questo esempio il gateway di rete virtuale e il gateway di rete locale si trovano in gruppi di risorse diversi. Quando i gateway si trovano in gruppi di risorse diversi, è necessario specificare l'intero ID risorsa dei due gateway per stabilire una connessione tra reti virtuali.

1. Ottenere l'ID risorsa di VNet1GW

Usare l'output del comando seguente per ottenere l'ID risorsa per VNet1GW:

az network vnet-gateway show -n VNet1GW -g TestRG1

Nell'output trovare la riga "id":. Per creare la connessione nella sezione successiva è necessario racchiudere i valori tra virgolette.

Output di esempio:

{ 
  "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",

Copiare questi valori successivi a "id": in un editor di testo, ad esempio il Blocco note, per poterli incollare facilmente quando si crea la connessione.

"id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW"

2. Ottenere l'ID risorsa di Site5

Usare il comando seguente per ottenere l'ID risorsa di Site5 dall'output:

az network local-gateway show -n Site5 -g TestRG5

3. Creare la connessione Da TestVNet1 a Sito5

In questo passaggio viene creata la connessione da TestVNet1 a Site5. Come illustrato in precedenza, è possibile avere connessioni BGP e non BGP per lo stesso gateway VPN di Azure. A meno che BGP non sia abilitato nella proprietà di connessione, Azure non abiliterà BGP per questa connessione, anche se i parametri BGP sono già configurati in entrambi i gateway. Sostituire gli ID delle sottoscrizioni con i propri.

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

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

Dopo alcuni minuti, la connessione dovrebbe stabilirsi. La sessione di peering BGP viene avviata non appena viene 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 completa della rete.

Le istruzioni seguenti sono la prosecuzione dei passaggi illustrati nelle sezioni precedenti. Per creare e configurare TestVNet1 e il gateway VPN con BGP, è necessario completare la sezione Abilitare BGP per il gateway VPN.

Creare TestVNet2 e il gateway VPN

È importante assicurarsi che lo spazio indirizzi IP della nuova rete virtuale, TestVNet2, non si sovrapponga a uno degli intervalli 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 da rete virtuale a rete virtuale. Assicurarsi di aggiungere -EnableBgp $True quando si creano le connessioni per abilitare BGP.

1. Creare un nuovo gruppo di risorse

az group create -n TestRG2 -l eastus

2. Creare TestVNet2 nel nuovo gruppo di risorse

Il primo comando crea lo spazio degli indirizzi front-end e la subnet FrontEnd. Il secondo comando crea uno spazio indirizzi aggiuntivo per la subnet BackEnd. Il terzo e il quarto comando creano la subnet 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. Creare l'indirizzo IP pubblico

Richiedere un indirizzo IP pubblico. L'indirizzo IP pubblico verrà allocato al gateway VPN creato per la rete virtuale.

az network public-ip create -n GWPubIP2 -g TestRG2 --allocation-method Dynamic

4. Creare il gateway VPN con il numero AS

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

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

Connettere i gateway TestVNet1 e TestVNet2

In questo passaggio viene creata la connessione da TestVNet1 a Site5. Per abilitare BGP per questa connessione, è necessario specificare il parametro --enable-bgp.

Nell'esempio seguente il gateway di rete virtuale e il gateway di rete locale si trovano in gruppi di risorse diversi. Quando i gateway si trovano in gruppi di risorse diversi, è necessario specificare l'intero ID risorsa dei due gateway per stabilire una connessione tra reti virtuali.

1. Ottenere l'ID risorsa di VNet1GW

Ottenere l'ID risorsa di VNet1GW dall'output del comando seguente:

az network vnet-gateway show -n VNet1GW -g TestRG1

Valore di esempio per la risorsa gateway:

"/subscriptions/<subscripion ID value>/resourceGroups/TestRG2/providers/Microsoft.Network/virtualNetworkGateways/VNet2GW"

2. Ottenere l'ID risorsa di VNet2GW

Ottenere l'ID risorsa di VNet2GW dall'output del comando seguente:

az network vnet-gateway show -n VNet2GW -g TestRG2

3. Creare le connessioni

Creare la connessione da TestVNet1 a TestVNet2 e da TestVNet2 a TestVNet1. Questi comandi usano gli ID risorsa. Per questo esercizio, la maggior parte dell'ID risorsa è già presente nell'esempio. Assicurarsi di sostituire i valori ID sottoscrizione con i propri. L'ID sottoscrizione viene usato in più posizioni nello stesso comando. Quando si usa questo comando per la produzione, si sostituirà l'intero ID risorsa per ogni oggetto a cui si fa riferimento.

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

Abilitare BGP per entrambe le connessioni.

Dopo avere completato questi passaggi, la connessione verrà stabilita entro pochi minuti. Dopo avere stabilito la connessione da rete virtuale a rete virtuale, la sessione di peering BGP sarà attiva.

Passaggi successivi

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