文章目錄
- CCNA4:OSPF——開放式最短路徑優先協定
-
- 1、OSPF的資料包:
- 2、OSPF的工作過程:
- 3、OSPF的狀态機(重點):
- 4、OSPF的配置、鄰居表、資料庫表、路由表:
- 5、OSPF建立成為鄰接關系的條件:
- 6、OSPF的擴充配置:
CCNA4:OSPF——開放式最短路徑優先協定
OSPF是标準的鍊路狀态路由協定,其實就是拓撲型協定。它是無類别協定,更新時攜帶子網路遮罩,使用多點傳播(224.0.0.5、224.0.0.6)進行更新,管理距離110,度量為cost表示開銷值。
OSPF是一個拓撲型協定,它最大的特點就是選路佳,不會出環。但是由于它是拓撲型協定,那麼每多一台路由器,就會導緻裝置的更新量很大,會占用大量的資源。為了減少更新量,OSPF采用了 結構化部署:區域劃分、位址規劃 。
通過區域之内傳拓撲,區域之間傳路由這種方式,這就叫做鍊路狀态型的距離矢量特征。
OSPF使用觸發更新、周期更新(30分鐘)。使用周期更新的原因是:由于更新量太大,會導緻網絡擁塞,可能無法收到某些資料包,導緻資料庫不統一,是以用周期更新,讓路由器之間每過30分鐘比對一次。
1、OSPF的資料包:
資料包 | 資料包的作用 |
---|---|
Hello包 | Hello包用于發現、建立、周期保活鄰居關系,通過hello包的互發來發現鄰居 Hello包中存在router ID——RID,相當于全網唯一的編号,使用IP位址。 |
DBD包 | DBD包叫做資料庫描述包:路由器通過收到這個包之後,來檢視該DBD包中那一條LSA資訊自己沒有,起到比對作用。 |
LSR 鍊路狀态請求包 | 路由器通過發送LSR鍊路狀态請求包來向對端請求自己沒有的LSA資訊 |
LSU 鍊路狀态更新包 | 該包中攜帶各種LSA,用于回複其它路由器的請求 |
LSack 鍊路狀态确認包 | 表示自己已經收到更新包 |
2、OSPF的工作過程:
(1)啟動配置完成後,本地使用多點傳播(224.0.0.5、224.0.0.6)發送hello包到所有鄰居處,若收集到其他鄰居的hello包,那麼建立鄰居關系,生成鄰居表
(2)緊接着和所有鄰居間進行 條件比對 :
若失敗将停留于鄰居關系,僅hello包周期保活即可。
若比對成功,将建立鄰接(毗鄰)關系(需要DBD共享資料庫目錄),鄰接關系将使用DBD/LSR/LSU/LSack來擷取未知的LSA資訊,當收集齊所有的LSA資訊後,本地生成LSDB(鍊路狀态資料庫也就是資料庫表)
(3)之後在本地基于LSDB計算到達所有未知網段的最佳路徑,然後将其加載到路由表。
(4)收斂完成後,hello包周期保活鄰居、鄰接關系;每過30min周期性的使用DBD比對資料庫。
(5)若結構突變:
①新增、斷開網段時,直連裝置使用DBD同步資訊到所有的鄰接處。
②裝置斷電無法溝通,dead time到時後斷開鄰居關系。
LSA:鍊路狀态通告,或者說是拓撲或路由。
LSDB:鍊路狀态資料庫,用于存放所有的LSA集合。
OSPF協定的收斂被稱作LSA洪泛、LSDB同步
3、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(完成) | 鄰接關系建立的标志 |
大緻過程用圖檔來表示,是這樣的:
4、OSPF的配置、鄰居表、資料庫表、路由表:
(1)OSPF的配置解釋:
R1(config)#router ospf 1
R1(config-router)#router-id 1.1.1.1
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 12.1.1.0 0.0.0.255 area 0
#1 router ospf 1中1為程序号可以讓一台路由器運作多個ospf程序,僅具有本地意義
#2 router-id 1.1.1.1 配置RID,要求為全網唯一,為手工配置,如果不配置預設取環回接口最大數字,最後再取實體接口最大數字。
#3 宣告所擁有的網段,使用反掩碼來比對可變動範圍(12.1.1.0 0.0.0.255 表示為最後8位為可變動範圍),達到宣告的目的,同時宣告自己所在的區域。這裡的反掩碼是說的範圍,而掩碼說的是網絡位與主機位的區分,邏輯上是不一樣的。
OSPF劃分區域的原因:避免更新量太大,可以工作在更大的環境中。
OSPF劃分規則:
①必須為星型結構——區域0為骨幹區域,其餘為中心站點。
②ABR——區域邊界路由器,它是将一邊區域拓撲計算所得路由發送到另一邊
(2)鄰居表
為了更好的說明3張表,這裡配置3台路由器。配置就按照上一步進行配置,如圖:
鄰居表:啟動配置完成後,所有裝置間使用hello包,發現并建立鄰居關系,鄰居表生成。Hello time為10s,dead time 為hello time 的4倍,它會從40s開始倒計時,倒到30s時,新的hello包來了,那麼又恢複到40s。
(3)資料庫表
鄰居關系建立後,鄰居間進行調節比對,比對成功者之間進入鄰接關系,基于DBD/LSR/LSU/LSack擷取未知LSA資訊,生成LSDB(資料庫表),這隻是幾個目錄:
詳細看其中的一條目錄。
r2#show ip ospf database router 1.1.1.1
這裡我不會詳細解釋,之後我會在NP階段寫關于OSPF的詳細講解,敬請期待。
(4)路由表:
LSDB同步完成後,本地使用SPF最短路徑選路規則,将到達未知網段的路由加載到路由表
O | 本地區域内的路由,是本地通過拓撲計算所得 |
---|---|
O IA | 域間路由,其他區域的路由,通過ABR共享進入 |
其中管理距離為110,度量為cost值也就是開銷值,由于路徑成本要越小越好,是以使用開銷值:
注:當接口帶寬大于參考帶寬時,比如1000M時,cost值為1。就有可能出現選路不佳,建議修改參考帶寬,預設為Mbits
r1(config)#router ospf 1
r1(config-router)#auto-cost reference-bandwidth 1000
切記:整個網絡所有裝置均需要修改抑制。
5、OSPF建立成為鄰接關系的條件:
鄰接關系建立的條件是建立鄰居關系:
鄰居關系:隻存在Hello包的保活,之間沒有路由、拓撲的傳遞。
鄰接關系:進行LSA的互動、洪泛(進行拓撲路由的傳遞)。
網絡類型決定了鄰接關系是怎樣的:
點到點網絡:在一個網段内隻能存在兩個節點。
MA網絡:在一個網段内節點之間的數量不限制。
(1)點到點網絡:
在點到點網絡OSPF中隻能直接建立鄰接關系
(2)MA網絡中:
在MA網絡中為 避免重複的更新 ,将進行DR/BDR選舉,所有的非DR/BDR間僅建立鄰居關系;DR/BDR與其他非DR/BDR建立鄰接關系,基于224.0.0.6(DR/BDR專用)溝通。是以要出現DRother與DRother之間的hello包溝通,至少需要4台路由器。
DR為老大,BDR為老二它用于接管DR臨時故障導緻網絡癱瘓而設定的。DROTHER它們隻和DR之間進行比對資料庫,不和DROTHER比對資料庫,減少更新量。
選舉規則;
1、比較接口優先級,0-255,越大越好。 預設為1,0表示不參選。
2、接口優先級若相同,比較RID
R1(config)#interface f0/0
R1(config-if)#ip ospf priority 3 修改接口優先級
注:OSPF選舉為非搶占的,是以在人為**修改優先級後,必須讓所有重新開機裝置一次性敲好所有配置指令,**然後最好在十幾秒内重新開機OSPF程序,超出40s不成功。
或者是将裝置的參選接口優先級修改為0,不參選,但至少留一台裝置參選,否則無DR,網絡将無法同行。
6、OSPF的擴充配置:
1) 認證----直接在連接配接鄰居的接口上配置
2) 加快收斂—hello time 10s dead time 40s在這裡插入圖檔描述
在直連鄰居的接口上修改,且鄰居間time必須完全一緻,否則無法保持鄰居關系比對
3) 被動接口----僅接受不發送路由協定的資訊,用于連接配接使用者的接口,不得用于連接配接鄰居的接口
4) 預設路由----在邊界路由器上配置預設資訊後,向内網發送預設路由