BGP路由决策过程

BGP经过一个复杂算法来决定最佳路径并更新BGP RIB和IP RIB。BGP是一个策略工具,它的重要性通过BGP利用属性和其他参数来选择最佳路径的过程最能说明问题。


当存在多条有效的到达特定目的地的路径时,IOS会根据接收他们的相反顺序列出这些路径。也就是说,最新的路径将被列在最开始,而最老的路径列在最末端。对于一个给定的目的地,为了选择最佳路径,BGP通常使用顺序比较的方法。它假定第一条路径(最新的路径)是最佳路径,然后去比较当前的最佳路径和下一条路径,直到比较到有效路径列表的末端。例如,BGP顺序收到3条路径:1,2,3后,BGP假定3是最优路径(因为3是最后收到的),首先比较3和2。接着,得出的最佳路径再与路径1(最早接收到的)比较。这样,第二次比较得出的最佳路径就成为到达目的地的最终的最佳路径。


如果一条路径不满足下列任何一个条件,那么它在路径决策过程中就不是有效的候选者(换句话说,如果一条路径满足下列条件之一,那么该路径就会成为路径决策过程中的候选者):
路径的下一跳不可达;
路径未同步,但同步功能被启用了;
路径被入站BGP策略所拒绝,并且路由器配置了软重置(soft reset);
路由被惩罚;


当前Cisco IOS软件的BGP路径决策有13步,每一步都会被顺序评估,直到找出一条最佳路径为止:


1.      Weight是首先考虑的参数。Weight值最高的路径优先。Weight是Cisco专有属性。并且Weight属性对配置这个参数的路由器来讲仅是本地有效的。缺省条件下,本地始发的路径具有相同的Weight值(即32768),所有其他的路径的Weight的值是0。
2.      LOCAL_PREF值最高的路径优先。Cisco IOS中,LOCAL_PREF的缺省值为100。
3.      基于始发地(Origination)来评估路由。路由器本地始发的路径优先。依次降低的优先级顺序是:
        1)      default-originate,针对每个邻居配置;
        2)      default-information-originate,针对每种地址簇配置的
        3)      network;
        4)      redistribute;
        5)      aggregate-address;
4.      评估AS_PATH的长度。AS_PATH路径最短的路径优先。但是,可以通过配置“bgp bestpath as-path ignore(隐藏的命令)”命令来跳过这一步。
在评估路径长度时要记住以下几点:
        1)      一个AS_SET被计数为1跳,而不管在SET中包含多少个AS数。
        2)      AS_CONFED_SEQUENCE不包括在AS_PATH长度中。
5.      这一步评估路径的ORIGIN属性。ORIGIN类型最低的优先。IGP低于EGP,EGP低于INCOMPLETE。
6.      评估MED。MED最小的路径胜出。缺省条件下,只有在2条路径的第一个(也就是相邻)AS是相同的情况下才会进行比较操作。任何联盟(内)子AS都被忽略。换句话说,对于多条路径,只有在AS_SEQUENCE中的第一个AS时相同的情况下,才会比较MED。任何打头的AS_CONFED_SEQUENCE都将被忽略。如果启用了“bgp always-compare-med”命令,那么对所有路径都将比较MED,而不考虑他们是否来自同一个AS。如果你使用了这一命令,那么你应该在整个AS中都这么做,以避免路由环路。
注意以下MED的更改选项:
        1)      配置了“bgp deterministic-med”命令后,不管收到的前缀的顺序如何,MED比较的结果都是一致的。在这种配置情况下,所有的路径都将基于AS_PATH编组。在每一个AS_PATH组内,根据MED的大小进行排序。MED值最小的路径被选为该组的最佳路径。最终的最佳路径是是所有选出路径中具有最小MED值的路径。如果存在MED,那么这是一种建议的配置。
        2)      如果启用了“bgp bestpath med-confed”命令后,对于所有只包含AS_CONFED_SEQUENCE的路径来说才比较MED,也就是说,这些路径是始发于本地联盟的。注意,如果一条路径包含了任何外部的AS,那么这条路径就不参与比较,而它的MED在联盟内部被传递时不被改变。
        3)      如果接收的路径没有MED,就把它的度量值指定为0,除非启用了“bgp bestpath missing-as-worst”命令,在这种情况下,这些路径的度量值指定为4 294 967 294(最大值)。这主要是考虑到对旧标准的兼容性。
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的多路径负载均衡特性。如果没有指定关键字ibgp,那么多路径负载均衡特性就仅仅应用于eBGP路径,或来自同一个邻居AS或子AS的联盟外部路径。当不激活这一命令时,它的缺省值为1。
10.  当两条路径都是外部路径时,BGP将优先选择最先收到的路径(最老的路径)。这一步能最小化路由抖动,因为新的路径即使基于另外的决策准则(即第11,12,13步骤)下是优先的路径,也不会代替老路径。
如果以下条件为真,这一步将被忽略:
        1)      启用了“bgp bestpath compare-routerid”命令;
        2)      多条路径具有相同的路由器ID,因为这些路由都是从同一台路由器接收过来的;
        3)      当前没有最佳路径。缺乏当前最佳路径的例子发生在正在通告最佳路径的邻居失效的时候。
11.  BGP优先选择来自具有最低的路由器ID的BGP路由器的路由。路由器ID是路由器上最高的IP地址,并且优先使用回环接口的IP地址。也可以通过“bgp router-id”命令静态指定路由器ID。如果路径中包含RR属性,那么在路径选择过程中,就用ORIGINATOR_ID来代替路由器ID。
12.  如果多条路径的始发路由器ID或路由器ID相同,那么BGP优选CLUSTER_LIST长度最短的路径。这种情况仅出现在BGP RR的环境中,当一个客户与其他簇中的RR或客户形成对等关系时,该客户可以使用CLUSTER_LIST长度来选择最佳路径。为了采用这一步,客户必须获悉RR特定的BGP属性。
13.  BGP优先选择来自最低邻居IP地址的路径。这是BGP的“neighbor”命令配置中使用的IP地址,并且它对应于与本地路由器建立TCP连接的远程对等体。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值