图文分析 OSPF 的特点
?
OSPF和EIGRP一樣都是通過發送hello包建立鄰居關系
鄰居關系通過周期性發送Hello包來建立,Hello包建立的表叫鄰居表,鄰居表的內容比較簡單,就是我本地哪個接口連接了哪個鄰居。
建立完鄰居之后我就開始傳送路由信息了,而傳送的路由信息叫做LSA,通過傳送LSA來構建鏈路狀態數據庫;
鏈路狀態數據庫里面存放LSA,它包含了本區域完整的鏈路狀態信息(其實跟EIGRP的拓撲表類似,但比EIGRP的拓撲表詳細)
LSDB構建好了之后,OSPF利用SPF算法從鏈路狀態數據庫中算出一條最優的路徑放到路由表
?
LS路由協議比DV路由協議更了解網絡中的信息,因此更能找到最佳網絡的路徑(如何來理解?)
每臺路由器有一個完整的網絡拓撲信息;
所以,鏈路狀態路由器更能找到最佳網絡的路徑;
可以和EIGRP做一個對比:
R1-R2-R3
比如運行的是EIGRP,R3宣告Lo0,R3通過EIGRP鄰居把路由發給R2,R2再傳給R1,R1上查看路由表或者拓撲表時無法判斷路由的始發者是誰,只知道是R2傳過來的,所以這種DV協議也叫傳聞式的協議。
而如果運行的是OSPF的話,那OSPF的數據庫中不僅包含R3的Lo0路由而且還包含拓撲信息,比如R1清楚的知道該條路由是誰通告出來的。
EIGRP是高級的DV是因為EIGRP有拓撲表,但拓撲表相對簡單,只有路由!
OSPF是LS,拓撲表不僅包含路由還包含拓撲信息(lsa)
如:路由通告的源,DV是傳聞路由協議也在此體現出來,來源只有鄰居而不是路由通告的源
這也是DV和LS的一個區別!!!
?
ospf三張表:
鄰居表:
通常也被稱為鄰接數據庫;
包含所有直連的鄰居列表;
拓撲表:
通常也稱為LSDB(鏈路狀態數據庫);
包含本區域所有的鏈路狀態信息;
同一個區域內的所有路由器有相同的LSDB(鏈路狀態數據庫);
拓撲表不僅包含路由還包含拓撲信息(lsa),如:路由通告的源、掩碼等等信息
路由表:
通常也叫轉發數據庫;
存放到達目的地的最佳路徑;
?
鏈路狀態路由協議一定要分層,層次化的網絡設計在OSPF中被強制,即規劃OSPF時一定要劃分區域;
OSPF中主要分兩大區域:
主干區域(骨干區域?or Area0)
常規區域(非骨干區域)
這是DV和LS的另一個區別!!!
銜接:
那我們看一下劃分區域有哪些作用?
?
1、減小路由表條目(如何減小呢?其實是可以做域間匯總!可以根據PPT說明一下匯總的好處可以使得H、G上的路由條目更少)
2、本地拓撲的變化只影響本區域(為什么?其實也是因為做了匯總,例如,在C上匯總Area1的路由,F上路由的變化不會影響其他區域)
3、某些LSA不會泛洪到整個OSPF域,減少網絡流量(有些LSA只在本區域泛洪,有些LSA會泛洪到整個OSPF域)
4、需要分層的網絡設計
?
區域術語;
骨干路由器BR:A、B
內部路由器IR:F\G\H
ASBR:A
ABR:CDE
?
OSPF通過互相發送Hello包來建立鄰居;
Hello包中會包含一些建立OSPF鄰居必要的參數;
我們先回顧一下EIGRP建立鄰居的條件:
1.K值要匹配??2.AS號要一致??3.驗證要一致
那OSPF建立鄰居需要哪些必要條件呢:我們在后面再做詳細的探討
1. Hello和Dead intervals?時間要一致;
2.?區域ID要一致;
3.?驗證要一致;
4. Stub?標記要一致;即:stub區域中的所有路由器都要配置成stub路由器
?
首先,兩個概念要區分開,即鄰居和鄰接的區別:
鄰居:僅僅交互了Hello包!沒有交互路由信息!!!
鄰接:不僅交互了Hello包,還交互了LSA(路由信息)!!!
所以,形成鄰接的一定是鄰居,反過來就不一定了!!!
OSPF大致分為兩種網絡類型:
Point-to-Point類型(典型:Serial口)
????所有的鄰居(neighbor)都會變成鄰接(adjacent)
MA類型(BMA、NBMA)(路由器之間有些能夠到adjacent狀態,有些只能到neighbor狀態)
????所有鄰居都和DR、BDR形成Adjacent關系;
????DROTHERs之間只能到達two-way狀態;
路由的更新只會在兩臺adjacent狀態的路由器之間傳送;
一旦形成adjacent關系,LSDBs就會通過交互LSAs同步;
LSAs泛洪到整個區域;
?
OSPF計算:
通過應用Dijkstra的SPF算法的對鏈路狀態數據庫進行計算路由器找到最好的到達目的地的路徑:
在同一個區域內的每臺路由器都有一致的LSDB;
每臺路由器以自己為根算出最短路徑;
最優路徑是Cost值最小的路徑;
?
黑色的線是實際的物理線路,假設都是Ethernet,cost值都是10;
路由器X以自己為根到達其他路由器的路徑如圖所示,都是選擇Cost最小的路徑;
Cost?值的計算也是路由流向的入接口;
1
ospf地metric根據cost進行計算
cost=10^8/帶寬
B--->Byte
b--->bit ??
1B=8bit
接下來我們看一下lsa地運行是怎么樣地?
?
當兩臺路由器間R1--->R2建立了鄰居關系,就會互相發送LSA,當路由器收到LSA以后怎么處理的呢?我們看圖所示
Step1.
如果本路由器從來沒有收到過此LSA,那么路由器就將其加入LSDB,并且轉發/泛洪此LSA,同時繼續SPF計算,得出到達此目標的最佳路由。
Step2.
如果本路由器,曾經收到過描述同一個網絡的LSA:
如果新收到的LSA序號與自己已有的相同,則丟棄此LSA。
如果新收到的LSA序號比自己已有的更新,則同Step1,去計算最佳路由。
如果新收到的LSA的序號,比自己的更舊,就將自己較新的LSA,發送給源。
鏈路狀態數據庫(LSDB)中的每一條LSA都有一個序列號
? ?4字節
? ?從0x80000001到0x7FFFFFFF???
每隔30分鐘OSPF將泛洪每一次LSA
? ?泛洪時LSA序列號增?加1
? ?具有較大(新)序列號的LSA被認為是新的LSA
最終,當序列號用盡時,將重新從0x80000001開始
? ?現有的舊的LSA的年齡將被設置為最大年齡(3600秒),并且被清除
?
每臺OSPF路由器為它屬于某個區域的那些接口產生一條Router LSA
? ?示例中Link ID為192.168.1.67的路由器已經更新了8次;最后一次更新是48秒之前。
總結
以上是生活随笔為你收集整理的图文分析 OSPF 的特点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 华为交换机忘了密码如何恢复
- 下一篇: 利用 Linux 查找重复文件