OSPF(開放式最短路徑優先協議)
OSPF路由協議是用于網際協議(IP)網路的鏈路狀態路由協議,具有路由變化收斂速度快、無路由環路、支持變長子網掩碼(VLSM)和匯總、層次區域劃分等優點,
OSPF協議是一種鏈路狀態協議,每個路由器負責發現、維護與鄰居的關系,并將已知的鄰居串列和鏈路費用LSU(Link State Update)報文描述,通過可靠的泛洪與自治系統AS(Autonomous System)內的其他路由器周期性互動,學習到整個自治系統的網路拓撲結構;并通過自治系統邊界的路由器注入其他AS的路由資訊,從而得到整個Internet的路由資訊,每隔一個特定時間或當鏈路狀態發生變化時,重新生成LSA,路由器通過泛洪機制將新LSA通告出去,以便實作路由的實時更新,
Ⅰ.OSPF路由器分類:
區域內路由器IR(Internal Routers):該類路由器的所有介面都屬于同一個OSPF區域,
區域邊界路由器ABR(Area Border Routers):該類路由器可以同時屬于兩個以上的區域,但其中一個必須是骨干區域,ABR用來連接骨干區域和非骨干區域,它與骨干區域之間既可以是物理連接,也可以是邏輯上的連接,
骨干路由器BR(Backbone Routers):該類路由器至少有一個介面屬于骨干區域,因此,所有的ABR和位于Area0的內部路由器都是骨干路由器,
自治系統邊界路由器ASBR(AS Boundary Routers):與其他AS交換路由資訊的路由器稱為ASBR,ASBR并不一定位于AS的邊界,它可能是區域內路由器,也可能是ABR
Ⅱ.Ospf分組:
①問候(Hello)分組
OSPF使用Hello分組建立和維護鄰接關系,在一個路由器能夠給其他路由器分發它的鄰居資訊前,必須先問候它的鄰居們,
②資料庫描述(Data base Description,DBD)分組
DBD分組不包含完整的“鏈路狀態資料庫”資訊,只包含資料庫中每個條目的概要,當一個路由器首次連入網路,或者剛剛從故障中恢復時,它需要完整的“鏈路狀態資料庫”資訊,此時,該路由器首先通過hello分組與鄰居們建立雙向通信關系,然后將會收到每個鄰居反饋的DBD分組,新連入的這個路由器會檢查所有概要,然后發送一個或多個鏈路狀態請求分組,取回完整的條目資訊,
③鏈路狀態請求(Link State Request,LSR)分組
LSR分組用來請求鄰居發送其鏈路狀態資料庫中某些條目的詳細資訊,當一個路由器與鄰居交換了資料庫描述分組后,如果發現它的鏈路狀態資料庫缺少某些條目或某些條目已過期,就使用LSR分組來取得鄰居鏈路狀態資料庫中較新的部分,
④鏈路狀態更新(Link State Update,LSU)分組
LSU分組被用來應答鏈路狀態請求分組,也可以在鏈路狀態發生變化時實作洪泛(flooding),在網路運行程序中,只要一個路由器的鏈路狀態發生變化,該路由器就要使用LSU,用洪泛法向全網更新鏈路狀態,
⑤鏈路狀態確認(Link State Acknowledgment,LSAck)分組
LSAck分組被用來應答鏈路狀態更新分組,對其進行確認,從而使得鏈路狀態更新分組采用的洪泛法變得可靠,
Ⅲ.ospf報文型別:
①Hello報文:建立并維護鄰居關系,Type=1
②DBD資料庫描述報文:發送鏈路狀態頭部資訊,(鏈路狀態資料庫摘要)Type=2
③LSR鏈路狀態請求報文:把從DBD中找出的需要的鏈路狀態頭部資訊傳給鄰居,請求完整資訊,Type=3
④LSU鏈路狀態更新報文:將LSR請求的頭部資訊對應的完整資訊發給鄰居,Type=4
⑤LSACK鏈路狀態確認: 收到LSU報文后確認該報文,Type=5
Ⅳ.六種狀態:
①Down:鄰居的初始狀態,表示沒有從鄰居受到任何資訊
②Init:組播發送hello包,發現鄰居(單方面建立鄰居)
③Two-way:單播回復hello包應答,建立雙向鄰居;選舉DR和BDR:首先查優先級,然后再查router—id來選DR
④Exstart:選主從路由器:主從關系是看MS位,1為0為從,如果都為1,則看router—id大的
⑤Exchange:交換鏈路狀態資料庫摘要,也就是交換DBD
注:DR/BDR是維護網路用的,比如網路拓撲發生改變時候,通過組播地址來維護LSDB
注:主/從路由器是初始化OSPF路由器的鏈路狀態資料庫用的,是exstart狀態在建立鄰接關系時候同步DBD
⑥Loading:根據DBD發送LSR請求更新鏈路狀態條目,對方用LSU進行回應
⑦Full:路由條目學習完成
Ⅶ.報文型別及作用:
①鏈路資訊主要包括:鏈路的型別;介面ip地址及掩碼;鏈路上所連接的鄰居路由器;鏈路的帶寬(開銷)
②協議號:89;version:版本,該欄位值是2;type:型別;packet length:整個ospf報文的長度,單位是位元組
Router ID:路由器ID;Area ID:此報文需要被通告到的區域;chescksum:校驗欄位;auth type:為0時表示不認證;為1 時表示簡單的明文認證;為2時表示加密(MD5)認證;authentication:認證所需的資訊
Ⅷ.OSPF的表:
①鄰居表:記錄了建立鄰居關系的路由器
②LSDB(鏈路狀態資料庫):包含了本路由器上的區域的所有的鏈路狀態資訊,并實時同步
③路由表:經過SPF演算法計算出的路由存放在OSPF路由表中
Ⅸ.cost值計算:
OSPF的流量使用IP協議89協議號,周期更新(預設時間周期為30分鐘)和增量更新(只更新變化的路由),
Cost=10^8/帶寬bps
Ⅹ.OSPF建立鄰居的必要條件:
①Hello時間和dead時間,dead時間=4*hello時間(默認10s)
②routerID唯一
③區域ID相同
④認證型別相同;
⑤特殊區域相同;等
ⅩⅠ.Router-ID(使用IP地址的形式來表示):
①手工指定Router-ID,
②路由器上活動Loopback介面中IP地址最大的,也就是數字最大的,
③如果沒有活動的Loopback介面,則選擇活動物理介面IP地址最大的,
ⅩⅡ.DR/BDR/Drother:
①產生原因:當多臺OSPF路由器連到同一個多路訪問網段時,如果每兩臺路由器之間都相互交換LSA,那么該網段將充滿著眾多LSA條目,為了能夠盡量減少LSA的傳播數量,通過在多路訪問網段中選擇出一個核心路由器,稱為DR(Designated Router指定路由器)
②DR不搶占
③先選舉DR,再選舉BDR備份指定路由器,選舉規則:優先級>Router-Id
- 選舉優先級最高的成為DR,優先級數字越大,表示優先級越高,次優先級的為BDR,優先級范圍是0-255,默認為1,優先級為0表無資格選舉
- 如果在優先級都相同的情況下,Route-Id 最大的成為DR,其次是BDR,
④所有路由器都與DR和BDR是鄰接關系,Drother與Drother之間只是鄰居關系,(交換hello包為鄰居關系,還交換LSA才是鄰接關系)
所有OSPF路由器,都能夠接收和傳遞目標地址為224.0.0.5的資料包,只有DR和BDR才能接收目標地址為224.0.0.6的資料包,
ⅩⅢ.四種網路型別:
- 點到點網路 Hello時間10s;dead時間是hello的4倍
- 廣播多路訪問網路 Hello時間10s
- 點到多點網路 Hello時間30s
- 非廣播多路訪問網路NBMA Hello時間30s

廣播和非廣播網路都要進行DR和BDR的選舉,而點到點和點到多點網路不進行DR和BDR的選舉,也不存在DR和BDR,
廣播網路(Broadcast網路)OSPF通常以組播方式(224.0.0.5和224.0.0.6)發送協議報文;鏈路層協議是Ethernet、FDDI;
非廣播NBMA(Non-Broadcast Multi-Access)網路:以單播方式發送協議報文;鏈路層協議是幀中繼、ATM或X.25;
點到點網路(Point-to-Point網路,或P2P網路)OSPF以組播方式(224.0.0.5)發送協議報文;鏈路層協議是PPP或HDLC
點到多點網路(Point-to-Multipoint網路,或P2MP網路)預設情況下以組播方式(224.0.0.5)發送協議報文,也可以根據用戶需要,以單播形式發送協議報文,由其他網路型別強制更改而來,常用做法是將NBMA改為點到多點的網路
介面下修改網路鏈路型別的命令:ospf network-type p2mp
ⅩⅣ.六類LSA:
①Router LSA
②Network LSA
③Network Summary(網路匯總)LSA
④ASBR Summary(ASBR匯總)LSA
⑤AS External(AS外部) LSA
⑥NSSA LSA

OSPF區域:骨干區域,標準區域,特殊區域(末梢區域,完全末梢,NSSA,完全NSSA)
劃磁區域作用:OSPF 中劃磁區域的目的就是在于控制鏈路狀態資訊LSA 泛洪的范圍、減小鏈路狀態資料庫LSDB的大小、改善網路的可擴展性、達到快速地收斂,
ⅩⅤ.四種特殊區域:
①Stub Area(末梢區域)
把一個非骨干區域配置成stub區域,而stub區域路由器將從其它協議重分布到OSPF的路由條目(OE1、OE2)替換成默認路由指向骨干區域,
被設定為stub區域的區域不會學習其他區域的詳細路由條目,為保證Stub區域能夠到達自治系統外部,Stub區域的ABR將生成一條預設路由(對應三類LSA),并發布給Stub區域中的其他路由器
該區域存在一個或多個ABR;不存在ASBR;該區域不能為區域0;該區域沒有虛鏈路穿過;所有STUB區域的路由器上均做STUB配置,過濾4,5類lsa,ABR會產生預設(默認)的3類lsa,區域內不能引入外部路由
②Totally Stub Area(完全末梢區域)
Totally Stub區域內的路由器對其他區域及自制系統外部的訪問需求是通過本區域ABR所產生的三類LSA預設路由實作的,與Stub區域配置的區別在于,在ABR上需要追加no-summary引數
將從它路由協議重分布到OSPF的路由條目(OE1、OE2)及OIA(區域間學習到的路由)全部替換成默認路由指向骨干區域
過濾3,4,5類lsa,ABR會產生預設(默認)的3類lsa,區域內不能引入外部路由
③Not-so-Stubby Area(NSSA)
將從連接骨干區域出口的其它路由協議重發布來的(OE1、OE2)替換成默認路由指向骨干區域
OSPF NSSA區域(Not-So-Stubby Area)是在原始OSPF協議標準中新增的一類特殊區域型別,NSSA區域和Stub區域有許多相似的地方,兩者的差別在于,NSSA區域能夠將自治域外部路由引入并傳播到整個OSPF自治域中,同時又不會學習來自OSPF網路其它區域的外部路由,
允許存在ASBR;該區域ASBR引入的外部路由產生七類LSA;區域所有的設備均需配置;該區域七類LSA傳播到其他區域時,將有此區域的ABR轉換成五類LSA;默認,該區域的ABR不會向此區域通告預設路由,
過濾4,5類lsa,ABR會產生預設(默認)的7類lsa,該區域能引入外部路由
④Totally Not-so-Stubby Area(完全NSSA)
將從連接骨干區域出口的其它路由協議重發布來的(OE1、OE2)及區域間學習到的路由(OIA)替換成默認路由指向骨干區域,
過濾3,4,5類lsa,ABR會產生預設(默認)的3類lsa,該區域能引入外部路由
重點: nssa和stub根本區別就是nssa可以引入外部路由,而stub區域不可以引入,
ⅩⅥ.認證方式:
- 鏈路認證
- 區域認證
- 虛鏈路認證
認證方法:明文和MD5


ⅩⅦ.OSPF防環機制:
域內防環
通過SPF(Dijkstra) 演算法,根據鏈路狀態資料庫的子集形成樹,
區域防環
為了避免區域間的環路,ospf規定不允許直接在兩個非骨干區域之間發送路由資訊,只允許在一個區域內部或者骨干區域和非骨干區域之間發布路由資訊,因此,每個區域邊界路由器都必須連接到骨干區域,
區域間水平分割
ABR只會將三類LSA轉發到骨干區域,如果始發的是本區域的路由是不會被再次注入進來的,目的是為了阻止環路,
LSA三類防環
為防止區域間的環路,OSPF定義了骨干區域和非骨干區域和三類LSA的傳遞規則,
所有非骨干區域均直接和骨干區域相連且骨干區域只有一個,非骨干區域之間的通信都要通過骨干區域中轉,骨干區域ID固定為0,
OSPF規定從骨干區域傳來的三類LSA不再傳回骨干區域,
OSPF要求ABR設備至少有一個介面屬于骨干區域,
路由策略和策略路由的區別:路由策略是通過修改路由表的路由條目來控制資料流量的可達性;而策略路由是通過用戶制定的策略進行轉發,且該策略優于路由表的轉發,路由策略是基于路由表進行流量的轉發,而策略路由是基于策略進行流量的轉發,
ⅩⅧ.雜
①在MA網路中,若兩端介面掩碼不一致,鄰居無法建立,因為在二類LSAnetworkLSA上需要描述掩碼
②在p2p網路中,可以不考慮掩碼,
③兩端ospf網路型別不同,鄰居可建立,可收到LSA但路由學不到,
④比較LSA新舊:
首先比較序列號,如果序列號越大,則越新,
如果序列號相同,則比較校驗和,校驗和越大越新,
如果校驗和相同,則比較存活時間(LS Age),如果這些LSA中有一條存活時間為3600s,則認為該LSA是最新的,用于洗掉一條LSA,
如果所有LSA age不等于3600S,則判斷LSA age的差值,如果大于900S(15分鐘)則認為LSA age小的最新,如果小于900S則認為相同;
如果上述條件都一樣的話,則認為這兩條LSA是相同的,將本地的LSA保留,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/514150.html
標籤:其他
上一篇:RIP基礎
