BGP configureren voor VPN Gateway: PowerShell

Dit artikel helpt u bij het inschakelen van BGP op cross-premises site-naar-site -VPN-verbindingen (S2S) en VNet-naar-VNet-verbindingen met behulp van Azure PowerShell. Als u niet bekend bent met dit type configuratie, vindt u het misschien gemakkelijker om de Azure Portal versie van dit artikel te gebruiken.

BGP is het standaardprotocol voor routering dat doorgaans op internet wordt gebruikt voor het uitwisselen van routerings- en bereikbaarheidsgegevens tussen twee of meer netwerken. BGP stelt de VPN-gateways en uw on-premises VPN-apparaten, BGP-peers of neighbors genoemd, in staat om 'routes' uit te wisselen die beide gateways informeren over de beschikbaarheid en bereikbaarheid voor die voorvoegsels die via de betrokken gateways of routers gaan. Met BGP kan ook transitroutering tussen meerdere netwerken worden ingeschakeld door routes die een BGP-gateway leert van één BGP te propageren naar alle andere BGP-peers.

Zie Over BGP en Azure VPN Gateway voor meer informatie over de voordelen van BGP en voor meer informatie over de technische vereisten en overwegingen voor het gebruik van BGP.

Aan de slag

Elk deel van dit artikel helpt u een basisbouwsteen te vormen voor het inschakelen van BGP in uw netwerkverbinding. Als u alle drie de onderdelen hebt voltooid (BGP configureren op de gateway, S2S-verbinding en VNet-naar-VNet-verbinding), bouwt u de topologie op zoals weergegeven in diagram 1. U kunt deze secties combineren om een complexer multihop-transitnetwerk te bouwen dat aan uw behoeften voldoet.

Diagram 1

Diagram met netwerkarchitectuur en -instellingen.

BGP inschakelen voor de VPN-gateway

Deze sectie is vereist voordat u een van de stappen in de andere twee configuratiesecties uitvoert. Met de volgende configuratiestappen worden de BGP-parameters van de VPN-gateway ingesteld, zoals wordt weergegeven in diagram 2.

Diagram 2

Diagram met instellingen voor de gateway van het virtuele netwerk.

Voordat u begint

U kunt de stappen voor deze oefening uitvoeren met behulp van Azure Cloud Shell in uw browser. Als u PowerShell rechtstreeks vanaf uw computer wilt gebruiken, installeert u de Azure Resource Manager PowerShell-cmdlets. Zie Azure PowerShell installeren en configureren voor meer informatie over het installeren van de PowerShell-cmdlets.

VNet1 maken en configureren

1. Uw variabelen declareren

Voor deze oefening beginnen we met het declareren van variabelen. In het volgende voorbeeld worden de variabelen gede declareerd met behulp van de waarden voor deze oefening. U kunt de voorbeeldvariabelen (met uitzondering van de abonnementsnaam) gebruiken als u de stappen uitvoert om vertrouwd te raken met dit type configuratie. Wijzig eventuele variabelen en kopieer en plak deze in uw PowerShell-console. Zorg dat u de waarden door uw eigen waarden vervangt wanneer u configureert voor productie.

$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. Maak verbinding met uw abonnement en maak een nieuwe resourcegroep

Als u de Resource Manager-cmdlets wilt gebruiken, moet u overschakelen naar de PowerShell-modus. Zie Using Windows PowerShell with Resource Manager (Windows PowerShell gebruiken met Resource Manager) voor meer informatie.

Als u Azure Cloud Shell gebruikt, maakt u automatisch verbinding met uw account. Als u PowerShell vanaf uw computer gebruikt, opent u de PowerShell-console en maakt u verbinding met uw account. Gebruik het volgende voorbeeld als hulp bij het maken van de verbinding:

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

Maak vervolgens een nieuwe resourcegroep.

New-AzResourceGroup -Name $RG1 -Location $Location1

3. TestVNet1 maken

In het volgende voorbeeld wordt een virtueel netwerk gemaakt met de naam TestVNet1 en drie subnetten, een met de naam GatewaySubnet, een met de naam FrontEnd en een met de naam Backend. Wanneer u de waarden vervangt, is het belangrijk dat u de juiste namen voor de gatewaysubnets gebruikt, in het bijzonder GatewaySubnet. Als u een andere naam kiest, mislukt het maken van de gateway.

$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

De VPN-gateway maken met BGP ingeschakeld

1. De IP- en subnetconfiguraties maken

Vraag om een openbaar IP-adres toe te wijzen aan de gateway die u voor uw VNet maakt. U definieert ook de vereiste subnet- en IP-configuraties.

$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. Maak de VPN-gateway met het AS-nummer

Maak de gateway van het virtuele netwerk voor TestVNet1. BGP vereist een Route-Based VPN-gateway en ook een extra parameter -Asn om de ASN (AS-nummer) voor TestVNet1 in te stellen. Zorg ervoor dat u de parameter -Asn opgeeft. Als u de parameter -Asn niet instelt, wordt ASN 65515 (die niet werkt voor deze configuratie) standaard toegewezen. Het maken van een gateway kan even duren (45 minuten of langer).

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

Zodra de gateway is gemaakt, kunt u deze gateway gebruiken om een cross-premises verbinding of een VNet-naar-VNet-verbinding met BGP tot stand te brengen.

3. Haal het IP-adres van de Azure BGP-peer op

Zodra de gateway is gemaakt, moet u het IP-adres van de BGP-peer ophalen op de VPN-gateway. Dit adres is nodig om de VPN-gateway te configureren als een BGP-peer voor uw on-premises VPN-apparaten.

Als u CloudShell gebruikt, moet u mogelijk uw variabelen opnieuw instellen als er een time-out optreedt voor de sessie tijdens het maken van uw gateway.

Variabelen indien nodig herstellen:

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

Voer de volgende opdracht uit en noteer de waarde 'BgpPeeringAddress' uit de uitvoer.

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

Voorbeelduitvoer:

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

Als het BgpPeeringAddress niet wordt weergegeven als een IP-adres, wordt uw gateway nog steeds geconfigureerd. Probeer het opnieuw wanneer de gateway is voltooid.

Een cross-premises verbinding tot stand brengen met BGP

Als u een cross-premises verbinding tot stand wilt brengen, moet u een lokale netwerkgateway maken die uw on-premises VPN-apparaat vertegenwoordigt en een verbinding maken om de VPN-gateway te verbinden met de lokale netwerkgateway, zoals wordt uitgelegd in Site-naar-site-verbinding maken. De volgende secties bevatten de eigenschappen die vereist zijn om de BGP-configuratieparameters op te geven, zoals weergegeven in diagram 3.

Diagram 3

Diagram met IPsec-configuratie.

Voordat u doorgaat, moet u ervoor zorgen dat u BGP hebt ingeschakeld voor de VPN-gateway in de vorige sectie.

Stap 1: de lokale netwerkgateway maken en configureren

1. Uw variabelen declareren

Deze oefening gaat door met het bouwen van de configuratie die wordt weergegeven in het diagram. Zorg ervoor dat u de waarden vervangt door de waarden die u voor uw configuratie wilt gebruiken. U hebt bijvoorbeeld het IP-adres voor uw VPN-apparaat nodig. Voor deze oefening kunt u een geldig IP-adres vervangen als u op dit moment geen verbinding wilt maken met uw VPN-apparaat. U kunt het IP-adres later vervangen.

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

Een paar dingen die u moet onthouden met betrekking tot de parameters voor de lokale netwerkgateway:

  • De lokale netwerkgateway kan zich in dezelfde of een andere locatie en resourcegroep bevinden als de VPN-gateway. In dit voorbeeld ziet u deze in verschillende resourcegroepen op verschillende locaties.
  • Het voorvoegsel dat u moet declareren voor de lokale netwerkgateway is het hostadres van uw BGP-peer-IP-adres op uw VPN-apparaat. In dit geval is het een /32-voorvoegsel van "10.51.255.254/32".
  • Ter herinnering: u moet verschillende BGP ASN's gebruiken tussen uw on-premises netwerken en Azure VNet. Als ze hetzelfde zijn, moet u de ASN van uw VNet wijzigen als uw on-premises VPN-apparaat de ASN al gebruikt om te peeren met andere BGP-buren.

2. Maak de lokale netwerkgateway voor Site5

Maak de resourcegroep voordat u de lokale netwerkgateway maakt.

New-AzResourceGroup -Name $RG5 -Location $Location5

Maak de lokale netwerkgateway. Let op de twee extra parameters voor de lokale netwerkgateway: Asn en BgpPeerAddress.

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

Stap 2: de VNet-gateway en de lokale netwerkgateway verbinden

1. Haal de twee gateways op

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

2. De verbinding tussen TestVNet1 en Site5 maken

In deze stap maakt u de verbinding van TestVNet1 naar Site5. U moet '-EnableBGP $True' opgeven om BGP in te schakelen voor deze verbinding. Zoals eerder besproken, is het mogelijk om zowel BGP- als niet-BGP-verbindingen te hebben voor dezelfde VPN-gateway. Tenzij BGP is ingeschakeld in de verbindingseigenschap, schakelt Azure BGP niet in voor deze verbinding, ook al zijn er al BGP-parameters geconfigureerd op beide gateways.

Declareer uw variabelen indien nodig opnieuw:

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

Voer vervolgens de volgende opdracht uit:

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

Configuratie van on-premises apparaten

In het volgende voorbeeld ziet u de parameters die u voor deze oefening invoert in de sectie BGP-configuratie op uw on-premises VPN-apparaat:

- 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

De verbinding wordt na enkele minuten tot stand gebracht en de BGP-peeringsessie wordt gestart zodra de IPsec-verbinding tot stand is gebracht.

Een VNet-naar-VNet-verbinding tot stand brengen met BGP

In deze sectie wordt een VNet-naar-VNet-verbinding met BGP toegevoegd, zoals wordt weergegeven in diagram 4.

Diagram 4

Diagram met de volledige netwerkconfiguratie.

De volgende instructies gaan verder met de vorige stappen. U moet eerst de stappen in de sectie BGP inschakelen voor de VPN-gateway uitvoeren om TestVNet1 en de VPN-gateway met BGP te maken en te configureren.

Stap 1: TestVNet2 en de VPN-gateway maken

Het is belangrijk om ervoor te zorgen dat de IP-adresruimte van het nieuwe virtuele netwerk, TestVNet2, niet overlapt met een van uw VNet-bereiken.

In dit voorbeeld behoren de virtuele netwerken tot hetzelfde abonnement. U kunt VNet-naar-VNet-verbindingen tussen verschillende abonnementen instellen. Zie Een VNet-naar-VNet-verbinding configureren voor meer informatie. Zorg ervoor dat u de '-EnableBgp-$True' toevoegt wanneer u de verbindingen maakt om BGP in te schakelen.

1. Uw variabelen declareren

Zorg ervoor dat u de waarden vervangt door de waarden die u voor uw configuratie wilt gebruiken.

$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. TestVNet2 maken in de nieuwe resourcegroep

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. Maak de VPN-gateway voor TestVNet2 met BGP-parameters

Vraag om een openbaar IP-adres dat moet worden toegewezen aan de gateway die u voor uw VNet maakt en definieer de vereiste subnet- en IP-configuraties.

Declareer uw variabelen.

$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

Maak de VPN-gateway met het AS-nummer. U moet de standaard-ASN op uw VPN-gateways overschrijven. De ASN's voor de verbonden VNets moeten verschillen om BGP- en transitroutering in te schakelen.

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

Stap 2: de gateways TestVNet1 en TestVNet2 verbinden

In dit voorbeeld bevinden beide gateways zich in hetzelfde abonnement. U kunt deze stap in dezelfde PowerShell-sessie voltooien.

1. Beide gateways ophalen

Variabelen indien nodig herstellen:

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

Haal beide gateways op.

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

2. Beide verbindingen maken

In deze stap maakt u de verbinding van TestVNet1 naar TestVNet2 en de verbinding van TestVNet2 naar TestVNet1.

Verbinding tussen TestVNet1 en TestVNet2.

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

Verbinding tussen TestVNet2 en TestVNet1.

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

Belangrijk

Zorg ervoor dat u BGP inschakelt voor BEIDE verbindingen.

Nadat u deze stappen hebt voltooid, wordt de verbinding na enkele minuten tot stand gebracht. De BGP-peeringsessie is ingeschakeld zodra de VNet-naar-VNet-verbinding is voltooid.

Als u alle drie de onderdelen van deze oefening hebt voltooid, hebt u de volgende netwerktopologie ingesteld:

Diagram 4

Diagram met volledig netwerk

Voor de context, verwijzend naar diagram 4: als BGP zou worden uitgeschakeld tussen TestVNet2 en TestVNet1, zou TestVNet2 de routes voor het on-premises netwerk Site5 niet leren en daarom niet communiceren met site 5. Zodra u BGP hebt ingeschakeld, zoals weergegeven in diagram 4, kunnen alle drie de netwerken communiceren via de S2S IPsec- en VNet-naar-VNet-verbindingen.

Volgende stappen

Zie Over BGP en VPN Gateway voor meer informatie over BGP.