1. 程式人生 > >OSPF鄰居建立過程詳解

OSPF鄰居建立過程詳解

目錄

OSPF的五種包:

1Hello ——只在狀態init、狀態exstart傳送

功能:用於建立和維持鄰居關係 (10s相互發送Hello包,若40s內沒有傳送,則鄰居關係刪除)

重要欄位:路由器的router-id

                  路由器介面的area-id (必須一致)

                  路由器介面的IP地址和掩碼

                  路由器介面的認證,hello時間間隔,死亡時間間隔(必須一致)

                  neighbor欄位

                  STUB標識(末節標識)(必須一致)

2DBD(database description)——只在狀態exchange傳送

只在以下狀態傳送:exchange

功能:用於對OSPF的網路拓撲進行描述

3LSRLink State Request)——只在狀態loading傳送

功能:用於請求對方的路由資訊

4LSULink State Update)——只在狀態loading傳送

功能:用於儲存和傳遞路由資訊

5LSACK(Link State Acknowledgment)——只在狀態loading傳送

功能:用於對LSU等包進行可靠確認

OSPF建立鄰居過程的7個狀態機:

down
——>init——>two-way——>exstart——>exchange——>loading——>full

1.down       //雙方還沒有進行任何互動

2.init          //此狀態只互動hello,沒有同步任何路由資訊

3.two-way  //達到狀態two-way,建立鄰居關係

4.exstart    // 進行主從關係選舉,為了確定誰在exchange狀態先發送DBD包

5.exchange //通過互動DBD,建立各自的拓撲表

6.loading  //請求對方路由資訊,此狀態互動LSR包、LSU包、LSACK

7.full           //建立鄰接關係
  達到LSDB的同步

OSPF建立鄰居過程分析

OSPF建立過程可以簡單分為以下三個過程

①建立鄰居關係

②建立各自拓撲表

③建立鄰接關係

①建立鄰居關係:down ——>init ——>two-way ----->

分析:在狀態init,路由器會互相傳送hello,hello包重要欄位如下:

           路由器的router-id

           路由器介面的area-id(必須一致)

           路由器介面的IP地址和掩碼

           路由器介面的認證,hello時間間隔,死亡時間間隔(必須一致)

           neighbor欄位

           STUB標識(末節標識)(必須一致)

只有兩路由器的介面aera-id欄位、介面的認證,hello時間間隔,

死亡時間間隔、STUB標識一致,路由器才會到狀態two-way,建立鄰居關係

②建立各自拓撲表:exstart ——>exchange ----->

分析:在狀態exstart通過傳送hello包進行主從關係選舉(master/slave),

          為了確定誰在exchange狀態先發送DBD包

          主從關係選舉是通過比較兩臺路由器的Router ID大小,

           Router ID大的為master路由器,由master路由器先互動DBD包

          主從關係選舉後,進入狀態exchange ,在此狀態通過互動DBD包,建立各自的拓撲表

③建立鄰接關係:loading ——>full

分析:建立各自的拓撲表後,進入狀態loading,請求對方路由資訊,

           如圖左邊路由器,傳送LSR包請求172.16.6.0/24的路由資訊

           右邊路由器收到LSR包後,會回覆LSU包,來告知172.16.6.0/24的路由資訊

           左邊路由器收到LSU包後,會回覆LSACK包,用於對LSU包進行可靠確認

互動完路由資訊,達到full狀態,路由器之間建立鄰接關係  達到LSDB的同步