Konfigurieren von BGP für VPN Gateway: PowerShell

In diesem Artikel erfahren Sie, wie Sie BGP mithilfe von Azure PowerShell für standortübergreifende S2S-VPN-Verbindungen (Site-to-Site) und VNet-to-VNet-Verbindungen aktivieren. Wenn Sie mit dieser Art der Konfiguration nicht vertraut sind, ist es vielleicht einfacher, die Version dieses Artikels für das Azure-Portal zu verwenden.

BGP ist das standardmäßige Routingprotokoll, mit dem im Internet üblicherweise Routing- und Erreichbarkeitsinformationen zwischen mehren Netzwerken ausgetauscht werden. VPN-Gateways und Ihre lokalen VPN-Geräte (sogenannte BGP-Peers oder Nachbarn) können über BGP Routen austauschen, die beide Gateways über die Verfügbarkeit und Erreichbarkeit der Präfixe informieren, die die beteiligten Gateways oder Router durchlaufen. BGP ermöglicht auch Transitrouting zwischen mehreren Netzwerken. Hierzu werden von einem BGP-Gateway ermittelte Routen eines BGP-Peers an alle anderen BGP-Peers weitergegeben.

Weitere Informationen zu den Vorteilen von BGP sowie zu den technischen Anforderungen und den Überlegungen zur Verwendung von BGP finden Sie unter Übersicht über BGP mit Azure VPN Gateway.

Erste Schritte

Jeder Teil dieses Artikels hilft Ihnen beim Erstellen eines grundlegenden Bausteins zum Aktivieren von BGP in Ihrer Netzwerkverbindung. Wenn Sie alle drei Teile abgeschlossen haben (Konfigurieren von BGP für das Gateway, S2S-Verbindung und VNet-to-VNet-Verbindung), erstellen Sie die Topologie wie in Abbildung 1 dargestellt. Zum Erstellen eines komplexeren Multihop-Übertragungsnetzwerks, das Ihren Anforderungen entspricht, können Sie diese Abschnitte auch miteinander kombinieren.

Diagramm 1

Abbildung: Netzwerkarchitektur und -einstellungen

Aktivieren von BGP für das VPN-Gateway

Dieser Abschnitt ist erforderlich, bevor Sie Schritte in den anderen beiden Konfigurationsabschnitten ausführen können. Die folgenden Konfigurationsschritte richten die BGP-Parameter des VPN-Gateways wie in Diagramm 2 dargestellt ein.

Diagramm 2

Abbildung: Einstellungen für das VNet-Gateway

Voraussetzungen

Sie können die Schritte für diese Übung mit Azure Cloud Shell in Ihrem Browser ausführen. Wenn Sie PowerShell stattdessen direkt von Ihrem Computer aus verwenden möchten, installieren Sie die PowerShell-Cmdlets von Azure Resource Manager. Weitere Informationen zur Installation der PowerShell-Cmdlets finden Sie unter Overview of Azure PowerShell (Übersicht über Azure PowerShell).

Erstellen und Konfigurieren von VNet1

1. Deklarieren von Variablen

Bei dieser Übung beginnen wir mit dem Deklarieren von Variablen. Im folgenden Beispiel werden die Variablen mit den Werten für diese Übung deklariert. Sie können die beim Durchlaufen der Schritte die Beispielvariablen (mit Ausnahme des Abonnementnamens) verwenden, um sich mit dieser Art der Konfiguration vertraut zu machen. Ändern Sie beliebige Variablen, kopieren Sie sie, und fügen Sie sie in die PowerShell-Konsole ein. Achten Sie darauf, dass Sie die Werte durch Ihre eigenen Werte ersetzen, wenn Sie die Konfiguration für die Produktion durchführen.

$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. Herstellen einer Verbindung mit Ihrem Abonnement und Erstellen einer neuen Ressourcengruppe

Sie müssen in den PowerShell-Modus wechseln, um die Resource Manager-Cmdlets verwenden zu können. Weitere Informationen finden Sie unter Verwenden von Windows PowerShell mit Resource Manager.

Wenn Sie Azure Cloud Shell verwenden, wird automatisch eine Verbindung mit Ihrem Konto hergestellt. Wenn Sie PowerShell von Ihrem Computer aus verwenden, öffnen Sie Ihre PowerShell-Konsole, und stellen Sie eine Verbindung mit Ihrem Konto her. Verwenden Sie das folgende Beispiel, um eine Verbindung herzustellen:

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

Als Nächstes erstellen Sie eine neue Ressourcengruppe.

New-AzResourceGroup -Name $RG1 -Location $Location1

3. Erstellen von TestVNet1

Im folgenden Beispiel wird ein virtuelles Netzwerk namens „TestVNet1“ und drei Subnetzen namens „GatewaySubnet“, „FrontEnd“ und „Backend“ erstellt. Beim Ersetzen der Werte ist es wichtig, dass Sie Ihrem Gatewaysubnetz immer den Namen „GatewaySubnet“ geben. Wenn Sie einen anderen Namen verwenden, tritt beim Erstellen des Gateways ein Fehler auf.

$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

Erstellen des VPN-Gateways mit aktiviertem BGP

1. Erstellen der IP- und Subnetzkonfigurationen

Fordern Sie eine öffentliche IP-Adresse an, die dem Gateway zugewiesen wird, das Sie für Ihr VNet erstellen. Definieren Sie auch die erforderlichen Subnetz- und IP-Konfigurationen.

$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. Erstellen des VPN Gateway mit der AS-Nummer

Erstellen Sie das virtuelle Netzwerkgateway für Ihr TestVNet1. BGP erfordert ein routenbasiertes VPN-Gateway sowie den Parameter -Asn zum Festlegen der AS-Nummer (ASN) für „TestVNet1“. Stellen Sie sicher, dass Sie den Parameter -Asn angeben. Wenn Sie den Parameter „-Asn“ nicht festlegen, wird standardmäßig ASN 65515 zugewiesen (was für diese Konfiguration nicht funktioniert). Das Erstellen eines Gateways kann einige Zeit dauern (45 Minuten oder mehr).

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

Nachdem das Gateway erstellt wurde, können Sie dieses Gateway verwenden, um eine standortübergreifende Verbindung oder eine VNet-to-VNet-Verbindung mit BGP herzustellen.

3. Abrufen der Azure-BGP-Peer-IP-Adressen

Nachdem das Gateway erstellt wurde, müssen Sie die BGP-Peer-IP-Adresse auf dem VPN-Gateway abrufen. Diese Adresse wird benötigt, um das VPN-Gateway als BGP-Peer für Ihre lokalen VPN-Geräte zu konfigurieren.

Bei Verwendung von CloudShell müssen Sie möglicherweise Ihre Variablen neu einrichten, wenn während der Erstellung Ihres Gateways ein Sitzungstimeout aufgetreten ist.

Richten Sie die Variablen bei Bedarf erneut ein:

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

Führen Sie den folgenden Befehl aus, und notieren Sie sich den Wert für „BgpPeeringAddress“ in der Ausgabe.

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

Beispielausgabe:

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

Wenn „BgpPeeringAddress“ nicht als IP-Adresse angezeigt wird, wird Ihr Gateway noch konfiguriert. Versuchen Sie es nach Abschluss der Konfiguration des Gateways erneut.

Herstellen einer standortübergreifenden Verbindung mit BGP

Um eine standortübergreifende Verbindung herzustellen, müssen Sie ein Gateway des lokalen Netzwerks für das lokale VPN-Gerät und eine Verbindung erstellen, um das VPN-Gateway mit dem Gateway des lokalen Netzwerks zu verbinden, wie unter Einrichten einer Standort-zu-Standort-Verbindung erläutert. Die folgenden Abschnitte enthalten die zum Angeben der BGP-Konfigurationsparameter erforderlichen Eigenschaften, wie in Abbildung 3 dargestellt.

Diagramm 3

Abbildung: IPsec-Konfiguration

Bevor Sie fortfahren, vergewissern Sie sich, dass Sie im vorherigen Abschnitt BGP für das VPN-Gateway aktiviert haben.

Schritt 1: Erstellen und Konfigurieren des lokalen Netzwerkgateways

1. Deklarieren von Variablen

In dieser Übung fahren wir mit dem Erstellen der im Diagramm gezeigten Konfiguration fort. Achten Sie darauf, dass Sie die Werte durch die Werte ersetzen, die Sie für die Konfiguration verwenden möchten. Sie benötigen zum Beispiel die IP-Adresse für Ihr VPN-Gerät. Für diese Übung können Sie eine gültige IP-Adresse verwenden, wenn Sie zu diesem Zeitpunkt keine Verbindung zu Ihrem VPN-Gerät herstellen möchten. Sie können die IP-Adresse später ersetzen.

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

In Bezug auf die lokalen Netzwerkgateway-Parameter sind ein paar Dinge zu beachten:

  • Der Speicherort und die Ressourcengruppe für das lokale Netzwerkgateway und für das VPN Gateway können gleich oder auch unterschiedlich sein. Dieses Beispiel zeigt sie in verschiedenen Ressourcengruppen und mit verschiedenen Speicherorten.
  • Das Präfix, das Sie für das lokale Netzwerkgateway deklarieren müssen, ist die Hostadresse Ihrer BGP-Peer-IP-Adresse auf Ihrem VPN-Gerät. In diesem Fall handelt es sich um ein /32-Präfix von 10.51.255.254/32.
  • Zur Erinnerung: Sie müssen zwischen Ihren lokalen Netzwerken und Azure VNet unterschiedliche BGP-ASNs verwenden. Wenn sie identisch sind, müssen Sie Ihre VNet-ASN ändern, falls Ihr lokales VPN-Gerät die ASN bereits für eine Peerverbindung mit anderen BGP-Nachbarn verwendet.

2. Erstellen des lokalen Netzwerkgateways für Site5

Erstellen Sie die Ressourcengruppe, bevor Sie das lokale Netzwerkgateway erstellen.

New-AzResourceGroup -Name $RG5 -Location $Location5

Erstellen Sie das Gateway des lokalen Netzwerks. Beachten Sie die beiden zusätzlichen Parameter für das lokale Netzwerkgateway: ASN und BgpPeerAddress.

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

Schritt 2: Verbinden des VNET-Gateways mit dem Gateway des lokalen Netzwerks

1. Abrufen der beiden Gateways

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

2. Erstellen der Verbindung von TestVNet1 zu Site5

In diesem Schritt erstellen Sie die Verbindung zwischen „TestVNet1“ und „Site5“. Legen Sie „-EnableBGP $True“ fest, um BGP für diese Verbindung zu aktivieren. Wie bereits erwähnt, können für dasselbe VPN-Gateway sowohl BGP- als auch Nicht-BGP-Verbindungen verwendet werden. Sofern BGP in der Verbindungseigenschaft nicht aktiviert ist, wird BGP für diese Verbindung von Azure nicht aktiviert. Dies gilt auch dann, wenn bereits BGP-Parameter für beide Gateways konfiguriert wurden.

Deklarieren Sie Ihre Variablen bei Bedarf erneut:

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

Führen Sie dann den folgenden Befehl aus:

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

Lokale Gerätekonfiguration

Das folgende Beispiel listet die Parameter auf, die Sie in den BGP-Konfigurationsbereich auf dem lokalen VPN-Gerät für diese Übung eingeben:

- 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

Die Verbindung wird innerhalb weniger Minuten hergestellt, und die BGP-Peeringsitzung wird gestartet, sobald die IPsec-Verbindung besteht.

Herstellen einer VNet-zu-VNet-Verbindung mit BGP

In diesem Abschnitt wird eine VNet-to-VNet-Verbindung mit BGP hinzugefügt, wie in Abbildung 4 gezeigt.

Diagramm 4

Abbildung: Vollständige Netzwerkkonfiguration

Die folgende Anleitung ist eine Fortsetzung der obigen Schritte. Sie müssen den Abschnitt Aktivieren von BGP für Ihr VPN Gateway abschließen, um „TestVNet1“ und das VPN-Gateway mit BGP zu erstellen und zu konfigurieren.

Schritt 1: Erstellen von TestVNet2 und des VPN-Gateways

Es ist wichtig sicherzustellen, dass sich der IP-Adressbereich des neuen virtuellen Netzwerks (TestVNet2) nicht mit einem Ihrer VNet-Bereiche überschneidet.

In diesem Beispiel gehören die virtuellen Netzwerke zum gleichen Abonnement. Sie können VNet-zu-VNet-Verbindungen zwischen verschiedenen Abonnements einrichten. Weitere Informationen finden Sie unter Konfiguration einer VNet-zu-VNet-Verbindung. Fügen Sie beim Erstellen der Verbindungen zum Aktivieren von BGP „-EnableBgp $True“ hinzu.

1. Deklarieren von Variablen

Achten Sie darauf, dass Sie die Werte durch die Werte ersetzen, die Sie für die Konfiguration verwenden möchten.

$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. Erstellen von TestVNet2 in der neuen Ressourcengruppe

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. Erstellen des VPN Gateways für TestVNet2 mit BGP-Parametern

Fordern Sie eine öffentliche IP-Adresse an, die dem Gateway zugewiesen wird, das Sie für Ihr VNet erstellen, und definieren Sie die erforderlichen Subnetz- und IP-Konfigurationen.

Deklarieren Sie Ihre Variablen.

$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

Erstellen Sie das VPN Gateway mit der AS-Nummer. Die Standard-ASN für Ihre VPN-Gateways muss überschrieben werden. Die ASNs für die verbundenen VNets müssen für die Aktivierung von BGP und Transitrouting unterschiedlich sein.

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

Schritt 2: Verbinden der Gateways von TestVNet1 und TestVNet2

In diesem Beispiel befinden sich beide Gateways im selben Abonnement. Sie können diesen Schritt in der gleichen PowerShell-Sitzung ausführen.

1. Abrufen der beiden Gateways

Richten Sie die Variablen bei Bedarf erneut ein:

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

Rufen Sie beide Gateways ab.

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

2. Erstellen der beiden Verbindungen

In diesem Schritt erstellen Sie die Verbindung von „TestVNet1“ mit „TestVNet2“ sowie die Verbindung von „TestVNet2“ mit „TestVNet1“.

Verbindung zwischen „TestVNet1“ und „TestVNet2“.

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

Verbindung zwischen „TestVNet2“ und „TestVNet1“.

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

Wichtig

Aktivieren Sie BGP für BEIDE Verbindungen.

Nach Abschluss der Schritte wird die Verbindung innerhalb weniger Minuten hergestellt. Der BGP-Peeringsitzung ist aktiv, sobald die VNet-zu-VNet-Verbindung besteht.

Wenn Sie alle drei Teile dieser Übung abgeschlossen haben, haben Sie die folgende Netzwerktopologie eingerichtet:

Diagramm 4

Diagramm des vollständigem Netzwerks

Gemäß Abbildung 4 gilt Folgendes: Wenn BGP zwischen „TestVNet2“ und „TestVNet1“ deaktiviert wäre, würde „TestVNet2“ die Routen für das lokale Netzwerk (Site5) nicht kennen und könnte daher nicht mit „Site5“ kommunizieren. Sobald Sie BGP wie in Abbildung 4 dargestellt aktivieren, können alle drei Netzwerke über die S2S-IPsec- und VNet-to-VNet-Verbindungen kommunizieren.

Nächste Schritte

Weitere Informationen zu BGP finden Sie unter Übersicht über BGP mit Azure VPN Gateway.