王金焱
摘要:OSPF是一種基于鏈路狀態(tài)進行計算的動態(tài)路由協(xié)議,RIP是一種基于距離矢量算法的路由協(xié)議,存在著收斂慢、易產(chǎn)生路由環(huán)路、可擴展性差等問題,目前逐步被OSPF所取代。在利用OSPF路由協(xié)議規(guī)劃和設計網(wǎng)絡的過程當中,有時存在設計不合理的現(xiàn)象,比如非骨干區(qū)域直接相互連接等,導致網(wǎng)絡不能正常通信,文章利用虛擬連接技術(shù)來解決此類問題。
關(guān)鍵詞:路由;OSPF;協(xié)議;虛連接
中圖分類號:TP393.04? ? ? ? 文獻標識碼:A
根據(jù)協(xié)議的范圍,路由協(xié)議可以劃分成域內(nèi)路由協(xié)議(IGP)和域間路由協(xié)議(EGP)。域內(nèi)路由協(xié)議的作用范圍被限制在自治系統(tǒng)內(nèi)部,域間路由協(xié)議適用于不同自治系統(tǒng)間的路由交換。域內(nèi)路由協(xié)議主要包括RIP、OSPF(開放式最短路徑優(yōu)先)、IS-IS等,域間路由協(xié)議應用廣泛的是BGP協(xié)議。
目前,在工作和生活中接觸最多的就是內(nèi)部網(wǎng)關(guān)協(xié)議OSPF,OSPF協(xié)議主要運用在大中型網(wǎng)絡當中,要求骨干區(qū)域必須和非骨干區(qū)域相連接,這樣才能建立鄰居關(guān)系以及正常通信。例如,學校把網(wǎng)絡中心所在樓設置為骨干區(qū)域,緊挨著網(wǎng)絡中心所在樓的圖書館、教學樓、學生宿舍都為非骨干區(qū)域,但是在網(wǎng)絡中心所在樓和主教學樓之間又有學生宿舍所在區(qū)域,這時主教學樓到達網(wǎng)絡中心所在樓必須經(jīng)過學生宿舍所在區(qū)域,導致非骨干區(qū)域和非骨干區(qū)域之間的連接出現(xiàn)問題,所以針對此類問題,想要實現(xiàn)主教學樓和網(wǎng)絡中心所在樓進行通信,需要運用虛擬連接技術(shù)。
1? 原理與概述
在OSPF出現(xiàn)之前,網(wǎng)絡上使用比較廣泛的內(nèi)部協(xié)議是RIP,RIP由于是基于距離矢量的算法路由協(xié)議,存在收斂慢、路由環(huán)路、可擴展性差等問題,因此逐漸被OSPF所代替。
最初的OSPF規(guī)范體現(xiàn)在RFC 1131中,其第一版(OSPF V1)很快被進行了非常大的改進,新版本體現(xiàn)在RFC 1247文檔中,稱為OSPF V2,第二版在穩(wěn)定性和功能方面有很大的提升。現(xiàn)在,IPV 4網(wǎng)絡中所使用的都是OSPF V2,針對IPV 6協(xié)議使用OSPF V3。
為了了解OSPF協(xié)議運行的過程,我們需要弄清楚以下概念:自治系統(tǒng)(As)、區(qū)域(Area)、路由器類型和路由類型。一臺運行OSPF協(xié)議的路由器中,每個OSPF進程必須指定一個用于標識本地路由器的Router-ID,Router-ID是一個32 b無符號整數(shù)。OSPF的另外一個重要特征就是Area(區(qū)域),每臺OSPF路由器只能在所屬的區(qū)域內(nèi)部學習完整的鏈路狀態(tài)信息,并使用組播(224.0.0.5和224.0.0.6),以開銷作為度量值,觸發(fā)更新,每30 min發(fā)送一次定時更新,不支持自動匯總,支持手動匯總[1]。
OSPF支持區(qū)域的劃分,從邏輯上將路由器分為不同的組,每個組用區(qū)域號來標識。一個網(wǎng)段只能屬于一個區(qū)域,或者說每個運行OSPF的接口必須指明屬于哪一個區(qū)域。區(qū)域0為骨干區(qū)域,骨干區(qū)域主要負責在非骨干區(qū)域之間發(fā)布區(qū)域間的路由信息。一個OSPF區(qū)域中有且只有一個骨干區(qū)域。
2? ?網(wǎng)絡類型及報文
OSPF協(xié)議支持多種類型的網(wǎng)絡都運行在IP協(xié)議之上,使用IP協(xié)議號89,根據(jù)鏈路層協(xié)議類型將這些網(wǎng)絡分為廣播型、NBMA型、點到多點型、點到點型。
因為OSPF是專門為TCP/IP網(wǎng)絡而設計的路由協(xié)議,所以,OSPF的各種報文都是封裝在IP報文內(nèi),可以采用單播或組播的方式發(fā)送。OSPF報文主要有以下5種。
2.1? Hello報文
該報文主要用于建立和維護相鄰路由器之間的鄰接關(guān)系,該報文簡單,容量也很小,僅用來向相鄰路由器證明自己的存在,就像人與人之間打招呼一樣。
2.2? DD報文
該報文主要用于描述本地路由器的鏈路狀態(tài)數(shù)據(jù)庫(LSDB),即在本地LSDB中包括哪些LSA。
2.3? LSR報文
該報文主要用于請求相鄰路由器鏈路狀態(tài)數(shù)據(jù)庫中的一部分數(shù)據(jù)。兩臺路由器互相交換完DD報文后,知道對端路由器有哪些LSA是本LSDB所沒有的及哪些LSA是已經(jīng)失效的,則需要發(fā)送一條LSR報文,向?qū)Ψ秸埱笏璧腖SA。
2.4? LSU報文
LSU報文是LSR請求報文的應答報文,用來向?qū)Χ寺酚善靼l(fā)送所需要的真正LSA內(nèi)容,可以是多條LAS完整內(nèi)容的集合。
2.5? LSACK報文
LSACK報文是路由器在收到對端發(fā)來的LSU報文后發(fā)出的確認報文,內(nèi)容是需要確認的LSA頭部。
3? 狀態(tài)機
OSPF是一種鏈路狀態(tài)路由協(xié)議,相鄰設備間交換的是鏈路狀態(tài)信息,OSPF路由是在鏈路狀態(tài)信息構(gòu)成的鏈路狀態(tài)數(shù)據(jù)庫下形成的。所以在OSPF中,建立設備間的鄰居關(guān)系,交換彼此的LSDB很重要,而鄰居關(guān)系的建立流程主要體現(xiàn)在OSPF接口的狀態(tài)轉(zhuǎn)換過程中。OSPF中共有8種狀態(tài)機制,分別是Down、Attempt、Init、2-Way、ExStart、Exchange、Loading、Full[2]。
3.1? Down
鄰居會話的初始階段,表明沒有在鄰居失效時間間隔內(nèi)收到來自鄰居路由器的Hello報文。
3.2? Attempt
該狀態(tài)僅發(fā)生在NBMA網(wǎng)絡中,表明在鄰居失效時間間隔超時后仍沒有收到對端發(fā)來的Hello應答報文。此時路由器依然會以輪詢Hello報文發(fā)送時間間隔向?qū)Χ税l(fā)送Hello報文。
3.3? Init
在此狀態(tài)下,收到不包含自己路由器ID的Hello報文后則狀態(tài)轉(zhuǎn)換為Init。
3.4? 2-Way
在此狀態(tài)下,收到包含有自己的路由器ID的Hello報文后則狀態(tài)轉(zhuǎn)換為2-Way。
3.5? ExStart
在進行DR、BDR選舉后形成鄰居關(guān)系,則從Init狀態(tài)轉(zhuǎn)換為ExStart狀態(tài),通過不帶LSA Header字段內(nèi)容的DD報文協(xié)商主、從關(guān)系,并確定DD報文序列號。
3.6? Exchange
主、從關(guān)系協(xié)商完畢后,主設備開始向從設備正式發(fā)送帶有LSA Header字段內(nèi)容的DD報文,此時雙方狀態(tài)轉(zhuǎn)換為Exchange。
3.7? Loading
DD報文交換完成后從設備狀態(tài)轉(zhuǎn)換為Loading,此時,通信雙方可以通過LSR報文向?qū)Ψ秸埱驦SA更新,而以LSU報文應答對方請求。
3.8? Full
設備收到對端發(fā)來的且由自己所請求的LSA報文后,向?qū)Χ税l(fā)送LSAck報文,同時發(fā)給對端的LSA報文后也收到了來自對端的LSAck報文,之后,本地設備自動切換為Full狀態(tài)。
4? 虛連接
4.1? 虛連接背景
因為OSPF規(guī)定在劃分OSPF區(qū)域之后,非骨干區(qū)域之間的OSPF路由更新是通過骨干區(qū)域交換完成的,所以要求所有非骨干區(qū)域必須與骨干區(qū)域保持連通,并且骨干區(qū)域之間也要保持連通。但有時實際網(wǎng)絡環(huán)境達不到這個要求,如有些骨干區(qū)域不能與骨干區(qū)域之間直接進行連接,而有時骨干區(qū)域又是分離的,這時就需要通過配置OSPF虛連接(Virtual Link)來解決。
4.2? 虛連接實驗
4.2.1? 實驗編址、拓撲及配置
實驗拓撲圖如圖1所示,實驗的編址如表1所示。有4臺路由器,利用OSPF路由協(xié)議中的虛擬連接技術(shù),實現(xiàn)R1和R4正常通信[3]。
R1路由器配置:
4.2.2? 實驗測試
通過基本配置,用Ping命令來測試R1和R4是否能夠正常通信,通過測試發(fā)現(xiàn)R1和R2不能正常通信,測試結(jié)果如圖2所示。
通過命令,分別查看R1和R4上的路由學習情況,發(fā)現(xiàn)R1沒有學習到R4上的路由,R4也沒有學習到R1上的路由,驗證結(jié)果如圖3、圖4所示。
通過拓撲圖,結(jié)合OSPF基本原理,發(fā)現(xiàn)非骨干區(qū)域之間不能進行數(shù)據(jù)的相互學習,必須通過骨干區(qū)域進行信息傳遞,所以需要用到虛擬連接技術(shù),分別在R1和R2上通過建立虛擬連接來完成信息交換。
這時分別在R2和R3上進行虛擬鏈路的配置如下:
再驗證配置命令,建立虛擬連接的情況如圖5、圖6所示。
通過圖5和圖6所示的驗證結(jié)果,發(fā)現(xiàn)R2和R3已經(jīng)建立了虛擬連接,再測試R1和R4是否能夠正常通信,通過測試發(fā)現(xiàn),R1和R4可以正常通信了,測試結(jié)果如圖7所示。
4.2.3? 實驗分析
通過實驗內(nèi)容及測試,發(fā)現(xiàn)在兩個非骨干區(qū)域間的路由不能通信,只有通過虛擬連接技術(shù),讓非骨干區(qū)域和骨干區(qū)域在邏輯上進行連接,而不是真正從物理上進行連接,這樣才能臨時解決數(shù)據(jù)之間的通信。
在網(wǎng)絡改造或者網(wǎng)絡設計的過程中存在不合理的現(xiàn)象,OSPF路由協(xié)議的工作原理是要求所有的非骨干區(qū)域必須和骨干區(qū)域相連接,否則可能造成網(wǎng)絡不能正常通信,無法正常建立鄰居關(guān)系。但是在實際的工作當中,往往可能由于地理位置或者工程師的設計問題,違背了OSPF區(qū)域的連接規(guī)則,因此,需要運用虛擬連接技術(shù)來解決非骨干區(qū)域直接的連接問題。
在網(wǎng)絡規(guī)劃和設計及改造的過程中,如果地理位置或者其他問題造成骨干區(qū)域和非骨干區(qū)域沒有正常連接,違背了OSPF的連接規(guī)則等,則可以利用虛擬連接技術(shù)來解決這種問題。同時,在實驗的過程中最好每一步都驗證,從而對出現(xiàn)的問題快速排錯。
5? ?結(jié)語
由于網(wǎng)絡的設計問題或者現(xiàn)實條件的限制,不同建筑物之間進行互聯(lián)實現(xiàn)網(wǎng)絡通信,可以利用虛擬連接技術(shù)來解決當前的問題。
(責任編輯:侯辛鋒)
參考文獻:
[1]華為技術(shù)有限公司.HCNA網(wǎng)絡技術(shù)實驗指南[M].北京:人民郵電出版社,2017.
[2]劉軍軍.中型企業(yè)網(wǎng)絡的規(guī)劃設計和實施[J].數(shù)字技術(shù)與應用,2012(9):126,128.
[3]張洋洋.GEO衛(wèi)星通信網(wǎng)絡的路由攻擊技術(shù)研究[D].石家莊:河北科技大學,2015.