OSPF介紹及基礎配置

上海地面通發表於2019-10-11

OSPF Open Shortest Pass First )俗稱 開放最短路徑優先協議,是 眾多 內部網管協議 最常用的, 同時他也是一個 鏈路狀態協議。 OSPF 的組播地址為: 224.0.0.5 224.0.0.6 ,它 是無類路由協議,支援VLSM 可變長子網掩碼 ,所以他同時支援 IPV4 IPV6 OSPF 的度量值一般是與鏈路頻寬成反比的,所以頻寬越大開銷值就越小,同時也就一位置鏈路越優( 介面開銷= 參考頻寬 / 邏輯頻寬 )。

接下來我們談一下OSPF 的執行原理。 OSPF 組播的方式是透過 OSPF 的介面傳送 Hello 包,若有 OSPF 鄰居,則建立 OSPF 鄰居關係、形成鄰居表,透過互相傳送 LSA (相互通告路由)形成 LSDB 。最後透過 SPF 演算法,得到 cost 最小的路徑放入路由表。在執行過程中,必須配置好骨幹區域 0 ,同時其他區域需連線到骨幹區域。這樣做的好處是縮減路由表, 本地拓撲變化值影響一個區域 ,尤其是某些 LSA 之子本地泛紅,不泛洪到其他區域

OSPF 區域劃分基於介面 可分為 骨幹區域(區域0 非骨幹區域(非0 區域) 骨幹區域必須連線所有的非骨幹區域,而且骨幹區域不可分割,有且只有一個,一般情況下,骨幹區域內沒有終端使用者。非骨幹區域一般根據實際情況而劃分,必須連線到骨幹區域(不規則區域也需透過tunnel virtual-link 連線到骨幹區域)。一般情況下, 骨幹區域主要連線終端使用者和資源。

OSPF 路由器 身份 可分為5 類: Designated Router 指定路由器,OSPF 協議啟動後開始選舉而來 簡稱DR 備份指定路由器 Back-up Designated Router 簡稱 BDR ,同樣是由OSPF 啟動後選舉而來 其他路由器 DRothers ), DR BDR 的路由器 區域邊界路由器(Area Border Routers ABR 連線不同OSPF 區域 自治系統邊界路由器 Autonomous System Boundary Router 簡稱 ASBR ), 位於OSPF 和非 OSPF 網路之間 骨幹路由器 至少有一個藉口連線到骨幹區域(區域0 )。

發現了有OSPF 鄰居,則建立 OSPF 鄰居關係 鄰居 兩個狀態鄰居Neighbors 鄰接Adjacency 兩者間的關係是鄰居不一定是鄰接,鄰接一定是鄰居,只有互動了LSA OSPF 鄰居才成為 OSPF 的鄰接,之互動 Hello 包的支撐位鄰居,在點對點網路中,所有鄰居都能成為鄰接; MA (廣播多路訪問網路,比如乙太網)網路型別中, DR BDR DRothers 三者關係為: DR BDR 與所有的鄰居形成鄰接, DRothers 之間只是鄰居而不交換 LSA 。在建立鄰居關係時, Hello Dead Time 時間不一致(改 Hello 的話 Dead 自動 *4 ,單改 Dead 的話 Hello 不變)、區域 ID 必須一致、認證( password 一致)、 Stub 標識一致(與特殊區域有關,之後介紹)、 MTU- 攜帶在 DBD 報文中,兩埠必須一致、掩碼,如 12.1.1.1/30 —— 12.1.1.2/24   這種情況是可以 ping 通的,但鄰居關係起不來( OSPF 對環回口,無論掩碼多少位,都按 32 位處理,所以建議環回口直接 /32 ,或者在環回口下還原真實掩碼)、 ACL (是否放行 OSPF )這些原因會影響 OSPF 鄰居建立

OSPF 是一種一旦拓撲發生變化便 觸發更新的機制 也有周期性更新(30 分鐘一次) 機制,或當收到一條LSA 之後,首先檢視是否在 LSDB 中,若沒有則假如 LSDB ,回覆 LSACK 。繼續泛洪出去,並且透過 SPF 演算法計算最佳路徑並加入路由表。若存在,則比較誰的更“新”(看序號),序號大者新,若本地不如收到的信更新本地 LSDB 並泛洪,且透過 SPF 演算法計算最佳路徑並加入路由表,若比收到的新,則將本地的泛洪出去。

OSPF 資料包 又可分為幾種 型別 Hello -- 10 秒傳送一次,死亡時間 40s 4 倍關係,可以修改 DBD -- Database Description 僅僅是一個對本地資料庫的概念性敘述,供路由器核對資料庫是否同步 LSR -- Link-State Request 請求鏈路狀態,在資料庫同步過程中使用,請求其他角色傳送自己失去的LSA 最新版本 LSU -- Link-State Update 鏈路狀態更新,LSU 包括幾種型別的 LSA LSU 負責泛洪 LSA ,和相應 LSR LSA 只會傳送給之前以 LSR 請求的 LSA 的直連鄰居,進行泛洪的時候,鄰居路由負責把收到的 LSA 資訊重新封裝在新的 LSU LSACK -- 鏈路狀態確認,路由器必須對每個收到的LSA 進行 LSACK 確認,但可以用一個 LSACK 確認多個 LSA

DR BDR 選舉 時, 比較router-id router-id 由工程師指定 這臺裝置最大的環回口ip 沒有環回口的話,物理介面ip 地址最大的 可獲得選舉規則。首先, 最高優先順序值的路由器被選為DR (預設優先順序相同: 1 ),次高優先順序的為 BDR ;其次, 若優先順序相同,則比較router-id ,擁有最高 router-id 的成為 DR ,次高的成為 BDR ;第三, 優先順序被設定為0 的不參與選舉 ;第四, OSPF 系統啟動後,若 40s 內沒有新裝置接入就會開始選舉,所以為保證 DR BDR 的選舉不發生意外,建議優先配置想成為 DR BDR 的裝置 ;第五, DR BDR 不可以搶佔 ;第六, DR 小時之後, BDR 直升 DR ,重新選 BDR ;第七, 所有DR BDR DRothers 說的都是介面,而不是裝置 ;最後, 不同網段間選DR BDR ,而不是以 OSPF 區域為單位

OSPF 還具有不同的 狀態 Down State Init State 傳送了Hello 還沒收到 的情況下), Two-way State 收到了一個Hello 包且 在對方回覆的 Hello 包中包括自己的 router-id ), Exstart State First DBD 確認主從關係, router-id 大的為主,先發包 ), Exchange State 互動DBD 相互學習 ), Loading State LSR LSU 的互動過程 ), Full State 所有互動已經完成 )。上文中DBD 又是什麼呢? 只是一個目錄的性質,並且第一個DBD 只是用來協商之後的 DBD 由誰先傳送。

在此,我們對下面的拓撲圖中的內容進行 基本配置演示

 

首先, R1 進行配置:

1 R2>en

2 R2#conf t

3 R2(config)#int lo 0

4 R2(config-if)#ip add 2.2.2.2 255.255.255.255

5 R2(config-if)#no sh

6 R2(config-if)#exi

7 R2(config)#int f0/0

8 R2(config-if)#ip add 100.1.1.2 255.255.255.0

9 R2(config-if)#no sh

10 R2(config-if)#exi

11

12 R2(config)#router os 100

13 R2(config-router)#route

14 R2(config-router)#router-id 2.2.2.2

15 R2(config-router)#net 2.2.2.2 0.0.0.0 a 0

16 R2(config-router)#net 100.1.1.0 0.0.0.255 a 0

17 R2(config-router)#ex

 

R2 進行配置:

 

1 R2>en

2 R2#conf t

3 R2(config)#int lo 0

4 R2(config-if)#ip add 2.2.2.2 255.255.255.255

5 R2(config-if)#no sh

6 R2(config-if)#exi

7 R2(config)#int f0/0

8 R2(config-if)#ip add 100.1.1.2 255.255.255.0

9 R2(config-if)#no sh

10 R2(config-if)#exi

11

12 R2(config)#router os 100

13 R2(config-router)#route

14 R2(config-router)#router-id 2.2.2.2

15 R2(config-router)#net 2.2.2.2 0.0.0.0 a 0

16 R2(config-router)#net 100.1.1.0 0.0.0.255 a 0

17 R2(config-router)#ex

 

R3 進行配置:

 

1 R3>en

2 R3#conf t

3 R3(config)#int lo 0

4 R3(config-if)#ip add 3.3.3.3 255.255.255.255

5 R3(config-if)#no sh

6 R3(config-if)#exi

7 R3(config)#int f0/0

8 R3(config-if)#ip add 100.1.1.3 255.255.255.0

9 R3(config-if)#no sh

10 R3(config-if)#exi

11

12 R3(config)#router os 100

13 R3(config-router)#router-id 3.3.3.3

14 R3(config-router)#net 3.3.3.3 0.0.0.0 a 0

15 R3(config-router)#net 100.1.1.0 0.0.0.255 a 0

16 R3(config-router)#exi

 

R4 進行配置:

 

1 R4>en

2 R4#conf t

3 R4(config)#int lo 0

4 R4(config-if)#ip add 4.4.4.4 255.255.255.255

5 R4(config-if)#no sh

6 R4(config-if)#exi

7 R4(config)#int f0/0

8 R4(config-if)#ip add 100.1.1.4 255.255.255.0

9 R4(config-if)#no sh

10 R4(config-if)#exi

11 R4(config)#int f0/1

12 R4(config-if)#ip add 45.1.1.4 255.255.255.0

13 R4(config-if)#no sh

14 R4(config-if)#exi

15

16 R4(config)#router os 100

17 R4(config-router)#router-id 4.4.4.4

18 R4(config-router)#net 4.4.4.4 0.0.0.0 a 0

19 R4(config-router)#net 100.1.1.0 0.0.0.255 a 0

20 R4(config-router)#net 45.1.1.0 0.0.0.255 a 1

21 R4(config-router)#exi

 

R5 進行配置:

 

1

2 R5>en

3 R5#conf t

4 R5(config)#int lo 0

5 R5(config-if)#ip add 5.5.5.5 255.255.255.255

6 R5(config-if)#no sh

7 R5(config-if)#exi

8 R5(config)#int f0/1

9 R5(config-if)#ip add 45.1.1.5 255.255.255.0

10 R5(config-if)#no sh

11 R5(config-if)#exi

12

13 R5(config)#router os 100

14 R5(config-router)#router-id 5.5.5.5

15 R5(config-router)#net 5.5.5.5 0.0.0.0 a 1

16 R5(config-router)#net 45.1.1.0 0.0.0.255 a 1

17 R5(config-router)#exi

 

以上就是全部基本配置, 接下來我們 來檢視一下基本資訊

檢視鄰居資訊:

 

1 R4#show ip ospf neighbor

2

3 Neighbor ID     Pri   State           Dead Time   Address         Interface

4 1.1.1.1           1   FULL/DR         00:00:38    100.1.1.1       FastEthernet0/0

5 2.2.2.2           1   FULL/BDR        00:00:34    100.1.1.2       FastEthernet0/0

6 3.3.3.3           1   2WAY/DROTHER    00:00:33    100.1.1.3       FastEthernet0/0

7 5.5.5.5           1   FULL/DR         00:00:33    45.1.1.5        FastEthernet0/1

 

可以看見R4 這臺路由器一共有四個鄰居,這裡臨界狀態, full 就是代表鄰接,我們可以看見區域 0 R1 DR R2 BDR R3 R4 都是 DRothers ,而區域 1 R5 DR 。那麼我們可以推測, R4 是區域 1 BDR ,我們在 R5 上檢視:

 

1 R5#show ip ospf neighbor

2

3 Neighbor ID     Pri   State           Dead Time   Address         Interface

4 4.4.4.4           1   FULL/BDR        00:00:36    45.1.1.4        FastEthernet0/1

 

推測不假,下面檢視一下開啟OSPF 的介面資訊:

 

1 R1#show ip ospf interface

2 FastEthernet0/0 is up, line protocol is up

3   Internet Address 100.1.1.1/24, Area 0

4   Process ID 100, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 10

5   Transmit Delay is 1 sec, State DR, Priority 1

6   Designated Router (ID) 1.1.1.1, Interface address 100.1.1.1

7   Backup Designated router (ID) 2.2.2.2, Interface address 100.1.1.2

8   Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

9    oob-resync timeout 40

10    Hello due in 00:00:00

11   Supports Link-local Signaling (LLS)

12   Cisco NSF helper support enabled

13   IETF NSF helper support enabled

14   Index 2/2, flood queue length 0

15   Next 0x0(0)/0x0(0)

16   Last flood scan length is 1, maximum is 1

17   Last flood scan time is 4 msec, maximum is 4 msec

18   Neighbor Count is 3, Adjacent neighbor count is 3

19    Adjacent with neighbor 2.2.2.2  (Backup Designated Router)

20    Adjacent with neighbor 3.3.3.3

21    Adjacent with neighbor 4.4.4.4

22   Suppress hello for 0 neighbor(s)

23 Loopback0 is up, line protocol is up

24   Internet Address 1.1.1.1/32, Area 0

25   Process ID 100, Router ID 1.1.1.1, Network Type LOOPBACK, Cost: 1

26   Loopback interface is treated as a stub Host

 

可以看見,開啟了OSPF 的介面的詳細資訊,比如 Router-id ,區域 id ,程式 id ,以及介面是如何加入進入 OSPF 的( network

檢視OSPF 的路由:

 

1 R5#show ip route ospf

2      1.0.0.0/32 is subnetted, 1 subnets

3 O IA    1.1.1.1 [110/21] via 45.1.1.4, 00:26:31, FastEthernet0/1

4      2.0.0.0/32 is subnetted, 1 subnets

5 O IA    2.2.2.2 [110/21] via 45.1.1.4, 00:26:31, FastEthernet0/1

6      100.0.0.0/24 is subnetted, 1 subnets

7 O IA    100.1.1.0 [110/20] via 45.1.1.4, 00:26:31, FastEthernet0/1

8      3.0.0.0/32 is subnetted, 1 subnets

9 O IA    3.3.3.3 [110/21] via 45.1.1.4, 00:26:31, FastEthernet0/1

10     4.0.0.0/32 is subnetted, 1 subnets

11 O IA    4.4.4.4 [110/11] via 45.1.1.4, 00:26:31, FastEthernet0/1

 

R5 中檢視 OSPF 的路由,發現全部都是 O IA 標記,這裡 O 標識來自 OSPF ,而 IA 代表是 OSPF 其他區域傳來的路由(關於標記在後面講解 LSA 中還會提到),我們再在 R1 上檢視一下 OSPF 的路由:

 

1 R1#show ip route os

2      2.0.0.0/32 is subnetted, 1 subnets

3 O       2.2.2.2 [110/11] via 100.1.1.2, 00:29:28, FastEthernet0/0

4      3.0.0.0/32 is subnetted, 1 subnets

5 O       3.3.3.3 [110/11] via 100.1.1.3, 00:29:28, FastEthernet0/0

6      4.0.0.0/32 is subnetted, 1 subnets

7 O       4.4.4.4 [110/11] via 100.1.1.4, 00:29:28, FastEthernet0/0

8      5.0.0.0/32 is subnetted, 1 subnets

9 O IA    5.5.5.5 [110/21] via 100.1.1.4, 00:28:17, FastEthernet0/0

10     45.0.0.0/24 is subnetted, 1 subnets

11 O IA    45.1.1.0 [110/20] via 100.1.1.4, 00:29:28, FastEthernet0/0

 

可見,區域1 的被標識為 O IA ,而區域 0 的則只是 O

以上就是基本的OSPF 系統的配置。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69943410/viewspace-2659468/,如需轉載,請註明出處,否則將追究法律責任。

相關文章