BGP选路原则


BGP 的选路原则: 前提( 路由的下一跳可达、关闭同步、路由没有被惩罚、前缀没有被入境路由策略拒绝
1: weight 先比较管理权重( 越大越优先 ),这个参数 本地有效 。虽然 Weight 属性是 Cisco 私有的 , 但是很多厂商也是内置该属性 ( 但无法显示及修改 ), 这样就保证了本地始发的路由是最优先的 , 因为本地始发路由的 Weight 32768, 从其他 BGP Peer 学习过来的路由的 Weight 0.
2: local-pref 本地首选项( 越大越优先 ),这个参数在 AS 内传递 Local Preference 属性只能在 IBGP Peer 之间传递 , 如果在 EBGP Peer 之间收到的路由的路径属性中携带了 Local Preference, 则会触发 Notifacation 报文 , 造成会话中断。
3 路由器本地始发的路径优先 。本地始发的路径特点是 next-hop 0.0.0.0 weight 32768 。可以使用不同 的方式比如 network redistribute 等,那么这些方式之间是存在优先顺序的原则: network>redistribute>aggregate ,但该原则是不会作为 BGP 路由选路策略的。
4: 具有 最短 AS-path 路径 (就是 AS-PATH AS 最少的优先)的路由优先。但是可以配置 bgp bestpath as-path ignore 来忽略这一步。注意: 在做聚合路由时,使用 as-set 后产生的 AS-Path 列表中的 {} 里的 AS 号长度只算一个 AS 号的长度 而在联盟内的 AS-Path 列表中的 () AS 号长度不做计算依据! 不同方向的 route-map 对于插入的 AS 号的位置是不同的。
5 比较 origin 属性,具有 最低 origin 源码 。三种不同的 Origin 属性的优先顺序 : IGP>EGP>incomplete , Origin 属性会一直在 BGP 路由中携带 。很少使用设置 Origin 属性作为 BGP 路由选路策略。
6 评估 MED MED 值最小的路径胜出 )。默认情况下, 只比较来自同一 AS BGP 路由的 MED ( 就是 AS-sequence 中第一个 AS 相同才比较 ) 。命令 bgp always-compare-med 对于所有路径都比较 MED ,不考虑他们是否来自同一个 AS 。如果使用了这个选项要在 AS 内都这么配置(避免路由选择环路)。(任何开头为 as-confed-sequence 的都被忽略比较 MED 值,如果配置了 bgp always-compare-med 那么会进行比较)。
如果 接收的路由没有 MED (没有 MED 属性而并非收到的 MED 0 ),那么 就把它的度量指定为 0 ,如果打上 bgp bestpath med missing-as-worst 那么就把它度量指定为 4294967294 (最大值) ,主要是用来考虑对旧标准的兼容。
MED 备注: Cisco 建议在所有新网络部署中均启用 bgp deterministic-med 命令。对于现有的网络,必须同时在所有路由器上部署此命令,或者逐步部署此命令,但要注意避免可能出现的内部   BGP (iBGP)  路由环路。当 BGP 收到多个通往特定目标的路由时 , 它会按收到路由的相反顺序列出它们(从最新到最旧 ). 然后, BGP  按以下顺序成对比较路由:从最新的条目开始,并向最旧的条目移动(从列表顶部开始,向下移动)。   例如,将   entry1    entry2  进行比较。   随后,将这两个中的较好者与   entry3  进行比较,依此类推。当启用 bgp deterministic-med 命令时,会打乱这个顺序将来自同一个自治系统的路由分组到一起,然后比较每一组的最佳条目。 Show ip bgp  可以看出效果。
如果激活了 bgp bestpath med confed 命令只有 AS-Confed-sequence 的路径才比较 MED 值。如果一条路径包含了任何外部自制系统,那么就不进行比较。
7: EBGP 优于 IBGP EBGP 优于联邦 EBGP (联邦 eBGP 和联邦 iBGP 不具有可比性,不比较。因为联邦 ebgp 和联邦 ibgp 都被看做内部路径没有差别)。如果都是 EBGP 对等体收到的条目或者都是从 IBGP 对等体收到的条目或者分别从联邦 EBGP 和联邦 IBGP 对等体收到的条目则继续向下一步进行。
8: BGP 优先选择 到下一跳 IGP 度量值最低 的路径。(不管都是 EBGPpeer 还是都是 IBGPpeer 还是分别是联邦 EBGP 和联邦 IBGP 都比较这一步)
9: 当前面的 8 条选路原则都无法优选出最优路由时 , 并且在 BGP 进程下面配置了 maximum-paths [ibgp] <1-16> , 那么将执行 等价负载均衡 , 如果没有 ibgp 关键字 , 那么只会对 EBGP 对等体收到的路由执行等价负载均衡 ,如果不配置 maximum-paths 那么将进行到下一条选路原则。
不管是 IBGP 还是 EBGP 受到的路由要实现负载均衡 必须 as-path 完全相同 ,包含 as-set 的和联邦子 AS 的也必须完全相同, 也就是 () {} 里面也要完全相同 ,如果有联邦 EBGP 对等体和联邦 IBGP 对等体收到的路由他们两个之间不可以负载均衡。
负载均衡 show ip bgp x.x.x.x 明细才可以看到,有 multipath 标记的都会装入路由表 (show ip route)
10: 当多条都是从 EBGP 收到的路由时(外部路径时,联邦 EBGP 对等体不算,因为是内部路径), BGP 优先使用最先收到的路由条目 (最老的路径)。这能最小化路由抖动。如果 BGP 进程下使用 bgp bestpath compare-routerid 命令 , 则忽略本原则,跳到第 11 条选路原则;当多条路由具有相同的 router-id 时也忽略本原则,当没有当前最佳路由时,也忽略本原则,例如提供最佳路径的邻居 down 掉。(仅 ebgp 路由)
11: BGP 优选具有最低的 router-id 的路由 。如果路径包含 RR 属性,那么在路径选择过程中就用 originator-id 来代替 router-id 进行比较(就是 originator-id 之间进行比较)。
12: 如果 orginator-id 相同,那么 BGP 优选 cluster-list 长度最短的路径 。这种情况只出现在 RR 的环境中。
13: 首选来自于 最低邻居地址( neighbor 后指定的邻居地址) 的路径, 越小越优先 。这个地址是在 BGP 对等体上配置并使用的地址,这个地址是本地对等体路由器在其上配置 TCP 邻居并与远端对等体建立连接时采用的地址。
 
 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM