本文共 3096 字,大约阅读时间需要 10 分钟。
本节书摘来异步社区《OSPF和IS-IS详解》一书中的第2章,第2.5节,作者: 【美】Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区“异步社区”公众号查看。
BGP设计与实现
BGP经过一个复杂的算法来决定最佳路径并更新BGP RIB和IP RIB。正如前面所提到的,BGP是一个策略工具。它的重要性通过BGP利用属性和其他参数来选择最佳路径的过程最能说明。当存在多条到达特定目的地的有效的BGP路径时,IOS将会根据收到它们的相反顺序列出这些路径。也就是说,最新的路径将被列在最开始,而最老的路径则被列在末端。在命令show ip bgp的输出中,最新的路径被列在最上面,而最老的路径被列在最下面。对于给定的一个目的地,为了选择最佳路径,BGP通常使用顺序比较的方法。它指定第一条路径(最新的路径)作为当前的最佳路径,然后比较当前的最佳路径和列表中的下一条路径,直到比较到有效路径列表的末端。例如,BGP顺序接收到3条路径——1、2和3——BGP首先比较路径3(最后接收到的)和路径2。接着,得出的最佳路径再与路径1(最早接收到的)相比较。这样,第二次比较得出的最佳路径就成为到达目的地的最终的最佳路径。
如果一条路径满足下列任一条件,那么它在最佳路径选择过程中就不是有效的候选者:
当前,Cisco IOS软件的路径选择有13步(www.cisco.com/warp/customer/459/25.shtml)。每一步都会被顺序评估,直到找到一条优选路径为止:
1.WEIGHT是首先考虑的参数。WEIGHT值最高的路径优先。WEIGHT是Cisco专有的参数,并且对配置这个参数的路由器来说是本地有效的。默认条件下,本地始发的路径具有相同的WEIGHT值(即32768),所有其他的路径的WEIGHT值为0。
2.LOCAL_PREF值最高的路径优先。Cisco IOS软件中,LOCAL_PREF的默认值为100。
3.基于始发地(origination)评估路由,路由器本地始发的路径优先。依次降低的优先级顺序是:default-originate(针对每个邻居配置)、default-information-originate(针对每种地址簇配置)、network、redistribute、aggregate-address。
4.评估AS_PATH的长度,AS_PATH列表最短的路径优先。但是,可以通过配置bgp bestpath as-path ignore(隐藏的命令)来跳过这一步。
在评估路径长度时,记住以下要点:
5.这一步评估路由的ORIGIN属性,ORIGIN类型最低的路径优先。IGP低于EGP,EGP低于INCOMPLETE。
6.评估MED。MED值最小的路径胜出。默认条件下,只有在两条路径的第一个(邻近的)AS相同的情况下才会进行比较操作;任何联盟子自治系统都被忽略。换句话说,对于多条路径,只有在AS_SEQUENCE中的第一个AS相同的情况下,才会比较MED;任何打头的AS_CONFED_SEQUENCE都将被忽略。如果激活了bgp always-compare-med,那么对于所有路径都将比较MED,而不考虑它们是否来自于同一个AS。如果你使用了这个选项,就应该在整个AS中都这么做,以避免路由选择环路。
注意以下MED的更改选项:
7.外部BGP(eBGP)路径优于内部BGP(iBGP)路径。包含AS_CONFED_SEQUENCE的路径对于联盟来说是本地的,因此被看作是内部路径。在路径选择过程中,联盟外部(Confederation External)路径和联盟内部(Confederation Internal)路径没有差别。
8.BGP优先选择到BGP下一跳的IGP度量最低的路径。这一步使得本地拓扑信息被考虑进去。
9.如果配置了maximum-paths [ibgp]n,这里的n在2~6之间,并且存在多条等价成本的路径(对于多条路径,以上1~6步的比较结果都相同,而且AS_PATH也相同),那么BGP会在IP路由选择表中插入最多n条接收到的路径。这就激活了BGP多路径负载分担(multipath load sharing)特性。如果没有使用可选关键字ibgp,那么多路径特性就仅仅应用于eBGP路径,或来自于同一个邻居AS或子AS的联盟外部路径。当不激活这一选项时,它的默认值为1。
10.当两条路径都是外部路径时,BGP将优先选择最先收到的路径(最老的路径)。这一步能最小化路由抖动,因为新路径即使在基于另外的决策准则(在第11、12和13步中讲述)下是优先的路径,也不会替代老路径。
如果以下任一条件为真,这一步将会被忽略:
11.BGP优先选择来自于具有最低的路由器ID的BGP路由器的路由。路由器ID是路由器上的最高IP地址,并且优选环回地址。也可以通过bgp router-id命令静态地设定路由器ID。如果路径包含RR属性,那么在路径选择过程中,就用ORIGINATOR_ID来替代路由器ID。
12.如果多条路径的始发路由器ID或路由器ID相同,那么BGP将优选CLUSTER_LIST长度最短的路径。这种情况仅仅出现在BGP RR的环境中。当一个客户与其他簇中的RR或客户形成对等关系时,该客户可以使用CLUSTER_LIST长度来选择最佳路径。为了采用这一步,客户必须能感知RR特定的BGP属性。
13.BGP优选来自于最低的邻居地址的路径。这是BGP的neighbor配置中所使用的IP地址,并且它对应于与本地路由器建立TCP连接的远端对等体。
转载地址:http://obudl.baihongyu.com/