路由篩選可讓您透過Microsoft對等互連來取用支援的服務子集。 本文會引導您設定和管理 ExpressRoute 線路的路由篩選。
Microsoft 365 服務,例如 Exchange Online、SharePoint Online 和 商務用 Skype,可透過Microsoft對等互連來存取。 在 ExpressRoute 線路中設定 Microsoft 對等互連時,所有與這些服務相關的前置詞都會透過 BGP 會話公告。 每個前置詞都有 BGP 社群值,可識別其提供的服務。 如需 BGP 社群值及其對應服務的清單,請參閱 BGP 社群。
連線到所有 Azure 和 Microsoft 365 服務,可能會導致大量前綴透過 BGP 公告,大幅增加路由表的大小。 如果您只需要透過Microsoft對等互連所提供的服務子集,您可以透過:
- 在 BGP 社群上使用路由篩選來篩選不必要的前置詞,這是常見的網路作法。
- 定義路由篩選,並將其套用至 ExpressRoute 線路。 路由篩選器是一項資源,可讓您選取計畫透過Microsoft對等互連取用的服務。 ExpressRoute 路由器只會傳送路由篩選中所識別服務的前置詞。
關於路由篩選器
在 ExpressRoute 線路上設定 Microsoft 對等互連時,Microsoft 邊緣路由器會透過連線提供者與邊緣路由器建立 BGP 會話。 在您建立路由篩選的關聯之前,不會將路由公告至您的網路。
路由篩選可讓您指定想要透過 ExpressRoute 線路Microsoft對等互連取用的服務。 其可作為 BGP 社群值的允許清單。 定義路由篩選並附加至 ExpressRoute 線路之後,對應至 BGP 社群值的所有前置詞都會公告至您的網路。
若要附加具有 Microsoft 365 服務的路由篩選,您必須獲得授權,才能透過 ExpressRoute 取用 Microsoft 365 服務。 如果您未獲授權,附加路由篩選的作業會失敗。 如需授權程序的詳細資訊,請參閱 Microsoft 365 的 Azure ExpressRoute。
重要
Microsoft 2017 年 8 月 1 日之前設定的 ExpressRoute 線路對等互連,即使沒有路由篩選,也會透過Microsoft對等互連公告所有Microsoft Office 服務前置詞。 針對在 2017 年 8 月 1 日或之後設定的線路,在路由篩選附加至線路之前,不會公告任何前置詞。
必要條件
開始設定之前,請先檢閱 必要條件 和 工作流程 。
- 請確定您有已設定Microsoft對等互連的作用中 ExpressRoute 線路。 如需指示,請參閱:
- 您必須具有已佈建 Microsoft 對等互連的使用中 ExpressRoute 線路。 您可以使用下列指示來完成這些工作:
Azure Cloud Shell
Azure Cloud Shell 是由 Azure 提供的互動式命令行環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell 來處理 Azure 服務。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
若要啟動 Azure Cloud Shell:
| 選項 |
範例/連結 |
| 選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 |
|
| 請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 |
|
| 選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
|
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 Enter 以執行程式碼或命令。
如果您使用 Azure Cloud Shell,您可以在按一下 [試用] 之後自動登入您的 Azure 帳戶。 若要在本機登入,請以提高的權限開啟 PowerShell 主控台並執行 Cmdlet 以連線。
Connect-AzAccount
如果您有多個訂用帳戶,請取得 Azure 訂用帳戶的清單。
Get-AzSubscription
指定您要使用的訂用帳戶。
Select-AzSubscription -SubscriptionName "Name of subscription"
若要成功透過 Microsoft 對等互連連線到服務,您必須完成下列設定步驟:
- 您必須具有已佈建 Microsoft 對等互連的使用中 ExpressRoute 線路。 您可以使用下列指示來完成這些工作:
Azure Cloud Shell
Azure Cloud Shell 是由 Azure 提供的互動式命令行環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell 來處理 Azure 服務。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。
若要啟動 Azure Cloud Shell:
| 選項 |
範例/連結 |
| 選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 |
|
| 請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 |
|
| 選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 |
|
若要使用 Azure Cloud Shell:
啟動 Cloud Shell。
選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。
透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。
選取 Enter 以執行程式碼或命令。
如果您選擇在本機安裝和使用 CLI,本教學課程需要 Azure CLI 2.0.28 版或更新版本。 若要尋找版本,請執行 az --version。 如果您需要安裝或升級,請參閱 安裝 Azure CLI。
登入您的 Azure 帳戶並且選取您的訂用帳戶
若要開始您的組態,請登入您的 Azure 帳戶。 如果您使用「試用」,則會自動登入,可略過登入步驟。 使用下列範例來協助您連接:
az login
檢查帳戶的訂閱。
az account list
選取您想要建立 ExpressRoute 線路的訂用帳戶。
az account set --subscription "<subscription ID>"
取得前置詞和 BGP 社群值的清單
使用下列 Cmdlet 來取得與可透過 Microsoft 對等互連存取的服務相關聯 BGP 社群值和前置詞清單:
Get-AzBgpServiceCommunity
使用下列 Cmdlet 來取得與可透過 Microsoft 對等互連存取的服務相關聯 BGP 社群值和前置詞清單:
az network route-filter rule list-service-communities
製作您想要使用的值清單
列出您想要在路由篩選中使用的 BGP 社群值。
建立路由篩選器和篩選規則
路由篩選只能有一個規則,其類型必須為 Allow。 此規則可以包含 BGP 社群值的清單。
選取 [建立資源 ],然後搜尋 [路由篩選]:
將路由篩選器放在資源群組中。 確定位置符合 ExpressRoute 線路。 選取 [檢閱 + 建立],然後選取 [建立]。
建立篩選規則
若要新增和更新規則,請為您的路由篩選選取 [受控規則] 索引標籤。
然後,從下拉式清單中選取您想要連線到的服務,然後儲存規則。
路由篩選只能有一個規則,且規則的類型必須是 Allow。 此規則可以擁有與其相關聯的 BGP 社群值清單。
az network route-filter create 命令只會建立路由篩選資源。 建立資源之後,您必須建立規則,然後將它附加到路由篩選物件。
若要建立路由篩選資源,請執行下列命令:
New-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup" -Location "West US"
若要建立路由篩選規則,請執行下列命令:
$rule = New-AzRouteFilterRuleConfig -Name "Allow-EXO-D365" -Access Allow -RouteFilterRuleType Community -CommunityList 12076:5010,12076:5040
執行下列命令以將篩選規則新增至路由篩選:
$routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
$routefilter.Rules.Add($rule)
Set-AzRouteFilter -RouteFilter $routefilter
路由篩選器只能有一個規則,且規則的類型必須是 'Allow'。 此規則可以擁有與其相關聯的 BGP 社群值清單。
az network route-filter create 命令只會建立路由篩選資源。 建立資源之後,您必須建立規則,然後將它附加到路由篩選物件。
若要建立路由篩選資源,請執行下列命令:
az network route-filter create -n MyRouteFilter -g MyResourceGroup
若要建立路由篩選規則,請執行下列命令:
az network route-filter rule create --filter-name MyRouteFilter -n CRM --communities 12076:5040 --access Allow -g MyResourceGroup
將路由篩選器連結至 ExpressRoute 線路
選取 [+ 新增線路 ] 按鈕,然後從下拉式清單中選擇 ExpressRoute 線路,將路由篩選附加至線路。
如果您的連線提供者設定 ExpressRoute 線路的對等互連,請先從 ExpressRoute 線路頁面重新整理線路,再選取 [+ 新增線路 ] 按鈕。
若您只有 Microsoft 對等互連,請執行下列命令,將路由器篩選附加在 ExpressRoute 線路上:
$ckt = Get-AzExpressRouteCircuit -Name "ExpressRouteARMCircuit" -ResourceGroupName "MyResourceGroup"
$index = [array]::IndexOf(@($ckt.Peerings.PeeringType), "MicrosoftPeering")
$ckt.Peerings[$index].RouteFilter = $routefilter
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
執行下列命令以將路由篩選連結至 ExpressRoute 線路:
az network express-route peering update --circuit-name MyCircuit -g ExpressRouteResourceGroupName --name MicrosoftPeering --route-filter MyRouteFilter
常見工作
取得路由篩選器的屬性
在入口網站中開啟資源,以檢視路由篩選的屬性。
若要取得路由篩選的屬性,請使用下列步驟:
執行下列命令以取得路由篩選資源:
$routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
藉由執行下列命令以取得路由篩選資源的路由篩選規則:
$routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
$rule = $routefilter.Rules[0]
若要取得路由篩選的屬性,請使用下列命令:
az network route-filter show -g ExpressRouteResourceGroupName --name MyRouteFilter
更新路由篩選器的屬性
選取 [管理規則 ] 按鈕,以更新附加至線路的 BGP 社群值清單。
選取您想要的服務社群,然後選取 [儲存]。
如果路由篩選已連接到線路,BGP 社群清單更新會自動透過已建立的 BGP 工作階段傳播前置詞公告變更。 您可以使用下列命令來更新路由篩選的 BGP 社群清單:
$routefilter = Get-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
$routefilter.rules[0].Communities = "12076:5030", "12076:5040"
Set-AzRouteFilter -RouteFilter $routefilter
如果路由篩選已連接到線路,BGP 社群清單更新會自動透過已建立的 BGP 工作階段傳播前置詞公告變更。 您可以使用下列命令來更新路由篩選的 BGP 社群清單:
az network route-filter rule update --filter-name MyRouteFilter -n CRM -g ExpressRouteResourceGroupName --add communities '12076:5040' --add communities '12076:5010'
中斷路由篩選器和 ExpressRoute 線路的連結
以滑鼠右鍵按兩下線路,然後選取 [中斷關聯],從路由篩選中斷線路。
一旦從 ExpressRoute 線路取消連結路由篩選,就不會透過 BGP 工作階段公告任何前置詞。 您可以使用下列命令以從 ExpressRoute 線路取消連結路由篩選:
$ckt.Peerings[0].RouteFilter = $null
Set-AzExpressRouteCircuit -ExpressRouteCircuit $ckt
一旦從 ExpressRoute 線路取消連結路由篩選,就不會透過 BGP 工作階段公告任何前置詞。 您可以使用下列命令以從 ExpressRoute 線路取消連結路由篩選:
az network express-route peering update --circuit-name MyCircuit -g ExpressRouteResourceGroupName --name MicrosoftPeering --remove routeFilter
清除資源
選取 [刪除] 按鈕來刪除路由篩選。 在執行此動作之前,請確定路由篩選器未與任何線路相關聯。
您只能在路由篩選尚未連結至任何線路時刪除路由篩選。 請在嘗試刪除之前,確認路由篩選尚未連結至任何線路。 您可以使用下列命令來刪除路由篩選:
Remove-AzRouteFilter -Name "MyRouteFilter" -ResourceGroupName "MyResourceGroup"
您只能在路由篩選尚未連結至任何線路時刪除路由篩選。 請在嘗試刪除之前,確認路由篩選尚未連結至任何線路。 您可以使用下列命令來刪除路由篩選:
az network route-filter delete -n MyRouteFilter -g MyResourceGroup
後續步驟
如需路由器設定範例的相關資訊,請參閱: