OSPF:開放式最短路徑優先
公有協議----鏈路狀態協議----更新量大
算法:
OSPF : 迪傑科斯特拉算法(SPF算法)
RIP:貝爾曼斯特算法
OSPF特點
1. CIDR:
2、收斂速度快:相當於RIP收斂快,相對於EIGRP比較慢
3、是無類路由協議,支持VLSM,CIDR,不連續子網,手工彙總
4、支持區域劃分
OSPF:區域劃分
骨幹區域、常規區域
注:常規區域必須和骨幹區域直接相連
5、支持認證:分三種:
不認證
簡單明文認證
MD5(認證)
6、觸發更新
7、OSPF是無環協議(只侷限於區域內) ,在一個區域內是絕對無環的,基於SPF算法
8、OSPF的低層協議: IP 89
9、0SPF的優先級爲10 (OSPF內部) 150 (OSPF 外部)
10、OSPF使用開銷(COST)做爲度量標準
11、RIPv1是廣播,v2是組播: 224.0.0.9 OSPF是用組播來更新(224.0. 0.5, 224. 0.0. 6)
12、OSPF的三張表:鄰居表(鄰居數據庫),拓撲表(鏈路狀態數據庫LSDB),路由表(RIB )
13、OSPF LSDB每30分鐘會更新(LSA (1800秒) 60分鐘老化(3600老化)
OSPF的進程只具有本地意文
ASBR:自制系統邊界路由器
ABR:區域邊界路由器
router-id:標識運行ospf的路由器的身份
選舉規則:
手動指定優先,如果沒有指定則選擇環回接口,沒有環回接口選舉物理接口(接口地址越大越優先)
華爲設備:手動指定最優先,最先up的接口最優先
可以在全局指定:router-id
ospf進程下指定:ospf 1 router id 1.1.1.1
注:進程優於全局
ospf鄰居狀態機:
down:表示沒有鄰居收到hello報文,在NBMA網絡中仍然使用較低頻率向down狀態發送hello報文
Atempt(NBMA環境):未從收到hello報文,仍然需要向外發送hello包進行嘗試,用於鄰居聯繫
init :已經收到了鄰居發送的hello包,但該報文中列出的鄰居未包含自己的router-id
two-way :路由器雙方都得到對方的router-id,建立了鄰居關係,未建立鄰接關係。在廣播和NBMA類型的網絡中,兩個接口狀態是DROther的路由器之間將停留在此狀態。其他情況狀態機將繼續轉入高級狀態。
exstart :鄰接建立的第一步,準備交互DBD描述報文,同時選舉DR和BDR。路由器和它的鄰居之間通過互相交換DBD報文來決定發送時的主從關係。建立主從關係主要是爲了保證在後續的DD報文交換中能夠有序的發送。
exchange :交互DBD描述報文,路由器將本地LSDB通過DBD報文描述併發送給鄰居
loading :路由器發送LSR報文向鄰居請求對方的DBD報文,對端發送LSU用於本地更新,發送LSACK確認
full :完全鄰接狀態,雙方數據庫同步。此狀態下,鄰居路由器的LSDB中所有的LSA在本路由器上全部有了,即本路由器和對端鄰居建立了鄰接關係
查看ospf鄰居:display ospf peer brief
查看ospf鏈路狀態數據庫:display ospf lsdb
LSA(鏈路狀態通告信息):有關各條鏈路的狀態信息
LSU:包括了LSA信息,鏈路狀態更新報文
最短路徑算法(SPF算法)
鄰居關係:是建立鄰接關係的必須階段
鄰接關係
指定路由器(DR)
備份路由器(BDR)
非指定路由器(DRother)
ospf的報文:
1.Hello報文:建立和發現鄰居,維護ospf鄰居關係
2.DBD報文:數據庫描述包,用於描述LSDB的摘要信息
3.LSR報文:用於向對方請求所需要的LSA信息
4.LSU報文:更新報文,用於向對方發送所需要的LSA
5.LSACK報文:用來對收到的LSU報文進行確認,即確認LSA
注:五種報文中,只有LSU包含具體的LSA信息,DBD只包含摘要信息
hello報文
掩碼(在廣播或NBMA中才會檢查)
hello時間:發送hello的時間間隔,廣播網絡或點到點10s,NBMA30s
options:
DN:用來防環
o:支持9、10、11類LSA能力
DC位:按需鏈路
N:等於1代表支持七類LSA,=0代表不支持
P:需要做七轉五
MC位:支持MOSF
E位:表示支持五類LSA
Router Priority:用於選舉DR、BDR
Router Dead Interval(死亡時間):是hello時間的4倍,如果在該時間內沒有收到hello報文就會認爲鄰居失效
DR
BDR
Active Neighbor
DR與BDR的選舉
雙方在進入2-way狀態開始選舉,選舉時間=死亡時間=40s
1.DR與BDR字段爲空,首先選舉BDR,首先比較優先級,越高越優,默認爲1,0表示不參與選舉,優先級相同會比較router-id,越大越優,BDR選舉後,會自動升級成爲DR,重新再選舉BDR
2.DR字段爲空,BDR不爲空,BDR自動升級成爲DR,重新選舉BDR
3.DR字段不爲空,BDR爲空,重新選舉BDR
注:默認DR、BDR是不搶佔的
作用:
減少鄰接關係
降低OSPF協議流量
DR:指定路由器,負責在MA網絡中建立維護鄰接關係和LSA同步
DR會與其他路由器交換鏈路狀態信息,其他不直接交換,減少資源消耗
BDR:備份路由器,當DR發生單點故障後,鄰接關係全部失效,LSA無法同步。通過BDR能快速接管DR工作
DBD報文的作用:
主從選舉DBD
交互LSA的摘要信息
注:第一個DBD報文爲空報文,用來選舉主從
選舉規則:router id 大的爲主
隱示確認:通過主序列號進行確認;如果主設備收到一條DBD的回覆報文,裏面的序列號是自己之前發送的,就認爲之前的DBD的對端已經收到
華爲設備默認不檢測MTU,思科設備會檢測。當MTU不一致時,會卡在exstart狀態
從設備MTU小於主設備MTU,會卡在exstart狀態
OSPF確認機制:
隱式確認(主從序列號)
顯式確認(LSR、LSU、LSACK)
OSPF工作過程:
啓動宣告配置完成後,路由器開始組播224.0.0.5收發OSPF的hello包;若接收到的hello 包中存在本地的route-id,建立鄰居關係。生成鄰居表;
之後基於表格中所有的鄰居進行條件的匹配,匹配失敗將維持鄰居關係,僅hello包週期保活即可
匹配成功可以建立鄰接關係;鄰居間使用DBD進行數據庫目錄的比對;之後使用LSR查詢目錄中未知的LSA信息。對端使用LSU來攜帶傳遞LSA,最終需要LSack進行接收確認
當本地收集到區域內所有設備的LSA後,生成LSDB-鏈路狀態數據庫表
本地基於LSDB啓用SFP算法,計算到達所有未知網段的最短路徑,然後將其加載到路由表內
收斂完成,僅hello包週期保活所有的鄰居和鄰接關係;每30min週期進行DBD包的收發來進行糾錯
結構突變:
新增網段或斷開網段:直連會使用DBD告知鄰居,鄰居進行LSR、LSU、LSACK收斂
無法溝通:死亡時間和最大老化時間解決
正常鄰居間存在hello包,;若超過死亡時間依然未收到hello包,則斷開鄰居關係,刪除之前學習到的所有信息
若鄰居關係正常,但未進行週期更新,則每條LSA的後方會存在一個老化時間,默認爲3600s,到達最大老化時間時刪除LSA信息即可
LSA新舊比較:
比較序列號,越大越優
比較校驗值,越大越優
LSA age時間,是否等於 MAX-age時間(3600)
如果age時間不等於MAX-age時間,比較差值,當差值大於15min,小的優
如果age時間不等於MAX-age時間,比較差值,當差值小於15min,說明爲同一條LSA,忽略其中一條
LSA更新時間:
1800s到期自動更新
觸發更新(接口的變化)
OSPF網絡類型
P2P網絡類型:
物理接口:串口(PPP、HDLC)、tunnel接口、virtual-link、sham-link
hello時間與死亡時間:10s 40s
自動建立鄰居,不選舉DR
NBMA:非廣播多路訪問網絡
物理接口哦:FR接口
hello時間與死亡時間:30s 120s
不自動建立鄰居關係:
手工指定單播鄰居
控制Hub端爲DR,不得出現BDR
手工寫映射
P2MP:點到多點網絡類型
自動建立鄰居
hello時間與死亡時間:30s 120s
P2MP NON broadcast:點到多點非廣播
hello時間與死亡時間:30s 120s
不自動建立鄰居:
手工指定單播鄰居
注:修改hello時間,影響dead時間
注:修改dead時間,不影響hello時間。但二者都影響鄰居關係的建立