ospf hello时间和dead_深入理解OSPF协议----第二讲:OSPF报文类型
各位小伙伴們:大家好,!今天讓我們來繼續一起聊聊OSPF協議;通過上一節的介紹,我們已經知道OSPF路由設備之間交流的是LSA(鏈路狀態通告),并不是路由表;后續幾節想給大家講講OSPF鄰居之間是如何工作的;今天我們先看看OSPF的報文類型;在介紹之前,我們需要知道以下幾個重要概念
1. OSPF協議基于IP運行,協議的數據報文直接采用IP封裝,在IP報文頭部中對應的協議字段號為89
2. OSPF協議報文使用組播地址作為目的IP地址,其中224.0.0.5該組播地址指所有的OSPF路由器。224.0.0.6該組播地址指所有的OSPF DR路由器。(有關DR、BDR的概念后續會提到)。
我們已經知道路由器接口一旦激活OSPF,就會發送OSPF報文;OSPF一共定義了5種報文類型;這些報文類型有一個統一的報文頭部,這個頭部的長度為24byte。報文頭格式如下:
我們來解釋一下幾個關鍵字段的含義:
1》 版本:OSPF有兩個版本:OSPFV2和OSPFV3;對于OSPFV2,該字段的值恒為2.
2》 類型:表示OSPF報文類型,該字段的值與報文類型的對應關系是:1---Hello;2---DD;3----LSR;4---LSU;5---LSAck;即:OSPF定義的5種報文類型。
3》 報文長度:整個OSPF報文的長度;
4》 路由器ID:路由器的OSPF Router-ID
5》 區域ID:該報文所屬的區域ID
6》 校驗和:用于校驗報文有效性
7》 認證類型:指示該報文使用的認證類型;
8》 認證數據:用于報文認證的內容;
首先我們來看看OSPF的第一種報文類型
1、---Hello報文
Hello報文用于發現直連鏈路上的鄰居,以維護鄰居關系。OSPF路由器一旦在接口上激活OSPF,相應的接口就會發送和偵聽Hello報文,Hello報文種攜帶著用于OSPF鄰居關系建立的各項參數,在鄰居關系建立的過程種,這些參數會被檢查,只有參數匹配,雙方才能建立鄰居關系。OSPF Hello報文的格式如下:
我們來解釋一下幾個關鍵字段的含義:
1》 網絡掩碼:一旦路由器的某個接口激活了OSPF,該接口就開始發送Hello報文,該字段填充的是該接口的網絡掩碼;如果一方在接口上收到的Hello報文中“網絡掩碼”字段與本接口不同,則忽略該Hello報文,鄰居關系無法建立。
2》 Hello間隔:接口周期性發送Hello報文的時間間隔;兩臺直連路由器要建立OSPF鄰居關系,需確保接口的Hello時間間隔相同。
3》 可選項:每個比特位用于指示該路由器的某個特定OSPF特性。
4》 路由器優先級:該字段用于DR、BDR的選舉;注意:在多路訪問網絡中會進行DR(指定路由器)和BDR(備用指定路由器)的選舉。
5》 路由器失效時間:在鄰居路由器被視為無效前,需等待收到對方Hello報文的時間。
6》 指定路由器:網絡中DR的接口IP地址,如果該字段的值為:0.0.0.0,則表示沒有DR,或DR沒有被選出。
7》 備份指定路由器:網絡中BDR的接口IP地址;如果該字段的值為:0.0.0.0,則表示沒有BDR,或BDR沒有被選出。
8》 鄰居:在直連鏈路上發現的有效鄰居,此處填充的是鄰居的Router-ID,如果發現多個鄰居,則包含多個“鄰居”字段。
2、----DD報文
DD報文用于描述LSDB,該報文中攜帶的是LSDB中LSA頭部數據(也就是并非完整的LSA內容,僅僅是頭部數據);在兩臺路由器開始使用DD報文描述自己的LSDB之前,雙方需要協商Master/Slave,即主/從。所以,Master/Slave的協商也是通過DD報文的交互來完成的,但是需要注意的是這種DD報文并不攜帶任何LSA頭部信息,在這可以理解為“空的”DD報文。
Master/Slave確定后,雙方就開始使用DD報文描述各自的LSDB,在這種DD報文中包含著LSDB里的LSA頭部。路由器可以使用多個DD報文來描述LSDB。OSPF DD報文格式如下:
我們來解釋一下幾個關鍵字段的含義:
1》 接口最大傳輸單元:接口的MTU;缺省時接口發送的DD報文中,無論該接口實際的MTU的值是多少,該字段的值都為0。
2》 可選項:路由器支持的OSPF可選項。有如下幾個:
I位:也即初始化位,當該DD報文用于協商Mater/Slave路由器時,該比特位值為1,Mater/Slave選舉完成后,該比特位被置為0。
M位:該比特位置為1,則表示后續還有更多的DD報文,如果被置為0,則表示這是最后一個DD報文。
MS位:Master路由器在自己發送的DD報文中將該比特位置為1;Slave路由器將其置為0。
3》 DD序列號:在DD報文的交互過程中DD序列號被逐漸加1,用于確保DD報文傳輸的可靠性。注意:DD序列號必須由Master路由器來決定,Slave路由器只能使用Master路由器發送來的DD序列號來發送自己的DD報文。
4》 LSA頭部:當路由器使用DD報文來描述自己的LSDB時,LSA頭部信息被包含在此處。一個DD報文可能包含一條或多條LSA頭部。
3----LSR報文
在與OSPF鄰居交換DD報文之后,路由器就知道了鄰居的LSDB摘要,它將向鄰居發送LSR報文來請求所需的LSA完整數據。LSR報文格式如下:
我們來解釋一下幾個關鍵字段的含義:
1》 鏈路狀態類型:指示本條LSA的類型。OSPF定義了多種LSA類型,我們會在后續中詳細討論。
2》 鏈路狀態ID:LSA標識。不同LSA類型對該字段的定義是不同的。
3》 通告路由器:產生該LSA的路由器的Router-ID
注意:LSR報文中的鏈路狀態類型、鏈路狀態ID、通告路由器的三個元素標識了路由器請求的LSA;如果請求多個LSA,則LSR可能包含多個上述三元組。
4-----LSU報文
路由器收到鄰居發送過來的LSR報文后,會以LSU報文進行回應;在LSU報文中就包含了對方請求的LSA完整數據。一個LSU報文可以包含多個LSA。另外,當路由器感知到網絡發生變化時,也可以觸發LSU報文的泛洪。
注意:在多路訪問網絡中,非DR及BDR路由器向224.0.0.6這個組播地址發送LSU報文;而DR及BDR會偵聽這個組播地址,DR在接收LSU報文后向224.0.0.5發送LSU報文,從而將更新信息泛洪到整個OSPF域,所有的OSPF路由器都會偵聽224.0.0.5這個組播地址。
LSU報文格式如下:
5-----LSAck報文
當一臺路由器收到鄰居發送過來的LSU報文時,需要對報文中包含的LSA進行確認,這個確認可以時回復一個LSAck報文。
LSAck報文中包含這路由器所確認的LSA頭部。LSAck的報文格式如下:
好了,小伙伴們今天就暫時分享這些吧!OSPF是目前網絡中使用率最高的路由協議之一,它看似配置簡單,但原理很復雜;我們必須深入理解它的工作原理才能更好的在實際工作中很好的應用OSPF;這一期只是給大家簡單的分享了一些OSPF的報文類型,下一期我們將深入討論OSPF的鄰接關系,注意不是鄰居關系哦,這兩個概念千萬不能搞混淆呀;具體細節我們下次討論;最后請大家關注實驗筆記,實驗筆記就是你身邊的學習筆記!
總結
以上是生活随笔為你收集整理的ospf hello时间和dead_深入理解OSPF协议----第二讲:OSPF报文类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python背景颜色词云图_python
- 下一篇: 联想电脑使用优盘启动不了怎么办 联想电脑