您订阅的产品有更新,请实时查阅
查看详情
颁布功夫: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尺度在不休更新,各人也要维持进建,更新自身专业知识。
