相关配置及GNS3拓扑以附件形式发送,有兴趣的朋友可以参考


1.确定迁移前后拓扑

1.1 迁移前网络

123023617.png

IGP拓扑

123053828.png

1网络环境描述

AS 100内所有设备运行BGP,通过环回口建立全互联iBGP对等体关系

②每台设备上都建立了peer group Internal,并将所有iBGP对等体加入其中

R3产生更新3.3.3.0/24,并通告给所有iBGP对等体

IGP中,R4R5R6R7去往R3都存在两条负载均衡的路径

R6R7同理

④外部路由分别通过R1R6进入当前AS,且通过修改R6更新的LP值为120,所有设备默认优选R6作为AS的出口

⑤更新离开当前AS时,配置了set-metric-type-internal以反映AS 100内部的网络情况,这导致R8对于1.1.1.0/24优选R1抵达,对于6.6.6.0/24以及7.7.7.0/24优选R6抵达

2迁移分析

①当前网络的核心层设备为R1R2R4R5POP设备为R1R2R3R4R5R6R7,网络的迁移应当以POP为单位逐个迁移

②当前网络中,路由更新的起源设备为R3R6R7R8,而在AS 100内,仅负责传输的设备为R2R4R5并且具有冗余性

③在进行迁移时,可以考虑从R2R4R5中的一台进行

④当某个对等体从一个peer group转移到另一个peer group时,会导致本地与其的对等体关系中断,此时应当避免路由黑洞的产生

可以考虑建立新的iBGP会话并将对等体加入到peer group中进行备份

也可以先将迁移设备移出转发路径再做迁移

⑤一台核心层设备迁移完毕后,RR开始工作,这将导致其对等体设备收到冗余的路由更新,由于其CLUSTER_LIST更长,因此该冗余更新不会被其它设备作为最佳路径,路由环路存在的风险得以避免

⑥一台核心层设备迁移完毕后,应当开始部署其client,在client上断开不必要的对等体关系即可(此时clients只与其RR建立对等体关系)

在断开对等体关系前,必须确保迁移设备上通过RR学习到了需要的更新

这里比如首先迁移R4,则必须要求R4R3的对等体关系不能中断,否则R4将收不到起源于R3的更新

如果执行迁移的设备还连接了其它AS的设备,应当注意迁移是否会造成AS间路由的问题

出于保险,一般建议首先修改流量流出和流入当前AS的路径再执行迁移

⑦在一个RR与其clients都迁移完毕后,以类似的步骤迁移另一个RR

⑧一个POP迁移完毕后,以类似的步骤迁移另一个POP

⑨检查迁移完毕后的对等体关系、路由更新学习情况,清除剩余的对等体

1.2 迁移后网络

①部署RR应当遵循物理拓扑,根据这里的物理拓扑,R1R2配置为R3RRR4R5则为R6R7RR,核心层设备间建立全互联iBGP对等体关系

②应当使得R4R5R1R2具有不同的cluster-id

123125833.png


2.部署RR

2.1 选取起始设备

这里较为合适的起始设备为R2R4R5,选择R2作为起始设备

2.2 迁移R2

1防止R2在迁移过程中出现路由黑洞

①方法

可以建立额外的iBGP会话,也可以将R2从转发路径中移除

这里,笔者采用第一种方法

R2上只需要能够获得R3R6R7的更新且下一跳正确即可,因此R2使用物理接口分别于R3R6R7建立对等体关系

②部署

a.R2上通过物理接口与R3R6R7建立新的iBGP会话

这里需要注意R6R2建立新的iBGP会话时,应当配置next-hop-self,否则R6通告的AS 200更新下一跳为R8

b.检查对等体关系以及路由学习情况

2部署R2

R2上建立新的peer-group RR,并将其中成员指定的RR client,将R3group Internal中移除,加入到新的group RR

R2上将R6R7peer group Internal中移除

R3R2新的对等体关系建立后,清除其物理接口建立的iBGP对等体

④检查R1R4R5BGP转发表中是否出现冗余的更新,其Cluster ID22.22.22.22

2.3 迁移R3

1校验

检查R3BGP转发表,确定R6R7的更新通过RR接收

检查R4R5R6R7的转发表,其中同样应当存在2R3的更新

2中断对等体关系

中断R3R4R5R6R7的对等体关系

3校验

此时,R1上存在2R3的更新,一份来自R3本身,一份由R2反射

R4R5R6R7上都只存在一份R3更新,均来自R2的反射

2.4 迁移R1

1是否需要改变流量流向

默认时,R8去往R3的路由优先从R1走,因此需要考虑是否要改变AS间流量的优先路径选择

R1的部署思路与R2类似,需要先建立额外的iBGP会话,然后再部署RR

由于在部署过程中并不会导致明显的服务中断情况,在该环境下可以允许不改变流量流向

此外,使用物理接口建立iBGP会话后,可能会导致下一跳IGP metric发生改变,进而使得R8上的路径参数发生改变,但是不影响选路

为了保证新建立iBGP会话传递路由的可达性,R1上注意配置next-hop-self

2部署R1

R1上通过物理接口与R3R6R7建立新的iBGP会话

注意next-hop-self

②检查对等体关系以及路由学习情况

R1上建立新的peer-group RR,并将其中成员指定的RR client,将R3group Internal中移除,加入到新的group RR

注意next-hop-self

R1上将R6R7peer group Internal中移除

R3R2新的对等体关系建立后,清除其物理接口建立的iBGP对等体

⑥检查R2R4R5BGP转发表中是否出现冗余的更新,其Cluster ID33.33.33.33

至此,第一个POP迁移完毕

2.5 迁移R5

1防止路由黑洞

R5此时只与R2R4R6R7建立了对等体关系,因此在迁移之前,只需要与R6R7建立额外的iBGP会话即可

2部署R5

①校验对等体关系的建立以及新路由的学习情况

R5上建立新的peer-group RR,并将其中成员指定的RR client,将R6R7group Internal中移除,加入到新的group RR

③新的对等体关系建立后,清除其物理接口建立的iBGP对等体

④此时进行校验,R1R2上应当都能够收到起源R6R72份更新拷贝,一份来自R6R7本身,一份来自R5反射

3去除R6R7上不必要的对等体关系

由于此时通过R5R6R7的更新已经能够被另一个POP接收,之前建立的物理iBGP会话已经不再需要

2.6 迁移R6、R7

中断R6R7上不必要的对等体关系,此时在AS内只需与R4R5建立对等体关系即可

2.7 迁移R4

部署思路及过程类似R5,这里不再详述

2.8 最终校验

如果部署顺利,此时已经能够得到迁移后的拓扑

①检查各台设备的BGP对等体关系是否正常

②检查各台设备路由学习是否与预期相同

③检查AS之间流量的流向是否发生改变