一个拓扑,搞定BGP13条路径选择算法 - 案例分析
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了一个拓扑,搞定BGP13条路径选择算法 - 案例分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含11818字,纯文字阅读大概需要17分钟。
内容图文
![一个拓扑,搞定BGP13条路径选择算法 - 案例分析](/upload/InfoBanner/zyjiaocheng/1137/415d458ec2f440d9bc529b9822b1a399.jpg)
1.1.BGP协议最佳路径选择算法
BGP 是一个路径矢量路由协议,也就是说,它的工作就是在自主系统间交换路由信息,以便发现访问互联网某处数据的最有效路径。每个 BGP 路由器通过邻居声名与周边的一个或多个路由器连接。一旦建立了邻居关系,这些 BGP 路由器之间就会相互交换路由信息。据我最近一次统计,整个互联网上有大约 12.5 万个路由信息,因此要配备一个强大的路由器才能将所有 BGP 路由信息接收下来。
1.1.1.BGP 最佳路径选择算法概述
由于整个互联网的 BGP 路由表有超过 30 万个路由,同时一个 BGP 路由器可能从多个来源收到多份的路由表,因此肯定会有一种方法可以比较不同的 BGP 路由表,并从中选择最佳的路由方案。这种方法就是 BGP 最佳路径选择算法。
可能你会注意到, Cisco BGP 路由器会将应用权重 (weight) 作为 路由表的第一标准,而其它品牌的路由器则不是这样。 Cisco 的官方 BGP 最佳路径选择算法文档 中详细列明了所参考的各项标准。接下来我会列出每种标准并给出解释和范例。
默认情况下, BGP 最佳路径都是基于最短自治系统 (AS) 的原理得出的。不过很多时候,诸如 weight , localpreference 以及 MED 这样的标准都是网络管理员自行设定的。
接下来我们就按照 BGP 选择最佳路径的参考顺序将这几项标准介绍一下:
n #1 Weight — 权重是 Cisco 为本地路由器设定的自定义参数,并不随路由器更新而变化。如果指向某一 IP 地址的路径有多条 ( 这很常见 ) ,那么 BGP 会寻找权重最高的路径。设定权重的参考因素很多,包括邻居命令, as-path 访问列表,或者路由镜像等。
n #2 Local Preference — 本地出口优先级参数会告知 AS 哪条路径具有本地优先,数值越高优先级越高。默认为 100 。比如:
n bgp defaultlocal-preference 150
n #3 Network orAggregate — 这个参数会选择本地发起的网络或聚合作为路径。将特定的路径加入路由中,会让路由更有效率,同时也节省了网络空间。更多有关聚合的信息,可以参考 Cisco 的文章“ UnderstandingRoute Aggregation in BGP. ”
n #4 Shortest AS_PATH — BGP 只有在 weight, local preference 和 locally originated 相当接近的时候才使用这个参数。
n #5 Lowest origintype — 这个参数处理 InteriorGateway Protocol (IGP) 协议的优先级低于 Exterior GatewayProtocol (EGP) 协议。
n #6 Lowestmulti-exit discriminator (MED) — 较低的 MED 值要优于较高的 MED 值。
n #7 eBGP over iBGP — 类似于 #5,BGP AS Path 更倾向 eBGP 而不是 iBGP 。
n #8 Lowest IGPmetric — 这个参数倾向于采用最低 IGP 作为 BGP 下一跳。
n #9 Multiple paths — 这个参数决定是否要在路由表中装入多个路径。可以参考 BGP Multipath 获取更多信息。
n #10 External paths — 当所有路径都为外部路径时,选择首先接收到的路径 ( 较老的路径 ) 。
n #11 Lowest routerID — 选择来自具有最低路由器 ID 的 BGP 路由器的路径。
n #12 Minimum clusterlist — 如果多个路径的 originator 或路由器 ID 相同,选择 cluster 列表长度最短的路径。
n #13 Lowest neighboraddress — 这是指最低邻居地址传来的路径。
1.1.2.案例分析
1.1.2.1. 拓扑图
上图为 BGP 协议最佳路径选择算法的验证拓扑。
1.1.2.2. 验证方法:
l 跟踪 1.1.1.0/24 验证第 7 条
l 跟踪 3.3.3.0/24 验证第 10,11,13 条
l 路由过滤跟踪 3.3.3.0/24 验证第 6 条 ( 影响邻居最佳路由选择 )
l 跟踪 33.33.33.0/24 验证第 5 条 , 并在此基础上验证第 3 条
l 跟踪 33.33.33.0/24 验证第 4 条
l 跟踪 1.1.1.0/24 验证第 1,2 条
若要完成此实验需满足两个重要条件: 1. 已经同步或者同步已经关闭, 2. 下一跳可达。
1.1.3.验证第十三条,最低的邻居IP地址:
在 R1 , R6 间建立两个邻接关系,然后在 R1 上观察网络 3.3.3.0/24 使用那一条路径作为下一跳。
实验输出
R1#show ip bgp BGP table version is 2, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path *> 3.3.3.3/24 16.16.16.6 0 65236 i * 61.61.61.6 0 65236 i |
1.1.4.验证第十一条,比较较小的邻居的RouterID
在 R3 上观察 1.1.1.0/24 的路由,优选从 R2 过来的那条路径
实验输出
R3#show ip bgp BGP table version is 2, local router ID is 3.3.3.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path * i 1.1.1.0/24 36.36.36.6 0 100 0 65101 i *>i 23.23.23.2 0 100 0 65101 i |
1.1.5.验证第十条,EBGP优选the oldestone
通过在 R2 上输入命令 cle ip bgp * ,重置 R1 , R2 的邻接关系,然后在 R1 的路由表中观察到关于网络 3.3.3.0/24 的下一跳的变化情况
实施策略前输出
R1#show ip route bgp Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override
Gateway of last resort is not set
3.0.0.0/24 is subnetted, 1 subnets B 3.3.3.0 [20/0] via 12.12.12.2, 00:00:46 |
实施策略后输出
R1#show ip route bgp Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override
Gateway of last resort is not set
3.0.0.0/24 is subnetted, 1 subnets B 3.3.3.0 [20/0] via 16.16.16.6, 00:00:05 |
1.1.6.验证第九条,maximum-paths负载分担
在 R1 开启命令 maximum-paths 2 ,应该在 R1 的路由表中看到关于网络 3.3.3.0/24 有两个下一跳,实现了负载分担。
配置如下
router bgp 1 bgp router-id 1.1.1.1 maximum-paths 2 |
实验输出
R1#show ip route bgp Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP a - application route + - replicated route, % - next hop override
Gateway of last resort is not set
3.0.0.0/24 is subnetted, 1 subnets B 3.3.3.0 [20/0] via 16.16.16.6, 00:00:05 [20/0] via 12.12.12.2, 00:00:05 |
1.1.7.验证第八条,lowestIGP metric
在 R3 观察 1.1.1.0/24 的路由, 通过在 R2 上修改 R2,R3 间链路的带宽,从而影响 EIGRP 的 metric 。
配置如下
int s0/1 bandwidth 100 |
实验输出
R3#show ip bgp 1.1.1.0 255.255.255.0 BGP routing table entry for 1.1.1.0/24, version 5 Paths: (2 available, no best path) Not advertised to any peer Refresh Epoch 2 65101 12.12.12.1 (inaccessible) from 23.23.23.2 (2.2.2.2) Origin IGP, metric 0, localpref 100, valid, internal rx pathid: 0, tx pathid: 0 Refresh Epoch 2 65101 16.16.16.1 (inaccessible) from 36.36.36.6 (6.6.6.6) best Origin IGP, metric 0, localpref 100, valid, internal rx pathid: 0, tx pathid: 0 |
1.1.8.验证第七条,EBGP VsIBGP
在 R2 , R6 间建立 IBGP 邻接关系, 然后在 R6 上观察网络 1.1.1.0/24 的两个来源:
从 R1 来的是 EBGP ,从 R2 来的是 IBGP
实验输出
R6#show ip bgp BGP table version is 3, local router ID is 6.6.6.6 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path * i 1.1.1.0/24 12.12.12.1 0 100 0 65101 i *> 16.16.16.1 0 0 65101 i |
1.1.9.验证第六条,MED
在 R2 , R6 上分别修改关于网络 3.3.3.0/24 的 med 值,然后在 R1 上观察。
试验配置
R2 router bgp 236 bgp router-id 2.2.2.2 neighbor 12.12.12.1 route-map Net3 out ! route-map Net3 permit 10 match ip address 3 set metric 20 route-map Net3 permit 20 ! access-list 3 permit 3.3.3.0 0.0.0.255 |
R6 router bgp 236 bgp router-id 6.6.6.6 neighbor 16.16.16.1 route-map Net3 out ! route-map Net3 permit 10 match ip address 3 set metric 60 route-map Net3 permit 20 ! access-list 3 permit 3.3.3.0 0.0.0.255 |
实验输出
R1#show ip bgp BGP table version is 6, local router ID is 1.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path *> 3.3.3.0/24 12.12.12.2 20 0 65236 i * 16.16.16.6 60 0 65236 i |
1.1.10. 验证第五条,locally originated
在 R3 上观察 26.26.26.0/24 的网络
网络 26.26.26.0/24 在 R6 被重分发直连进入 BGP 表;在 R2 上被 network 进入 BGP 表
试验配置
R6 router bgp 236 bgp router-id 6.6.6.6 redistribute connected route-map S02 ! route-map S02 permit 10 match interface Serial0/2 |
R2 router bgp 236 bgp router-id 2.2.2.2 network 26.26.26.0 mask 255.255.255.0 |
实验输出
R3#show ip bgp BGP table version is 15, local router ID is 3.3.3.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path *>i 26.26.26.0/24 23.23.23.2 0 100 0 i * i 36.36.36.6 0 100 0 ? |
1.1.11. 验证第四条,Prefer shortest AS path.
在 R3 观察 1.1.1.0/24 的路由, R3 应该可以收到分别从 R2 , R6 的两条路由。
在 R2 上加 route-map, 利用 as-pathprepend 修改从 R1 过来的路由 1.1.1.0/24 的 AS-path 的长度
实验配置
R2 router bgp 236 neighbor 12.12.12.1 route-map Net1 in ! route-map Net1 permit 10 match ip address 1 set as-path prepend 1 set as-path prepend last-as 2 ! route-map Net1 permit 20 ! access-list 1 permit 1.1.1.0 0.0.0.255 |
实验输出
R3#show ip bgp BGP table version is 7, local router ID is 3.3.3.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path *> i 1.1.1.0/24 23.23.23.2 0 100 0 1 65101 65101 65101 i |
1.1.12. 验证第三条,是否起源于local router
在路由器 R3 观察网络 1.1.1.0/24 的两个来源:一个从 IBGP 学到,一个是本地 network 进来的
在 R3 上面多加一个环回接口 1.1.1.3/24, 或者在 R2 和 R1 运行 EIGRP , R3 通过 EIGRP 从 R2 学到 R1 在 EIGRP 中宣告的 1.1.1./0 的路由。
实验输出
R3#show ip bgp BGP table version is 6, local router ID is 3.3.3.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path *> 1.1.1.0/24 0.0.0.0 0 32768 i |
1.1.13. 验证第二条,本地优先级
配置之前后 showip bgp(tracerout 1.1.1.1) 观察 1.1.1.0/24 路由
通过在 R2 上修改 1.1.1.0/24 的路由的本地优先级,从而影响 R3 的路由选择,将 R3 到网络 1.1.1.0/24 的下一跳由原来的 36.36.36.6 修改为 23.23.23.2
实验配置
R2 router bgp 236 bgp router-id 6.6.6.6 neighbor 23.23.23.3 route-map Net1 out access-list 1 permit 1.1.1.0 0.0.0.255 ! route-map Net1 permit 10 match ip address 1 set local-preference 200 ! route-map Net1 permit 20 |
实验输出
R3#show ip bgp BGP table version is 7, local router ID is 3.3.3.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path *>i 1.1.1.0/24 23.23.23.2 0 200 0 1 65101 65101 65101 i |
1.1.14. 验证第一条,weight
配置前后观察 R3 上 1.1.1.0/24 的路由
实验配置
R3 router bgp 236 neighbor 36.36.36.6 route-map Net1 in route-map Net1 permit 10 match ip address 1 set weight 5 ! route-map Net1 permit 20 ! access-list 1 permit 1.1.1.0 0.0.0.255 |
实验输出
R3#show ip bgp BGP table version is 7, local router ID is 3.3.3.3 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found
Network Next Hop Metric LocPrf Weight Path *>i 1.1.1.0/24 23.23.23.2 0 200 5 1 65101 65101 65101 i |
本文出自 “黑客的眼睛” 博客,转载请与作者联系!
原文:http://9627522.blog.51cto.com/9617522/1955220
内容总结
以上是互联网集市为您收集整理的一个拓扑,搞定BGP13条路径选择算法 - 案例分析全部内容,希望文章能够帮你解决一个拓扑,搞定BGP13条路径选择算法 - 案例分析所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。