OSPF
- 一、簡述
- 二、常用命令總結
- 三、實驗
- 3.1 OSPF單區域
- 3.2 OSPF多區域
- 3.3 OSPF 的鄰接關系和 LSA
- 置底
一、簡述
OSPF(開放式最短路徑優先協議)
- 基本定義
全稱:Open Shortest Path First
類型:鏈路狀態路由協議(IGP),用于自治系統(AS)內部的路由決策。
標準:基于RFC 2328(OSPFv2,IPv4)和RFC 5340(OSPFv3,IPv6)。 - 核心特點
鏈路狀態數據庫(LSDB)
:每臺路由器維護全網拓撲的完整視圖,通過泛洪(Flooding)同步更新。
SPF算法
:基于Dijkstra算法計算最短路徑樹,避免環路,確保路由最優。
分層設計
:通過區域劃分(Area 0為骨干區域)減少路由表規模,提升擴展性。
高效收斂
:支持快速檢測鏈路故障并重新計算路徑(秒級收斂)。 - 工作機制
鄰居建立:通過Hello報文發現鄰居,進入Full狀態后同步LSDB。
LSA(鏈路狀態通告):傳遞網絡拓撲變化,包括Router-LSA、Network-LSA等類型。
DR/BDR選舉:在廣播網絡中選舉指定路由器(DR)和備份指定路由器(BDR),減少泛洪流量。 - 版本與場景
OSPFv2:經典版本,支持IPv4,適用于企業網、運營商骨干網。
OSPFv3:擴展支持IPv6,兼容多協議場景(如MPLS VPN)。
適用場景:中大型網絡(需分層)、對收斂速度要求高的環境。 - 優勢與局限
優勢:無環路、擴展性強、支持認證(MD5/SHA)、路由策略靈活。
局限:配置復雜度較高,資源消耗較大(CPU/內存)。
OSPF多區域特點
:通過劃分區域,每個區域獨立維護較小的鏈路狀態數據庫(LSDB),LSA泛洪范圍被限制在區域內,區域內拓撲變化不會泛洪到其他區域。
Stub區域?
:進一步減少末端路由器的LSDB規模。
- 允許LSA類型:Type1/2/3/4 LSA,由ABR生成Type3 LSA的默認路由(0.0.0.0)?。
- 阻止LSA類型:Type5 LSA(外部路由)。
- 路由表內容:區域內路由+區域間路由+默認路由。
Totally Stub區域
:相比Stub有更多的LSA限制。
- 允許LSA類型:Type1/2 LSA(區域內路由),由ABR生成Type3 LSA的默認路由(0.0.0.0)?。
- 阻止LSA類型:Type3/4/5 LSA(區域間路由+外部路由)。
- 路由表內容:區域內路由+默認路由。
NSSA區域?
:減少區域內路由器的LSDB規模。
- 允許LSA類型:Type1/2/3/7 LSA,Type7引入外部路由,手動配置默認路由(0.0.0.0)?。
- 阻止LSA類型:Type4/5 LSA。
Totally NSSA區域?
:減少區域內路由器的LSDB規模。
- 允許LSA類型:Type1/2/7 LSA,Type7引入外部路由,由ABR生成Type3 LSA的默認路由(0.0.0.0)?。
- 阻止LSA類型:Type3/4/5 LSA。
二、常用命令總結
display ospf peer #查看OSPF鄰居信息
display ospf routing #查看OSPF路由表display ospf lsdb #查看OSPF LSDB
display ospf lsdb router self-originate #查看產生的Type-1 LSA
display ospf lsdb network self-originate #查看產生的Type-2 LSA[R2-LoopBack0] ospf network-type broadcast #修改OSPF接口的網絡類型,廣播
[R1-GigabitEthernet0/0/3] ospf cost 20 #修改OSPF接口的Cost值
[R1-ospf-1] silent-interface GigabitEthernet 0/0/3 #配置OSPF的Silent-Interface,不在發送、接收 hello 報文,鄰居關系消失
#路由匯總
[R4-ospf-1-area-0.0.0.1] abr-summary 10.5.0.0 255.255.254.0 #在ABR路由器的區域1上進行區域間路由匯總,在區域0的其他路由器的路由表有體現,減少了路由條目。
[R2-ospf-1] import-route direct #將與R2直連的外部網絡引入到ospf 1中
[R2-ospf-1] asbr-summary 10.2.0.0 255.255.254.0 #在ASBR路由器上進行外部路由匯總
[R1-ospf-1] bandwidth-reference 10000 #設置ospf參考值為10Gbps,1=1Mbps#在R1設置缺省路由且出接口指定為Loopback0,并將缺省路由引入到 OSPF, 指定外部路由類型為 1
[R1]ip route-static 0.0.0.0 0.0.0.0 LoopBack 0
[R1-ospf-1] default-route-advertise always type 1#修改ip路由表中的協議優先級
[R1-ospf-1] preference 20 #修改OSPF區域內和區域間路由的優先級,默認10
[R1-ospf-1] preference ase 50 #修改OSPF外部路由的路由優先級,默認150
[R4-GigabitEthernet0/0/1] ospf dr-priority 255 #修改接口的 DR 優先級, 影響 DR 選舉,越大越好display ospf lsdb router 10.0.1.1 #查看 Type-1 LSA 10.0.1.1
display ospf lsdb network #查看 Type-2 LSA
display ospf lsdb summary #查看 Type-3 LSA
display ospf lsdb asbr 10.0.5.5 #查看 Type-4 LSA
display ospf lsdb ase #查看 Type-5 LSA
三、實驗
3.1 OSPF單區域
背景
你是公司的網絡管理員。現在公司的網絡中有三臺 AR 路由器,通過以太網實現相互的連通。在以太網這樣的廣播式多路訪問網絡上,可能存在安全隱患,所有你選擇采用 OSPF 區域認證的方法來避免惡意的路由攻擊。
拓撲
配置
R1
#sysname R1
#
interface GigabitEthernet0/0/0ip address 10.0.0.1 255.255.255.0 ospf cost 10
#
interface LoopBack0ip address 1.1.1.1 255.255.255.0
#
ospf 1 router-id 1.1.1.1 area 0.0.0.0 authentication-mode simple plain huawei network 1.1.1.0 0.0.0.255 network 10.0.0.0 0.0.0.255
#
return
R2
#sysname R2
#
interface GigabitEthernet0/0/0ip address 10.0.0.2 255.255.255.0
#
interface LoopBack0ip address 2.2.2.2 255.255.255.0 ospf network-type broadcast
#
ospf 1 router-id 2.2.2.2 area 0.0.0.0 authentication-mode simple plain huawei network 2.2.2.0 0.0.0.255 network 10.0.0.0 0.0.0.255
#
return
R3
#sysname R3
#
interface GigabitEthernet0/0/0ip address 10.0.0.3 255.255.255.0
#
interface LoopBack0ip address 3.3.3.3 255.255.255.0
#
ospf 1 router-id 3.3.3.3 area 0.0.0.0 authentication-mode simple plain huawei network 3.3.3.0 0.0.0.255 network 10.0.0.0 0.0.0.255
#
return
總結
在 OSPF 中, DR 的選舉為非搶占,即網絡中存在 DR 或 BDR 時,新進入網絡的路由器不能搶占 DR 或 BDR 的角色。
OSOF生成路由表過程:
- 互發hello、DD、LSR、LSU、LSACK報文,從鄰居關系到鄰接關系display ospf peer,生成LSDB
- 進而生成OSPF路由表display ospf routing
- 最后通過與其他路由協議生成的路由表競爭,生成轉發ip路由表display ip routing-table
3.2 OSPF多區域
背景
你是公司的網絡管理員。現在公司的網絡中有五臺 AR 路由器,其中 R2 和 R4 在公司總部,
R1、 R3、 R5 在公司分部。由于網絡規模較大,為了控制 LSA 的洪泛,你設計了多區域的
OSPF。
為了明確設備的 Router-ID,你配置設備使用固定的地址作為 Router ID。
為了使路由器進行路由轉發時效率更高,你在區域的邊界配置了自動匯總。
R1 路由器連接到 Internet,你需要配置一條缺省路由,引入到 OSPF 區域,以便于 OSPF 區域
的所有路由器都知道如何訪問 Internet。
同時 OSPF 路由信息中區分了內部路由和外部路由,你修改了 OSPF 路由信息的優先級信息,
以避免潛在的風險。
OSPF 中特定路由信息的度量值是將到達目的網絡經過的所有鏈路的代價值進行累加得到的。
而鏈路的代價值是路由器將接口帶寬與參考帶寬進行對比得到。參考帶寬值為 100Mbps,實際
接口帶寬可能為 1000Mbps,而度量值都是整數,所以快速以太網接口和千兆以太網接口的
OSPF 代價值均為 1。為了能夠相互區分這些鏈路,你定義參考帶寬值為 10Gbps。
拓撲
配置
R1
#sysname R1
#
interface GigabitEthernet0/0/0ip address 10.0.2.1 255.255.255.0
#
interface LoopBack0ip address 1.1.0.1 255.255.255.0 ospf network-type broadcast
#
ospf 1 router-id 1.1.0.1 default-route-advertise always type 1bandwidth-reference 10000area 0.0.0.2 network 1.1.0.1 0.0.0.0 network 10.0.2.1 0.0.0.0
#
ip route-static 0.0.0.0 0.0.0.0 LoopBack0
#
return
R2
#sysname R2
#
interface GigabitEthernet0/0/0ip address 10.0.0.2 255.255.255.0
#
interface GigabitEthernet0/0/2ip address 10.0.2.2 255.255.255.0
#
interface LoopBack0ip address 2.2.0.2 255.255.255.0 ospf network-type broadcast
#
interface LoopBack1ip address 2.2.1.2 255.255.255.0 ospf network-type broadcast
#
interface LoopBack2ip address 2.2.2.2 255.255.255.0 ospf network-type broadcast
#
interface LoopBack3ip address 2.2.3.2 255.255.255.0 ospf network-type broadcast
#
ospf 1 router-id 2.2.0.2 asbr-summary 2.2.0.0 255.255.252.0import-route directbandwidth-reference 10000area 0.0.0.0 network 2.2.0.2 0.0.0.0 network 2.2.1.2 0.0.0.0 network 10.0.0.2 0.0.0.0 area 0.0.0.2 network 10.0.2.2 0.0.0.0
#
return
R3
#sysname R3
#
interface GigabitEthernet0/0/0ip address 10.0.2.3 255.255.255.0
#
interface LoopBack0ip address 3.3.0.3 255.255.255.0 ospf network-type broadcast
#
interface LoopBack1ip address 3.3.1.3 255.255.255.0 ospf network-type broadcast
#
interface LoopBack2ip address 3.3.2.3 255.255.255.0 ospf network-type broadcast
#
ospf 1 router-id 3.3.0.3 bandwidth-reference 10000area 0.0.0.2 network 3.3.0.3 0.0.0.0 network 3.3.1.3 0.0.0.0 network 3.3.2.3 0.0.0.0 network 10.0.2.3 0.0.0.0
#
return
R4
#sysname R4
#
interface GigabitEthernet0/0/0ip address 10.0.0.4 255.255.255.0
#
interface GigabitEthernet0/0/1ip address 10.0.1.4 255.255.255.0
#
interface LoopBack0ip address 4.4.0.4 255.255.255.0 ospf network-type broadcast
#
ospf 1 router-id 4.4.0.4 bandwidth-reference 10000area 0.0.0.0 network 4.4.0.4 0.0.0.0 network 10.0.0.4 0.0.0.0 area 0.0.0.1 abr-summary 5.5.0.0 255.255.252.0network 10.0.1.4 0.0.0.0
#
return
R5
#sysname R5
#
interface GigabitEthernet0/0/1ip address 10.0.1.5 255.255.255.0
#
interface LoopBack0ip address 5.5.0.5 255.255.255.0 ospf network-type broadcast
#
interface LoopBack1ip address 5.5.1.5 255.255.255.0 ospf network-type broadcast
#
interface LoopBack2ip address 5.5.2.5 255.255.255.0 ospf network-type broadcast
#
ospf 1 router-id 10.0.1.5 bandwidth-reference 10000area 0.0.0.1 network 5.5.0.5 0.0.0.0 network 5.5.1.5 0.0.0.0 network 5.5.2.5 0.0.0.0 network 10.0.1.5 0.0.0.0
#
return
總結
在實際網絡可能使用了千兆甚至萬兆以太網。但是由于 OSPF 的默認參考帶寬值為 100Mbps,并且接口代價值僅為整數,所以 OSPF 無法在帶寬上區分百兆以太網和千兆以太網。在運行 OSPF 的多個區域內, OSPF 的參考帶寬值必須一致,否則 OSPF 無法正常工作。
在R1設置了靜態缺省路由,并引入OSPF,相當于這個缺省路由(0.0.0.0)是外部路由,也會出現在路由器的OSPF外部路由表中。
再在R1的OSPF進程中宣告一下自己這里有默認路由的出接口,讓其他路由器都學習一下。
默認情況下,
OSPF 區域內和區域之間的路由
,優先級為 10。OSPF 外部路由
,優先級為150。
3.3 OSPF 的鄰接關系和 LSA
背景
你是公司的網絡管理員。現在公司的網絡中有五臺 AR 路由器,其中 R1、 R2、 R3 和 R4 在公司總部,通過以太網互聯。 R5 在公司分部,與公司總部的 R4 相連。由于網絡規模較大,為了控制 LSA 的洪泛,你設計了多區域的 OSPF。同時為了明確設備的 Router ID,你配置設備使用固定的地址作為 Router ID。在 R1、 R2、 R3 與 R4 之間互聯的網絡上,需要干預 DR 與 BDR 的選舉。實際使用中將 R3 定義為 DR、 R2 定義為 BDR, R1、 R4 定義為 DROther。
拓撲
配置
R1
#sysname R1
#
interface GigabitEthernet0/0/0ip address 10.0.0.1 255.255.255.0 ospf dr-priority 10
#
interface LoopBack0ip address 1.1.0.1 255.255.255.0 ospf network-type broadcast
#
ospf 1 router-id 1.1.0.1 area 0.0.0.0 network 10.0.0.1 0.0.0.0 area 0.0.0.2 network 1.1.0.1 0.0.0.0
#
return
R2
#sysname R2
#
interface GigabitEthernet0/0/0ip address 10.0.0.2 255.255.255.0 ospf dr-priority 0
#
interface LoopBack0ip address 2.2.0.2 255.255.255.0 ospf network-type broadcast
#
ospf 1 router-id 2.2.0.2 area 0.0.0.0 network 2.2.0.2 0.0.0.0 network 10.0.0.2 0.0.0.0
#
return
R3
#sysname R3
#
interface GigabitEthernet0/0/0ip address 10.0.0.3 255.255.255.0 ospf dr-priority 254
#
interface LoopBack0ip address 3.3.0.3 255.255.255.0 ospf network-type broadcast
#
ospf 1 router-id 3.3.0.3 area 0.0.0.0 network 3.3.0.3 0.0.0.0 network 10.0.0.3 0.0.0.0
#
return
R4
#sysname R4
#
interface GigabitEthernet0/0/0ip address 10.0.0.4 255.255.255.0 ospf dr-priority 255
#
interface GigabitEthernet0/0/1ip address 10.0.1.4 255.255.255.0
#
interface LoopBack0ip address 4.4.0.4 255.255.255.0 ospf network-type broadcast
#
ospf 1 router-id 4.4.0.4 area 0.0.0.0 network 4.4.0.4 0.0.0.0 network 10.0.0.4 0.0.0.0 area 0.0.0.1 network 10.0.1.4 0.0.0.0
#
return
R5
#sysname R5
#
interface GigabitEthernet0/0/1ip address 10.0.1.5 255.255.255.0
#
interface LoopBack0ip address 5.5.0.5 255.255.255.0
#
ospf 1 router-id 5.5.0.5 import-route directarea 0.0.0.1 network 10.0.1.5 0.0.0.0
#
return
總結
1.當 Type-3 LSA 和 Type-5 LSA 所描述的路由前綴及掩碼相同時, OSPF 優選通過 Type-3 LSA 計算出的路由加載到路由表。
2.作為ABR路由器,都會通過Type3 LSA向其他區域發送通告。
3.默認情況下,網絡穩定運行, OSPF 路由器每 30 分鐘更新一次。
- 224.0.0.5:所有OSPF路由器,鄰居發現、LSA泛洪。
- 224.0.0.6:僅DR和BDR,LSA集中處理與轉發。