何國軍
(中國國際航空股份有限公司信息管理部,北京 101312)
邊 界 網 關 協 議(Border Gateway Protocol,BGP)是一種用來在路由選擇域之間交換網絡可達性信息(Network Layer Reachability Information,NLRI) 的 路由選擇協議。由于不同的管理機構分別控制著他們各自的路由選擇域,因此路由選擇域通常被稱為自治系統(Autonomous System,AS)①,而經典的自治系統的定義是:一組路由器在統一管理之下,在AS內使用內部網關協議(Interior gateway protocol,IGP)和統一度量來路由數據包,而通過外部網關協議將數據包路由到其他AS ②,該定義目前仍然在發展,因為很多AS在其內部使用多種內部網關協議和不同的度量。按照經典自治系統的定義,在一個AS內通常使用內部網關路由協議,這通常會使大型企業網絡設計者在設計大型企業網絡時更加傾向于更多地選擇內部網關路由協議而忽略BGP。
為了完成企業廣域網絡的設計與實施,我們有必要對IGP和BGP進行一個全面的比較,目前使用較多的IGP按照行為可以分為距離矢量算法,鏈路狀態算法和混合算法三類,但其實現的目標均為在單一的路由域內選擇最佳的可達性信息,為達到這個目標,IGP通常具有網絡拓撲發現能力,自動適應網絡拓撲變化能力,能周期性更新網絡可達性信息,使用共同的路徑選擇策略,能提供一定的路徑控制能力。從這些特點看,IGP就是為單一路由域設計的,它所需要的管理較少,自動化成度較高。BGP能夠提供廣泛的域間策略控制,具有很強的可擴展性,能夠互聯極大規模網絡。在設計極大規模企業網絡時我們將二者結合起來,完成任何一者不能單獨完成的任務,筆者即通過兩個協議的結合為某大型企業網絡實現了廣域網改造。
某大型企業網絡由公司總部網絡和若干個分公司網絡組成,每個分公司網絡下又下轄若干下屬分支機構網絡,為典型的多層結構,全網設備運行OSPF(Open Shortst Path First,一種IGP協議,適合層次化網絡結構)路由協議,總部的路由器C7606和骨干線路及分公司路由器C7206運行在OSPF骨干區,分公司分別運行在各自的路由區域里,每個分公司分別管理自己的網絡和下屬分支機構網絡,改造前總部管理總部的兩臺C7606路由器和分公司連接總部的兩臺C7206路由器及兩條專線,分公司管理兩臺C7206的以太口以下的網絡,拓撲如下:

在進行網絡改造前,總部的路由器C7606和分公司的所有路由器C7206都運行在OSPF 骨干區里,分公司路由器運行在OSPF Area n下,連接總部和分公司的骨干線路運行在OSPF骨干區域,因線路抖動造成了骨干路由器OSPF運算頻繁,影響到了總部數據中心,為此第一期網絡改造將OSPF的骨干區域收縮到總部,連接每個分公司的骨干線路運行在各個分公司的Area里。在這種結構下,所有路由器都有全網路由,這種模式的優點是配置簡單,不需要過多的管理,但是缺點也是顯而易見的,各地位于同一個管理域下,但事實上各地卻是不同的管理域,由此造成的嚴重問題是臟路由全網泛濫。

為改變這種狀況,公司二期網絡改造決定在公司骨干網絡上運行BGP路由協議,在改造過程中,首先在總部和分公司的骨干設備上啟動BGP路由進程,宣告各自網段,驗證互相能夠收到對方的宣告,為了控制主備線路的路由選擇,在分公司的主路由器上將輸入路由的Local-preference參數調大,這樣在分公司的兩臺BGP路由器上,主設備的BGP條目將優于備設備的BGP條目因而被安裝在主設備的路由表中,保證了全網路由的一致性,在主干線路故障或者主路由設備故障時,備份線路上的BGP條目自動出現在主備設備的路由表中,在實施災難切換驗證中,筆者發現主干線路中斷180秒后,備份BGP路由才能安裝到BGP路由表中。經核實,BGP鄰居老化時間在未經調整的情況下,默認為180秒,這是為保證域間路由的穩定,盡量減少自治系統的相互影響需要的,這也是外部網關路由協議在設計時的重要特征,因為是外部網關路由協議,所以對于域間路由的快速收斂的要求低于IGP的要求,在BGP路由協議用于企業的特大型網絡時,這個參數可以做適當調整,調整的參考數據主要是骨干路由器的處理能力,主干線路的穩定情況,主干線路的可用帶寬,各個自治系統內部路由的變化頻度等條件,在各個條件非常良好的情況下,這個參數可以調整到10秒,收斂時間已經能夠與IGP路由協議相比。
BGP路由器收到對方自治系統的條目后,為保證全網路由可達,需要將BGP路由注入到各自的自治系統的IGP路由域中,注入時主要考慮因素是注入后的路由條目的度量值,筆者的經驗是將BGP骨干線路的帶寬用于各個自治系統的IGP路由協議計算路由度量,這個值足夠用于各個自治系統內部的IGP度量比較。經過一段時間的運轉,筆者發現在把BGP路由注入到各個IGP路由域時會產生路由黑洞,經過詳細調查,發現是分公司BGP路由器在BGP路由進程中對路由宣告做了匯聚,匯總路由在設備上自動生成了一條指向null 口的路由,并且這條路由也安裝在本地的BGP表中,在把BGP路由注入IGP時,這條路由也被注入到IGP,如果分公司有關于這條匯總路由的詳細路由丟失,就會在分公司和總部的BGP路由器之間產生路由環路,造成對故障判斷的誤導,為了消除這種不必要的臟路由,在將BGP注入IGP時,使用一個過濾表將所有產生的指向Null接口的路由過濾掉,即可實現清潔的注入,在注入完成后,即可切斷總部和分公司之間的IGP協議,完成切換實施工作。

BGP改造實施完成后,骨干網絡運行非常穩定,并且實現了管理域分割,分公司有了對IGP路由協議完全的控制,能夠自主的設計本自治系統,于是又對下屬機構網絡的連接進行了一次改造,將每個下轄機構分別劃入一個OSPF末梢區域,全網被分割為非常小的管理域,全網路由完全受控,實現了一個最佳應用,在全網改造前全網路由條目有一千多條,改造后全網路由盡為五十多條,極大的節省了路由器的硬件資源,再次改造后的網絡示意圖如下:

此次改造已經完成3年多,在運行過程中,總公司又新增了幾家分公司,都實現了與總部的無縫連接,對于原有分公司的網絡影響小到可以忽略,這個網絡設計在公司高速成長時能夠最大地實現可擴展性,骨干穩定性和全網的高可靠性。通過BGP路由協議的應用,我們驗證了BGP協議作為超大網絡骨干協議的擴展性,能夠充分保證公司的兼并重組收購等資產運作在IT層面的實現,在分割管理域時又保證全網路由策略的一致性,并且通過調整參BGP老化參數,達到快速收斂,實現公司網絡的互通互聯。