了解 BGP 路径选择
对于路由表中的每个前缀,路由协议进程会选择一条最佳路径。选择最佳路径后,路由将安装在路由表中。如果具有较低(更优选)全局优先级值(也称为管理距离)的协议未学习同一前缀,则最佳路径将成为活动路由。用于确定活动路由的算法如下:
-
验证下一跃点是否可解析。
-
选择具有最低优先级值(路由协议进程优先级)的路径。
不符合转发条件的路由(例如,由于被路由策略拒绝或下一跃点无法访问)的优先级为 –1,并且永远不会被选中。
-
首选本地优先级较高的路径。
对于非 BGP 路径,请选择 优先级 2 值最低的路径。
-
如果启用了累积内部网关协议 (AIGP) 属性,请添加 IGP 指标,并首选 AIGP 属性较低的路径。
-
首选具有最短自治系统 (AS) 路径值的路径(如果配置了
as-path-ignore语句,则跳过)。联合体分段(序列或集)的路径长度为 0。AS 集的路径长度为 1。
-
首选源代码较低的路由。
从 IGP 获知的路由的源代码低于从外部网关协议 (EGP) 获知的路由,并且源代码都低于不完整路由(来源未知的路由)。
-
首选多出口点识别器 (MED) 指标最低的路径。
根据是否配置了非确定性路由表路径选择行为,有两种可能的情况:
-
如果未配置非确定性路由表路径选择行为(即,如果 BGP 配置中未包含该
path-selection cisco-nondeterministic语句),则对于在 AS 路径前面具有相同相邻 AS 编号的路径,首选 MED 指标最低的路径。要始终比较 MED,无论所比较的路由的对等 AS 是否相同,请包含该path-selection always-compare-med语句。 -
如果配置了非确定性路由表路径选择行为(即,该
path-selection cisco-nondeterministic语句包含在 BGP 配置中),则首选 MED 指标最低的路径。
确定相邻 AS 时,不考虑联合体。缺少的 MED 指标被视为 MED 存在但为零。
注意:MED 比较适用于 AS 内的单路径选择(当路由不包含 AS 路径时),但这种用法并不常见。
默认情况下,仅比较具有相同对等自治系统 (AS) 的路由的 MED。您可以配置路由表路径选择选项以获得不同的行为。
-
-
优先选择严格的内部路径,其中包括 IGP 路由和本地生成的路由(静态、直接、本地等)。
-
优先选择严格的外部 BGP (EBGP) 路径,而不是通过内部 BGP (IBGP) 会话获知的外部路径。
-
首选下一跃点通过指标最低的 IGP 路由解析的路径。通过 IGP 解析的 BGP 路由优先于无法访问或被拒绝的路由。
注意:如果在上一步之后执行决胜局,则路径将被视为 BGP 等价路径(并将用于转发)。具有同一相邻 AS、由支持多路径的 BGP 邻接方获知的所有路径都会被考虑在内。
BGP 多路径不适用于共享相同 MED 加 IGP 成本但 IGP 成本不同的路径。多路径路径选择基于 IGP 成本指标,即使两条路径具有相同的 MED 加 IGP 成本。
-
如果两条路径都是外部的,则首选最旧的路径,换句话说,首先学习的路径。这样做是为了尽量减少路由摆动。如果满足以下任一条件,则不使用此规则:
-
配置了路径选择外部路由器 ID。
-
两个对等方具有相同的路由器 ID。
-
任一对等方都是联合体对等方。
-
两条路径都不是当前活动路径。
-
-
首选来自路由器 ID 最低的对等方的路径。对于具有发起方 ID 属性的任何路径,请在比较路由器 ID 期间用发起方 ID 替换路由器 ID。
-
首选群集列表长度最短的路径。长度为 0 表示无列表。
-
首选来自对等方 IP 地址最低的对等方的路径。
-
优先选择主路由而不是辅助路由。主路由是属于路由表的路由。辅助路由是通过导出策略添加到路由表的路由。
路由表路径选择
默认情况下,算法的最短 AS 路径步骤会评估 AS 路径的长度并确定活动路径。您可以配置一个选项,通过包含 as-path-ignore 选项,使 Junos OS 能够跳过此算法步骤。
从 Junos OS 14.1R8、14.2R7、15.1R4、15.1F6 和 16.1R1 版开始,路由实例支持 as-path-ignore 选项。
在 BGP 将路径移交给路由表做出决定之前,会选择路由进程路径。要配置路由表路径选择行为,请包含以下 path-selection 语句:
path-selection { (always-compare-med | cisco-non-deterministic | external-router-id); as-path-ignore; l2vpn-use-bgp-rules; med-plus-igp { igp-multiplier number; med-multiplier number; } }
有关可包含此语句的层次结构级别列表,请参阅此语句的语句摘要部分。
可以通过以下方式之一配置路由表路径选择:
-
模拟Cisco IOS默认行为(cisco非确定性行为)。此模式按接收顺序评估路由,不会根据相邻 AS 对其进行分组。使用模式时
cisco-non-deterministic,活动路径始终排在第一位。所有非活动但符合条件的路径都遵循活动路径,并按接收顺序进行维护,最近的路径在前。不合格的路径将保留在列表末尾。例如,假设您有 192.168.1.0 /24 路由的三个路径播发:
-
路径 1 — 通过 EBGP 学习;AS 路径为 65010;MED of 200
-
路径 2 — 通过 IBGP 学习;AS 路径为 65020;150 人的 MED;5 的 IGP 成本
-
路径 3 - 通过 IBGP 学习;AS 路径为 65010;100 的 MED;10 的 IGP 成本
这些广告会在一秒钟内按照列出的顺序快速连续接收。路径 3 是最近收到的,因此路由设备会将其与路径 2(下一个最近的播发)进行比较。路径 2 的 IBGP 对等方成本较好,因此路由设备会从争用中消除路径 3。比较路径 1 和路径 2 时,路由设备首选路径 1,因为它是从 EBGP 对等方接收的。这允许路由设备将路径 1 安装为路由的活动路径。
注意:我们不建议在您的网络中使用此配置选项。其仅用于互作性,使网络中的所有路由设备都能做出一致的路由选择。
-
始终比较 MED,无论所比较的路由的对等 AS 是否相同 (always-compare-med)。
覆盖以下规则:如果两个路径都是外部路径,则首选当前活动路径 (external-路由器-id)。继续路径选择过程中的下一步(步骤 15)。
在比较路径选择的 MED 值之前,将下一跃点目标的 IGP 成本添加到 MED 值中 (
med-plus-igp)。BGP 多路径不适用于共享相同 MED 加 IGP 成本但 IGP 成本不同的路径。多路径路径选择基于 IGP 成本指标,即使两条路径具有相同的 MED 加 IGP 成本。
BGP 表路径选择
BGP 的路径选择遵循以下参数:
-
首选最高的本地优先级值。
-
首选最短 AS 路径长度。
-
首选最低源值。
-
首选最低的 MED 值。
-
优先选择从 EBGP 对等方获知的路由,而不是 IBGP 对等方。
-
首选最佳退出 AS。
-
对于 EBGP 接收的路由,首选当前活动路由。
-
首选来自路由器 ID 最低的对等方的路由。
-
首选群集长度最短的路径。
-
首选来自对等方 IP 地址最低的对等方的路由。步骤 2、6 和 12 是 RPD 标准。
播发到目标的多个路径的影响
BGP 仅播发活动路径,除非您将 BGP 配置为将多个路径播发到目标。
假设路由设备的路由表中有四条到目标的路径,并且配置为通告最多三条路径(add-path send path-count 3)。三条路径是根据路径选择标准选择的。也就是说,按路径选择顺序选择三个最佳路径。最佳路径是活动路径。此路径将从考虑范围中移除,并选择新的最佳路径。重复此过程,直到达到指定数量的路径。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。