路由器故障:IBGP鄰居間路由環(huán)路
IBGP鄰居間路由環(huán)路的故障解決步驟如下:
網(wǎng)絡環(huán)境
在下圖的網(wǎng)絡中,RouterA和RouterC建立EBGP鄰居關系,并且通過network方式發(fā)布所有路由給RouterC。RouterB和RouterD的配置與RouterA和RouterC完全對稱。當RouterA和RouterC的互連接口down掉后,在RouterC上發(fā)現(xiàn)去往RouterA的所有網(wǎng)段都不通。
圖 IBGP鄰居間路由環(huán)路
故障分析
步驟 1 在RouterC上執(zhí)行display current-configuratiion命令查看配置。
RouterC通過route-policy將如下城域網(wǎng)的路由再通告給RR的時候強制指定其下一跳為虛擬下一跳地址202.105.0.5。
- ip route-static 202.105.0.5 255.255.255.255 61.142.140.166
- ip route-static 202.105.0.5 255.255.255.255 61.142.140.170
- ip route-static 202.105.0.5 255.255.255.255 61.145.84.94
這三條靜態(tài)路由的下一跳地址分別是RouterA和RouterC互連的三條鏈路接口地址(未指定出接口,RouterA上和RouterC互連的接口是POS1/0/0、POS2/0/0和POS2/1/0)。
在RouterC的ISIS中使用路由策略通過import方式引入這三條靜態(tài)路由。
- ip ip-prefix virtualaddress index 10 permit 202.105.0.5 32
- route-policy virtual-to-IS-IS permit node 10
- if-match ip-prefix virtualaddress
- IS-IS
- cost-style wide-compatible
- network-entity 86.xxxx.2020.9702.8090.00
- import-route static cost 1 level-1-2 route-policy virtual-to-IS-IS
- preference 110
步驟 2 當RouterA和RouterC的互連接口down掉后,在RouterC上發(fā)現(xiàn)去往RouterA的路由下一跳還是虛擬下一跳202.105.0.5,但是出接口卻指向了RouterE。
- <RouterC> dislay ip routing-table 61.145.84.90
- Destination/Mask Proto Pre Cost NextHop Interface
- 61.145.84.0/22 BGP 200 0 202.105.0.5 Pos6/0/0
- BGP 200 0 202.105.0.5 Pos6/0/0
步驟 3 當RouterC和城域網(wǎng)RouterA的互連接口down掉時,由于虛擬下一跳靜態(tài)路由沒有指定出接口,因此靜態(tài)路由不會失效,此時虛擬下一跳通過路由迭代選擇了BGP路由,該路由指向RouterE從而造成環(huán)路。
虛擬下一跳202.105.0.5地址是匹配手工添加的靜態(tài)路由,且下一跳地址并未改變,只是由于原先的出接口已經down掉,因此現(xiàn)在的出接口發(fā)生變化指向RouterE。
- <RouterC> dislay ip routing-table 202.105.0.5
- Destination/Mask Proto Pre Cost NextHop Interface
- 202.105.0.5/32 Static 60 0 61.142.140.166 Pos6/0/0
- Static 60 0 61.142.140.170 Pos6/0/0
- Static 60 0 61.145.84.94 Pos6/0/0
選擇虛擬下一跳202.105.0.5的其中一個下一跳地址61.142.140.166為例,發(fā)現(xiàn)61.142.140.166匹配了一條BGP路由,該路由的下一跳又重新指向了202.105.0.5。該路由是RouterC從RR接收到的城域網(wǎng)內部路由(RouterB通過EBGP關系通告城域網(wǎng)路由給RouterD,RouterD將這些路由發(fā)布給RR的同時將其下一跳改變?yōu)樘摂M地址202.105.0.5,RR又將這些路由反射給RouterC)。這說明此時去往RouterA的路由在RouterC和RouterE之間發(fā)生了環(huán)路。
RouterA和RouterC之間的直連鏈路down掉后發(fā)現(xiàn)RouterC上到城域網(wǎng)的路由沒有指向RouterD,而是指向RouterE。在RouterE上去往城域網(wǎng)的路由又指向了RouterC從而造成路由環(huán)路。
----結束
處理步驟
在RouterC和RouterD上分別執(zhí)行如下操作。
步驟 1 執(zhí)行system-view命令,進入系統(tǒng)視圖。
步驟 2 執(zhí)行ip route-static 202.105.0.5 32 Pos1/0/0 61.142.140.166、ip route-static 202.105.0.5 32 Pos2/0/0 61.142.140.170和ip route-static 202.105.0.5 32 Pos2/1/0 61.145.84.94命令,綁定出接口。
配置虛擬下一跳靜態(tài)路由的時候沒有和出接口進行關聯(lián),導致出接口down掉的時候這些靜態(tài)路由還是生效的,因此配置虛擬下一跳靜態(tài)路由的時候綁定出接口。
RouterD上的操作同RouterC。
當對端接口down掉的時候該靜態(tài)路由會失效,此時由于RouterD上在ISIS中同時引入了虛擬下一跳靜態(tài)路由,因此RouterC上對應虛擬下一跳202.105.0.5的路由應該指向了RouterD,從而不會出現(xiàn)上述情況導致的不通問題。
步驟 3 執(zhí)行命令return退回到用戶視圖,執(zhí)行命令save,保存對配置的修改。
----結束
配置完成后,在RouterC上執(zhí)行ping命令可以ping通RouterA上的所有網(wǎng)段,故障排除。
案例總結
BGP虛擬下一跳是指通過Route-Policy在通告給BGP鄰居路由的時候強制改變這些路由的下一跳地址為一個虛擬出來的地址。虛擬下一跳的應用中,建議配置靜態(tài)路由的時候綁定出接口。
【編輯推薦】