Så här konfigurerar du BGP för VPN Gateway: PowerShell

Den här artikeln hjälper dig att aktivera BGP på plats-till-plats-anslutningar (S2S) och VNet-till-VNet-anslutningar med hjälp av Azure PowerShell. Om du inte är bekant med den här typen av konfiguration kan det vara enklare att använda Azure Portal versionen av den här artikeln.

BGP är ett standardroutningsprotokoll som vanligen används på Internet för att utbyta information om routning och åtkomst mellan två eller flera nätverk. BGP gör det möjligt för VPN-gatewayerna och dina lokala VPN-enheter, som kallas BGP-peer-datorer eller grannar, att utbyta "vägar" som informerar båda gatewayerna om tillgängligheten och nåbarheten för dessa prefix att gå igenom de gatewayer eller routrar som är inblandade. BGP kan också möjliggöra överföringsroutning mellan flera nätverk genom att sprida vägar som BGP-gatewayen får information om från en BGP-peer till alla andra BGP-peers.

Mer information om fördelarna med BGP och för att förstå de tekniska kraven och övervägandena med att använda BGP finns i Om BGP och Azure VPN Gateway.

Komma igång

Varje del av den här artikeln hjälper dig att skapa ett grundläggande byggblock för att aktivera BGP i nätverksanslutningen. Om du slutför alla tre delarna (konfigurera BGP på gatewayen, S2S-anslutningen och VNet-till-VNet-anslutningen) skapar du topologin enligt diagram 1. Du kan kombinera dessa avsnitt för att skapa ett mer komplext multihop-överföringsnätverk som uppfyller dina behov.

Diagram 1

Diagram som visar nätverksarkitektur och inställningar.

Aktivera BGP för VPN-gatewayen

Det här avsnittet krävs innan du utför något av stegen i de andra två konfigurationsavsnitten. Följande konfigurationssteg konfigurerar BGP-parametrarna för VPN-gatewayen enligt diagram 2.

Diagram 2

Diagram som visar inställningar för den virtuella nätverksgatewayen.

Innan du börjar

Du kan köra stegen för den här övningen med hjälp av Azure Cloud Shell i webbläsaren. Om du vill använda PowerShell direkt från datorn i stället installerar du Azure Resource Manager PowerShell-cmdletar. Mer information om hur du installerar PowerShell-cmdletar finns i Så här installerar och konfigurerar du Azure PowerShell.

Skapa och konfigurera VNet1

1. Deklarera dina variabler

I den här övningen börjar vi med att deklarera variabler. I följande exempel deklareras variablerna med hjälp av värdena för den här övningen. Du kan använda exempelvariablerna (med undantag för prenumerationsnamn) om du kör stegen för att bekanta dig med den här typen av konfiguration. Ändra eventuella variabler och kopiera och klistra sedan in dem i PowerShell-konsolen. Se till att ersätta värdena med dina egna när du konfigurerar för produktion.

$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. Anslut till din prenumeration och skapa en ny resursgrupp

Om du vill använda Resource Manager-cmdletar måste du växla till PowerShell-läge. Mer information finns i Använda Windows PowerShell med Resource Manager.

Om du använder Azure Cloud Shell ansluter du automatiskt till ditt konto. Om du använder PowerShell från datorn öppnar du PowerShell-konsolen och ansluter till ditt konto. Använd följande exempel för att ansluta:

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

Skapa sedan en ny resursgrupp.

New-AzResourceGroup -Name $RG1 -Location $Location1

3. Skapa TestVNet1

I följande exempel skapas ett virtuellt nätverk med namnet TestVNet1 och tre undernät, ett med namnet GatewaySubnet, ett med namnet FrontEnd och ett med namnet Backend. När du ersätter värden är det viktigt att du alltid namnger gateway-undernätet specifikt till GatewaySubnet. Om du ger det något annat namn går det inte att skapa gatewayen.

$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

Skapa VPN-gatewayen med BGP aktiverat

1. Skapa IP- och undernätskonfigurationer

Begär en offentlig IP-adress som ska allokeras till den gateway som du skapar för ditt virtuella nätverk. Du definierar också de nödvändiga undernäts- och IP-konfigurationerna.

$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. Skapa VPN-gatewayen med AS-numret

Skapa den virtuella nätverksgatewayen för TestVNet1. BGP kräver en Route-Based VPN-gateway och även en ytterligare parameter – Asn för att ange ASN (AS Number) för TestVNet1. Se till att ange parametern -Asn . Om du inte anger parametern -Asn tilldelas ASN 65515 (som inte fungerar för den här konfigurationen) som standard. Det kan ta en stund att skapa en gateway (45 minuter eller mer).

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

När gatewayen har skapats kan du använda den här gatewayen för att upprätta anslutning mellan platser eller VNet-till-VNet-anslutning med BGP.

3. Hämta IP-adressen för Azure BGP-peer

När gatewayen har skapats måste du hämta IP-adressen för BGP-peer på VPN-gatewayen. Den här adressen krävs för att konfigurera VPN-gatewayen som en BGP-peer för dina lokala VPN-enheter.

Om du använder CloudShell kan du behöva återupprätta variablerna om tidsgränsen för sessionen överskres när gatewayen skapades.

Återupprätta variabler om det behövs:

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

Kör följande kommando och notera värdet "BgpPeeringAddress" från utdata.

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

Exempel på utdata:

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

Om du inte ser att BgpPeeringAddress visas som en IP-adress konfigureras din gateway fortfarande. Försök igen när gatewayen är klar.

Upprätta en anslutning mellan flera platser med BGP

För att upprätta en anslutning mellan flera platser måste du skapa en lokal nätverksgateway som representerar din lokala VPN-enhet och en anslutning för att ansluta VPN-gatewayen till den lokala nätverksgatewayen enligt beskrivningen i Skapa plats-till-plats-anslutning. Följande avsnitt innehåller de egenskaper som krävs för att ange BGP-konfigurationsparametrarna, som visas i diagram 3.

Diagram 3

Diagram som visar IPsec-konfiguration.

Innan du fortsätter kontrollerar du att du har aktiverat BGP för VPN-gatewayen i föregående avsnitt.

Steg 1: Skapa och konfigurera den lokala nätverksgatewayen

1. Deklarera dina variabler

Den här övningen fortsätter att skapa konfigurationen som visas i diagrammet. Ersätt värdena med de som du vill använda för din konfiguration. Du behöver till exempel IP-adressen för VPN-enheten. I den här övningen kan du ersätta en giltig IP-adress om du inte planerar att ansluta till VPN-enheten just nu. Du kan senare ersätta IP-adressen.

$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"

Några saker att tänka på när det gäller parametrarna för den lokala nätverksgatewayen:

  • Den lokala nätverksgatewayen kan finnas på samma eller annan plats och resursgrupp som VPN-gatewayen. Det här exemplet visar dem i olika resursgrupper på olika platser.
  • Prefixet som du måste deklarera för den lokala nätverksgatewayen är värdadressen för din BGP-peer-IP-adress på VPN-enheten. I det här fallet är det ett /32-prefix på "10.51.255.254/32".
  • Som en påminnelse måste du använda olika BGP-ASN:er mellan dina lokala nätverk och virtuella Azure-nätverk. Om de är samma måste du ändra ditt VNet-ASN om din lokala VPN-enhet redan använder ASN för att peerkoppla med andra BGP-grannar.

2. Skapa den lokala nätverksgatewayen för Site5

Skapa resursgruppen innan du skapar den lokala nätverksgatewayen.

New-AzResourceGroup -Name $RG5 -Location $Location5

Skapa den lokala nätverksgatewayen. Observera de två ytterligare parametrarna för den lokala nätverksgatewayen: Asn och BgpPeerAddress.

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

Steg 2: Anslut VNet-gatewayen och den lokala nätverksgatewayen

1. Hämta de två gatewayerna

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

2. Skapa Anslutningen TestVNet1 till Site5

I det här steget skapar du anslutningen från TestVNet1 till Site5. Du måste ange "-EnableBGP $True" för att aktivera BGP för den här anslutningen. Som vi nämnde tidigare är det möjligt att ha både BGP- och icke-BGP-anslutningar för samma VPN-gateway. Om inte BGP är aktiverat i anslutningsegenskapen aktiverar Azure inte BGP för den här anslutningen trots att BGP-parametrar redan har konfigurerats på båda gatewayerna.

Omdeklarera variablerna igen om det behövs:

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

Kör följande kommando:

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

Lokal enhetskonfiguration

I följande exempel visas de parametrar som du anger i avsnittet BGP-konfiguration på din lokala VPN-enhet för den här övningen:

- 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

Anslutningen upprättas efter några minuter och BGP-peeringsessionen startar när IPsec-anslutningen har upprättats.

Upprätta en VNet-till-VNet-anslutning med BGP

Det här avsnittet lägger till en VNet-till-VNet-anslutning med BGP, som du ser i diagram 4.

Diagram 4

Diagram som visar fullständig nätverkskonfiguration.

Följande instruktioner fortsätter från föregående steg. Du måste först slutföra stegen i avsnittet Aktivera BGP för VPN-gatewayen för att skapa och konfigurera TestVNet1 och VPN-gatewayen med BGP.

Steg 1: Skapa TestVNet2 och VPN-gatewayen

Det är viktigt att se till att IP-adressutrymmet för det nya virtuella nätverket, TestVNet2, inte överlappar något av dina VNet-intervall.

I det här exemplet tillhör de virtuella nätverken samma prenumeration. Du kan konfigurera VNet-till-VNet-anslutningar mellan olika prenumerationer. Mer information finns i Konfigurera en VNet-till-VNet-anslutning. Se till att du lägger till "-EnableBgp $True" när du skapar anslutningarna för att aktivera BGP.

1. Deklarera dina variabler

Ersätt värdena med de som du vill använda för din konfiguration.

$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. Skapa TestVNet2 i den nya resursgruppen

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. Skapa VPN-gatewayen för TestVNet2 med BGP-parametrar

Begär en offentlig IP-adress som ska allokeras till den gateway som du skapar för ditt virtuella nätverk och definiera det nödvändiga undernätet och IP-konfigurationerna.

Deklarera dina variabler.

$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

Skapa VPN-gatewayen med AS-numret. Du måste åsidosätta standard-ASN på dina VPN-gatewayer. ASN:erna för de anslutna virtuella nätverken måste vara olika för att aktivera BGP och transitroutning.

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

Steg 2: Ansluta TestVNet1- och TestVNet2-gatewayerna

I det här exemplet finns båda gatewayerna i samma prenumeration. Du kan slutföra det här steget i samma PowerShell-session.

1. Hämta båda gatewayerna

Återupprätta variabler om det behövs:

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

Hämta båda gatewayerna.

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

2. Skapa båda anslutningarna

I det här steget skapar du anslutningen från TestVNet1 till TestVNet2 och anslutningen från TestVNet2 till TestVNet1.

TestVNet1 till TestVNet2-anslutning.

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

TestVNet2 till TestVNet1-anslutning.

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

Viktigt

Se till att aktivera BGP för BÅDA anslutningarna.

När du har slutfört de här stegen upprättas anslutningen efter några minuter. BGP-peeringsessionen är igång när VNet-till-VNet-anslutningen har slutförts.

Om du har slutfört alla tre delarna i den här övningen har du upprättat följande nätverkstopologi:

Diagram 4

Diagram som visar fullständigt nätverk

Om BGP skulle inaktiveras mellan TestVNet2 och TestVNet1 skulle TestVNet2 som kontext inte lära sig vägarna för det lokala nätverket, Site5, och därför inte kunde kommunicera med plats 5. När du aktiverar BGP, som du ser i diagram 4, kommer alla tre nätverken att kunna kommunicera via S2S IPsec- och VNet-till-VNet-anslutningarna.

Nästa steg

Mer information om BGP finns i Om BGP och VPN Gateway.