Udostępnij za pośrednictwem


Jak skonfigurować protokół BGP dla usługi VPN Gateway: PowerShell

Ten artykuł pokazuje, jak włączyć protokół BGP na połączeniach sieci VPN typu lokacja-lokacja (S2S) między lokacjami oraz na połączeniach między sieciami wirtualnymi przy użyciu programu Azure PowerShell. Jeśli nie jesteś zaznajomiony z tego typu konfiguracją, może być łatwiej skorzystać z wersji portalu Azure tego artykułu.

BGP to standardowy protokół routingu używany często w Internecie do wymiany informacji o routingu i osiągalności między dwiema lub wieloma sieciami. Protokół BGP umożliwia bramom sieci VPN oraz Twoim urządzeniom VPN na miejscu (nazywanym równorzędnymi lub sąsiadującymi w BGP) wymianę "tras," które informują obie bramy o dostępności i osiągalności prefiksów przechodzących przez zaangażowane bramy lub routery. Protokół BGP może również umożliwić routowanie tranzytowe między wieloma sieciami, propagując trasy, które brama BGP uczy się od jednego peera BGP, do wszystkich innych peerów BGP.

Aby uzyskać więcej informacji na temat zalet protokołu BGP i zrozumienia wymagań technicznych i zagadnień dotyczących korzystania z protokołu BGP, zobacz About BGP and Azure VPN Gateway (Informacje o protokole BGP i usłudze Azure VPN Gateway).

Wprowadzenie

Każda część tego artykułu ułatwia utworzenie podstawowego bloku konstrukcyjnego umożliwiającego włączanie protokołu BGP w łączności sieciowej. Jeśli zakończysz wszystkie trzy części (skonfiguruj protokół BGP na bramie, połączenie S2S i połączenie między sieciami wirtualnymi), utworzysz topologię, jak pokazano na diagramie 1. Te sekcje można połączyć, aby utworzyć bardziej złożoną sieć tranzytową multihop, która spełnia Twoje potrzeby.

Diagram 1

Diagram przedstawiający architekturę sieci i ustawienia.

Włączanie protokołu BGP dla bramy sieci VPN

Ta sekcja jest wymagana przed wykonaniem dowolnego z kroków w dwóch pozostałych sekcjach konfiguracji. Poniższe kroki konfiguracji umożliwiają skonfigurowanie parametrów protokołu BGP bramy sieci VPN, jak pokazano na diagramie 2.

Diagram 2

Diagram przedstawiający ustawienia bramy sieci wirtualnej.

Zanim rozpoczniesz

Kroki tego ćwiczenia można wykonać przy użyciu usługi Azure Cloud Shell w przeglądarce. Jeśli zamiast tego chcesz użyć programu PowerShell bezpośrednio z komputera, zainstaluj polecenia cmdlet programu PowerShell usługi Azure Resource Manager. Aby uzyskać więcej informacji na temat instalowania poleceń cmdlet programu PowerShell, zobacz artykuł How to install and configure Azure PowerShell (Instalowanie i konfigurowanie programu Azure PowerShell).

Tworzenie i konfigurowanie sieci VNet1

1. Zadeklaruj zmienne

W tym ćwiczeniu zaczynamy od deklarowania zmiennych. Poniższy przykład deklaruje zmienne przy użyciu wartości w tym ćwiczeniu. Możesz użyć przykładowych zmiennych (z wyjątkiem nazwy subskrypcji), jeśli wykonasz kroki, aby zapoznać się z tego typu konfiguracją. Zmodyfikuj wszystkie zmienne, a następnie skopiuj i wklej do konsoli programu PowerShell. Podczas konfigurowania do produkcji należy pamiętać o zastąpieniu wartości swoimi własnymi.

$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. Połącz się z subskrypcją i utwórz nową grupę zasobów

Aby użyć poleceń cmdlet usługi Resource Manager, upewnij się, że przełączysz się do trybu programu PowerShell. Więcej informacji znajduje się w temacie Using Windows PowerShell with Resource Manager (Używanie programu Windows PowerShell z usługą Resource Manager).

Jeśli używasz usługi Azure Cloud Shell, połączysz się automatycznie z kontem. Jeśli używasz programu PowerShell z komputera, otwórz konsolę programu PowerShell i połącz się z kontem. Użyj poniższego przykładu w celu łatwiejszego nawiązania połączenia:

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

Następnie utwórz nową grupę zasobów.

New-AzResourceGroup -Name $RG1 -Location $Location1

3. Tworzenie sieci TestVNet1

Poniższy przykład tworzy sieć wirtualną o nazwie TestVNet1 i trzy podsieci, jedną o nazwie GatewaySubnet, jedną o nazwie FrontEnd i jedną o nazwie Backend. Podczas zastępowania wartości ważne jest, aby podsieć bramy zawsze nosiła nazwę GatewaySubnet. W przypadku nadania jej innej nazwy proces tworzenia bramy zakończy się niepowodzeniem.

$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

Tworzenie bramy sieci VPN z włączonym protokołem BGP

1. Tworzenie konfiguracji adresów IP i podsieci

Zażądaj przydzielenie publicznego adresu IP do bramy, którą utworzysz dla sieci wirtualnej. Zdefiniujesz również wymaganą podsieć i konfiguracje adresów IP.

$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. Utwórz bramę sieci VPN przy użyciu numeru AS

Utwórz bramę sieci wirtualnej dla sieci TestVNet1. Protokół BGP wymaga bramy VPN opartej na trasach, a także dodatkowego parametru -Asn, aby ustawić numer AS dla TestVNet1. Upewnij się, że określono parametr -Asn . Jeśli nie ustawisz parametru -Asn, domyślnie jest przypisywana nazwa ASN 65515 (która nie działa dla tej konfiguracji). Tworzenie bramy może potrwać co najmniej 45 minut.

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

Po utworzeniu bramy można użyć tej bramy do nawiązania połączenia między środowiskiem lokalnym lub połączenia między sieciami wirtualnymi za pomocą protokołu BGP.

3. Uzyskiwanie adresu IP elementu równorzędnego BGP platformy Azure

Po utworzeniu bramy należy uzyskać adres IP punktu końcowego BGP na bramie sieci VPN. Ten adres jest wymagany do skonfigurowania bramy sieci VPN jako partnera BGP dla lokalnych urządzeń sieci VPN.

Jeśli używasz programu CloudShell, może być konieczne ponowne opublikowanie zmiennych, jeśli upłynął limit czasu sesji podczas tworzenia bramy.

W razie potrzeby ponownie opublikuj zmienne:

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

Uruchom następujące polecenie i zanotuj wartość "BgpPeeringAddress" z danych wyjściowych.

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

Przykładowe wyjście:

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

Jeśli nie widzisz BgpPeeringAddress jako adresu IP, brama jest nadal konfigurowana. Spróbuj ponownie, gdy bramka zostanie ukończona.

Ustanawianie połączenia obejmującego wiele lokalizacji przy użyciu protokołu BGP

Aby ustanowić połączenie między lokalizacjami, należy utworzyć bramę sieci lokalnej w celu reprezentowania lokalnego urządzenia VPN oraz połączenie, aby połączyć bramę sieci VPN z bramą sieci lokalnej, zgodnie z opisem w Tworzenie połączenia lokacja-lokacja. Poniższe sekcje zawierają właściwości wymagane do określenia parametrów konfiguracji protokołu BGP, pokazanych na diagramie 3.

Diagram 3

Diagram przedstawiający konfigurację protokołu IPsec.

Przed kontynuowaniem upewnij się, że włączono protokół BGP dla bramy sieci VPN w poprzedniej sekcji.

Krok 1. Tworzenie i konfigurowanie bramy sieci lokalnej

1. Zadeklaruj zmienne

To ćwiczenie kontynuuje kompilowanie konfiguracji pokazanej na diagramie. Należy pamiętać o zastąpieniu przykładowych wartości tymi, które mają zostać użyte w danej konfiguracji. Na przykład musisz mieć adres IP urządzenia sieci VPN. W tym ćwiczeniu możesz zastąpić prawidłowy adres IP, jeśli nie planujesz w tej chwili nawiązywać połączenia z urządzeniem sieci VPN. Później możesz zastąpić adres IP.

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

Kilka rzeczy, na które należy zwrócić uwagę dotyczące parametrów bramy sieci lokalnej:

  • Brama sieci lokalnej może znajdować się w tej samej lub innej lokalizacji i grupie zasobów co brama sieci VPN. W tym przykładzie przedstawiono je w różnych grupach zasobów w różnych lokalizacjach.
  • Prefiks, który należy zadeklarować dla bramy sieci lokalnej, to adres hosta adresu IP elementu równorzędnego BGP na urządzeniu sieci VPN. W tym przypadku jest to prefiks o długości /32 "10.51.255.254/32".
  • Możesz również pozostawić prefiks pusty, jeśli używasz protokołu BGP do nawiązywania połączenia z tą siecią. Brama sieci VPN platformy Azure wewnętrznie doda trasę rówieśniczego IP BGP do odpowiedniego tunelu IPsec.
  • Przypominamy, że należy używać różnych numerów ASN BGP między sieciami lokalnymi a sieciami VNet platformy Azure. Jeśli są one takie same, musisz zmienić numer ASN sieci wirtualnej, jeśli lokalne urządzenie sieci VPN używa już usługi ASN do komunikacji równorzędnej z innymi sąsiadami protokołu BGP.

2. Utwórz bramę sieci lokalnej dla Site5

Utwórz grupę zasobów przed utworzeniem bramy sieci lokalnej.

New-AzResourceGroup -Name $RG5 -Location $Location5

Utwórz bramę sieci lokalnej. Zwróć uwagę na dwa dodatkowe parametry bramy sieci lokalnej: Asn i BgpPeerAddress.

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

Krok 2. Łączenie bramy sieci wirtualnej i bramy sieci lokalnej

1. Zdobądź dwa bramy

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

2. Utwórz połączenie sieci TestVNet1 z lokacją5

W tym kroku utworzysz połączenie z sieci wirtualnej TestVNet1 do witryny Site5. Aby włączyć protokół BGP dla tego połączenia, należy określić wartość "-EnableBGP $True". Jak wspomniano wcześniej, można mieć zarówno połączenia BGP, jak i inne niż BGP dla tej samej bramy sieci VPN. Jeśli protokół BGP nie jest włączony we właściwości połączenia, platforma Azure nie włączy protokołu BGP dla tego połączenia, mimo że parametry protokołu BGP są już skonfigurowane w obu bramach.

W razie potrzeby ponownie zdeklaruj zmienne:

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

Uruchom następujące polecenie:

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

Konfiguracja urządzenia lokalnego

W poniższym przykładzie przedstawiono parametry wprowadzone w sekcji konfiguracji protokołu BGP na lokalnym urządzeniu sieci VPN na potrzeby tego ćwiczenia:

- 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

Połączenie jest nawiązywane po kilku minutach, a sesja BGP rozpoczyna się po nawiązaniu połączenia IPsec.

Ustanawianie połączenia między sieciami wirtualnymi przy użyciu protokołu BGP

W tej sekcji dodano połączenie VNet-VNet z protokołem BGP, jak pokazano na Diagramie 4.

Diagram 4

Diagram przedstawiający pełną konfigurację sieci.

Poniższe instrukcje są kontynuowane z poprzednich kroków. Najpierw należy wykonać kroki opisane w sekcji Włączanie protokołu BGP dla bramy sieci VPN, aby utworzyć i skonfigurować sieć TestVNet1 oraz bramę sieci VPN przy użyciu protokołu BGP.

Krok 1. Tworzenie sieci TestVNet2 i bramy sieci VPN

Ważne jest, aby upewnić się, że przestrzeń adresowa IP nowej sieci wirtualnej TestVNet2 nie nakłada się na żaden z zakresów sieci wirtualnej.

W tym przykładzie sieci wirtualne należą do tej samej subskrypcji. Możesz skonfigurować połączenia VNet-to-VNet między różnymi subskrypcjami. Aby uzyskać więcej informacji, zobacz Konfigurowanie połączenia VNet-to-VNet. Upewnij się, że dodajesz "-EnableBgp $True" podczas tworzenia połączeń, aby włączyć protokół BGP.

1. Zadeklaruj zmienne

Należy pamiętać o zastąpieniu przykładowych wartości tymi, które mają zostać użyte w danej konfiguracji.

$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. Utwórz sieć TestVNet2 w nowej grupie zasobów

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. Utwórz bramę sieci VPN dla sieci TestVNet2 z parametrami protokołu BGP

Zażądaj przydzielenie publicznego adresu IP do bramy, którą utworzysz dla sieci wirtualnej, i zdefiniuj wymagane konfiguracje podsieci i adresów IP.

Zadeklaruj swoje zmienne.

$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

Utwórz bramę sieci VPN przy użyciu numeru AS. Należy zastąpić domyślny numer ASN w bramkach sieci VPN. ASN dla połączonych VNetów muszą być różne, aby umożliwić protokół BGP i routing tranzytowy.

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

Krok 2. Łączenie bram TestVNet1 i TestVNet2

W tym przykładzie obie bramy znajdują się w tej samej subskrypcji. Ten krok można wykonać w tej samej sesji programu PowerShell.

1. Zdobądź obie bramy

W razie potrzeby ponownie ustanów zmienne:

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

Zdobądź obie bramy.

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

2. Tworzenie obu połączeń

W tym kroku utworzysz połączenie z sieci TestVNet1 do sieci TestVNet2, a połączenie z sieci TestVNet2 do sieci TestVNet1.

Połączenie TestVNet1 z siecią TestVNet2.

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

Połączenie TestVNet2 z siecią TestVNet1.

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

Ważne

Pamiętaj, aby włączyć protokół BGP dla obu połączeń.

Po wykonaniu tych kroków połączenie zostanie nawiązane po kilku minutach. Sesja BGP jest aktywna po zakończeniu połączenia VNet-do-VNet.

Jeśli wykonano wszystkie trzy części tego ćwiczenia, ustanowiono następującą topologię sieci:

Diagram 4

Diagram przedstawiający pełną sieć

W kontekście, odwołując się do Diagramu 4, jeśli protokół BGP zostałby wyłączony między sieciami TestVNet2 i TestVNet1, sieć TestVNet2 nie nauczy się tras dla sieci lokalnej, Site5, i dlatego nie będzie mogła komunikować się z Site5. Po włączeniu protokołu BGP, jak pokazano na diagramie 4, wszystkie trzy sieci będą mogły komunikować się za pośrednictwem połączeń S2S IPsec i VNet-to-VNet.

Następne kroki

Aby uzyskać więcej informacji na temat protokołu BGP, zobacz About BGP and VPN Gateway (Informacje o protokole BGP i bramie sieci VPN).