Så här konfigurerar du BGP för VPN Gateway: PowerShell
Den här artikeln hjälper dig att aktivera BGP på vpn-anslutningar mellan platser (S2S) och VNet-till-VNet-anslutningar med 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 att VPN Gateway och dina lokala VPN-enheter, som kallas BGP-peers eller grannar, kan utbyta ”vägar” som informerar båda gatewayerna om tillgängligheten och åtkomsten för de prefix som ska passera genom de gatewayer eller routrar som berörs. 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 en grundläggande byggsten 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 de här avsnitten för att skapa ett mer komplext överföringsnätverk för flera kluster som uppfyller dina behov.
Diagram 1
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
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-cmdletarna. 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 går igenom stegen för att bekanta dig med den här typen av konfiguration. Ändra eventuella variabler och kopiera och klistra 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-cmdletarna 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
Följande exempel skapar ett virtuellt nätverk med namnet TestVNet1 och tre undernät, ett som heter GatewaySubnet, ett som heter FrontEnd och ett som heter 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ätskonfigurationerna
Begär att en offentlig IP-adress 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 routningsbaserad VPN-gateway och även en ytterligare parameter – Asn för att ange ASN (AS-nummer) för TestVNet1. 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 BGP-peer-IP-adressen på VPN-gatewayen. Den här adressen behö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 uppstod 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 BgpPeeringAddress visas som en IP-adress konfigureras din gateway fortfarande. Försök igen när gatewayen är klar.
Upprätta en anslutning mellan platser med BGP
För att upprätta en anslutning mellan 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
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 för "10.51.255.254/32".
- Du kan också lämna prefixet tomt om du använder BGP för att ansluta till det här nätverket. Azure VPN-gateway lägger internt till en väg för din BGP-peer-IP-adress till motsvarande IPsec-tunnel.
- 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 likadana 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: Ansluta 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 TestVNet1 till Site5-anslutningen
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.
Om det behövs ska du omdeklarera variablerna:
$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, enligt diagram 4.
Diagram 4
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 att en offentlig IP-adress allokeras till den gateway som du skapar för ditt virtuella nätverk och definiera de nödvändiga undernäts- 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: Anslut 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
Om BGP skulle inaktiveras mellan TestVNet2 och TestVNet1 med hjälp av diagram 4 skulle TestVNet2 inte lära sig vägarna för det lokala nätverket, Site5, och kunde därför inte kommunicera med plats 5. När du aktiverar BGP, som visas 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.