作為應用于AS間的路由協(xié)議,IBGP經常被應用于大規(guī)模的網絡中,而這些大規(guī)模的網絡中往往由于設備眾多、配置繁瑣,維護管理難度大、路由復雜等而存在各種各樣的問題。而網絡管理員們一般可以通過增強配置來解決在大規(guī)模網絡中遇到的BGP對等體眾多、BGP路由表龐大、IBGP全連接以及路由表震蕩等問題。
圖1 網絡拓撲示意圖
單位網絡由H3CMSR5660路由器組網,H3CH3C-MSR5660 A和H3C-MSR5660 B、H3CMSR5660 C之間建立OSPF連接,而H3C-MSR5660 B和H3C-MSR5660 C之間建立IBGP鄰居,H3CMSR5660分 別向H3CMSR5660 B和H3CMSR5660 C發(fā)布了網段10.211.4.0/14,結果,H3CMSR5660 B的OSPF路由表中可以看到,但在H3CMSR5660 C的OSPF路由表中沒有該路由(如圖1)。
我們通過下面的策略來進行分析。
首 先,檢 查H3CMSR5660 C的OSPF LSDB,在出現故障的時候,可以看到LSDB中有該14位網段的信息,但是沒有生成OSPF路由,把10.211.4.0/14分為兩個19位掩碼的網段發(fā)布,在H3C-MSR5660 B和H3CMSR5660 C上都可以看到此網段OSPF路由信息。
接著,在H3C-MSR5660 C上,執(zhí) 行display ip routing-table命令查看全局路由表信息,發(fā)現其14位掩碼的該網段路由是通過BGP的方式,從H3C-MSR5660 B中學習得到的,而且優(yōu)先級為中高。
最后,我們通過在H3CMSR5660 C上執(zhí)行display current-configuration檢查路由器當前的配置,發(fā)現在BGP IPv4單播地址簇視圖下,配置了 preference 20 100 200,這條命令導致IBGP路由優(yōu)先級為中高,高于OFPF的路由優(yōu)先級,所以當網段掩碼為14位的時候,選擇了優(yōu)先級更高的IBGP路由,導致OSPF LSDB不能生成OSPF路由。
從上面的檢查結果看,我們可以從優(yōu)先級這個概念進行處理,在H3C-MSR5660 C上分別執(zhí)行以下操作:
執(zhí)行system-view,進入到系統(tǒng)視圖,接著執(zhí)行bgp進入BGP視圖,執(zhí)行undo preference,取消之前的優(yōu)先級設置,執(zhí)行preference20 180 200命令重新設置路由器優(yōu)先級,將IBGP路由優(yōu)先級從原來的100設置為當前的180。
經過上面簡單的設置后,可以發(fā)現整個網絡可以正常運行了。
從本次故障看,我們需要清楚地知道H3C-MSR5660 C從H3C-MSR5660 B學習的IBGP路由優(yōu)先級雖然高于150,但是掩碼位為14位時,自然本地的LSDB就可以計算出15位掩碼的路由了,但是本案例中,問題的根本原因還在于各協(xié)議路由優(yōu)先級的設置,這是我們在設置路由器時需要特別注意的。
為保證IBGP對等體之間的連通性,需要在IBGP對等體之間建立全連接關系。假設在一個AS內部有n臺路由器,那么應該建立的IBGP連接數就為n(n-1)/2。當IBGP對等體數目很多時,對網絡資源和CPU資源的消耗都很大。
利用反射路由可以解決這一問題。在一個AS內,其中一臺路由器作為路由反射RR,其他路由器作為客戶機與路由反射器之間建立IBGP連接。路由反射器在客戶機之間傳遞路由信息,而客戶機之間不需要建立BGP連接。
IBGP必須保持全連接的原因如下:
1.防止在AS內部形成BGP路由環(huán)路。
2.確保BGP路由路徑上的所有路由器都知道如何將數據包轉發(fā)到目的地。
IBGP路由器必須以全網狀結構相連,以防止路由環(huán)回。如果使用了路由反射器或路由聯(lián)盟,那么IBGP網狀結構可能遭遇收斂問題,而導致路由黑洞。