设为首页收藏本站language 语言切换
查看: 1121|回复: 1
收起左侧

BGP additional paths

[复制链接]
发表于 2018-2-23 14:27:12 | 显示全部楼层 |阅读模式
突然发现上个月release的最新版wireshark(1.10)已经全面支持BGP add path数据包的解析了BGP <wbr>additional <wbr>paths.于是就把之前做的一个小实验贴了出来。就是简单测了下CISCO路由器的一个稍微新一点的feature,叫BGP add path,目前还是个IETF的draf,最新的是http://tools.ietf.org/html/draft-ietf-idr-add-paths-08 ,但是这个draf貌似刚过期了BGP <wbr>additional <wbr>pathsBGP <wbr>additional <wbr>paths。
拓扑和上一次的基本一样。
BGP <wbr>additional <wbr>paths
(1) 其中AS64512里RR-client的结构,R1,R2,R3是client。R1和R2分别于R5建立EBGP peer,并且从R5收到一条5.5.5.5/32的BGP路由。
(2) R1,R2收到EBGP路由后,会分别把路由发送给RR,其中R2设置了route-map,修改了这条路由的local preference,由原来默认的100改成了500.
(3) RR分别从R1和R2收到这条路有,根据best path选路原则,判定从R2收到的路由为best,于是把这条best的路由反射给他的client,其中包括R1.
(4) 拓扑收敛,R1,R2,R3去往5.5.5.5/32的流量都会走R2下一条,然后到达R5

以上这种情况,假如R2因为某种原因(比如down掉了),那么RR会withdraw之前的路由,然后等待R1发送新的5.5.5.5/32路由,然后RR再反射,再收敛。OK。

BGP add path的机制是什么呢?就是路由器除了发送最佳best路由给对方外,还会发送非best的次佳,或者次次佳路等等给对方,这样对方相当于是去往目的地有多条路由,不光只有最佳路由。

根据上面的情况,首先RR本身就没有次优路由,只有最优best路由,就是从R2收到的5.5.5.5/32这条路由。
为了让RR从收到R1发过来的路由,在R1上做一个配置:
r1#sh run | b r b
router bgp 64512
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 10.0.14.4 remote-as 64512
neighbor 10.0.15.5 remote-as 64511
!
address-family ipv4
  bgp advertise-best-external
  neighbor 10.0.14.4 activate
  neighbor 10.0.14.4 next-hop-self
  neighbor 10.0.15.5 activate
exit-address-family
加上这条bgp advertise-best-external 以后,R1收到RR反射过来的R2的路由后,也不会认为它是最佳,而认为自己从EBGP收到的为最佳,于是还会把这条路由发送给RR。 然后RR就有了两条去往5.5.5.5/32的路由,一条是R1,一条是R2过来的,其中R2的为best。

那么为了让R3不止收到RR反射给它的最佳best路由,还要能收到次优的,也就是下一条是R1的路由,RR和R3做如下配置:

rr#sh run | b r b
router bgp 64512
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 10.0.14.1 remote-as 64512
neighbor 10.0.24.2 remote-as 64512
neighbor 10.0.34.3 remote-as 64512
!
address-family ipv4
  bgp additional-paths select best 2
  neighbor 10.0.14.1 activate
  neighbor 10.0.14.1 route-reflector-client
  neighbor 10.0.24.2 activate
  neighbor 10.0.24.2 route-reflector-client
  neighbor 10.0.34.3 activate
  neighbor 10.0.34.3 route-reflector-client
  neighbor 10.0.34.3 additional-paths send receive
  neighbor 10.0.34.3 advertise additional-paths best 2
exit-address-family

r3#sh run | b r b
router bgp 64512
bgp log-neighbor-changes
no bgp default ipv4-unicast
neighbor 10.0.34.4 remote-as 64512
!
address-family ipv4
  bgp additional-paths install
  neighbor 10.0.34.4 activate
  neighbor 10.0.34.4 additional-paths send receive
exit-address-family

neighbor 10.0.34.4 additional-paths send receive 是用于BGP open capacity协商的。
capacity code请参考IANA http://www.iana.org/assignments/ ... ability-codes.xhtml
(涉及到的capacity有两个,一个是69,ADD-PATH Capability, 一个是70,Enhanced Route Refresh Capability http://tools.ietf.org/html/draft ... ed-route-refresh-02) 相关的东西还没看
neighbor 10.0.34.3 advertise additional-paths best 2 是说 要给R3次优路由。

在RR上看:
BGP <wbr>additional <wbr>paths

可以看到有最优的下一跳是10.0.24.2也就是R2,次优的标示为"a"的,下一跳R1。a就是additional-path
R3是否可以收到这两条路由呢:
BGP <wbr>additional <wbr>paths

可以看到R3收到了两条,最优和次优。其中次优路由标示为"b",意为backup-path.

所以即使R2不可达路由被withdraw了,backup路由也会很快成为了best路由,转发流量。BGP的收敛速度肯定就明显加快了。

具体的详细机制,可以再看IETF的daft或者cisco的文档研究,因为过程不是写的这么简单的BGP <wbr>additional <wbr>pathsBGP <wbr>additional <wbr>paths。
另外指出的一点,新版的wireshark(1.10.0)已经可以支持解析bgp add path的数据包了BGP <wbr>additional <wbr>paths
BGP <wbr>additional <wbr>paths

BGP <wbr>additional <wbr>paths

zhanluehezuo.png
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-10 12:34 , Processed in 0.125813 second(s), 26 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表