你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
边界网关协议(BGP)前缀限制是客户边缘(CE)设备的基本重载保护机制。 当 Azure 运营商关系租户将过多的 BGP 路由播发到 Azure 运营商关系虚拟路由和转发 (VRF) 实例时,这有助于防止 Azure 运营商关系网络结构不堪重负。 此功能通过控制从 BGP 对等方接收的前缀数来帮助确保网络稳定性和安全性。
BGP 前缀限制的配置
若要配置 BGP 前缀限制,可以使用两个主要参数:
max-routes
warn-threshold
硬性限制(最大路由)
该 max-routes
参数指定 BGP 路由器可从邻居接受的最大前缀数。 如果数量超出此限制,将终止与该邻居的BGP会话。 此阈值是保护路由器免受过多负载和保持网络稳定性的硬性限制。
软限制(警告阈值)
参数 warn-threshold
是软限制。 当前缀数超过此阈值时,将触发警告,但 BGP 会话保持活动状态。 这种保障措施是预防措施,以便管理员可以在达到硬限制之前进行干预。
若要在 CE 设备上为 Azure Operator Nexus 配置 BGP 前缀限制,请执行以下步骤。 此配置包括设置 BGP 会话的前缀限制,以管理网络稳定性,并防止当租户宣告过多 BGP 路由时,Nexus 网络架构不堪重负。
先决条件
- 确保 Azure 运营商关系网络结构已升级到支持的版本或更高版本。
- 验证 CE 设备是否在兼容的软件上运行。
- 检查是否为内部网络正确设置了 IPv4 和 IPv6 地址系列的对等组。
配置 BGP 前缀限制的步骤
步骤 1:定义 BGP 前缀限制
使用参数 maximumRoutes
和 threshold
配置 BGP 前缀限制:
-
maximumRoutes
:此参数定义路由器从 BGP 对等方接受的最大 BGP 前缀数。 -
threshold
:此参数将警告阈值定义为参数的maximumRoutes
百分比。 当前缀数超过此阈值时,将生成警告。
步骤 2:在 CE 设备上配置
示例 1:自动重启的 BGP 前缀限制
当超出前缀限制时,此配置会在定义的空闲时间后自动重启会话。
{
"prefixLimits": {
"maximumRoutes": 5000,
"threshold": 80,
"idleTimeExpiry": 100
}
}
解释:
-
maximumRoutes
:BGP 会话的限制为 5,000 个路由。 -
threshold
:当前缀计数达到 80%(4,000 个路由)时,将触发警告。 -
idleTimeExpiry
:如果会话已关闭,则在空闲时间 100 秒后自动重启。
示例 2:无需自动重启的 BGP 前缀限制
达到最大前缀限制时,此配置会关闭会话。 需要手动干预才能重启会话。
{
"prefixLimits": {
"maximumRoutes": 5000,
"threshold": 80
}
}
解释:
-
maximumRoutes
:BGP 会话的限制为 5,000 个路由。 -
threshold
:当前缀计数达到 80%(4,000 个路由)时,将触发警告。 - 无自动重启。 需要手动干预才能重启会话。
示例 3:硬限制删除 BGP 会话
如果超出前缀限制而不维护已删除路由的缓存,则此配置会删除额外的路由。
{
"prefixLimits": {
"maximumRoutes": 5000
}
}
解释:
-
maximumRoutes
:BGP 会话的限制为 5,000 个路由。 - 达到限制后,CE 设备会删除从 BGP 对等方接收的任何额外前缀。
示例 4:仅限硬限制警告
此配置在前缀计数达到最大限制的一定百分比但不会关闭会话后生成警告。
{
"prefixLimits": {
"maximumRoutes": 8000,
"threshold": 75,
"warning-only": true
}
}
解释:
-
maximumRoutes
:BGP 会话的限制为 8,000 个路由。 -
threshold
:当前缀计数达到 75%(6,000 个路由)时,将生成警告。 - 会话未关闭。 此配置仅用于生成警告,而无需执行任何会话终止作。
步骤 3:使用 Azure CLI 应用配置
可以使用 Azure CLI 命令将 BGP 前缀限制应用于 Nexus 的外部网络配置。
自动重启:
az networkfabric externalnetwork create --resource-group <resource-group> --fabric-name <fabric-name> --network-name <network-name> --prefix-limits '{"maximumRoutes": 5000, "threshold": 80, "idleTimeExpiry": 100}'
不会自动重启:
az networkfabric externalnetwork create --resource-group <resource-group> --fabric-name <fabric-name> --network-name <network-name> --prefix-limits '{"maximumRoutes": 5000, "threshold": 80}'
硬限制删除 BGP 会话:
az networkfabric externalnetwork create --resource-group <resource-group> --fabric-name <fabric-name> --network-name <network-name> --prefix-limits '{"maximumRoutes": 5000}'
仅限硬限制警告:
az networkfabric externalnetwork create --resource-group <resource-group> --fabric-name <fabric-name> --network-name <network-name> --prefix-limits '{"maximumRoutes": 8000, "threshold": 75, "warning-only": true}'
步骤 4:监视和验证配置
应用配置后,请确保监视 BGP 会话并验证是否正确强制实施前缀限制。 使用以下命令检查 BGP 会话的状态:
show ip bgp summary
查找会话状态以及每个对等方播发的前缀数。 如果达到限制,应会看到会话状态根据配置更改为 “已建立 ”或 “空闲 ”。
注意事项
- 阈值和最大限制: 确保设置适当的阈值,以避免不必要的会话终止,同时仍保护网络免受重载。
- 自动重启与手动重启: 根据网络作,在自动和手动重启选项之间进行选择。 自动重启有助于最大程度地减少手动干预。 手动重启可能会让网络管理员更好地控制恢复。
处理不同网络的 BGP 前缀限制
内部网络
该平台支持租户工作负荷的第 3 层隔离域(L3IsolationDomain
)。 它针对 IPv4 和 IPv6 地址系列使用对等组的 Nexus 实例和 Arista 设备执行设备编程。
外部网络选项 B(提供程序边缘)
对于外部网络配置,仅支持硬限制 warning-only
选项。 Nexus 通过具有 NNI optionBlayer3Configuration
参数的 maximumRoutes
下的 Azure 资源管理器 API 支持此配置。
NNI 选项 A
对于网络间接口(NNI)选项A,只允许一个对等组。 不支持通过 IPv6 使用 IPv4,反之亦然。 该 warning-only
模式可用于处理前缀限制。
按照本文中的步骤作,可以有效地配置 BGP 前缀限制以保护网络免受重载。 您可以帮助确保为内部和外部网络正确管理 BGP 会话。