路由筛选器让你可以通过 Microsoft 对等互连使用部分受支持服务。 本文将指导你配置和管理 ExpressRoute 线路的路由筛选器。
可通过 Microsoft 对等互连访问 Exchange Online、SharePoint Online 和 Skype for Business 等 Microsoft 365 服务。 如果在 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。
重要
在 2017 年 8 月 1 日之前配置的 ExpressRoute 线路的 Microsoft 对等互连,即使无路由筛选器,也会通过 Microsoft 对等互连播发所有 Microsoft Office 服务前缀。 对于在 2017 年 8 月 1 日或之后配置的线路,在路由筛选器附加到线路之前,不会播发任何前缀。
先决条件
在开始配置之前,请查看先决条件和工作流。
- 确保活动的 ExpressRoute 线路已配置 Microsoft 对等互连。 有关说明,请参阅:
- 必须具备预配了 Microsoft 对等互连的活动 ExpressRoute 线路。 可使用以下说明完成这些任务:
Azure Cloud Shell
Azure 托管 Azure Cloud Shell,这是一个可以通过浏览器使用的交互式 shell 环境。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用,以使用 Azure 服务。 可以使用 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 托管 Azure Cloud Shell,这是一个可以通过浏览器使用的交互式 shell 环境。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用,以使用 Azure 服务。 可以使用 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 社区值。
创建路由筛选器和筛选器规则
1 个路由筛选器只能有 1 个规则,并且规则类型必须是“允许”。 此规则可以包含 BGP 社区值的列表。
选择“创建资源”并搜索“路由筛选器”:
请将路由筛选器放置在资源组中。 确保位置与 ExpressRoute 线路匹配。 选择“查看 + 创建”,然后选择“创建” 。
创建筛选器规则
若要添加和更新规则,请为路由筛选器选择“管理规则”选项卡。
然后从下拉列表中选择希望连接的服务并保存规则。
1 个路由筛选器只能有 1 个规则,并且规则类型必须是 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
1 个路由筛选器只能有 1 个规则,并且规则类型必须是“允许”。 此规则可以有与之关联的 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 线路页面中刷新该线路,再选择“+添加线路”按钮。
运行以下命令将路由筛选器附加到 ExpressRoute 线路,假设你只有 Microsoft 对等互连:
$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
后续步骤
若要了解路由器配置示例,请参阅: