評價一個路由協議的好壞:
- 占用資源多少
- 收斂速度快慢
- 選路是否合理
RIP以跳數作為開銷值來選路,就可能存在不合理性
RIP – 距離矢量性協議
- 以跳數作為開銷值進行選路,本身存在不合理性
- 由于RIP本身計時器時間較長,收斂速度較慢
- RIP單個資料包占用資源并不算大,但是因為RIP存在30s一次的周期更新,所以整體看來,RIP的資源占用很大
由于RIP三個維度的表現都不算太好,所以只能適用于中小型網路環境
OSPF 動態路由協議 – 開放式最短路徑優先協議
傳遞的是LSA:鏈路狀態資訊
- OSPF因為是鏈路狀態型協議,所以,計算出的路徑不會出現環路,并且,OSPF以帶寬作為開銷值進行選路,相對于條數更加合理,所以從選路的角度來看,OSPF優于RIP
- 由于OSPF的計時器時間短于RIP的計時器,所以從收斂速度來看,OSPF優于RIP
- 從單個資料包攜帶的資料量來看,因為OSPF攜帶的是拓撲資訊(LSA),所以資料量較RIP大很多,但是由于RIP存在30s一次的周期更新,并且OSPF本身存在很多減少更新量的措施,所以從整體的角度看,OSPF小優于RIP
OSPF版本:
- OSPFV1(在實作試階段就夭折了),OSPFV2 — IPV4
- OSPFV3 — IPV6
RIPV2 與 OSPFV2:
- 相同點
-
OSPFV2 和 RIPV2都是無類別的路由協議,都支持VLSM, CIDR
-
OSPFV2和RIPV2都以組播的形式發送訊息,地址:224.0.0.5和224.0.0.6
-
OSPFV2和RIPV2都支持等開銷負載均衡
-
不同點
- RIP只能適用于中小型網路
- OSPF可以適用于大型網路
- OSPF為了適應中大型網路,需要進行結構化部署:區域劃分
如果只有一個區域的OSPF網路,我們將這樣的網路稱為單區域OSPF網路
如果只有一個區域的OSPF網路,我們將這樣的網路稱為多區域OSPF網路
區域劃分的主要目的: 區域內部傳遞拓撲資訊,區域之間傳遞路由資訊
-
區域邊界路由器 – ABR: 同時屬于多個區域,并且一個介面對應一個區域,至少有一個介面屬于骨干區域,區域之間可以存在多個ABR,一個ABR可以屬于多個區域
-
區域劃分的要求:
- 區域之間必須存在ABR
- 區域劃分必須按照星型拓撲結構劃分,星型拓撲中間區域叫做骨干區域
OSPF區域存在區域編號: 區域ID(area ID):由32位二進制構成,用點分十進制進行表達,骨干區域的area ID為0
一、 OSPF的資料包
-
hello包: 可以用來周期發現,建立和保活鄰居關系
? 周期: 默認為10s為周期進行周期發送,在某些特殊環境會以30s為周期
? 死亡時間(dead time): 4倍的hello時間
? RID: 用來標定和區分OSPF網路中不同的路由器
? RID要求:
-
整個OSPF網路唯一
-
格式統一,RID要求必須符合IP地址格式(有32位二進制構成,并且點分十進制表達)
RID的獲取方式:
-
手工配置:僅滿足以上兩點要求即可
-
自動獲取:路由器先從環回地址中選取數值最大的IP地址作為RIP,若不存在環回地址,則將從本地的物理介面對應的IP地址中選擇數值最大的最為RID
-
-
DBD包: 資料庫描述報文,LSDB(資料鏈路狀態資料庫,存放LSA資訊的資料庫),像是“資料庫的目錄”
-
LSR包: 鏈路狀態請求報文,基于DBD包請求未知的LSA資訊
-
LSU包: 鏈路狀態更新報文, 真正攜帶LSA資訊的資料包
-
LSAck包: 鏈路狀態確認報文,確認包
二、 OSPF的狀態機

two-way:雙向通信:標志著鄰居關系的建立
↓
條件匹配
↓

主從關系選舉:使用未攜帶資料的DBD包(主要目的是為了和之前的鄰居關系進行區分)通過對比RID,RID大的為主,主可以優先進入下一個狀態
↓

full state:標志著鄰接關系的建立
總結:
down狀態: 啟動OSPF,發送hello后進入下一個狀態
init狀態: 當你收到一個hello包中包含本地的RID資訊時,進入下一個狀態
two-way狀態: 標志著鄰居關系的建立
↓ 條件匹配:
↓ 條件匹配失敗 — 停留在鄰居關系,僅10s一次,使用hello包進行保活
↓ 條件匹配成功 — 進入下一個狀態
exstart狀態: 使用未攜帶資料的DBD包進行主從關系選舉,RID大的為主,主進入下一個狀態
exchange狀態: 使用攜帶目錄資訊的DBD包進行目錄資訊的共享,需要ACK確認
loading狀態: 查看對端的DBD包與本段的LSA資訊進行對比,基于未知的LSA資訊發送LSR包進行請求,對端使用LSU進行回復,需要ACK確認
full狀態: 標志著鄰接關系的建立
三、 OSPF的作業程序
- 啟動配置完成后,OSPF向本地所有運行OSPF協議的介面以組播224.0.05的形式發送hello包,hello包中需攜帶自身本地的RID寄自身一直鄰居的RID,之后,將收集到的鄰接關系記錄在一張表中 – 鄰居表
- 鄰居表建立完成后需要進行條件匹配,失敗則停留在鄰居關系,僅適用hello進行周期保活
- 匹配成功,則開始建立鄰接關系,首先需要使用 未攜帶資料的DBD包進行主從關系選舉 ,之后使用攜帶資料的DBD包共享資料庫目錄,之后使用LSR/LSU/LSACK資料包來獲取未知網段的LSA資訊,完成本地資料庫表的建立 – LSDB 鏈路狀態資料庫
- 最后,基于本地的鏈路狀態資料庫,生成 有向圖及最短路徑樹,之后,計算本地到達未知網段的路由資訊,生產的路由資訊加載到 路由表中
- 收斂完成后,OSPF需要10s一次使用hello包進行周期保活,OSPF 30min進行一次周期更新,把序列號重新重繪一次
條件匹配: 在一個廣播域中,所所有設備均為鄰接關系,將出現大量的重復更新,所以需要進行DR/BDR選舉,所有非DR/BDR的設備之間僅維持鄰居關系
指定路由器:DR
備份指定路由器:BDR
一個廣播域中,在DR和BDR都存在的情況下,至少需要四臺路由器才能看到鄰居關系
DR 和 BDR實際上是介面的概念
DR/BDR選舉機制:
-
先比較優先級,優先級最大的為DR,第二大的為BDR,優先級的初始默認值為1
修改優先級:

優先級的取值范圍:0 - 255,若優先值設為0,則表示不參加DR/BDR的選舉 -
如果優先級相同,則比較RID,若RID大的路由器就位DR,第二大的為BDR
DR/BDR的選舉模式為非搶占模式,選舉時間的上限為40s
重啟可以進行新的選舉
? 結構突變:
- 突然增加一個網段:觸發更新,立即發送攜帶LSA資訊的LSU包,需要ACK確認
- 突然斷開一個網段:觸發更新,立即發送攜帶LSA資訊的LSU包,需要ACK確認
- 無法聯系 – 40s死亡時間
四、 OSPF的基本配置

-
啟動OSPF行程
router-id:配置RID
-
創建區域

-
宣告
0.0.0.0 – 反掩碼 – 由連續的0和1組成,其中0代表不可變位,1代表可變位

查看OSPF鄰居關系表


查看lsdb:

查看lsdb詳細的某一條:

查看路由表:

OSPF在華為體系中默認優先級為0
OSPF是以帶寬作為開銷值的度量標準
COST = 參考帶寬 / 真實帶寬 華為默認的參考帶寬:100Mbps
修改參考帶寬:參考寬帶一旦修改,必須OSPF網路內所有設備均修改成相同的

五、 OSPF的拓展配置
-
手工認證

鄰居關系斷了

去AR2配置,就可以連接上

-
手工匯總(其實是區域匯總)
匯總在ABR上的介面配置:

-
沉默介面

-
加快收斂(減少計時器時間)
也是在介面上配置,修改hello時間時,死亡時間會按照4倍自動計算,鄰居之間的hello時間(死亡時間)必須相同,否則無法建立鄰居關系

-
預設路由
首先自己要有預設,不然不能給其他路由器發配預設


強制下發預設路由

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299918.html
標籤:其他
上一篇:[MRCTF2020]你傳你呢
下一篇:【ctf】安全牛課堂學習筆記一
