OSPF介紹及基礎配置
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 路由器基礎介紹,及配置靜態路由,預設路由路由器
- Pandas基礎介紹
- Elasticsearch 基礎介紹Elasticsearch
- kafka 基礎介紹Kafka
- kafka基礎介紹Kafka
- ActiveMq的基礎介紹MQ
- MySQL 教程基礎介紹MySql
- JDBC的基礎介紹JDBC
- 基礎 RAID 介紹AI
- java基礎介紹(轉)Java
- 1、Oracle 基礎介紹Oracle
- Java基礎:Java簡介及安裝配置(1)Java
- 指南:動態路由協議OSPF基礎,OSPF報文,LSA路由協議
- Django基礎教程之介紹Django
- ConstraintLayout基礎介紹AI
- Epub基礎知識介紹
- HT for Web基礎動畫介紹Web動畫
- 分割槽表基礎介紹
- Rsync原理介紹及配置應用
- 程式碼管理工具-Git基礎介紹及常用技巧Git
- 第二章 環境搭建及基礎知識介紹
- 資料倉儲基礎介紹
- 02-ASP.Net(基礎介紹)ASP.NET
- Xtrabackup介紹和使用【基礎篇】
- Spark Streaming基礎概念介紹Spark
- 實驗十六——————動態路由OSPF基礎路由
- maven簡介及基礎使用Maven
- mybatis原理,配置介紹及原始碼分析MyBatis原始碼
- 圖片基礎知識及不同格式的特點介紹
- 【Flutter 基礎】環境及配置Flutter
- Mysql安裝及基礎配置MySql
- Jumpserver基礎運維-01介紹Server運維
- 金融反欺詐-交易基礎介紹
- Android RxJava:基礎介紹與使用AndroidRxJava
- 【重溫基礎】17.WebAPI介紹WebAPI
- 資料庫基礎知識介紹!資料庫
- Linux shell 指令碼基礎介紹Linux指令碼
- [java基礎]之JDK目錄介紹JavaJDK