Skip to main content


思科路由器上的BGP路由决策过程

2013-01-22 22:47 浏览:

在思科路由上,BGP选择最佳路由的步骤如下:

第1步 首选权重最高的路由(权重是一种cisco专用的属性,只用于当前路由器)。

第2步 如果权重相同,则选择本地优先级最高的路由(本地优先级用于AS内部)。

第3步 如果本地优先级相同,则选择当前路由器通告的路由(在bgp表中,当前路由器通告的路由的一下跳为0.0.0.0)。

第4步 如果没有当前路由器通告的路由,则选择AS路径最短的路由。

第5步 如果AS路径长度相同,则选择源头编码最小的路径。(IGP

第6步 如果源码相同,则选择MED最小的路径(MED将在自主系统之间交换)。除非配置了bpp always-compare-med,否则仅当所有被考虑的路由的邻接AS都相同时,才比较MED.

备注:Internet工程任务小组(IETF)最近就bgp MED做出决定,对于没有MED的路由将其MED值设置为无穷大,这使得这种路由被选中的可能性最小。运行cisco ios软件的bgp路由器默认为,对于没有MED的路由,将其MED值视为0,这使得这种路由被选中的可能性最大。要配置路由器,使之遵循IETF标准,可使用路由器配置命令bgp bestpath med missing-as-worst。

第7步 如果MED相同,则外部路径(EBGP)优先于内部路径(IBGP)。

第8步 如果同步被关闭,使得只有内部路径,则选择经过最近的IGP邻居的路径。

第9步 对于EBGP路径,选择最老的路由,以最大限度地降低路由翻滚的影响。

第10步 首选邻居BGP路由器ID最小的路由。

第11步 如果BGP路由器ID相同,则选择邻居IP地址最小的路由。

只有最佳路由被加入到路由表中,并被传播给BGP邻居。

简单解释

第1步查看权重,对于非当前路由器通告的路由,权重默认被设置为0,(cisco)。

第2步比较本地优先级,对于所有的网络,本地优先级都默认为100。仅当网络管理员将权重或本地优先级设置为非默认值时,这两步才有用。

第3步查看当前AS中的网络。路由器优先选择自己加入到BGP表中的路由,而不是从其他BGP路由器那里收到的路由。

第4步选择经过的自主系统数最少的路径,这是BGP选择路径时使用得最多的准则。如果管理员不想使用经过的自主系统数最小的路径,则应操纵权重或优先级,以改变bgp选中的出站路径。

第5步查看路由是如何进入bgp的。进入方式通常是通过network命令(源头编码为i)或通过重分发(源头编码为?)。

第6步查看MED,以确定邻居AS希望将分组发送到哪里。默认情况下,Cisco IOS将MED设置为0。因此,除非邻居AS的管理员使用MED来操纵路径,否则MED不影响路径选择。

如果多条路径经过的自主系统数相同,则最常用的决策步骤是第7步:从EBGP邻居那里获悉的路由优先于IBGP邻居那里获悉的路径。AS中的路由器更愿意使用ISP链路前往某个网络,而不是使用内部链路来前往位于AS另一边的IBGP邻居。

如果AS路径相同,且路由器没有可用于前往目标网络的EBGP邻居(只有IBGP邻居),则通过最快的路径前往最近的出口是合理的。第8步查找最近的IBGP邻居,最近的含义取决于IGP度量值。

如果AS路径相同,且所有IBGP邻居的成本相同或所有可用于前往该网络的邻居都是EBGP邻居,则选择最老的路径(第9步)。与EBGP邻居之间的会话不太可能是同时建立的,通常有一个会话先于其他会话建立;经由最老的邻居的路径被视为最稳定的,因为该邻居正常运行的时间最长。

如果所有上述条件都相同,则选择这样的路径:第10步,经由BGP路由器ID最小的邻居。

如果BGP路由器ID也相同(如经由同一台BGP路由器),则执行第11步:选择邻居IP地址最小的路由。