OSPF(Open Shortest Path First,開放式最短路徑優先)是一種基于鏈路狀態的內部網關協議(IGP),廣泛應用于中大型網絡中。它通過維護網絡拓撲信息,使用 SPF(最短路徑優先)算法計算最優路由,具有收斂快、無環路、支持大型網絡等特點。以下從核心原理和實驗設計兩部分詳細說明。
一、OSPF 核心原理
1. 基本定位與特點
- 鏈路狀態路由協議:與 RIP 等距離矢量協議不同,OSPF 路由器不傳遞 “路由條目”,而是交換 “鏈路狀態信息”(如接口帶寬、連接關系、開銷等),并基于這些信息獨立計算路由。
- 適用場景:大型企業網、運營商骨干網等,最大可支持數千臺路由器。
2. 區域劃分(Area)
OSPF 通過 “區域” 劃分減小路由計算復雜度,核心設計是 “骨干區域 + 非骨干區域”:
- 骨干區域(Area 0):所有非骨干區域必須直接或間接連接到 Area 0,負責區域間路由的傳遞,確保全網路由互通。
- 非骨干區域(Area 1、2...):用于縮小單區域內的鏈路狀態數據庫(LSDB)規模,降低 SPF 計算壓力。
- 特殊區域:為進一步優化,可配置 Stub(末梢區域)、Totally Stub(完全末梢區域)、NSSA(非完全末梢區域)等,限制 LSA(鏈路狀態通告)的傳播。
解釋說明:
ospf進行選舉,選為DR的路由器(具體怎么選舉可以不必深入探究)就是骨干區域(可以有很多個路由器), 但是一個ospf系統只有一個骨干區域,非骨干區域必須要有至少一個路由器連接骨干區域,另外那個連接著骨干和非骨干的路由器配置的時候需要宣告兩個區域的網段。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??OSPF實驗
二,實驗目的:
實現全網互通,相比于RIP具有收斂快、無環路、支持大型網絡等特點
三,實驗拓撲圖:

四,實驗需求:
1.拓撲圖中有三個區域,區域0為骨干區域,其他為非骨干區域。lo表示路由器的回環地址(一個虛擬的接口 相比于接口更穩定)。
2.配置每個路由器的IP地址(具體怎么劃分更便捷看其他文章)
3.了解OSPF的配置以及區分network
五,實驗步驟
步驟一:配置路由器的每個IP地址以及回環地址
R4:其余四個路由器也是一樣的
[R4]INT g0/0
[R4-GigabitEthernet0/0]ip add 10.1.14.4 24
[R4-GigabitEthernet0/0]int lo0 ///回環地址
[R4-LoopBack0]ip add 4.4.4.4 255.255.255.255
[R4-LoopBack0]quit
步驟二:配置OSPF
R4:
[R4]ospf 1 router-id 4.4.4.4
##啟用OSPF進程,指定路由器ID
[R4-ospf-1]area 1
##進入區域
[R4-ospf-1-area-0.0.0.1]network 10.1.14.0 0.0.0.255
[R4-ospf-1-area-0.0.0.1]network 4.4.4.4 0.0.0.0
##宣告區域內的網段
[R4-ospf-1-area-0.0.0.1]%Jul 10 10:17:34:458 2025 R4 OSPF/5/OSPF_NBR_CHG: OSPF 1 Neighbor 10.1.14.1(GigabitEthernet0/0) changed from LOADING to FULL.
[R4-ospf-1-area-0.0.0.1]quit
R1:值得注意的是R1和R3跨兩個區域所以要配置兩個區域(區域0和區域1)每個區域不同的網段
[R1]ospf 1 router-id 1.1.1.1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
[R1-ospf-1-area-0.0.0.0]quit
[R1-ospf-1]area 1
[R1-ospf-1-area-0.0.0.1]network 10.1.14.0 0.0.0.255
?R2:每個回環地址也需要宣告
[R2]ospf 1 router-id 2.2.2.2
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.1.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.1.23.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
R3:
[R3]osPF 1 router-id 3.3.3.3
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.0]network 10.1.23.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]QUIT
[R3-ospf-1]area 2
[R3-ospf-1-area-0.0.0.2]network 10.1.35.0 0.0.0.255
R5:
[R5]ospf 1 router-id 5.5.5.5
[R5-ospf-1]area 2
[R5-ospf-1-area-0.0.0.2]network 5.5.5.5 0.0.0.0
[R5-ospf-1-area-0.0.0.2]network 10.1.35.0 0.0.0.255
?步驟三:驗證
通過R4去PingR5的IP地址
[R4]ping 10.1.35.5
Ping 10.1.35.5 (10.1.35.5): 56 data bytes, press CTRL+C to break
56 bytes from 10.1.35.5: icmp_seq=0 ttl=252 time=2.000 ms
56 bytes from 10.1.35.5: icmp_seq=1 ttl=252 time=2.000 ms
56 bytes from 10.1.35.5: icmp_seq=2 ttl=252 time=2.000 ms
56 bytes from 10.1.35.5: icmp_seq=3 ttl=252 time=2.000 ms
56 bytes from 10.1.35.5: icmp_seq=4 ttl=252 time=2.000 ms--- Ping statistics for 10.1.35.5 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 2.000/2.000/2.000/0.000 ms
?