您好,登錄后才能下訂單哦!
要理解OSPF路由協議的工作原理,特別是路由更新機制,首先就要對它的各種報文格式有一個全面的了解。OSPF報文主要有5種:Hello報文、DD (Database Description,數據庫描述)報文、LSR (LinkState Request,鏈路狀態請求)報文、LSU(LinkState Update,鏈路狀態更新)報文和LSAck(LinkState Acknowledgment,鏈路狀態應答)報文。它們各自在OSPF路由更新中所擔當的用途不一樣,報文格式也存在比較大的差別。
9.2 OSPF報頭及各種報文格式
OSPF報文直接封裝為IP協議報文,因為OSPF是專為TCP/IP網絡而設計的路由協議。以上所說到的五種OSPF報文使用相同的OSPF報頭格式,如圖9-9所示。
圖9-9 OSPF協議報頭格式
l Version
版本字段,占1個字節,指出所采用的OSPF協議版本號,目前最高版本為OSPF v4,即值為4(對應二進制就是0100)。
l PacketType
報文類型字段,標識對應報文的類型。前面說了OSPF有5種報文,分別是:Hello報文、DD報文、LSR報文、LSU報文、LSAck報文。具體將在下面各小節介紹。
l PacketLength:包長度字段,占2個字節。它是指整個報文(包括OSPF報頭部分和后面各報文內容部分)的字節長度。
l RouterID:路由器ID字段,占4個字節,指定發送報文的源路由器ID。
l AreaID:區域ID字段,占4個字節,指定發送報文的路由器所對應的OSPF區域號。
l Checksum:校驗和字段,占2個字節,是對整個報文(包括OSPF報頭和各報文具體內容,但不包括下面的Authentication字段)的校驗和,用于對端路由器校驗報文的完整性和正確性。
l AuType:認證類型字段,占2個字節,指定所采用的認證類型,0為不認證,1為進行簡單認證,2采用MD5方式認證。
Authentication:認證字段,占8個字節,具體值根據不同認證類型而定:認證類型為不認證時,此字段沒有數據,認證類型為簡單認證時,此字段為認證密碼,認證類型為MD5認證時,此字段為MD5摘要消息。
9.2.1 OSPF Hello報文及格式
OSPF協議使用一種稱之為Hello的報文來建立和維護相鄰鄰居路由器之間的鏈接關系。這個報文很簡單的,容量很小,僅用來向鄰居路由器證明自己的存在,就像人與人之間的打招呼一樣。我們在第8章中已經知道,RIP鄰居路由器之間的鄰接關系建立是都是定期的路由更新報文進行的,通過定期的路由更新來同時向鄰居RIP路由器證明自己的存在。顯然OSPF的這種Hello報文更簡單,可大大減小網絡中的報文傳輸流量。
Hello報文被周期性(默認為10秒)地發向鄰居路由器接口發送,如果在設定時間(默認為40秒,通常至少是Hello包發送時間間接4倍)內沒有收到對方OSPF路由器發送來的Hello報文,則本地路由器會認為該對方路由器無效。報文內容包括一些定時器設置、DR、BDR以及本路由器已知的鄰居路由器。整個Hello報文格式如圖9-10所示,上部分為圖9-9所示的OSPF報頭部分,下部分為Hello報文內容部分。Hello報文內容部分各字段說明如表9-1所示。
表9-1 Hello報文內容部分字段說明
字段名 | 長度 | 功能 |
Network Mask | 4字節 | 發送Hello報文接口所在的子網掩碼 |
HelloInterval | 2字節 | 指定發送Hello報文的時間間隔,默認為10秒 |
Options | 1字節 | 可選項,包括E:允許泛洪AS-external-LAS;MC:允許轉發IP組皤報文;N/P:允許處理Type 7 LSA; DC:允許處理按需鏈路 |
Rtr Pri | 1字節 | 指定DR優先級,默認為1。如果設為0,則表示本路由器不參與DR/BDR選舉 |
RouterDeadInterval | 4字節 | 指定路由器失效時間,默認為40秒。如果在此時間內沒有收到鄰居路由器發來的Hello報文,則認為該鄰居路由器已失效 |
Designated Router | 4字節 | 指定DR的接口IP地址 |
Backup Designated Router | 4字節 | 指定BDR的接口IP地址 |
Neighbor | 4字節 | 指定鄰居路由器的RID。下面的省略號(…)表示可以指定多個鄰居路由器RID |
圖9-10 Hello報文格式
從以上可以看出,在OSPF路由器上可以配置Hello報文的發送周期(相當時Hello報文發送計時器,是基于接口來配置的),具體將在本章后面介紹。
9.2.2 OSPF DD報文及格式
DD報文是用來描述本地路由器的鏈路狀態數據庫(LSDB),在兩個OSPF路由器初始化連接時要交換DD報文,進行數據庫同步。
DD報文內容部分包括:DD報文序列號和LSDB中每一條LSA的頭部等,如圖9-11所示,對于的各字段說明如表9-2所示。對端路由器根據所收到的DD報文中的OSPF報頭就可以判斷出是否已有這條LSA。由于數據庫的內容可能相當長,所以可能需要多個數據庫描述報文來描述整個數據庫。所以有三個專門用于標識數據庫描述報文序列的比特位,即DD報文格式中的I、M和M/S這三位。接收方對報文的重新排序使其能夠真實地復制數據庫描述報文。
DD交換過程按詢問/應答方式進行,在DD報文交換中,一臺為Master(主)角色,另一臺為Slave(從)角色。Master路由器向從路由器發送它的路由表內容,并規定起始序列號,每發送一個DD報文,序列號加1,Slave則使用Master的序列號進行確定應答。但是顯然,主從之間的關系會因每個DD交換的不同而不同。網絡中的所有路由器會在不同時刻作用,在這個過程中既可能是主路由器又可能是從路由器。
圖9-11 DD報文格式
表9-2 DD報文內容部分字段說明
字段名 | 長度 | 功能 |
Interface MTU | 2字節 | 指出發送DD報文的接口在不分段的情況下,可以發出的最大IP報文長度 |
Options | 1字節 | 可選項,包括E:允許泛洪AS-external-LAS;MC:允許轉發IP組皤報文;N/P:允許處理Type 7 LSA; DC:允許處理按需鏈路 |
I | 1比特 | 指定在連續發送多個DD報文,如果是第一個DD報文則置1,其它的均置0 |
M | 1比特 | 指定在連續發送多個DD報文,如果是最后一個DD報文則置0,否則均置1 |
M/S | 1比特 | 設置進行DD報文雙方的主從關系,如果本端是Master角色,則置1,否則置0 |
DD Sequence Number | 4字節 | 指定所發送的DD報文序列號。主從雙方利用序列號來確保DD報文傳輸的可靠性和完整性 |
LSA Header | 4字節 | 指定DD報文中所包括的LSA頭部。后面的省略號(…)表示可以指定多個LSA頭部 |
因為DD報文僅在兩臺OSPF路由器初始化連接時才進行DD交換,所以它沒有發送周期,以后的數據庫存同步是通過LSR、LSU和LSAck報文進行同步的。
9.2.3 OSPF LSR報文及格式
LSR報文用于請求相鄰路由器鏈路狀態數據庫中的一部分數據。當兩臺路由器互相交換完DD報文后,知道對端路由器有哪些LSA是本LSDB所沒有的,以及哪些LSA是已經失效的,則需要發送一個LSR報文,向對方請求所需的LSA。
LSR報文內容包括所需的LSA摘要,具體格式如圖9-12所示,LSR報文內容部分各字段說明如表9-3所示。
表9-3 LSR報文內容部分字段說明
字段名 | 長度 | 功能 |
LS type | 4字節 | 指定所請求的LSA類型,主要共7類,具體參見9.2.5節 |
Link State ID | 4字節 | 用于指定ospf所描述的部分區域,該字段的使用方法根據不同的LSA類型而不同:當為LSA 1時,該字段值是產生LSA 1的路由器的Router-ID,當為LSA 2時,該字段值是DR的接口地址,當為LSA 3時,該字段值是目的網絡的網絡地址,當為LSA 4時,該字段值是ASBR的Router-ID,當為LSA 5時,該字段值是目的網絡的網絡地址 |
Advertising Router | 4字節 | 指定產生此所要請求的LSA的路由器ID |
圖9-12 LSR報文格式
9.2.4 OSPF LSU報文及格式
LSU報文是應LSR報文的請求,用來向對端路由器發送所需的LSA,內容是多條LSA完整內容的集合,LSU報文內容部分包括此次共發送的LSA數量和每條LSA的完整內容,如圖9-13,報文內容部分的丙個字段如表9-4所示。
圖9-13 LSU報文格式
有關LSA的類型參見本章9.1.5節。
LSU報文在支持組播和多路訪問的鏈路上是以組播方式將LSA泛洪出去的,并且對沒有收到對方確認應答(就是下面將要介紹的LSAck報文)的LSA進行重傳,但重傳時的LSA是直接送到沒有收到確認應答的鄰居路由器上,而不再是泛洪。
表9-4 LSU報文內容部分字段說明
字段名 | 長度 | 功能 |
Number of LSA | 4字節 | 指定此報文中共發送的LSA數量 |
LSAs | 4字節 | 是一條條具體的LSA完整信息,后面的省略號表示可多條LSA |
9.2.5 OSPF LSAck報文及格式
LSAck報文是路由器在收到對端發來的LSU報文后所發出的確認應答報文,內容是需要確認的LSA頭部(LSA Headers),整個LSAck報文的格式如圖9-14所示。LSAck報文根據不同鏈路以單播或組播形式發送。
圖9-14 LSAck報文格式
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。