01_7_BGP最优路径选择

在默认情况下,到达同一目的地,BGP只走单条路径,并不希望在多条路径之间执行负载均衡。当BGP路由表中有多条路径可以到达同一目的地时,需要靠比较路由条目中的路径属性,只有在比较多条路由的属性之后,才能决定选择哪条为最优路径。BGP的每条路由都带有路径属性,对于通过比较路径属性来选择最优路径,BGP需要在多条路径之间按照一定的顺序比较属性,当多条路由的同一属性完全相同时,需要继续比较顺序中的下一条属性。BGP在选择最优路径时,需要按照以下顺序来做比较:

1.最高Weight值

  (选择最高Weight值的路由,Weight值为Cisco路由器特有,并且只在本地路由器有效,默认Weight值为0,本地发起路由为32768。)

2.最高LOCAL_PREF值

(如果Weight值相同,则选择拥有最高LOCAL_PREF值的路由,默认为100。)

3.本地发起路由

 (如果LOCAL_PREF值相同,则选择BGP本地发起的路由,换句话说,也就是下一跳为0.0.0.0的路由,本地发起的路由有多种方式,如通过在BGP进程下命令network命令从IGP路由表导入,将其它路由协议重分布进BGP路由表,最后是汇总路由表。而通过命令network和重分布的路由优先于手工汇总的路由。)

4.最短AS_PATH

(如果本地发起路由无法比出最优路径,则选择拥有最短AS_PATH的路由,但是可以跳过这一步,输入命令bgp bestpath aspath ignore后,就会忽略对AS_PATH的比较,而直接比较下一属性。需要更加注意的是,AS_SET被认为是1个AS,而无论AS_SET中包含多少个AS,并且BGP联邦内部AS不被计算。)

5.最低Origin类型

(如果AS_PATH无法比出最优路径,则选择拥有最低Origin类型的路由,Origin表示路由最初是如何进入BGP路由表的,目前有三种进行BGP路由表的方法,从IGP导入,从EGP学习,以及重分布,它们的优先级为IGP优于EGP,EGP优于Incomplete,即IGP>EGP>Incomplete。

6.最小MED值

(如果Origin类型无法比出最优路径,则选择拥有最小MED值的路由,并且只有当多个下一跳邻居在同一AS时才比较MED值。如果要在多个不同AS的下一跳中比较MED,可在BGP进程中输入命令bgp always-compare-med,注意须保证此命令在整个AS的路由器上输入,否则可能产生路由环路。默认的MED值为0,如果收到一条没有MED的路由,也认为是0。)

7.eBGP优于iBGP

(如果MED值无法比出最优路径,则选择下一跳为eBGP的邻居而不选择iBGP邻居。都知道eBGP的路由AD值为20,而iBGP的路由AD值为200,但BGP并不在eBGP与iBGP之间比较AD值,并且在比到此步时,邻居类型才影响了最优路径的选择,这种影响是受邻居类型的影响,而不是受AD值的影响。注意:BGP联邦内部没有此规则。)

8.最小IGP metric到达下一跳的路由

(如果多条路径的下一跳邻居同为eBGP或iBGP,则选择拥有最小IGP metric到达下一跳的路由。)

9.负载均衡(如果开启的话)

(BGP并不是不能负载均衡的,如果之前的属性都无法选出最优路径,则执行负载均衡,但必须是之前的所有属性均完全相同,缺一不可。需要注意:只有负载均衡功能开启了,BGP才会执行负载均衡,否则,继续比较下一属性。)

在开启负载均衡功能时,在BGP进程下输入以下命令:

maximum-paths n (多条路径的下一跳邻居都为eBGP时,输入此命令)

maximum-paths ibgp n(多条路径的下一跳邻居都为iBGP时,输入此命令)

其中n为执行负载均衡的路径数量,最大值为6,默认为1,也就是不执行负载均衡。

如果在eBGP和iBGP邻居之间同时执行负载均衡,输入命令maximum-paths eibgp n,此命令只支持在Ipv4 VRF模式下输入,就是只能支持MPLS VPN下的eBGP和iBGP邻居之间负载均衡。

10.如果下一跳都为eBGP,则选择最早学习到的路由(即时间最长的路由)

(为了避免路由翻动,所以选择最早学习到的路由,如果要忽略比较路由学习到的时间长短,可在BGP进程下输入命令bgp best path comparerouterid,某些IOS已经自动加入此命令,并且不能删除。如果多条路由拥有相同的Router-ID,比如路由是从同一个邻居学习到的,同样也会忽略比较路由学习到的时间长短。)

11.最低Router-ID下一跳

(BGP的Router-ID选举如同OSPF,在此步,拥有最低Router-ID的下一跳路由将被选为最优路径。)

12.最短cluster list(如同AS_PATH)

[cluster list只在BGP reflector (RR)的环境下才有,功能如同AS_PATH]

13.最小下一跳的邻居地址

(如果比较之前的所有属性都无法选出最优路径,最终选择下一跳的邻居地址最小的路由,这个地址就是在建立邻居时所指的地址,也是邻居和自己建立TCP连接所使用的源地址,建立不同邻居,不可能使用相同地址,所以不可能两个不同路径的邻居地址是相同的,在这一步一定能够选出最优路径。)

Work Blog » 01_7_BGP最优路径选择
分享到:
赞(0) 打赏

评论抢沙发

评论前必须登录!

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏