設定 Azure ExpressRoute 私人對等互連的自訂 BGP 社群

BGP 社群是以社群值標記的 IP 前置詞群組。 此值可用來在路由器的基礎結構上制定路由決策。 透過 BGP 社群標記,您可以對從 Azure 傳送至內部部署環境的流量套用篩選條件或指定路由喜好設定。 本文說明如何使用 Azure PowerShell 為您的虛擬網路套用自訂 BGP 社群值。 設定好之後,您就可以檢視您虛擬網路的區域 BGP 社群值和自訂社群值。 此值將用於透過 ExpressRoute 從該虛擬網路傳送的輸出流量。

必要條件

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

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

    • 遵循指示來 建立 ExpressRoute 線路 ,並由您的連線提供者來啟用該線路。
    • 請確定您已為線路設定 Azure 私人對等互連。 請參閱 設定路由 一文,以取得路由指示。
    • 請確定您已設定 Azure 私人對等互連,並在您的網路與 Microsoft 之間建立 BGP 對等互連,以進行端對端連線。

使用 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 in this article
在您的瀏覽器中開啟 Cloud Shell。 https://shell.azure.com/powershell
按一下 Azure 入口網站右上方功能表上的 [Cloud Shell] 按鈕。 Cloud Shell in the portal

針對新的虛擬網路套用自訂 BGP 社群值

  1. 若要開始設定,請登入 Azure 帳戶,然後選取您想要使用的訂用帳戶。

    如果您使用 Azure Cloud Shell,您可以在按一下 [試用] 之後自動登入您的 Azure 帳戶。 若要在本機登入,請以提高的權限開啟 PowerShell 主控台並執行 Cmdlet 以連線。

    Connect-AzAccount
    

    如果您有多個訂用帳戶,請取得 Azure 訂用帳戶的清單。

    Get-AzSubscription
    

    指定您要使用的訂用帳戶。

    Select-AzSubscription -SubscriptionName "Name of subscription"
    
  2. 建立資源群組以儲存新的虛擬網路。

    $rg = @{
        Name = 'myERRG'
        Location = 'WestUS'
    }
    New-AzResourceGroup @rg
    
  3. 使用 -BgpCommunity 旗標建立新的虛擬網路,以套用 BGP 社群值。

    $vnet = @{
        Name = 'myVirtualNetwork'
        ResourceGroupName = 'myERRG'
        Location = 'WestUS'
        AddressPrefix = '10.0.0.0/16'
        BgpCommunity = '12076:20001'    
    }
    New-AzVirtualNetwork @vnet
    

    注意

    您的自訂社群值之前必須有 12076:

  4. 擷取您的虛擬網路,並檢查其屬性。 您將會看到包含 RegionalCommunity 值和 VirtualNetworkCommunity 值的 BgpCommunities 區段。 RegionalCommunity 值是根據虛擬網路的 Azure 區域預先定義的。 VirtualNetworkCommunity 值應符合您的自訂定義。

    $virtualnetwork = @{
        Name = 'myVirtualNetwork'
        ResourceGroupName = 'myERRG'
    } 
    Get-AzVirtualNetwork @virtualnetwork
    

套用或更新現有虛擬網路的自訂 BGP 值

  1. 取得您想要套用或更新 BGP 社群值的虛擬網路,並將其儲存至變數。

    $virtualnetwork = @{
        Name = 'myVirtualNetwork'
        ResourceGroupName = 'myERRG'
    } 
    $vnet = Get-AzVirtualNetwork @virtualnetwork
    
  2. 更新虛擬網路的 VirtualNetworkCommunity 值。

    $vnet.BgpCommunities = @{VirtualNetworkCommunity = '12076:20002'}
    $vnet | Set-AzVirtualNetwork
    

    注意

    您的自訂社群值之前必須有 12076:

  3. 擷取您的虛擬網路,並檢查其已更新的屬性。 RegionalCommunity 值是根據虛擬網路的 Azure 區域預先定義的;若要檢視私人對等互連的區域 BGP 社群值,請參閱 ExpressRoute 路由需求VirtualNetworkCommunity 值應符合您的自訂定義。

    $virtualnetwork = @{
        Name = 'myVirtualNetwork'
        ResourceGroupName = 'myERRG'
    } 
    Get-AzVirtualNetwork @virtualnetwork
    

下一步