解決H3C路由器在IBGP中出錯
IBGP也就是內部BGP協議,它適用于很多的場合,在OSPF環境中主要是為了防止形成環路,造成網絡故障,本篇就這個故障為介紹應該如何解決,這里是以H3C路由組網的環境為例。
一、H3C的組網,H3C A分別與H3C B和H3C C之間建立OSPF連接,而H3C B和H3C C之間建立IBGP鄰居,H3C A分別向H3C B和H3C C發布了網段192.168.1.0/14,結果,H3C B的OSPF路由表中可以看到,但H3C C的OSPF路由表中沒有該路由。
二、這是為什么呢?下面我們就來具體分析一下:
1、查看H3C C的OSPF LSDB,在出現故障的時候,可以看到LSDB中有該14位網段的信息,但是沒有生成OSPF路由,把192.168.1.0/14分為兩個19位掩碼的網段發布,在H3C B和H3C C上都可以看到此網段OSPF路由信息。
2、在H3C C上,執行display ip routing-table查看全局路由表,發現14位掩碼的此網段路由是通過BGP的方式,從H3C B學習過來,且優先級為中高。
3、在H3C C上,執行display current-configuration查看配置,發現在BGP IPv4單播地址族視圖下,配置了preference 20 100 200,該命令導致IBGP路由優先級為中高,高于OSPF的路由優先級,所以當網段掩碼為14位的時候,選擇了優先級更高的IBGP路由,導致OSPF LSDB不能生成OSPF路由。
三、知道了原因,那我們就可以進憲必要的處理了,在H3C C上分別執行以下操作,執行system-view,進入到系統視圖,接著執行bgp進入BGP視圖,執行undo preference,取消之前的優先級設置,執行preference 20 180 200命令重新設置路由優先級,將IBGP路由優先級設置為180。
經過上面的設置后,可以發現整個網絡正常運行了,這里需要知道H3C C從H3C B學習的的IBGP路由優先級雖然高于150,但是掩碼位為14位時,自然本地的LSDB既可以計算出15位掩碼的路由了,問題的根本原因還在于各協議路由優先級的設置,這是我們在設置路由器時需要注意的。