边界网关协议(BGP)是运行于 TCP 上的一种自治系统的路由协议。BGP强大的选路规则正是BGP最大的亮点
1、Prefer highest weight (local to router).
首选权重最高的路由<权重是一种cisco专有的属性,只用于当前路由器>
2、Prefer highest local preference (global within AS).
本地优先级最高的路由<本地优先级用于AS内部>
3、Prefer route originated by the local router (next hop = 0.0.0.0).
当前路由器通告的路由<bgp表中,当前路由器产生的路由的下一跳为0.0.0.0>
4、Prefer shortest AS path.
AS路径最短的路由
5、Prefer lowest origin code (IGP < EGP < incomplete).
Origin codes: i - IGP, e - EGP, ? - incomplete
比较Origin属性<IGP优先于EGP优先Incomplete>
Three values: IGP, EGP, incomplete
– IGP generated by BGP network statement
– EGP generated by EGP
– Incomplete redistributed from another routing protocol
6、Prefer lowest MED (exchanged between autonomous systems).
MED最小者<默认不比较来自不同AS路由的MED值,可通过bgp always-compare-med对比不同AS的med>
7、Prefer EBGP path over IBGP path.
外部路径(EBGP)优先于内部路径(IBGP)
8、Prefer the path through the closest IGP neighbor
选择经过最近的IGP邻居的路径<这意味着路由器首选AS中最短的内部路径-最短的前往BGP下一跳的路径)--IBGP
9、balance traffic
如果配置了maximum-path, 会安装多条路由到路由表<但是BGP继续比,只有一个打上>
10、Prefer oldest route for EBGP paths.
都是外部路径,选最先收到的(最旧的)<目的是减少抖动>
11、Prefer the path with the lowest neighbor BGP router ID.
首选来自最低路由ID的BGP路由器的路由
12、Prefer shortest cluster list
具有最低群集列表长度的路径
13、Prefer the path with the lowest neighbor IP address.
最低邻居地址的路径
=============================================
BGP的选路原则
①、比较Weight
1、优选Weight值大的路由条目
2、本地产生的BGP路由条目默认Weight为32768,非本地产生的是0
3、该值只在本地有效,不具有传递性
4、该属性是一个是一个Cisco私有属性
②、比较Local-Preference
1、优选Local-Preference值大的路由条目
2、默认该值大小为100
3、只可传递给IBGP邻居,不会传递给EBGP邻居
③、优选本地产生的路由条目
1、即优选Next-Hope为0.0.0.0的路由条目
④、比较As-Path
1、优选As-Path最短的路由条目 注:大括号中的As-Path可视为一个As
⑤、比较Origin Code
1、i>e>? 注:i为network或者aggressive产生的路由条目,e为EGP产生的路由条目,EGP现在已经很少使用了,?则为重分发产生的路由条目
⑥、比较MED
1、在Cisco路由器中MED类似于Metric,值越低越好,但是在华为或H3C的路由器,该值越高越好
2、使用network或者redistribute产生的路由条目MED继承IGP的度量值(直连路由或者静态路由为0),使用aggressive产生的路由条目的MED属性为空
⑦、使用EBGP传过来的路由条目,使用联邦是优选联邦EBGP传递过来的路由条目
⑧、优选去往Next-Hop最近的路由条目
⑨、BGP的负载均衡
10、优选最老EBGP传递过来的路由条目
11、选择最小RID的路由条目
12、选择最短Cluster-List的的路由条目
13、优选邻居IP(在BGP配置模式小neighbor的IP)地址最小的