要理解OSPF路由協(xié)議的工作原理,特別是路由更新機(jī)制,首先就要對它的各種報文格式有一個全面的了解。OSPF報文主要有5種:Hello報文、DD (Database Description,數(shù)據(jù)庫描述)報文、LSR (LinkState Request,鏈路狀態(tài)請求)報文、LSU(LinkState Update,鏈路狀態(tài)更新)報文和LSAck(LinkState Acknowledgment,鏈路狀態(tài)應(yīng)答)報文。它們各自在OSPF路由更新中所擔(dān)當(dāng)?shù)挠猛静灰粯?,報文格式也存在比較大的差別。
成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計制作、成都網(wǎng)站設(shè)計與策劃設(shè)計,寧河網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:寧河等地區(qū)。寧河做網(wǎng)站價格咨詢:135182197929.2 OSPF報頭及各種報文格式
OSPF報文直接封裝為IP協(xié)議報文,因為OSPF是專為TCP/IP網(wǎng)絡(luò)而設(shè)計的路由協(xié)議。以上所說到的五種OSPF報文使用相同的OSPF報頭格式,如圖9-9所示。
圖9-9 OSPF協(xié)議報頭格式
l Version
版本字段,占1個字節(jié),指出所采用的OSPF協(xié)議版本號,目前高版本為OSPF v4,即值為4(對應(yīng)二進(jìn)制就是0100)。
l PacketType
報文類型字段,標(biāo)識對應(yīng)報文的類型。前面說了OSPF有5種報文,分別是:Hello報文、DD報文、LSR報文、LSU報文、LSAck報文。具體將在下面各小節(jié)介紹。
l PacketLength:包長度字段,占2個字節(jié)。它是指整個報文(包括OSPF報頭部分和后面各報文內(nèi)容部分)的字節(jié)長度。
l RouterID:路由器ID字段,占4個字節(jié),指定發(fā)送報文的源路由器ID。
l AreaID:區(qū)域ID字段,占4個字節(jié),指定發(fā)送報文的路由器所對應(yīng)的OSPF區(qū)域號。
l Checksum:校驗和字段,占2個字節(jié),是對整個報文(包括OSPF報頭和各報文具體內(nèi)容,但不包括下面的Authentication字段)的校驗和,用于對端路由器校驗報文的完整性和正確性。
l AuType:認(rèn)證類型字段,占2個字節(jié),指定所采用的認(rèn)證類型,0為不認(rèn)證,1為進(jìn)行簡單認(rèn)證,2采用MD5方式認(rèn)證。
Authentication:認(rèn)證字段,占8個字節(jié),具體值根據(jù)不同認(rèn)證類型而定:認(rèn)證類型為不認(rèn)證時,此字段沒有數(shù)據(jù),認(rèn)證類型為簡單認(rèn)證時,此字段為認(rèn)證密碼,認(rèn)證類型為MD5認(rèn)證時,此字段為MD5摘要消息。
9.2.1 OSPF Hello報文及格式
OSPF協(xié)議使用一種稱之為Hello的報文來建立和維護(hù)相鄰鄰居路由器之間的鏈接關(guān)系。這個報文很簡單的,容量很小,僅用來向鄰居路由器證明自己的存在,就像人與人之間的打招呼一樣。我們在第8章中已經(jīng)知道,RIP鄰居路由器之間的鄰接關(guān)系建立是都是定期的路由更新報文進(jìn)行的,通過定期的路由更新來同時向鄰居RIP路由器證明自己的存在。顯然OSPF的這種Hello報文更簡單,可大大減小網(wǎng)絡(luò)中的報文傳輸流量。
Hello報文被周期性(默認(rèn)為10秒)地發(fā)向鄰居路由器接口發(fā)送,如果在設(shè)定時間(默認(rèn)為40秒,通常至少是Hello包發(fā)送時間間接4倍)內(nèi)沒有收到對方OSPF路由器發(fā)送來的Hello報文,則本地路由器會認(rèn)為該對方路由器無效。報文內(nèi)容包括一些定時器設(shè)置、DR、BDR以及本路由器已知的鄰居路由器。整個Hello報文格式如圖9-10所示,上部分為圖9-9所示的OSPF報頭部分,下部分為Hello報文內(nèi)容部分。Hello報文內(nèi)容部分各字段說明如表9-1所示。
表9-1 Hello報文內(nèi)容部分字段說明
字段名 | 長度 | 功能 |
Network Mask | 4字節(jié) | 發(fā)送Hello報文接口所在的子網(wǎng)掩碼 |
HelloInterval | 2字節(jié) | 指定發(fā)送Hello報文的時間間隔,默認(rèn)為10秒 |
Options | 1字節(jié) | 可選項,包括E:允許泛洪AS-external-LAS;MC:允許轉(zhuǎn)發(fā)IP組皤報文;N/P:允許處理Type 7 LSA; DC:允許處理按需鏈路 |
Rtr Pri | 1字節(jié) | 指定DR優(yōu)先級,默認(rèn)為1。如果設(shè)為0,則表示本路由器不參與DR/BDR選舉 |
RouterDeadInterval | 4字節(jié) | 指定路由器失效時間,默認(rèn)為40秒。如果在此時間內(nèi)沒有收到鄰居路由器發(fā)來的Hello報文,則認(rèn)為該鄰居路由器已失效 |
Designated Router | 4字節(jié) | 指定DR的接口IP地址 |
Backup Designated Router | 4字節(jié) | 指定BDR的接口IP地址 |
Neighbor | 4字節(jié) | 指定鄰居路由器的RID。下面的省略號(…)表示可以指定多個鄰居路由器RID |
圖9-10 Hello報文格式
從以上可以看出,在OSPF路由器上可以配置Hello報文的發(fā)送周期(相當(dāng)時Hello報文發(fā)送計時器,是基于接口來配置的),具體將在本章后面介紹。
9.2.2 OSPF DD報文及格式
DD報文是用來描述本地路由器的鏈路狀態(tài)數(shù)據(jù)庫(LSDB),在兩個OSPF路由器初始化連接時要交換DD報文,進(jìn)行數(shù)據(jù)庫同步。
DD報文內(nèi)容部分包括:DD報文序列號和LSDB中每一條LSA的頭部等,如圖9-11所示,對于的各字段說明如表9-2所示。對端路由器根據(jù)所收到的DD報文中的OSPF報頭就可以判斷出是否已有這條LSA。由于數(shù)據(jù)庫的內(nèi)容可能相當(dāng)長,所以可能需要多個數(shù)據(jù)庫描述報文來描述整個數(shù)據(jù)庫。所以有三個專門用于標(biāo)識數(shù)據(jù)庫描述報文序列的比特位,即DD報文格式中的I、M和M/S這三位。接收方對報文的重新排序使其能夠真實地復(fù)制數(shù)據(jù)庫描述報文。
DD交換過程按詢問/應(yīng)答方式進(jìn)行,在DD報文交換中,一臺為Master(主)角色,另一臺為Slave(從)角色。Master路由器向從路由器發(fā)送它的路由表內(nèi)容,并規(guī)定起始序列號,每發(fā)送一個DD報文,序列號加1,Slave則使用Master的序列號進(jìn)行確定應(yīng)答。但是顯然,主從之間的關(guān)系會因每個DD交換的不同而不同。網(wǎng)絡(luò)中的所有路由器會在不同時刻作用,在這個過程中既可能是主路由器又可能是從路由器。
圖9-11 DD報文格式
表9-2 DD報文內(nèi)容部分字段說明
字段名 | 長度 | 功能 |
Interface MTU | 2字節(jié) | 指出發(fā)送DD報文的接口在不分段的情況下,可以發(fā)出的大IP報文長度 |
Options | 1字節(jié) | 可選項,包括E:允許泛洪AS-external-LAS;MC:允許轉(zhuǎn)發(fā)IP組皤報文;N/P:允許處理Type 7 LSA; DC:允許處理按需鏈路 |
I | 1比特 | 指定在連續(xù)發(fā)送多個DD報文,如果是第一個DD報文則置1,其它的均置0 |
M | 1比特 | 指定在連續(xù)發(fā)送多個DD報文,如果是最后一個DD報文則置0,否則均置1 |
M/S | 1比特 | 設(shè)置進(jìn)行DD報文雙方的主從關(guān)系,如果本端是Master角色,則置1,否則置0 |
DD Sequence Number | 4字節(jié) | 指定所發(fā)送的DD報文序列號。主從雙方利用序列號來確保DD報文傳輸?shù)目煽啃院屯暾?/p> |
LSA Header | 4字節(jié) | 指定DD報文中所包括的LSA頭部。后面的省略號(…)表示可以指定多個LSA頭部 |
因為DD報文僅在兩臺OSPF路由器初始化連接時才進(jìn)行DD交換,所以它沒有發(fā)送周期,以后的數(shù)據(jù)庫存同步是通過LSR、LSU和LSAck報文進(jìn)行同步的。
9.2.3 OSPF LSR報文及格式
LSR報文用于請求相鄰路由器鏈路狀態(tài)數(shù)據(jù)庫中的一部分?jǐn)?shù)據(jù)。當(dāng)兩臺路由器互相交換完DD報文后,知道對端路由器有哪些LSA是本LSDB所沒有的,以及哪些LSA是已經(jīng)失效的,則需要發(fā)送一個LSR報文,向?qū)Ψ秸埱笏璧腖SA。
LSR報文內(nèi)容包括所需的LSA摘要,具體格式如圖9-12所示,LSR報文內(nèi)容部分各字段說明如表9-3所示。
表9-3 LSR報文內(nèi)容部分字段說明
字段名 | 長度 | 功能 |
LS type | 4字節(jié) | 指定所請求的LSA類型,主要共7類,具體參見9.2.5節(jié) |
Link State ID | 4字節(jié) | 用于指定ospf所描述的部分區(qū)域,該字段的使用方法根據(jù)不同的LSA類型而不同:當(dāng)為LSA 1時,該字段值是產(chǎn)生LSA 1的路由器的Router-ID,當(dāng)為LSA 2時,該字段值是DR的接口地址,當(dāng)為LSA 3時,該字段值是目的網(wǎng)絡(luò)的網(wǎng)絡(luò)地址,當(dāng)為LSA 4時,該字段值是ASBR的Router-ID,當(dāng)為LSA 5時,該字段值是目的網(wǎng)絡(luò)的網(wǎng)絡(luò)地址 |
Advertising Router | 4字節(jié) | 指定產(chǎn)生此所要請求的LSA的路由器ID |
圖9-12 LSR報文格式
9.2.4 OSPF LSU報文及格式
LSU報文是應(yīng)LSR報文的請求,用來向?qū)Χ寺酚善靼l(fā)送所需的LSA,內(nèi)容是多條LSA完整內(nèi)容的集合,LSU報文內(nèi)容部分包括此次共發(fā)送的LSA數(shù)量和每條LSA的完整內(nèi)容,如圖9-13,報文內(nèi)容部分的丙個字段如表9-4所示。
圖9-13 LSU報文格式
有關(guān)LSA的類型參見本章9.1.5節(jié)。
LSU報文在支持組播和多路訪問的鏈路上是以組播方式將LSA泛洪出去的,并且對沒有收到對方確認(rèn)應(yīng)答(就是下面將要介紹的LSAck報文)的LSA進(jìn)行重傳,但重傳時的LSA是直接送到?jīng)]有收到確認(rèn)應(yīng)答的鄰居路由器上,而不再是泛洪。
表9-4 LSU報文內(nèi)容部分字段說明
字段名 | 長度 | 功能 |
Number of LSA | 4字節(jié) | 指定此報文中共發(fā)送的LSA數(shù)量 |
LSAs | 4字節(jié) | 是一條條具體的LSA完整信息,后面的省略號表示可多條LSA |
9.2.5 OSPF LSAck報文及格式
LSAck報文是路由器在收到對端發(fā)來的LSU報文后所發(fā)出的確認(rèn)應(yīng)答報文,內(nèi)容是需要確認(rèn)的LSA頭部(LSA Headers),整個LSAck報文的格式如圖9-14所示。LSAck報文根據(jù)不同鏈路以單播或組播形式發(fā)送。
圖9-14 LSAck報文格式
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。