路由器故障:IBGP對等體未學到EBGP路由
IBGP是內部BGP協議(IBGP)的主要作用是向你的內部路由器提供更多信息,而EBGP 是外部邊界網關協議,用于在不同的自治系統間交換路由信息。下面就讓我們來看一下IBGP對等體未學到EBGP路由的故障是怎么解決的。
網絡環境
在圖的網絡中,RouterA和RouterB在AS100內建立IBGP鄰居,RouterB和RouterC建立EBGP鄰居。RouterB通過aggregate命令向外發布掩碼長度為22的聚合路由,造成和RouterA連接的部分網段的用戶無法訪問RouterC。
圖IBGP對等體未學到EBGP路由
故障分析
步驟 1 在RouterA上,執行display bgp routing-table命令查看所有路由,有與其連接的所有網段的路由,排除鏈路故障。
步驟 2 在RouterA上,執行ping命令可以ping通用戶端,說明RouterA到用戶網段通暢。
步驟 3 在RouterB上,執行ping命令不能ping通用戶端。
步驟 4 在RouterB上,執行display bgp routing-table命令查看所有BGP路由,發現掩碼長度小于22的BGP的路由下一跳指向RouterA,但掩碼長度為22的路由下一跳卻指向Null0。
由此可知,可能是由于aggregate命令的不正確使用導致。BGP的aggregate命令會自動針對聚合的路由,產生一條指向Null0的黑洞路由。其作用類似以network方式發布聚合路由。由于aggregate命令中配置的聚合路由掩碼長度與從RouterA上學習的BGP路由掩碼長度一樣,導致RouterB自動產生指向Null0的聚合黑洞路由,把所有回程報文全部丟棄。
----結束
處理步驟
在RouterB上分別執行如下操作。
步驟 1 執行命令system-view,進入系統視圖。
步驟 2 執行bgp命令,進入BGP視圖。
步驟 3 執行undo aggregate命令取消聚合后,運行display bgp routing-table命令查看RouterB的所有BGP路由,發現掩碼長度為22的路由的下一跳為RouterA。
步驟 4 執行aggregate命令(掩碼長度須小于22),進行路由聚合。
步驟 5 執行命令return退回到用戶視圖,執行命令save,保存對配置的修改。
----結束
配置完成后,在RouterB上可以ping通用戶端,故障排除。
案例總結
aggregate命令會自動對要聚合的路由產生下一跳指向Null0的路由。如果要實現路由聚合,聚合路由掩碼長度必須小于學習到的精細路由掩碼長度,這樣自動產生的黑洞路由才不會覆蓋具體路由;要抑制具體路由發布,可以添加detail-suppressed參數。
【編輯推薦】