教學課程:使用 Azure PowerShell 將虛擬網路連線到 ExpressRoute 線路

本教學課程協助您使用 Resource Manager 部署模型和 PowerShell,將虛擬網路 (VNet) 連結到 Azure ExpressRoute 線路。 虛擬網路可以位於相同的訂用帳戶中,或屬於另一個訂用帳戶。 本教學課程也示範如何更新虛擬網路連結。

在本教學課程中,您會了解如何:

  • 將相同訂用帳戶中的虛擬網路連接到線路
  • 將不同訂用帳戶中的虛擬網路連接到線路
  • 修改虛擬網路連線
  • 設定 ExpressRoute FastPath

必要條件

  • 開始設定之前,請先檢閱必要條件路由需求工作流程

  • 您必須擁有作用中的 ExpressRoute 線路。

    • 遵循指示來 建立 ExpressRoute 線路 ,並由您的連線提供者來啟用該線路。
    • 確定您已針對循環設定了 Azure 私用對等。 請參閱 設定路由 一文,以取得路由指示。
    • 請確定已設定 Azure 私人對等互連,且已建立您的網路與 Microsoft 之間的 BGP 對等互連,以便進行端對端連線。
    • 請確定您有已建立且完整佈建的虛擬網路和虛擬網路閘道。 請依照指示為 ExpressRoute 建立虛擬網路閘道。 ExpressRoute 的虛擬網路閘道會使用 GatewayType 'ExpressRoute',而不是 VPN。
  • 您最多可以將 10 個虛擬網路連結至標準 ExpressRoute 電路。 在使用標準 ExpressRoute 電路時,所有虛擬網路都必須位於相同的地理政治區域內。

  • 單一 VNet 最多可連結 16 個 ExpressRoute 線路。 使用本文中的步驟來建立您要連線每個 ExpressRoute 線路的新連線物件。 ExpressRoute 線路可以位於相同的訂用帳戶、不同的訂用帳戶或兩者的混合。

  • 如果您已啟用 ExpressRoute 進階附加元件,則可連結 ExpressRoute 線路的地理政治區域以外的虛擬網路。 進階附加元件也可讓您將 10 個以上的虛擬網路連線到 ExpressRoute 線路,取決於選擇的頻寬。 如需高階附加元件的詳細資訊,請參閱 常見問題集

  • 若要建立從 ExpressRoute 線路到目標 ExpressRoute 虛擬網路閘道的連線,從本地或對等互連虛擬網路公告的位址空間數目必須等於或小於 200。 成功建立連線後,您就可以將其他位址空間 (上限 1,000) 新增至本機或對等互連虛擬網路。

  • 檢閱透過 ExpressRoute 在虛擬網路之間的連線指引。

使用 Azure PowerShell

本文中的步驟和範例會使用 Azure PowerShell Az 模組。 若要在您的電腦本機上安裝 Az 模組,請參閱安裝 Azure PowerShell。 若要深入了解新的 Az 模組,請參閱新的 Azure PowerShell Az 模組簡介。 PowerShell Cmdlet 經常會更新。 如果您未執行最新版本,指示中指定的值可能會失敗。 若要在您的系統上尋找已安裝的 PowerShell 版本,請使用 Get-Module -ListAvailable Az Cmdlet。

您可以使用 Azure Cloud Shell 來執行大部分的 PowerShell Cmdlet 和 CLI 命令,而不用在本機安裝 Azure PowerShell 或 CLI。 Azure Cloud Shell 是一個免費的互動式殼層,具有預先安裝和設定的通用 Azure 工具,可與您的帳戶搭配使用。 若要在 Azure Cloud Shell 上執行本文所包含的任何程式碼,請開啟 Cloud Shell 工作階段、使用某個程式碼區塊上的 [複製] 按鈕來複製程式碼,然後使用 Ctrl+Shift+V (在 Windows 和 Linux 上) 或 Cmd+Shift+V (在 macOS 上) 將程式碼貼到 Cloud Shell 工作階段中。 貼上的文字不會自動執行,請按下 Enter 鍵來執行程式碼。

以下有幾種啟動 Cloud Shell 的方式:

選項 連結
按一下程式碼區塊右上角的 [試試看] 本文中的 Cloud Shell
在您的瀏覽器中開啟 Cloud Shell。 https://shell.azure.com/powershell
按一下 Azure 入口網站右上方功能表上的 [Cloud Shell] 按鈕。 入口網站中的 Cloud Shell

將相同訂用帳戶中的虛擬網路連接到線路

您可以使用下列 Cmdlet,將虛擬網路閘道連結到 ExpressRoute 線路。 執行 Cmdlet 之前,請確定您已建立虛擬網路閘道,並準備好進行連結。

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName "MyRG" -Location "East US" -VirtualNetworkGateway1 $gw -PeerId $circuit.Id -ConnectionType ExpressRoute

將不同訂用帳戶中的虛擬網路連接到線路

您可以讓多個訂用帳戶共用 ExpressRoute 線路。 下圖顯示簡單的圖解,示範多個訂用帳戶共用 ExpressRoute 線路的方式。

注意

不支援連接 Azure 主權雲端與公用 Azure 雲端之間的虛擬網路。 您只能從相同雲端中的不同訂用帳戶連結虛擬網路。

大型雲端內的每個較小型雲端,會用來代表屬於組織內不同部門的訂用帳戶。 組織內的每個部門都可以使用自己的訂用帳戶來部署其服務,但可共用單一 ExpressRoute 線路,以連線回內部部署網路。 單一部門 (在此範例中:IT) 可以擁有 ExpressRoute 循環。 組織內的其他訂用帳戶可以使用 ExpressRoute 線路。

注意

訂用帳戶擁有者需支付 ExpressRoute 循環的連線和頻寬費用。 所有虛擬網路都會共用相同的頻寬。

跨訂用帳戶的連線能力

系統管理 - 線路擁有者和線路使用者

「線路擁有者」是 ExpressRoute 線路資源的已授權「進階使用者」。 電路擁有者能夠建立可由「電路使用者」兌換的授權。 線路使用者是虛擬網路閘道的擁有者,與 ExpressRoute 線路位於不同的訂用帳戶內。 電路使用者可以兌換授權 (每個虛擬網路一個授權)。

電路擁有者能夠隨時修改及撤銷授權。 如果撤銷授權,則在存取權遭撤銷的訂用帳戶中,所有連結連線均會被刪除。

注意

線路擁有者不是內建的 RBAC 角色,或是在 ExpressRoute 資源上定義。 線路擁有者的定義是具有下列存取權的任何角色:

  • Microsoft.Network/expressRouteCircuits/authorizations/write
  • Microsoft.Network/expressRouteCircuits/authorizations/read
  • Microsoft.Network/expressRouteCircuits/authorizations/delete

這包括內建角色,例如參與者、擁有者和網路參與者。 不同 內建角色的詳細描述。

循環擁有者作業

建立授權

線路擁有者會建立授權,這會建立授權金鑰讓線路使用者可用以將其虛擬網路閘道連線到 ExpressRoute 線路。 一個授權僅適用於一個連線。

下列 Cmdlet 程式碼片段示範如何建立授權:

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Add-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization1"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$auth1 = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization1"

對先前命令的回應將包含授權金鑰和狀態:

Name                   : MyAuthorization1
Id                     : /subscriptions/&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&/resourceGroups/ERCrossSubTestRG/providers/Microsoft.Network/expressRouteCircuits/CrossSubTest/authorizations/MyAuthorization1
Etag                   : &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 
AuthorizationKey       : ####################################
AuthorizationUseStatus : Available
ProvisioningState      : Succeeded

檢閱授權

線路擁有者可以藉由執行下列 Cmdlet,來檢閱特定線路上發出的所有授權:

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$authorizations = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit

新增授權

線路擁有者可以使用下列 Cmdlet 來新增授權:

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
Add-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit -Name "MyAuthorization2"
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"
$authorizations = Get-AzExpressRouteCircuitAuthorization -ExpressRouteCircuit $circuit

刪除授權

線路擁有者可以使用下列 Cmdlet 來撤銷/刪除使用者的授權:

Remove-AzExpressRouteCircuitAuthorization -Name "MyAuthorization2" -ExpressRouteCircuit $circuit
Set-AzExpressRouteCircuit -ExpressRouteCircuit $circuit

循環使用者作業

電路使用者需要具備對等識別碼以及電路擁有者所提供的授權金鑰。 授權金鑰是 GUID。

您可以從下列命令檢查「對等識別碼」:

Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG"

兌換連線授權

線路使用者可以執行下列 Cmdlet 來兌換連結授權:

$id = "/subscriptions/********************************/resourceGroups/ERCrossSubTestRG/providers/Microsoft.Network/expressRouteCircuits/MyCircuit"    
$gw = Get-AzVirtualNetworkGateway -Name "ExpressRouteGw" -ResourceGroupName "MyRG"
$connection = New-AzVirtualNetworkGatewayConnection -Name "ERConnection" -ResourceGroupName "RemoteResourceGroup" -Location "East US" -VirtualNetworkGateway1 $gw -PeerId $id -ConnectionType ExpressRoute -AuthorizationKey "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"

釋出連線授權

您可以藉由刪除將 ExpressRoute 線路連結到虛擬網路的連線來釋出授權。

修改虛擬網路連線

您可以更新虛擬網路連線的特定屬性。

更新連線權數

您的虛擬網路可以連接到多個 ExpressRoute 線路。 您可能會收到來自多個 ExpressRoute 線路的相同前置詞。 若要選擇要使用哪一個連線來傳送目的為此前置詞的流量,您可以變更連線的 RoutingWeight。 流量將透過具有最高 RoutingWeight 的連線來傳送。

$connection = Get-AzVirtualNetworkGatewayConnection -Name "MyVirtualNetworkConnection" -ResourceGroupName "MyRG"
$connection.RoutingWeight = 100
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

RoutingWeight 的範圍是從 0 到 32000。 預設值為 0。

設定 ExpressRoute FastPath

如果您的虛擬網路閘道是超效能或 ErGw3AZ,您可以啟用 ExpressRoute FastPath。 FastPath 可改善資料路徑效能,例如每秒封包數,以及內部部署網路與虛擬網路之間的每秒連線數。

在新連線上設定 FastPath

$circuit = Get-AzExpressRouteCircuit -Name "MyCircuit" -ResourceGroupName "MyRG" 
$gw = Get-AzVirtualNetworkGateway -Name "MyGateway" -ResourceGroupName "MyRG" 
$connection = New-AzVirtualNetworkGatewayConnection -Name "MyConnection" -ResourceGroupName "MyRG" -ExpressRouteGatewayBypass -VirtualNetworkGateway1 $gw -PeerId $circuit.Id -ConnectionType ExpressRoute -Location "MyLocation" 

更新現有的連線以啟用 FastPath

$connection = Get-AzVirtualNetworkGatewayConnection -Name "MyConnection" -ResourceGroupName "MyRG" 
$connection.ExpressRouteGatewayBypass = $True
Set-AzVirtualNetworkGatewayConnection -VirtualNetworkGatewayConnection $connection

使用 FastPath 和 Private Link 時,透過 ExpressRoute 傳送的 Private Link 流量會略過資料路徑中的 ExpressRoute 虛擬網路閘道。 對於 100 Gb ExpressRoute Direct 線路相關聯的連線,這已正式推出。 若要這麼做,請遵循下列指引:

  1. 請傳送電子郵件給 ERFastPathPL@microsoft.com,並提供下列資訊:
  • Azure 訂用帳戶識別碼
  • 虛擬網路 (VNet) 資源識別碼
  • 部署私人端點/Private Link 服務的 Azure 區域
  1. 一旦您收到步驟 1 的確認後,請在目標 Azure 訂用帳戶中執行下列 Azure PowerShell 命令。
Register-AzProviderFeature -FeatureName ExpressRoutePrivateEndpointGatewayBypass -ProviderNamespace Microsoft.Network
  1. 在目標連線上停用並啟用 FastPath 讓變更生效。 此步驟完成後。 經過 ExpressRoute 的 100 Gb Private Link 流量會略過資料路徑中的 ExpressRoute 虛擬網路閘道。

注意

您可以使用連線監視器,以使用 FastPath 來驗證您的流量到達目的地。

註冊 ExpressRoute FastPath 功能 (預覽)

FastPath 虛擬網路對等互連和使用者定義的路由 (UDR)。

利用 FastPath 和虛擬網路對等互連,您可以直接對本機或對等互連虛擬網路中的 VM 啟用 ExpressRoute 連線,略過資料路徑中的 ExpressRoute 虛擬網路閘道。

使用 FastPath 和 UDR,您可以在 GatewaySubnet 上設定 UDR,將 ExpressRoute 流量導向 Azure 防火牆或第三方 NVA。 FastPath 會接受 UDR 並將流量直接傳送至目標 Azure 防火牆或 NVA,並略過資料路徑中的 ExpressRoute 虛擬網路閘道。

若要在預覽版中註冊,請傳送電子郵件給 exrpm@microsoft.com ,並提供下列資訊:

  • Azure 訂用帳戶識別碼
  • 虛擬網路 (VNet) 資源識別碼
  • ExpressRoute 線路資源識別碼

虛擬網路對等互連和 UDR 的 FastPath 支援僅適用于 ExpressRoute Direct 連線

使用 FastPath 和 Private Link 時,透過 ExpressRoute 傳送的 Private Link 流量會略過資料路徑中的 ExpressRoute 虛擬網路閘道。 此預覽支援 10 Gbps ExpressRoute Direct 線路相關聯的連線。 此預覽不支援由 ExpressRoute 合作夥伴管理的 ExpressRoute 線路。

若要註冊此預覽,請在目標 Azure 訂用帳戶中執行下列 Azure PowerShell 命令:

Register-AzProviderFeature -FeatureName ExpressRoutePrivateEndpointGatewayBypass -ProviderNamespace Microsoft.Network

注意

將會在此選取的預覽中註冊針對目標訂用帳戶中的 FastPath 所設定的任何連線。 我們不建議在生產訂用帳戶中啟用這些預覽。 如果您已經設定 FastPath 且想要註冊預覽功能,則需要執行下列動作:

  1. 使用上述的 Azure PowerShell 命令註冊其中一項 FastPath 預覽功能。
  2. 在目標連線上停用並重新啟用 FastPath。
  3. 若要在預覽功能之間切換,請向目標預覽 PowerShell 命令長註冊訂用帳戶,然後在連線上停用再重新啟用 FastPath。

清除資源

如果您不再需要 ExpressRoute 連線,請從閘道所在的訂用帳戶使用 Remove-AzVirtualNetworkGatewayConnection 命令來移除閘道與線路之間的連結。

Remove-AzVirtualNetworkGatewayConnection "MyConnection" -ResourceGroupName "MyRG"

後續步驟

在本教學課程中,您已了解如何將虛擬網路連線至相同訂用帳戶和不同訂用帳戶中的線路。 如需 ExpressRoute 閘道的詳細資訊,請參閱 ExpressRoute 虛擬網路閘道

若要了解如何使用 PowerShell 設定 Microsoft 對等互連的路由篩選,請進入下一個教學課程。