相关配置及GNS3拓扑以附件形式发送,有兴趣的朋友可以参考
1.确定迁移前后拓扑
1.1 迁移前网络
IGP拓扑
(1)网络环境描述
①AS 100内所有设备运行BGP,通过环回口建立全互联iBGP对等体关系
②每台设备上都建立了peer group Internal,并将所有iBGP对等体加入其中
③R3产生更新3.3.3.0/24,并通告给所有iBGP对等体
在IGP中,R4、R5、R6、R7去往R3都存在两条负载均衡的路径
R6、R7同理
④外部路由分别通过R1、R6进入当前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)迁移分析
①当前网络的核心层设备为R1、R2、R4、R5,POP设备为R1、R2、R3,R4、R5、R6、R7,网络的迁移应当以POP为单位逐个迁移
②当前网络中,路由更新的起源设备为R3、R6、R7、R8,而在AS 100内,仅负责传输的设备为R2、R4、R5并且具有冗余性
③在进行迁移时,可以考虑从R2、R4、R5中的一台进行
④当某个对等体从一个peer group转移到另一个peer group时,会导致本地与其的对等体关系中断,此时应当避免路由黑洞的产生
可以考虑建立新的iBGP会话并将对等体加入到peer group中进行备份
也可以先将迁移设备移出转发路径再做迁移
⑤一台核心层设备迁移完毕后,RR开始工作,这将导致其对等体设备收到冗余的路由更新,由于其CLUSTER_LIST更长,因此该冗余更新不会被其它设备作为最佳路径,路由环路存在的风险得以避免
⑥一台核心层设备迁移完毕后,应当开始部署其client,在client上断开不必要的对等体关系即可(此时clients只与其RR建立对等体关系)
在断开对等体关系前,必须确保迁移设备上通过RR学习到了需要的更新
这里比如首先迁移R4,则必须要求R4与R3的对等体关系不能中断,否则R4将收不到起源于R3的更新
如果执行迁移的设备还连接了其它AS的设备,应当注意迁移是否会造成AS间路由的问题
出于保险,一般建议首先修改流量流出和流入当前AS的路径再执行迁移
⑦在一个RR与其clients都迁移完毕后,以类似的步骤迁移另一个RR
⑧一个POP迁移完毕后,以类似的步骤迁移另一个POP
⑨检查迁移完毕后的对等体关系、路由更新学习情况,清除剩余的对等体
1.2 迁移后网络
①部署RR应当遵循物理拓扑,根据这里的物理拓扑,R1、R2配置为R3的RR,R4、R5则为R6、R7的RR,核心层设备间建立全互联iBGP对等体关系
②应当使得R4、R5、R1、R2具有不同的cluster-id
2.部署RR
2.1 选取起始设备
这里较为合适的起始设备为R2、R4、R5,选择R2作为起始设备
2.2 迁移R2
(1)防止R2在迁移过程中出现路由黑洞
①方法
可以建立额外的iBGP会话,也可以将R2从转发路径中移除
这里,笔者采用第一种方法
R2上只需要能够获得R3、R6、R7的更新且下一跳正确即可,因此R2使用物理接口分别于R3、R6、R7建立对等体关系
②部署
a.R2上通过物理接口与R3、R6、R7建立新的iBGP会话
这里需要注意R6与R2建立新的iBGP会话时,应当配置next-hop-self,否则R6通告的AS 200更新下一跳为R8
b.检查对等体关系以及路由学习情况
(2)部署R2
①R2上建立新的peer-group RR,并将其中成员指定的RR client,将R3从group Internal中移除,加入到新的group RR中
②R2上将R6、R7从peer group Internal中移除
③R3与R2新的对等体关系建立后,清除其物理接口建立的iBGP对等体
④检查R1、R4、R5的BGP转发表中是否出现冗余的更新,其Cluster ID为22.22.22.22
2.3 迁移R3
(1)校验
检查R3的BGP转发表,确定R6、R7的更新通过RR接收
检查R4、R5、R6、R7的转发表,其中同样应当存在2份R3的更新
(2)中断对等体关系
中断R3与R4、R5、R6、R7的对等体关系
(3)校验
此时,R1上存在2份R3的更新,一份来自R3本身,一份由R2反射
R4、R5、R6、R7上都只存在一份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上通过物理接口与R3、R6、R7建立新的iBGP会话
注意next-hop-self
②检查对等体关系以及路由学习情况
③R1上建立新的peer-group RR,并将其中成员指定的RR client,将R3从group Internal中移除,加入到新的group RR中
注意next-hop-self
④R1上将R6、R7从peer group Internal中移除
⑤R3与R2新的对等体关系建立后,清除其物理接口建立的iBGP对等体
⑥检查R2、R4、R5的BGP转发表中是否出现冗余的更新,其Cluster ID为33.33.33.33
至此,第一个POP迁移完毕
2.5 迁移R5
(1)防止路由黑洞
R5此时只与R2、R4、R6、R7建立了对等体关系,因此在迁移之前,只需要与R6、R7建立额外的iBGP会话即可
(2)部署R5
①校验对等体关系的建立以及新路由的学习情况
②R5上建立新的peer-group RR,并将其中成员指定的RR client,将R6、R7从group Internal中移除,加入到新的group RR中
③新的对等体关系建立后,清除其物理接口建立的iBGP对等体
④此时进行校验,R1、R2上应当都能够收到起源R6、R7的2份更新拷贝,一份来自R6、R7本身,一份来自R5反射
(3)去除R6、R7上不必要的对等体关系
由于此时通过R5,R6、R7的更新已经能够被另一个POP接收,之前建立的物理iBGP会话已经不再需要
2.6 迁移R6、R7
中断R6、R7上不必要的对等体关系,此时在AS内只需与R4、R5建立对等体关系即可
2.7 迁移R4
部署思路及过程类似R5,这里不再详述
2.8 最终校验
如果部署顺利,此时已经能够得到迁移后的拓扑
①检查各台设备的BGP对等体关系是否正常
②检查各台设备路由学习是否与预期相同
③检查AS之间流量的流向是否发生改变