您订阅的产品有更新,请实时查阅
审查详情
宣布时间:2020-10-12
“运维实战家”专栏,从手艺到实践,
和您聊聊运维的那些事儿,讲述运维人的“昨天、今天和明天”
作者:大峰
运营商服务中心
BGP由于支持基于战略的路由选路,协议易扩展,且支持数目更多的路由条目,在主干网现实生产情形中被普遍安排。通常在主干网生产网络中,使用ISIS或者OSPF作用域内IGP协议,使域内所有营业汇聚装备、焦点装备环回地址可达。在此基础上再安排BGP举行营业路由承载,但由于BGP自身选路原则缘故原由,在主干网保存冗余节点时可能会爆发非预期的网络流量模子。使用古板的“虚拟下一跳”方法举行处置惩罚时即破损了BGP的强盛的路由控制能力,同时也增添了网络对虚拟下一跳的IP的妄想、安排操作,大大增添了网络运维的重漂后。但在rfc7911泛起后,通过BGP ADD-PATH特征可自动实现等价BGP路由,不再需要小伙伴们举行虚拟下一跳IP妄想与安排。
前不久,网工小锐在一次主干网集成项目就遇到了这样的头疼问题,接下来,小锐现身说法,分享下怎样使用ADD-PATH特征解决难题。
BGP在主干网中是怎样安排的?
某日,小锐接到个令他兴奋的项目:某省级数据中心集成项目,从数据中心出口、汇聚、接入均由他认真设计、实验。这让他学习多年的BGP、ISIS终于迎来了实战,心里无比激动,开心......
此时在他的脑海里想起了“它”的好,强盛的路由控制能力,在主干网中被普遍安排,协议易扩展,支持数目更多的路由条目。于是小锐在与客户相同后,在数据中心的出口层面设计成以下图一的拓扑。
图一
如图一,除数据中心CR外,其他均为现有网络。接入网CR,省自力RR、省BR兼RR装备均运行在统一管理域内ISIS level 2中。接入网CR使用口字型拓扑与省BR互联。
数据中心CR小锐设计为使用双V字型拓扑与省BR兼RR装备互联。由于网络处于演进阶段,现阶段数据中心CR只与省自力RR形成IBGP邻人关系,且数据中心CR为BGP RR client角色。接入网CR与省BR兼RR装备形成IBGP邻人关系,且接入网CR作为BGP RR client角色。省自力RR与省BR兼RR装备形成IBGP邻人关系,不保存BGP RR client角色。省BR作用出口角色向全省宣布ISIS默认路由。
此时小锐心中全是欢喜,并自得的联系客户举行测试。第一个测试项是模拟营业路由承载测试。
在数据中心CR1、CR2同时宣布相同营业网段路由,所有BGP选路属性均为默认值。在小锐脑海里这预期效果就是接入网两台CR的BGP路由表中保存两条划分指向数据中心CR1、CR2的营业网段路由,简直……
客户通过接入网CR审查数据中心营业网段路由时,下一跳均为数据中心CR1的loopback地址。小锐听到这事实,简直不敢相信,这么优异的设计怎么还会泛起幺蛾子!
经由多次对计划推敲与现网验证,小锐始终没找到问题缘故原由。于是小锐带着小忧伤向先生傅讨教这“幺蛾子”的由来。
先生傅看到图一拓扑,相识模拟营业路由承载测试效果后,嘴角微微上扬,道出其中的神秘。
由于营业路由在宣告时未对BGP选路属性举行修改,导致省自力RR1、RR2在BGP选路原则作用下只优选router-id较小的BGP邻寓所宣告营业网段作为路由(数据中心CR-1的router-id比CR-2�。�。从而会导致省BR01、BR02、接入网CR1、CR2会见数据中心营业流量均由数据中心CR1承载。这个“幺蛾子”铺张了数据中心CR2链路带宽,同时流量模子也不是客户所期望的。
小伙伴会想到在省自力RR设置“maximum-paths”,使省自力RR形成等价的营业路由,从而省自力RR会先向省BR宣告两个差别下一跳数据中心营业路由。但“maximum-paths”只是影响BGP路由加载到路由表数目,并未能影响BGP路由选路原则。BGP向邻人宣告其BGP路由表中BGP路由,并非装备路由表中路由。
小锐一副豁然爽朗的样子,并继续向先生傅讨教解决计划。
良久以前的解决计划
为解决BGP选路原则带来的“幺蛾子”,先生傅通过虚拟下一跳方法为小锐举行解答。
如图1所示拓扑,数据中心CR1、CR2与省自力RR设置BGP邻人时,通过route-map将数据中心CR1、CR2所宣告营业网段路由下一跳修改为统一个“虚拟IP”。且这个“虚拟IP”同时在数据中心CR1、CR2上设置并通过IGP协议将其宣告到全网,从而使省BR1、BR2学习到数据中心营业路由时下一跳均为“虚拟IP”,“虚拟IP”通过路由表递归查找下一跳出接口为省BR与数据中心CR1、CR2互联端口。进而实现了会见数据中心流量可以在数据中心CR1、CR2间形成等价路径。以下为实现虚拟下一跳大致办法与设置:
! 数据中心CR1、CR2设置虚拟下一跳IP
ip route 172.16.1.1 255.255.255.255 null 0
! 数据中心CR1、CR2设置修改路由宣告下一跳战略
route-map set_vnh permit 10
set next-hop 172.16.1.1
! 数据中心CR1、CR2通过IGP将虚拟IP宣告到全网
ip prefix-list s2i seq 5 permit 172.16.1.1/32
!
route-map red_s2i permit 10
match ip address prefix-list s2i
!
router isis
...
redistribute static route-map red_s2i
! 数据中心CR1、CR2针对省自力RR设置修改营业路由下一跳route-map
router bgp 100
...
address-family ipv4
network 9.9.9.9 mask 255.255.255.255
neighbor 192.168.12.1 route-map set_vnh out
看似通过虚拟下一跳“完善”的解决了此次的“幺蛾子”问题,但它破损了BGP强盛的路由控制能力。在此场景数据中心CR1、CR2无法再通过BGP选路属性举行路由控制,由于营业路由下一跳IP始终为“虚拟IP”。
小锐寻思着尚有没其他更优的解法。先生傅接着往下说......
ADD-PATH特征解决计划
直到rfc7911的泛起,BGP同时宣告统一前缀的多条路径成为可能。rfc7911界说了BGP一种新的capability用于同时宣告多个下一跳的相同BGP路由。通过在BGP邻人世协商add-path capability,路由宣告时会将BGP路由表较优BGP路由同时发送到支持add-path capability的BGP邻人。以下为凭证客户网络修改为add-path方法实现BGP等价路由要害设置:
add-path实现机制只将BGP路由表中较优路由同时发送到BGP邻人,其并未破损BGP路由选路原则。若是需要路由表中天生多条等价BGP路由,还需思量BGP选路原则与增添“maximum-paths”设置。需要注重“add-path”为BGP一种capability。若是现实生产网络中BGP已形成稳固BGP邻人并承载营业路由,启用此特征将会导致BGP会话重修,BGP邻人世重新协商双方BGP capability。
! 省自力RR设置启用add-path特征
router bgp 100
...
!
address-family ipv4
bgp additional-paths select all best 2
...
neighbor 7.7.7.7 additional-paths send
neighbor 7.7.7.7 advertise additional-paths best 2
neighbor 8.8.8.8 additional-paths send
neighbor 8.8.8.8 advertise additional-paths best 2
! 省BR设置启用add-path特征,并设置IBGP多路径负载平衡功效
router bgp 100
...
!
address-family ipv4
...
neighbor 5.5.5.5 additional-paths receive
neighbor 6.6.6.6 additional-paths receive
maximum-paths ibgp 2
手艺总结
BGP固有强盛路由控制能力,在实现安排时可能会爆发非预期网络流量模子。小伙伴们在现实安排时需多加注重控制平面与数据平面相关表项哦。同时BGP也是Internet一个主要的路由协议,相关RFC标准在一直更新,各人也要坚持学习,更新自身专业知识。
