在此页面上
了解 BGP 路径选择
对于路由表中的每个前缀,路由协议进程选择一个最佳路径。选择最佳路径后,路由将安装在路由表中。如果具有较低(更首选)全局优先级值(也称为管理距离)的协议未获知相同的前缀,则最佳路径将成为活动路由。确定活动路由的算法如下:
-
验证是否可以解析下一跃点。
-
选择具有最低首选项值(路由协议进程首选项)的路径。
不符合转发条件的路由(例如,由于路由策略拒绝或无法访问下一跃点)的优先级为 –1,并且永远不会被选中。
-
首选具有较高本地优先级的路径。
对于非 BGP 路径,请选择具有最低 ppreferences2 值的路径。
-
如果启用了累积内部网关协议 (AIGP) 属性,请添加 IGP 指标,并优先选择具有较低 AIGP 属性的路径。
-
首选具有最短自治系统 (AS) 路径值的路径(如果配置了
as-path-ignore
语句,则跳过)。联合段(序列或集合)的路径长度为 0。AS 集的路径长度为 1。
-
首选起点代码较低的路线。
从 IGP 获知的路由的源码低于从外部网关协议 (EGP) 获知的路由,并且两者的源码都低于不完整的路由(来源未知的路由)。
-
首选具有最低多重出口鉴别器 (MED) 指标的路径。
根据是否配置了非确定性路由表路径选择行为,有两种可能的情况:
-
如果未配置非确定性路由表路径选择行为(即,如果
path-selection cisco-nondeterministic
语句未包含在 BGP 配置中),对于在 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-plus-IGP 成本但 IGP 成本不同的路径。多路径路径选择基于 IGP 成本指标,即使两条路径具有相同的 MED-plus-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 开始,路由实例支持 路径忽略 选项。
路由进程路径选择在 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; } }
有关可包含此语句的层次结构级别的列表,请参阅此语句的语句摘要部分。
可以通过以下方式之一配置路由表路径选择:
模拟思科 IOS 默认行为(思科非确定性)。此模式按接收顺序评估路由,不会根据相邻 AS 对其进行分组。在
cisco-non-deterministic
模式下,活动路径始终排在第一位。所有非活动但符合条件的路径都遵循活动路径,并按接收顺序进行维护,最新的路径排在最前面。不符合条件的路径仍位于列表末尾。例如,假设 192.168.1.0 /24 路由有三个路径播发:
路径 1 - 通过 EBGP 学习;AS 路径 65010;MED 的 200
路径 2 - 通过 IBGP 学习;AS 路径为 65020;MED 为 150;IGP 成本为 5
路径 3 — 通过 IBGP 学习;AS 路径 65010;MED 为 100;IGP 成本为 10
这些广告按列出的顺序在一秒钟内快速连续收到。路径 3 是最近收到的,因此路由设备会将其与路径 2(下一个最新的播发)进行比较。对于路径 2,IBGP 对等方的成本更好,因此路由设备消除了路径 3 的争用。比较路径 1 和 2 时,路由设备首选路径 1,因为它是从 EBGP 对等方接收的。这允许路由设备将路径 1 安装为路由的活动路径。
注意:建议不要在网络中使用此配置选项。它仅用于互操作性,以允许网络中的所有路由设备做出一致的路由选择。
始终比较 MED,无论所比较路由的对等 AS 是否相同(始终比较)。
覆盖以下规则:如果两个路径都是外部路径,则首选当前活动路径 (external-router-id)。继续执行路径选择过程中的下一步(步骤 12)。
在比较路径选择的 MED 值之前,将下一跃点目标的 IGP 成本添加到 MED 值 (
med-plus-igp
)。BGP 多路径不适用于共享相同 MED-plus-IGP 成本但 IGP 成本不同的路径。多路径路径选择基于 IGP 成本指标,即使两条路径具有相同的 MED-plus-IGP 成本也是如此。
BGP 表路径选择
BGP 的路径选择遵循以下参数:
-
首选最高的本地首选项值。
-
首选最短 AS 路径长度。
-
首选最低源值。
-
首选最低的 MED 值。
-
首选从 EBGP 对等方获知的路由,而不是 IBGP 对等方。
-
最好退出 AS。
-
对于 EBGP 接收的路由,首选当前活动路由。
-
首选路由器 ID 最低的对等方的路由。
-
首选集群长度最短的路径。
-
首选来自对等方 IP 地址最低的对等方的路由。步骤 2、6 和 12 是 RPD 标准。
宣传通往目的地的多条路径的效果
BGP 仅播发活动路径,除非您将 BGP 配置为将多个路径播发到目标。
假设路由设备的路由表中有四条通向目标的路径,并配置为播发最多三条路径(添加路径发送路径计数 3)。这三条路径是根据路径选择标准选择的。也就是说,三个最佳路径按路径选择顺序进行选择。最佳路径是活动路径。此路径将从考虑范围中删除,并选择新的最佳路径。重复此过程,直到达到指定的路径数。