陳 征
(中通服咨詢設計研究院有限公司,江蘇 南京 210000)
因IPv4協議自身設計上的不足與缺陷,早已無法滿足如今Internet的迅猛發展,IPv6協議取而代之,逐漸成為了當今頂流[1]。IPv6協議自身的諸多優點,諸如近乎無限的地址空間、全新的報文結構、地址的自動配置、端到端的安全性以及支持移動特性等,大大提高了報文的轉發效率與安全性,也能夠滿足企業的移動通信需求。為了能接收與轉發IPv6報文,許多路由協議都有一定程度上的改進,OSPFv3協議就在這樣的背景下應運而生。
開放式最短路徑優先(Open Shortest Path First,OSPF)協議本身具有很多獨有的特點與優點,使得在大多數企業的組網模式中都是采用OSPF協議進行路由計算[2-4]。而OSPFv3協議作為OSPF協議的升級版本,是為了適配IPv6協議而設計的。OSPFv3協議繼承了OSPF協議本身的網絡類型、報文類型與洪泛機制等特點,也在運行方式、洪泛范圍以及對未知LSA的處理等方面進行了改進,致使許多企業開始對其原有網絡組網方式進行升級改造。
雙向轉發檢測(Bidirectional Forwarding Detection,BFD)作為一種檢測機制,能夠快速檢測并監控企業網絡鏈路的連通性,從而保證業務的正常進行[5]。這些優點也使許多企業在提高其網絡可靠性的時候會選擇采用BFD技術。
本文通過闡述OSPF協議、OSPFv3協議以及BFD技術的相關原理,對比分析了OSPF與OSPFv3之間的不同之處,也分析了企業網選擇OSPFv3協議與BFD技術聯動進行組網的應用方法與帶來的優勢,對于將來企業進行組網和提高可靠性提供了一些參考與借鑒。
為了滿足大型網絡的組網需求,國際互聯網工程任務組(The Internet Engineering Task Force,IETF)推出了OSPF協議,這是一種基于鏈路狀態的內部網關協議(Interior Gateway Protocol,IGP)協議。
OSPF協議是基于IP協議的,其IP協議字段號為89。OSPF協議具有5種報文,分別為Hello報文、DD報文、LSR報文、LSU報文以及LSAck報文,這些報文的主要作用如表1所示。

表1 OSPF報文的類型與作用
通常,OSPF報文是具有認證機制的,只有通過認證的報文才能被接收,從而建立鄰居關系。
企業組網時經常使用的OSPF的LSA類型有6種,分別為Router-LSA、Network-LSA、Networksummary-LSA、ASBR-summary-LSA、AS-external-LSA以及NSSA LSA,這6種LSA的作用和傳播范圍如表2所示。

表2 OSPF的LSA類型
OSPF的DD報文中只包含了LSA的頭部信息,相當于LSA的摘要信息。鄰居路由器間交互過DD報文后,會發送LSR報文請求對方鄰居路由器更新其LSA,而鄰居路由器收到LSR報文后,會相應回復LSU報文,此時LSU報文中包含的就是完整的LSA信息了。
如圖1所示,OSPF路由器通過收集各類LSA信息,匯總形成鏈路狀態數據庫(Link State Database,LSDB),并最終將LSDB轉換成一張有向圖,這張圖能夠真實反映整個OSPF網絡的鏈路開銷以及拓撲結構。OSPF路由器能夠根據這張有向圖,通過最短路徑優先(Shortest Path First,SPF)算法以自己為根路徑,計算出一條到達目的網絡的最短路徑。

圖1 LSDB作用圖
OSPFv3協議可以說是OSPF協議為了適配IPv6協議而誕生的[2-4]。IPv6協議對OSPFv3協議的影響主要有以下幾點:(1)IPv6地址長度為128bit,OSPFv3的LSA長度也相應增加;(2)IPv6新增了Link-Local地址,OSPFv3可采用Link-Local地址進行報文的發送;(3)IPv6具有認證擴展報頭,OSPFv3的報文頭部中不再包含認證字段。
OSPFv3協議保留了原有的網絡類型、報文類型與路由計算方式等,為了支持IPv6協議,OSPFv3協議在報文格式、LSA的類型等方面也做了相關的變化與改進[2-4]。
2.2.1 報文格式的變化
前文已提及,由于IPv6本身具有認證擴展報頭了,所以OSPFv3報文取消了“AuType”和“Authentication”字段,將只依賴于IPv6的認證擴展報頭進行報文的認證。此外,OSPFv3報文中新增了“Instance ID”字段,該字段的作用是區分相同鏈路上運行的不同OSPF實例,也就是說OSPFv3可共享鏈路資源,支持鏈路的多實例復用。
2.2.2 新增LSA
OSPFv3新增了兩個LSA,即Link-LSA和Intra-Area-Prefix-LSA,其作用、產生方式與傳播范圍如表3所示。在OSPFv2協議中,Router-LSA與Network-LSA中包含IP地址,而在OSPFv3協議中不再包含IP地址,其IP地址部分則由新增的Link-LSA和Intra-Area-Prefix-LSA進行宣告。

表3 OSPFv3新增的LSA類型
2.2.3 洪泛范圍
OSPFv3協議允許的洪泛范圍是區域或者鏈路本地,并且可以接收或者洪泛不能識別的報文,而不是像OSPFv2協議那樣直接丟棄不能識別的報文。
BFD作為一種檢測機制,可以快速檢測網絡中設備間的雙向轉發路徑。BFD技術本身并不像OSPF協議那樣具備鄰居發現機制,而是依靠被服務的上層協議通知鄰居信息并建立起BFD會話[5]。
BFD會話建立后,建立會話的雙方會周期性地發送BFD的控制報文,如果一方在既定的時間內均未收到對方發送的BFD控制報文,則認為鏈路發送了故障,會通知被服務的上層應用進行處理。
通常,BFD會話具有3種狀態,即Down、Init以及Up。BFD報文中包含“State”字段,該字段可傳遞BFD會話的狀態。如圖2所示,BFD會話的建立采用“三次握手”的方式,以確保會話雙方都能知曉狀態的變化。

圖2 BFD會話建立流程
當代企業網絡的組建中會重點考慮組網成本、鏈路的利用率、網絡的穩定性與可靠性,OSPFv3協議作為OSPFv2協議的升級版本,繼承了OSPFv2協議本身的諸多優點,又做了很多改進。OSPFv3支持多實例復用,能夠大大提高鏈路利用率;并且依舊支持虛鏈接技術,從而能夠實現靈活地組網方式,避免次優路徑的產生。與其他的IGP路由協議相比,這些特點使得大批企業會選擇OSPFv3協議進行網絡的設計與配置。BFD是一種相對成熟的網絡檢測技術,其技術原理也比較簡單,可以方便企業網管人員進行學習與配置。
企業的網絡中的設備或鏈路難免會遇到故障,并且路由的重新計算也會增加收斂時間,這就將導致網絡的可使用性大大降低。如何快速感知網絡鏈路的變化情況,一直是各大企業網管人員的關注重點。OSPFv3與BFD的聯動,能夠對企業網絡的鏈路進行監控,從而提高企業網絡的可靠性。
如圖3所示,Switch A、Switch B、Switch C與Switch D建立OSPFv3鄰居關系,將各設備的接口均使能BFD,從而把OSPFv3與BFD相互關聯起來。在鏈路正常的情況下,由于鏈路開銷比較小,Switch A會優先通過Switch C將流量送至Switch B。若Switch A與Switch C之間的鏈路發生故障,BFD會快速感知,此時的BFD會話的狀態會變成“Down”狀態,并通知Switch A的OSPFv3進程BFD鄰居不可達,這整個切換過程是毫秒級別的。Switch A收到通知后會重新進行路由計算,并快速切換傳輸鏈路。

圖3 OSPFv3與BFD聯動組網
由以上分析可知,OSPFv3與BFD的聯動可以加快鏈路故障的感知時間與備份鏈路的切換時間,從而在一定程度上加快企業網絡的重新收斂速度、縮短故障時間。
在IPv6時代下,OSPFv3協議的支持多實例復用、便于靈活組網的優點,致使越來越多的企業選擇該協議進行網絡的搭建。BFD技術的技術原理簡單、可操作性強的特點,也得到了許多企業的青睞。本文著重分析了OSPFv3與BFD聯動帶來的好處,對于未來企業網絡的可靠性與可用性的設計與構建具有較好的應用前景。