OSPF(open shorest path first,開放最短路徑優先)是一種動態的,基于鏈路狀態的動態路由協議,廣泛的應用在企業網絡中,通過維護網絡拓撲信息,利用?Dijkstra 算法實現最短路徑,實現高效的路由選擇。
目錄
一、OSPF特點
二、OSPF協議的工作原理
(一)建立鄰居關系(通過hello協議)
(二)信息同步(LSA交換)
(三)計算最短路徑(SPF:Dijkstra算法)
(四)維護和更新機制
三、OSPF的層次化是如何實現的
分區域
(一)、OSPF網絡層次化的核心是區域(area)劃分
(二)區域的構建是有規則的
分角色
路由匯總
定義不同類型的鏈路狀態通告
三、單區域的ospf協議的配置
思科設備
基礎環境配置
思科設備ospf詳細配置
華為設備
前期配置
ospf配置
四、多區域的OSPF配置
思科設備
華為設備
五、ACL 的作用
六、重分發(Redistribute)配置
核心作用:將一種路由協議的路由,發布到另一種路由協議中(需指定 “種子 metric”)
場景 1:其他協議(如 OSPF)→ RIP
場景 2:RIP → OSPF
場景 3:靜態路由 → OSPF
場景 4:直連路由 → OSPF
七、常用 OSPF 補充查看命令
思科設備
華為設備
一、OSPF特點
1、ospf協議是全世界最實用的路由協議,沒有之一
2、使用spf算法來計算最優路徑,具體實現的是Dijkstra(迪杰斯特拉算法)
3、ospf協議屬于典型的鏈路狀態型路由協議(每個路由器都維護一份完整的網路拓撲這個拓撲是用鏈路狀態數據庫來維護的)
4、ospf選擇最優路徑依靠的參數為開銷cost
5、ospf協議使用應用層次化的網絡結構來選擇最優路徑
6、ospf協議有三張表,鄰居表,鏈路狀態數據庫表,路由表
二、OSPF協議的工作原理
(一)建立鄰居關系(通過hello協議)
1、當路由器啟動ospf后,路由器通過接口周期性的發送hello報文(默認十秒一次,廣播)
2、報文中包含RouterID、Hello間隔、Dead時間(默認是4倍Hello間隔)、區域id等信息
3、如果想要接受方和發送方的區域id,認證信息相互匹配的話,就會形成鄰居信息,記錄在路由器的鄰居表中
(二)信息同步(LSA交換)
鄰居關系建立之后,路由器通過多種報文交換LSA,同步LSDB
- DD報文(數據庫報文): 雙方交換LSDB的摘要信息,用來發現彼此的LSDB的差異
- LSR報文(鏈路狀態請求報文): 相對方請求自身缺少的LSA詳細信息
- LSU報文(鏈路狀態更新報文): 攜帶完整的LSA內容,相應LSR請求
- LSAck報文(鏈路狀態確認報文):確認收到LSU,保證鏈接的可靠性
同步完成之后,同一個區域內的LSDB完全一致
(三)計算最短路徑(SPF:Dijkstra算法)
基于LSDB,每個路由器以自身為根(就是以此路由器為觸發點),運行Dijkstra算法生成最短路徑樹(SPT)
路徑度量值為Cost(開銷)默認計算公式:Cost = 100Mbit/s ÷ 接口帶寬(這個流量的值可以自己定義)
從最短路徑樹種提取路由條目,假如OSPF協議的路由表(優先級華為設備默認是10)
(四)維護和更新機制
- 周期性Hello報文:維持鄰居關系,如果Dead時間內沒有收到Hello,則判定鄰居失效
- 觸發更新:當網絡結構發生變化的時候,路由器立刻發送新的LSA,僅擴散變化的部分,減少帶寬的消耗
- LSA老化機制: 每一個LSA都要老化的時間(默認 3600 秒),定期刷新(1800 秒),超時未刷新則從 LSDB 中刪除。
三、OSPF的層次化是如何實現的
-
分區域
(一)、OSPF網絡層次化的核心是區域(area)劃分
將整個自治系統劃分為多個非重疊的區域,每個區域內的路由器只維護當前區域的詳細信息,對其他的區域僅僅了解匯總后的摘要
(二)區域的構建是有規則的
每個區域有唯一標識
必須存在 “骨干區域(Area 0)
區域內路由 “詳細化”,區域間路由 “匯總化”
-
分角色
(一)OSPF將路由器劃分成了四種不同的角色,每個角色職責明確,分工協作
內部路由器:僅僅屬于一個區域,只維護本區域的路由信息,不參與區域之間的交互
區域邊界路由器:同時屬于骨干區域和一個或者多個常規區域,收集常規區域的明細路由,生成“區域匯總路由”并且發布到骨干區域,從骨干區域接受其他區域的匯總路由發布到所屬的常規區域
骨干路由器:一定屬于骨干區域,同時可能屬于其他區域,負責骨干區域內的路由計算和區域間的路由傳遞
自治系統邊界路由器:鏈接ospf自治系統和其他協議的網絡,將其他協議的路由引入到OSPF網絡中,生成外部的LSA,可以部署在任何區域
-
路由匯總
通過路由匯總,減少跨區域的信息交互
-
定義不同類型的鏈路狀態通告
Type-3 LSA(區域間匯總 LSA)
Type-4 LSA(ASBR 位置通告 LSA)
Type-5 LSA(外部路由 LSA)
Type-7 LSA(NSSA 外部路由 LSA)
三、單區域的ospf協議的配置
當ospf沒有劃分區域的時候,所有的區域都默認為骨干區域
-
思科設備
基礎環境配置
#全局基礎設置# 1. 關閉域名解析(避免輸入錯誤命令時卡頓)
Router(config)# no ip domain-lookup
# 2. 配置Console口(防打斷、永不超時)
Router(config)# line console 0
Router(config-line)# logging synchronous # 防命令被日志打斷
Router(config-line)# exec-timeout 0 0 # 會話永不超時(0分0秒)
Router(config-line)# exit#如果有三層交換機的話要開啟三層交換機的路由功能,并且將接口轉化為三層接口# 1. 開啟三層交換機路由功能(默認關閉)
Switch(config)# ip routing
# 2. 將二層接口轉化為三層接口(可配置IP)
Switch(config)# interface 接口類型/編號 # 如GigabitEthernet0/0
Switch(config-if)# no switchport # 二層→三層
Switch(config-if)# ip address IP地址 子網掩碼 # 如ip address 192.168.1.1 255.255.255.0
-
思科設備ospf詳細配置
配置過程:進入ospf進程→配置router-id→宣告網絡直連到area0
#接下來是ospf的詳細配置 # 1. 進入OSPF進程(進程號1-65535,本地有效)
Router(config)# router ospf 進程號 # 如router ospf 1
# 2. 配置Router-ID(必配,優先用環回口最大IP;無環回則用物理接口最大IP)
# 方式1:手動指定(推薦)
Router(config-router)# router-id 0.0.0.1 # 示例:環回口192.168.0.1則用此ID
# 方式2:自動獲取(需提前配置環回口,如interface Loopback0,ip address 192.168.0.1 255.255.255.255)
# 3. 宣告直連網絡到Area 0(格式:network 網絡號 反掩碼 area 0)
# 示例:宣告192.168.1.0/24和10.0.0.0/8網段
Router(config-router)# network 192.168.1.0 0.0.0.255 area 0
Router(config-router)# network 10.0.0.0 0.255.255.255 area 0
注意:
router-id 192.168.1.1
?是配置該命令的路由器自身在 OSPF 協議中的唯一標識。例如,當路由器 A 配置了?
router-id 192.168.1.1
,那么在整個 OSPF 網絡中,“192.168.1.1” 就唯一代表路由器 A,其他路由器會通過這個 ID 來區分它與其他設備。
-
華為設備
華為設備的單區域網絡配置流程和思科大同小異
前期配置
<Huawei> system-view #進入系統視圖
[Huawei] sysname AR1 #重命名設備
[Huawei] undo ter m #防止設備一直輸出文本
ospf配置
#配置路由,也是要制定一個
[AR1] ospf 1 # 啟動OSPF進程1(進程號1-65535,本地有效)
[AR1] router-id 10.0.1.1 #指定Router ID為環回IP(具有穩定性)
[AR1-ospf-1] area 0 # 進入區域0(單區域通常用區域0,骨干區域;也可使用其他區域ID,如1,但建議統一)
[AR1-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255 # 宣告直連網段(網段+反掩碼)
[AR1-ospf-1-area-0.0.0.0] network 10.0.1.1 0.0.0.0 # 宣告環回網段(32位掩碼的反掩碼是0.0.0.0)
#使用反碼來匹配網段,使用環回口來代替一個其他網絡
[AR1-ospf-1-area-0.0.0.0] quit
[AR1-ospf-1] quit
四、多區域的OSPF配置
- 區域內拓撲變化(如路由器故障)僅在本區域內傳遞,不影響其他區域;
- 即使變化需傳遞到骨干區域,ABR 會先對路由匯總(減少路由條目)再轉發到 Area 0?
-
思科設備
# ABR路由器配置(同時屬于Area 0和Area 1)
#ABR區域邊界路由器
Router(config)# router ospf 1
Router(config-router)# router-id 0.0.0.2 # ABR的Router-ID
# 宣告連接Area 0的直連網絡
Router(config-router)# network 192.168.0.0 0.0.0.255 area 0
# 宣告連接Area 1的直連網絡
Router(config-router)# network 192.168.2.0 0.0.0.255 area 1# 非ABR(僅屬于Area 1)配置
Router(config)# router ospf 1
Router(config-router)# router-id 0.0.0.3
Router(config-router)# network 192.168.2.0 0.0.0.255 area 1 # 僅宣告到Area 1
-
華為設備
#區域內路由器
[AR1] ospf 1 router-id 10.0.1.1 #創建OSPF進程1,手動指定路由器ID(環回0的IP)
[AR1-ospf-1] area 1 #進入Area 1視圖
[AR1-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255 #宣告接口網段(反掩碼)
[AR1-ospf-1-area-0.0.0.1] network 10.0.1.1 0.0.0.0 ## 宣告環回接口網段
[AR1-ospf-1-area-0.0.0.1] quit
[AR1-ospf-1] quit
#邊界網關路由器
[AR2] ospf 1 router-id 10.0.2.2 #路由器ID為環回0的IP
[AR2-ospf-1] area 0 # 進入骨干區域Area 0
[AR2-ospf-1-area-0.0.0.0] network 192.168.0.0 0.0.0.255 #宣告Area 0的接口網段
[AR2-ospf-1-area-0.0.0.0] network 10.0.2.2 0.0.0.0 #宣告環回接口(屬于Area 0)
[AR2-ospf-1-area-0.0.0.0] quit
[AR2-ospf-1] area 1 #進入Area 1
[AR2-ospf-1-area-0.0.0.1] network 192.168.1.0 0.0.0.255 #宣告Area 1的接口網段
[AR2-ospf-1-area-0.0.0.1] quit
[AR2-ospf-1] quit
五、ACL 的作用
- 過濾通過路由器的數據包(如拒絕特定 IP 的流量);
- 過濾路由表中的路由條目(如阻止特定路由被學習)。
六、重分發(Redistribute)配置
這里只是思科的重新分發樣例
核心作用:將一種路由協議的路由,發布到另一種路由協議中(需指定 “種子 metric”)
場景 1:其他協議(如 OSPF)→ RIP
# 進入RIP進程
Router(config)# router rip
Router(config-router)# version 2 # 啟用RIP v2(支持子網)
# 重分發OSPF路由,指定metric(必須<15,RIP最大跳數15)
Router(config-router)# redistribute ospf 1 metric 3 # 示例:metric=3
場景 2:RIP → OSPF
# 進入OSPF進程
Router(config)# router ospf 1
# 重分發RIP路由,必須加subnets(否則不發布子網路由)
Router(config-router)# redistribute rip subnets
場景 3:靜態路由 → OSPF
Router(config)# router ospf 1
Router(config-router)# redistribute static subnets # 加subnets支持子網
場景 4:直連路由 → OSPF
Router(config)# router ospf 1
Router(config-router)# redistribute connected subnets # 加subnets支持子網
七、常用 OSPF 補充查看命令
-
思科設備
# 1. 查看OSPF鄰居詳情(含鄰居狀態、Router-ID)
Router# show ip ospf neighbor detail# 2. 查看OSPF進程信息(含SPF算法執行次數、Router-ID)
Router# show ip ospf# 3. 查看指定接口的OSPF信息(含所屬區域、Router-ID)
Router# show ip ospf interface 接口類型/編號 # 如show ip ospf interface GigabitEthernet0/0# 4. 查看完整路由表(篩選OSPF路由可加“ospf”參數)
Router# show ip route
-
華為設備
display ospf peer
display ospf peer brief
display ospf peer [router-id] verbose