相關配置及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之間流量的流向是否發生改變