Come configurare BGP per gateway VPN di Azure: 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 il portale di Azure o i passaggi di 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, detti peer BGP o router adiacenti, lo scambio di "route" che indicano a entrambi i gateway la disponibilità e la raggiungibilità di tali prefissi per il passaggio 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, sui requisiti tecnici e sulle considerazioni relative all'uso di BGP, vedere Informazioni su BGP e il gateway VPN di Azure.
Ogni parte di questo articolo assistenza nella creazione di 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
È possibile combinare le sezioni per creare una rete di transito a più hop più complessa per soddisfare le proprie esigenze.
Prerequisiti
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
Abilitare BGP per il gateway VPN
Questa sezione è obbligatoria prima dell'esecuzione dei passaggi illustrati nelle altre due sezioni di configurazione. La seguente procedura di configurazione configura i parametri BGP nel gateway VPN di Azure come illustrato nel Diagramma 2.
Diagramma 2
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. Questo non significa che il gateway VPN sia 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.
Esegui il comando seguente:
az network vnet-gateway list -g TestRG1
Prendere nota della sezione bgpSettings
nella parte superiore dell'output. Questa operazione verrà usata
"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 a quelli per la creazione di altre connessioni, includono le proprietà aggiuntive necessarie per specificare i parametri di configurazione per BGP, come mostrato nel Diagramma 3.
Diagramma 3
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.
- È anche possibile lasciare vuoto il prefisso se si usa BGP per connettersi alla rete. Il gateway VPN di Azure aggiunge internamente una route dell'indirizzo IP del peer BGP al tunnel IPsec corrispondente.
- Si ricordi che è necessario usare valori ASN BGP diversi nelle reti locali e nella rete virtuale di Azure. Se sono uguali, è necessario modificare il valore ASN della rete locale se i dispositivi VPN locali usano già il valore ASN per 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 Site5
In questo passaggio viene creata la connessione da TestVNet1 a Site5. Come illustrato in precedenza, è possibile avere connessioni sia BGP che non BGP per lo stesso gateway VPN di Azure. A meno che BGP non venga abilitato nella proprietà della connessione, Azure non abiliterà BGP per questa connessione nemmeno 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 di un 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
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.
P Creare TestVNet2 e il gateway VPN
È importante verificare che lo spazio di indirizzi IP della nuova rete virtuale, TestVNet2, non si sovrapponga ad altri di intervalli di rete virtuale.
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/<subscription 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 l'ambiente di 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.