分享方式:


如何設定 Azure VPN 閘道的 BGP:CLI

本文可協助您使用 Azure CLI 在跨單位站對站 (S2S) VPN 連線和 VNet 對 VNet 連線上啟用 BGP。 您也可以使用 Azure 入口網站PowerShell 的步驟建立此設定。

BGP 是常用於網際網路的標準路由通訊協定,可交換兩個或多個網路之間的路由和可執行性資訊。 BGP 會啟用 Azure VPN 閘道,以及內部部署 VPN 裝置 (稱為 BGP 對等或鄰近項目) 來交換「路由」,其會通知這兩個閘道對要通過閘道的首碼或所涉及之路由器的可用性和可執行性。 BGP 也可以傳播從一個 BGP 對等互連到所有其他 BGP 對等所識別的 BGP 閘道,來啟用多個網路之間的傳輸路由。

如需 BGP 優點的相關詳細資訊,以及了解使用 BGP 的技術需求和考量,請參閱 BGP 與 Azure VPN 閘道概觀

本文的每個部分均構成基本建置組塊,可供在您的網路連線中啟用 BGP。 如果您完成這三個部分 (在閘道、S2S 連線和 VNet 對 VNet 連線上設定 BGP),則會建置拓撲,如圖表 1 所示。

圖表 1

顯示網路架構和設定的圖表。

您可以結合這些小節的內容,以建置出更加複雜且能符合您需求的多重躍點傳輸網路。

必要條件

為您的 VPN 閘道啟用 BGP

在您可以執行其他兩個設定小節中的任何步驟之前,必須先完成本節的內容。 下列設定步驟將會設定 Azure VPN 閘道的 BGP 參數,如圖表 2 所示。

圖表 2

顯示虛擬網路閘道設定的圖表。

建立及設定 TestVNet1

1.建立資源群組

下列範例會在 "eastus" 位置建立名為 TestRG1 的資源群組。 如果您在該區域中已有想要用來建立虛擬網路的資源群組,則可以改為使用該資源群組。

az group create --name TestRG1 --location eastus

2.建立 TestVNet1

下列範例會建立一個名為 TestVNet1 的虛擬網路,以及三個子網路:GatewaySubnet、FrontEnd 和 Backend。 當您在替代值時,請務必將閘道子網路命名為 GatewaySubnet。 如果您將其命名為其他名稱,閘道建立會失敗。

第一個命令會建立前端位址空間及 FrontEnd 子網路。 第二個命令會為後端子網路建立額外的位址空間。 第三個和第四個命令會建立 BackEnd 子網路和 GatewaySubnet。

az network vnet create -n TestVNet1 -g TestRG1 --address-prefix 10.11.0.0/16 --subnet-name FrontEnd --subnet-prefix 10.11.0.0/24
az network vnet update -n TestVNet1 --address-prefixes 10.11.0.0/16 10.12.0.0/16 -g TestRG1
 
az network vnet subnet create --vnet-name TestVNet1 -n BackEnd -g TestRG1 --address-prefix 10.12.0.0/24
 
az network vnet subnet create --vnet-name TestVNet1 -n GatewaySubnet -g TestRG1 --address-prefix 10.12.255.0/27

使用 BGP 參數建立 TestVNet1 的 VPN 閘道

1.建立公用 IP 位址

要求公用 IP 位址。 公用 IP 位址將會配置給您為虛擬網路建立的 VPN 閘道。

az network public-ip create -n GWPubIP -g TestRG1 --allocation-method Dynamic 

2.透過 AS 號碼建立 VPN 閘道

建立 TestVNet1 的虛擬網路閘道。 BGP 需要路由式 VPN 閘道。 您也需要額外的參數 -Asn 來為 TestVNet1 設定自發系統編號 (ASN)。 建立閘道通常可能需要 45 分鐘或更久,視選取的閘道 SKU 而定。

如果您使用 --no-wait 參數來執行此命令,就不會看到任何意見反應或輸出。 --no-wait 參數允許在背景中建立閘道。 這並不表示 VPN 閘道會立即建立。

az network vnet-gateway create -n VNet1GW -l eastus --public-ip-address GWPubIP -g TestRG1 --vnet TestVNet1 --gateway-type Vpn --sku HighPerformance --vpn-type RouteBased --asn 65010 --no-wait

建立閘道後,您可以使用此閘道來建立與 BGP 的跨單位連線或 VNet 對 VNet 連線。

3.取得 Azure BGP 對等體 IP 位址

建立閘道後,您必須取得 Azure VPN 閘道上的 BGP 對等體 IP 位址。 需要有此位址,才能將 VPN 閘道設定為內部部署 VPN 裝置的 BGP 對等體。

執行下列命令。

az network vnet-gateway list -g TestRG1

記下輸出頂端的 bgpSettings 區段。 您將使用此

"bgpSettings": { 
      "asn": 65010, 
      "bgpPeeringAddress": "10.12.255.30", 
      "peerWeight": 0 
    }

如果您沒有看到顯示為 IP 位址的 BgpPeeringAddress,表示您的閘道仍在設定中。 請在閘道完成後再試一次。

建立與 BGP 的跨單位連線

若要建立跨單位連線,您需要建立區域網路閘道來代表您的內部部署 VPN 裝置。 然後,就可以透過區域網路閘道來與 Azure VPN 閘道連線。 雖然這些步驟和建立其他連線類似,但是其中包含指定 BGP 設定參數所需的其他屬性,如圖表 3 所示。

圖表 3

顯示 IPsec 組態的圖表。

建立及設定區域網路閘道

本練習將繼續建置圖中所示的組態。 請務必使用您想用於設定的值來取代該值。 處理區域網路閘道時,請留意下列事項:

  • 區域網路閘道可以位於與 VPN 閘道相同的位置和資源群組中,或位於不同的位置和資源群組中。 此範例會顯示閘道位於不同位置的不同資源群組中。
  • 您需要針對區域網路閘道宣告的最小前置詞是 VPN 裝置上 BGP 對等體 IP 位址的主機位址。 在此情況下,是 10.51.255.254/32 的前置詞 /32。
  • 如果您使用 BGP 來連線到此網路,您也可以將前置詞保留空白。 Azure VPN 閘道會在內部將您 BGP 對等體 IP 位址的路由新增至對應的 IPsec 通道。
  • 請注意,您必須在內部部署網路與 Azure 虛擬網路之間使用不同的 BGP ASN。 在兩者相同的情況下,如果內部部署 VPN 裝置已經使用您的 VNet ASN 來與其他 BGP 鄰近項目進行對等,您就需要變更該 ASN。

繼續進行之前,請確定您已完成本練習的為您的 VPN 閘道啟用 BGP一節。 請注意,在此範例中,您會建立新的資源群組。 同時,也請注意區域網路閘道的兩個額外參數︰AsnBgpPeerAddress

az group create -n TestRG5 -l westus 
 
az network local-gateway create --gateway-ip-address 23.99.221.164 -n Site5 -g TestRG5 --local-address-prefixes 10.51.255.254/32 --asn 65050 --bgp-peering-address 10.51.255.254

連線 VNet 閘道與區域網路閘道

在此步驟中,您將建立從 TestVNet1 至 Site5 的連線。 您必須指定 --enable-bgp 參數才能為此連線啟用 BGP。

在此範例中,虛擬網路閘道和區域網路閘道是位於不同的資源群組中。 當閘道位於不同的資源群組中時,您必須指定這兩個閘道的整個資源識別碼,才能在虛擬網路之間設定連線。

1.取得 VNet1GW 的資源識別碼

使用下列命令的輸出來取得 VNet1GW 的資源識別碼︰

az network vnet-gateway show -n VNet1GW -g TestRG1

在輸出中,尋找 "id": 行。 您需要引號內的值,以在下一節中建立連線。

範例輸出︰

{ 
  "activeActive": false, 
  "bgpSettings": { 
    "asn": 65010, 
    "bgpPeeringAddress": "10.12.255.30", 
    "peerWeight": 0 
  }, 
  "enableBgp": true, 
  "etag": "W/\"<your etag number>\"", 
  "gatewayDefaultSite": null, 
  "gatewayType": "Vpn", 
  "id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW",

"id": 之後的值複製到文字編輯器 (例如 [記事本]),以便在建立連線時能夠輕鬆地貼上。

"id": "/subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW"

2.取得 Site5 的資源識別碼

使用下列命令來從輸出取得 Site5 的資源識別碼︰

az network local-gateway show -n Site5 -g TestRG5

3.建立 TestVNet1 對 Site5 連線

在此步驟中,您將建立從 TestVNet1 至 Site5 的連線。 如先前所討論,相同的 Azure VPN 閘道可以同時有 BGP 和非 BGP 連線。 除非已在連線屬性中啟用 BGP,否則即使已在兩個閘道上設定 BGP 參數,Azure 也不會為此連線啟用 BGP。 請將訂用帳戶識別碼以您自己的訂用帳戶識別碼來取代。

az network vpn-connection create -n VNet1ToSite5 -g TestRG1 --vnet-gateway1 /subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW --enable-bgp -l eastus --shared-key "abc123" --local-gateway2 /subscriptions/<subscription ID>/resourceGroups/TestRG5/providers/Microsoft.Network/localNetworkGateways/Site5

內部部署裝置設定

下列範例所列出的參數,是您要針對此練習,在內部部署 VPN 裝置的 BGP 組態區段中加以輸入︰

- 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

請稍候幾分鐘,應該就會建立連線。 BGP 對等處理工作階段會在建立 IPsec 連線之後開始。

建立與 BGP 的 VNet 對 VNet 連線

本節新增與 BGP 的 VNet 對 VNet 連線,如圖表 4 所示。

圖表 4

顯示完整網路組態的圖表。

以下指示延續自前幾節中所述的步驟。 若要利用 BGP 建立和設定 TestVNet1 和 VPN 閘道,您必須完成為您的 VPN 閘道啟用 BGP一節。

建立 TestVNet2 和 VPN 閘道

請務必確定新虛擬網路 TestVNet2 的 IP 位址空間不會與任何 VNet 範圍重疊。

在此範例中,虛擬網路屬於相同的訂用帳戶。 您可以設定不同訂用帳戶之間的 VNet 對 VNet 連線。 若要深入了解,請參閱設定 VNet 對 VNet 連線。 建立連線時,請務必新增 -EnableBgp $True,才能啟用 BGP。

1.建立新的資源群組

az group create -n TestRG2 -l eastus

2.在新的資源群組中建立 TestVNet2

第一個命令會建立前端位址空間及 FrontEnd 子網路。 第二個命令會為後端子網路建立額外的位址空間。 第三個和第四個命令會建立 BackEnd 子網路和 GatewaySubnet。

az network vnet create -n TestVNet2 -g TestRG2 --address-prefix 10.21.0.0/16 --subnet-name FrontEnd --subnet-prefix 10.21.0.0/24
az network vnet update -n TestVNet2 --address-prefixes 10.21.0.0/16 10.22.0.0/16 -g TestRG2
 
az network vnet subnet create --vnet-name TestVNet2 -n BackEnd -g TestRG2 --address-prefix 10.22.0.0/24
 
az network vnet subnet create --vnet-name TestVNet2 -n GatewaySubnet -g TestRG2 --address-prefix 10.22.255.0/27

3.建立公用 IP 位址

要求公用 IP 位址。 公用 IP 位址將會配置給您為虛擬網路建立的 VPN 閘道。

az network public-ip create -n GWPubIP2 -g TestRG2 --allocation-method Dynamic

4.透過 AS 號碼建立 VPN 閘道

建立 TestVNet2 的虛擬網路閘道。 您必須覆寫您 Azure VPN 閘道上的預設 ASN。 已連線虛擬網路的 ASN 必須不同,才能啟用 BGP 與傳輸路由。

az network vnet-gateway create -n VNet2GW -l eastus --public-ip-address GWPubIP2 -g TestRG2 --vnet TestVNet2 --gateway-type Vpn --sku Standard --vpn-type RouteBased --asn 65020 --no-wait

連線 TestVNet1 與 TestVNet2 閘道

在此步驟中,您將建立從 TestVNet1 至 Site5 的連線。 若要為此連線啟用 BGP,您必須指定 --enable-bgp 參數。

在下列範例中,虛擬網路閘道和區域網路閘道是位於不同的資源群組中。 當閘道位於不同的資源群組中時,您必須指定這兩個閘道的整個資源識別碼,才能在虛擬網路之間設定連線。

1.取得 VNet1GW 的資源識別碼

從下列命令的輸出取得 VNet1GW 的資源識別碼︰

az network vnet-gateway show -n VNet1GW -g TestRG1

閘道資源的範例值:

"/subscriptions/<subscripion ID value>/resourceGroups/TestRG2/providers/Microsoft.Network/virtualNetworkGateways/VNet2GW"

2.取得 VNet2GW 的資源識別碼

從下列命令的輸出取得 VNet2GW 的資源識別碼︰

az network vnet-gateway show -n VNet2GW -g TestRG2

3.建立連線

建立從 TestVNet1 到 TestVNet2 的連線,以及從 TestVNet2 到 TestVNet1 的連線。 下列命令使用資源識別碼。 在此練習中,大部分的資源標識碼都已在範例中。 請務必將訂用帳戶識別碼值以您自己的識別碼取代。 訂用帳戶標識碼會用於相同命令中的多個位置。 針對生產環境使用此命令時,您將取代所參考之每個對象的整個資源識別碼。

az network vpn-connection create -n VNet1ToVNet2 -g TestRG1 --vnet-gateway1 /subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW --enable-bgp -l eastus --shared-key "abc123" --vnet-gateway2 /subscriptions/<subscription ID>/resourceGroups/TestRG2/providers/Microsoft.Network/virtualNetworkGateways/VNet2GW
az network vpn-connection create -n VNet2ToVNet1 -g TestRG2 --vnet-gateway1 /subscriptions/<subscription ID>/resourceGroups/TestRG2/providers/Microsoft.Network/virtualNetworkGateways/VNet2GW --enable-bgp -l eastus --shared-key "abc123" --vnet-gateway2 /subscriptions/<subscription ID>/resourceGroups/TestRG1/providers/Microsoft.Network/virtualNetworkGateways/VNet1GW

重要

對這兩個連線啟用 BGP。

完成這些步驟之後,連線將會在幾分鐘之後建立。 當 VNet 對 VNet 連線完成後,便會啟動 BGP 對等處理工作階段。

下一步

如需 BGP 的詳細資訊,請參閱 關於 BGP 和 VPN 閘道