简介
本文档介绍边界网关协议 (BGP) 最佳路径算法的功能。
背景信息
BGP路由器通常接收通往同一目的地的多条路径。BGP 最佳路径算法确定要在 IP 路由表中安装且用于流量转发的最佳路径。
路由器忽略路径的原因
假设路由器针对特定前缀接收的所有路径都排列在一个列表中。此列表类似于show ip bgp longer-prefixescommand的输出。在此情况下,一些路径没有被视为最佳路径的候选对象。这样的路径通常在 show ip bgp longer-prefixes 命令的输出中没有有效标志。路由器在以下情况下忽略路径:
-
show ip bgp longer-prefixes输出中标记为not synchronized的路径。
如果启用了 BGP 同步,IP 路由表中的前缀必须有一个匹配项,才能将内部 BGP (iBGP) 路径视为有效路径。在 Cisco IOS® 软件中,默认情况下启用 BGP 同步。如果从开放最短路径优先(OSPF)邻居获知匹配的路由,则其OSPF路由器ID必须与iBGP邻居的BGP路由器ID匹配。大多数用户喜欢使用 no synchronization BGP 子命令来禁用同步。
注意:在Cisco IOS®软件版本12.2(8)T及更高版本中,默认情况下禁用同步。
-
NEXT_HOP 处于不可访问状态的路径.
确保有一个指向与路径关联的 NEXT_HOP 的内部网关协议 (IGP) 路由。
-
如果本地自治系统(AS)出现在AS_PATH中,则来自外部BGP(eBGP)邻居的路径。
此类路径在进入路由器时被拒绝,甚至不安装在BGP路由信息库(RIB)中。 这同样适用于通过访问、前缀、AS_PATH或社区列表实施的路由策略拒绝的任何路径,除非您已为邻居配置了neighbor soft-reconfiguration inbound。
-
如果启用bgp enforce-first-as,并且UPDATE不包含邻居的AS作为AS_SEQUENCE中的第一个AS编号。
在这种情况下,路由器将发送通知并关闭会话。
-
输出中标记为(仅接收)的路show ip bgp longer-prefixes
径
策略已拒绝这些路径。但是,由于您已为发送路径的邻居配置soft-reconfiguration inbound
了路径,因此路由器已存储路径。
最佳路径算法的工作原理
BGP 将第一个有效路径指定为当前最佳路径。然后,BGP 将最佳路径与列表中的下一路径进行比较,直到 BGP 到达有效路径列表的末端为止。此列表提供用于确定最佳路径的规则:
-
首选具有最高 WEIGHT 的路径。
注意:WEIGHT 是特定于 Cisco 的参数。它是配置有该参数的路由器中的本地参数。
-
首选具有最高 LOCAL_PREF 的路径。
注意:没有 LOCAL_PREF 的路径将视为已经用 bgp default local-preference 命令设置了值,或者使用默认值 100。
-
首选通过 network 或 aggregate BGP 子命令或者通过 IGP 重分配而获得的本地路径。
由 network 或 redistribute 命令发出的本地路径优先于由 aggregate-address 命令发出的本地聚合路由。
注意:请注意以下事项:
— 如果配置了AIGP且未配置bgp bestpath aigrp ignore命令,则决策进程会考虑AIGP度量。有关详细信息,请参阅配置BGP的AIGP度量属性。
-
首选具有最短 AS_PATH 的路径。
注意:请注意以下内容:
-如果配置了 bgp bestpath as-path ignore 命令,则跳过此步骤。
-无论集中有多少个 AS,AS_SET 均视为 1。
-AS_PATH 长度中不包括 AS_CONFED_SEQUENCE 和 AS_CONFED_SET。
-
首选具有最低源类型的路径。
注意:IGP 的优先级低于外部网关协议 (EGP),而 EGP 的优先级低于 INCOMPLETE。
-
首选具有最低多出口标识符 (MED) 的路径。
注意:请注意以下内容:
-只有第一个(相邻)AS 在两个路径中相同时,才进行此比较。忽略所有联盟的子 AS。
换句话说,只有多个路径的 AS_SEQUENCE 中的第一个 AS 相同时,才比较 MED。将忽略任何前面的AS_CONFED_SEQUENCE。
-如果启用了 bgp always-compare-med,则比较所有路径的 MED。
您必须对整个 AS 禁用此选项。否则,可能出现路由循环。
-如果启用了 bgp bestpath med-confed,则只比较所有仅包含 AS_CONFED_SEQUENCE 的路径的 MED。
这些路径源自本地联盟。
-从 MED 为 4,294,967,295 的邻居接收的路径的 MED 在插入 BGP 表之前将会更改。MED更改为4,294,967,294。
— 从MED为4,294,967,295的邻居接收的路径的MED被视为有效,并且插入到BGP表中,影响为Cisco bug ID CSCef34800固定的代码。
-除非启用了 bgp bestpath med missing-as-worst,否则将为收到的没有 MED 的路径指定一个值为 0 的 MED。
如果启用了 bgp bestpath med missing-as-worst,则为路径指定一个值为 4,294,967,294 的 MED。
如果已启用bgp bestpath med missing-as-worst,则路径分配的MED为4,294,967,295,影响为Cisco bug ID CSCef34800修复的代码。
bgp deterministic-med命令也可以影响此步骤。
有关演示,请参阅 BGP 路由器如何使用多出口标识符进行最佳路径选择。
-
首选 eBGP 路径而非 iBGP 路径。
如果选择了最佳路径,则转到步骤 9(多路径)。
注意:包含 AS_CONFED_SEQUENCE 和 AS_CONFED_SET 的路径是联盟的本地路径。因此,这些路径将视为内部路径。“联盟外部”和“联盟内部”没有区别。
-
首选具有最低 IGP 度量且指向 BGP 下一跳的路径。
无论是否已选择了最佳路径,均继续。
-
确定 BGP 多路径的路由表中是否需要安装多个路径。
如果尚未选择最佳路径,则继续。
-
当两条路径都是外部路径时,首选先收到的路径(最旧的那个)。
此步骤可最大程度地减小路由抖动,这是因为即使根据下一个决定条件(步骤 11、12 和 13)确定较新的路径将是首选路由,该较新的路径也不会替换较旧的路径。
如果满足下面任意条件,则跳过此步骤:
-
您已启用 bgp best path compare-routerid 命令。
注意:Cisco IOS®软件版本12.0.11S、12.0.11SC、12.0.11S3、12.1.3、12.1.3AA、12.1.3.T和12.1.3.E引入了此命令。
-
因为路由是从同一路由器接收的,所以多个路径的路由器 ID 相同。
-
没有当前最佳路径。
例如,当提供路径的邻居断开时,当前最佳路径可能丢失。
-
首选来自具有最低路由器 ID 的 BGP 路由器的路由。
路由器 ID 是路由器上的最高 IP 地址,且首选环回地址。此外,您可以使用bgp router-id命令手动设置路由器ID。
注意:如果路径包含路由反射器 (RR) 属性,则在路由选择过程中,发送方 ID 将替代路由器 ID。
-
如果多个路径的发送方或路由器 ID 相同,则首选具有最低群集列表长度的路径。
它只在 BGP RR 环境中出现。这使客户端可以与其他群集中的 RR 或客户端建立对等关系。在此情况下,客户端必须知道特定于 RR 的 BGP 属性。
-
首选来自最低邻居地址的路径。
此地址是BGP配置中使用的IP地neighbor
址。此地址对应于在与本地路由器的 TCP 连接中使用的远程对等方。
示例:BGP最佳路径选择
在本示例中,有9条路径可用于网络10.30.116.0/23。show ip bgp network命令显示给定网络的BGP路由表中的条目。
Router R1#show ip bgp vpnv4 rd 1100:1001 10.30.116.0/23
BGP routing table entry for 1100:1001:10.30.116.0/23, version 26765275
Paths: (9 available, best #6, no table)
Advertised to update-groups:
1 2 3
(65001 64955 65003) 65089, (Received from a RR-client)
172.16.254.226 (metric 20645) from 172.16.224.236 (172.16.224.236)
Origin IGP, metric 0, localpref 100, valid, confed-internal
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65008 64955 65003) 65089
172.16.254.226 (metric 20645) from 10.131.123.71 (10.131.123.71)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65001 64955 65003) 65089
172.16.254.226 (metric 20645) from 172.16.216.253 (172.16.216.253)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65001 64955 65003) 65089
172.16.254.226 (metric 20645) from 172.16.216.252 (172.16.216.252)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(64955 65003) 65089
172.16.254.226 (metric 20645) from 10.77.255.57 (10.77.255.57)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(64955 65003) 65089
172.16.254.226 (metric 20645) from 10.57.255.11 (10.57.255.11)
Origin IGP, metric 0, localpref 100, valid, confed-external, best
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
!--- BGP selects this as the Best Path on comparing
!--- with all the other routes and selected based on lower router ID.
(64955 65003) 65089
172.16.254.226 (metric 20645) from 172.16.224.253 (172.16.224.253)
Origin IGP, metric 0, localpref 100, valid, confed-internal
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
(65003) 65089
172.16.254.226 (metric 20645) from 172.16.254.234 (172.16.254.234)
Origin IGP, metric 0, localpref 100, valid, confed-external
Extended Community: RT:1100:1001
mpls labels in/out nolabel/362
65089, (Received from a RR-client)
172.16.228.226 (metric 20645) from 172.16.228.226 (172.16.228.226)
Origin IGP, metric 0, localpref 100, valid, confed-internal
Extended Community: RT:1100:1001
mpls labels in/out nolabel/278
BGP通过考虑本文档中介绍的各种属性,从这9条路径中选择最佳路径。在此处显示的输出中,BGP比较可用路径,并根据其较低的路由器ID选择路径6作为最佳路径。
Comparing path 1 with path 2:
Both paths have reachable next hops
Both paths have a WEIGHT of 0
Both paths have a LOCAL_PREF of 100
Both paths are learned
Both paths have AS_PATH length 1
Both paths are of origin IGP
The paths have different neighbor AS's so ignoring MED
Both paths are internal
(no distinction is made between confed-internal and confed-external)
Both paths have an IGP metric to the NEXT_HOP of 20645
Path 2 is better than path 1 because it has a lower Router-ID.
Comparing path 2 with path 3:
Both paths have reachable next hops
Both paths have a WEIGHT of 0
Both paths have a LOCAL_PREF of 100
Both paths are learned
Both paths have AS_PATH length 1
Both paths are of origin IGP
Both paths have the same neighbor AS, 65089, so comparing MED.
Both paths have a MED of 0
Both paths are confed-external
Both paths have an IGP metric to the NEXT_HOP of 20645
Path 2 is better than path 3 because it has a lower Router-ID.
Comparing path 2 with path 4:
Both paths have reachable next hops
Both paths have a WEIGHT of 0
Both paths have a LOCAL_PREF of 100
Both paths are learned
Both paths have AS_PATH length 1
Both paths are of origin IGP
Both paths have the same neighbor AS, 65089, so comparing MED.
Both paths have a MED of 0
Both paths are confed-external
Both paths have an IGP metric to the NEXT_HOP of 20645
Path 2 is better than path 4 because it has a lower Router-ID.
Comparing path 2 with path 5:
Both paths have reachable next hops
Both paths have a WEIGHT of 0
Both paths have a LOCAL_PREF of 100
Both paths are learned
Both paths have AS_PATH length 1
Both paths are of origin IGP
Both paths have the same neighbor AS, 65089, so comparing MED.
Both paths have a MED of 0
Both paths are confed-external
Both paths have an IGP metric to the NEXT_HOP of 20645
Path 5 is better than path 2 because it has a lower Router-ID.
Comparing path 5 with path 6:
Both paths have reachable next hops
Both paths have a WEIGHT of 0
Both paths have a LOCAL_PREF of 100
Both paths are learned
Both paths have AS_PATH length 1
Both paths are of origin IGP
Both paths have the same neighbor AS, 65089, so comparing MED.
Both paths have a MED of 0
Both paths are confed-external
Both paths have an IGP metric to the NEXT_HOP of 20645
Path 6 is better than path 5 because it has a lower Router-ID.
Comparing path 6 with path 7:
Both paths have reachable next hops
Both paths have a WEIGHT of 0
Both paths have a LOCAL_PREF of 100
Both paths are learned
Both paths have AS_PATH length 1
Both paths are of origin IGP
Both paths have the same neighbor AS, 65089, so comparing MED.
Both paths have a MED of 0
Both paths are internal
(no distinction is made between confed-internal and confed-external)
Both paths have an IGP metric to the NEXT_HOP of 20645
Path 6 is better than path 7 because it has a lower Router-ID.
Comparing path 6 with path 8:
Both paths have reachable next hops
Both paths have a WEIGHT of 0
Both paths have a LOCAL_PREF of 100
Both paths are learned
Both paths have AS_PATH length 1
Both paths are of origin IGP
Both paths have the same neighbor AS, 65089, so comparing MED.
Both paths have a MED of 0
Both paths are confed-external
Both paths have an IGP metric to the NEXT_HOP of 20645
Path 6 is better than path 8 because it has a lower Router-ID.
Comparing path 6 with path 9:
Both paths have reachable next hops
Both paths have a WEIGHT of 0
Both paths have a LOCAL_PREF of 100
Both paths are learned
Both paths have AS_PATH length 1
Both paths are of origin IGP
The paths have different neighbor AS's so ignoring MED
Both paths are internal
(no distinction is made between confed-internal and confed-external)
Both paths have an IGP metric to the NEXT_HOP of 20645
Path 6 is better than path 9 because it has a lower Router-ID.
The best path is #6
自定义路径选择过程
称为 BGP Cost Community(BGP 成本团体)的扩展团体属性提供了自定义最佳路径选择过程的方式。用于比较成本团体的其他步骤已添加到最佳路径算法的工作原理部分所述的算法中。此步骤位于算法中的必要步骤(插入点)之后。首选具有最低成本值的路径。
注意:请注意以下内容:
-如果已发出 bgp bestpath cost-community ignore 命令,则跳过此步骤。
— 成本社区set子句配置有成本社区ID号(0到255)和成本编号值(0到4,294,967,295)。 成本编号值确定首选路径。将首选具有最低成本编号值的路径。未使用成本编号值专门配置的路径会分配默认成本编号值2,147,483,647。此值是介于0和4,294,967,295之间的中点。然后,最佳路径选择流程会相应地评估这些路径。如果两个路径配置有同一成本编号值,则路径选择过程首选具有最低团体 ID 的路径。如果路径具有不等的前最佳路径开销社区,则选择具有较低的前最佳路径开销社区的路径作为最佳路径。
- ABSOLUTE_VALUE是确定路径优先程度的第一步。例如,当EIGRP重分发到BGP VPNv4时,ABSOLUTE_VALUE类型用于开销社区。比较到下一跳的内部(IGP)距离后,会考虑IGB_Cost。这意味着,在最佳路径算法如何工作中,算法步骤8之后会考虑插入点为IGP_COST的开销社区。
BGP 多路径
BGP 多路径允许安装到同一目的地的多个 BGP 路径的 IP 路由表中。这些路径与最佳路径一起安装到表中,以实现负载共享。BGP 多路径不影响最佳路径选择。例如,路由器仍然根据算法指定其中一个路径为最佳路径,并将此最佳路径通告给邻居。
下面是 BGP 多路径功能:
若要成为多路径候选对象,同一目的地的路径需要使下列这些特性等同于最佳路径特性:
-
权重
-
本地首选
-
AS-PATH 长度
-
原点
-
中文
-
下列项之一:
某些 BGP 多路径功能对多路径候选对象有额外的要求。
下面是对 eBGP 多路径的额外要求:
下面是对 iBGP 多路径的额外要求:
BGP 最多可在 IP 路由表中插入 n 个最近从多路径候选对象接收的路径。n的最大值当前为6。禁用多路径时,默认值为1。
为了使成本不同的负载平衡,您也可以使用 BGP 链路带宽。
注意:等效的 next-hop-self 在转发到内部对等方之前,先在 eBGP 多路径中选择的最佳路径上执行。
相关信息