直击现场|贵阳经贸学校云桌面应用实地探访
2024年11月26日 16:00-17:00
预约直播
Wi-Fi 7 来袭,你要上车吗?
2024年11月27日 16:30-17:15
预约直播
产品
产品中心
< 返回主菜单
产品

交换机

交换机所有产品
< 返回产品
交换机
查看交换机首页 >

无线

无线所有产品
< 返回产品
无线
查看无线首页 >

云桌面

云桌面产品方案中心
< 返回产品
云桌面
查看云桌面首页 >

安全

安全所有产品
< 返回产品
安全
查看安全首页 >
产品中心首页 >
行业
行业中心
< 返回主菜单
行业
行业中心首页 >

你不知道的BGP新特性:“ADD-PATH” |运维实战家

发布时间: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标准在不断更新,大家也要保持学习,更新自身专业知识。

 

关注锐捷
关注锐捷官网微信
随时了解公司最新动态

返回顶部

请选择服务项目
关闭咨询页
售前咨询 售前咨询
售前咨询
售后服务 售后服务
售后服务
意见反馈 意见反馈
意见反馈
更多联系方式
是否找到您想要的内容?
您遇到了什么问题?
找不到想要的信息
筛选功能不好用
加载速度太慢
页面体验差
提交
您是否找到了与产品相关的文档
筛选功能是否帮助您更快找到所需的文档?
有帮助
一般
没有帮助
没用过
请问您遇到了什么问题?
需要填写的内容太多
有些信息不懂怎么填
页面有问题/错误
其他
确定
这些客户案例是否对您有帮助?
非常有帮助
比较有帮助
没有帮助
请您对这个客户案例进行评价
兴趣度
相关性
可信度
确定
感谢您的反馈!
感谢您的反馈!