1. 程式人生 > >ospf(開放式最短路徑優先協議)

ospf(開放式最短路徑優先協議)

OSPF:開放式最短路徑優先協議---標準的鏈路狀態協議

一.基本概念

       無類別鏈路狀態路由協議---組播更新協議:224.0.0.5/6     觸發更新、週期更新(30min);  跨層封裝到網路層--協議號89;因為基於LSA更新導致更新量很大-----且需要為中大型網路服務---還要進行週期的維護---所以要進行結構化部署  結構化部署--區域劃分、地址規劃

二.資料包-五種基本的資料包

HELLO -- 鄰居的發現、建立、保活

DBD  --資料庫描述包 -- 資料庫目錄資訊

LSR   --鏈路狀態請求

LSU  ---鏈路狀態更新---攜帶各種LSA

LSack ----鏈路狀態確認

三.OSPF的狀態機(建立關係的各個過程)

Down:本地一旦發出hello包,進入下一狀態

Init初始化:本地接收到的hello包中若存在本地的RID,進入下一狀態

2way雙向通訊:鄰居關係建立標誌

         條件匹配:點到點網路直接進入下一狀態;

                            MA網路將進行DR/BDR選舉(40S),非DR/BDR間不能進入下一狀態;

Exstart預啟動:使用類hello 的DBD包進行主從關係選舉,RID數值大為主,主優先進入下一狀態

Exchange準交換:使用真正的DBD進行資料庫目錄的共享,需要ACK;

Loading 載入:使用LSR/LSU/LSack來獲取未知的LSA資訊;

Full轉發:鄰接關係建立的標誌;

四.OSPF的工作過程

啟動配置完成後,本地收發hello包,建立鄰居關係,生成鄰居表;

再進行條件的匹配,匹配失敗將停留於鄰居關係,僅hello包週期保活即可;

匹配成功者間可以建立鄰接(毗鄰)關係,需要DBD共享資料庫目錄,LSR/LSU/LSack來獲取未知的LSA資訊,當收集完網路中所有的LSA後,生成資料表--LSDB

LSDB建立完成後,本地基於SPF選路規則,計算本地到達所有未知網段的最短路徑,然後將其載入到路由表中;完成收斂

收斂完成後--hello包週期保活   -- 30min週期的DBD比對,若不一致將使用LSR/LSU/LSack重新獲取

五.配置:

r1(config)#router ospf 1   啟動時需要配置程序號,僅具有本地意義

r1(config-router)#router-id 1.1.1.1  

全網唯一---手工---環回介面上最大數值的ip地址----物理介面最大數值

宣告:1、啟用   2、拓撲   3、區域劃分

r1(config-router)#network 1.1.1.1 0.0.0.0 area 0              在宣告時必須攜帶反掩碼 

啟動動配置完成後,鄰居間使用hello包建立鄰居關係,生成鄰居表:

Hello包----用於鄰居的發現、關係的建立和保活

鄰居間hello包中必須有4個引數完成一致,否則無法建立鄰居關係:

  1. hello 和dead time   2、區域ID   3、認證欄位  4、末梢區域標記

r2#show ip ospf neighbor 檢視鄰居表

鄰居關係建立後,進行條件匹配,匹配失敗為鄰居關係,hello包週期保活即可;

匹配成功將使用DBD/LSR/LSU/LSack獲取未知的LSA資訊,生成LSDB---資料庫表:

r2#show ip ospf database  檢視資料庫的目錄

r2#show ip ospf database router x.x.x.x  具體檢視某條LSA

DBD包:exstart和exchange均出現; exstart狀態時,沒有攜帶目錄資訊,僅用於主從關係選舉;

  1. 在exstart狀態的DBD時,使用的是類似hello的DBD,使用隱型確認;---基於序列號,使用主的序列號確認主的資訊
  2. 在exchange狀態 傳送的是真正的DBD,進行正常的確認
  3. DBD包中的標記位: 標記位  I 為1標識本地發出的第一個DBD 包

                                            M為0標識本地的發出最後一個DBD包

                                            MS為1標識主,為0標識從

當LSDB同步完成後,本地基於資料庫最短選路規則,計算到達所有未知網段的最短路徑,然後將其載入到路由表中:

O - OSPF, IA - OSPF inter area

       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2

       E1 - OSPF external type 1, E2 - OSPF external type 2

使用O標識OSPF本區域內通過拓撲計算所得路由

使用O IA標識其他區域路由器通過ABR匯入所得

使用O E1/2標識其他協議或其他程序產生後,通過ASBR重發布進入

使用O N1/2標識其他協議或其他程序產生後,通過ASBR重發布進入,同時本地處於NSSA特殊區域;

管理距離為110;度量為cost值;

Cost值=開銷值=參考頻寬/介面頻寬   預設參考頻寬為100M;

OSPF優選cost值之和最小的路徑;

   可以修改預設的參考頻寬,切記整個網路所有裝置參考頻寬需一致

r1(config-router)#auto-cost reference-bandwidth ?

  <1-4294967>  The reference bandwidth in terms of Mbits per second

r1(config-router)#auto-cost reference-bandwidth 1000

六.OSPF的鄰居建立成為鄰接關係的條件

基於網路型別------點到點     MA多路訪問

在點到點網路中,鄰居關係必須成為鄰接關係,否則無法正常收斂

在MA網路若全網均為鄰接關係,那麼將可能出現大量重複性的LSA洪泛;

為避免該現象,將進行DR/BDR的選舉;所有的非DR/BDR間不得建立成為鄰接關係;

選舉規則:1、先比較介面優先順序----- 預設1;大優;0標識不參選,點到點介面預設為0;

          2、優先順序相同,比較裝置的RID,數值大優;

干涉選舉的方法:

  1. 修改DR最大優先順序,BDR次大

r1(config)#interface fastEthernet 0/0

r1(config-if)#ip ospf priority 3

注:DR選舉非搶佔,故修改優先順序後必須重啟裝置的OSPF程序

r1#clear ip ospf process

Reset ALL OSPF processes? [no]: yes

  1. 修改DR最大優先順序,BDR次大;剩餘所有裝置優先順序修改為0;

 切記不得將所有裝置優先順序修改為0,至少必須存在DR;

七.OSPF的介面網路型別----OSPF協議在不同網路型別下的介面上,不同的工作方式;

介面網路型別        

環回 介面                            無hello包                以32位主機掩碼傳送路由              

點到點(HDLC/PPP)      hello time 10s         不選DR                                支援組播

MA   (乙太網)                hello time 10s          選DR                                  支援組播

NBMA                                hello time 30s          選DR                                 不 支援組播

點到多點                            hello time 30s         不選DR                                支援組播

點到多點 非廣播                hello  time 30s         不選DR       會生成32位主機路由   不支援組播