簡介
OSPF(Open Shortest Path First)是一個内部網關協議(Interior Gateway Protocol,簡稱IGP),用于在單一自治系統(autonomous system,AS)内決策路由。與RIP相對,OSPF是鍊路狀态路由協議,而RIP是距離向量路由協議。
作用
鍊路是路由器接口的另一種說法,因此OSPF也稱為接口狀态路由協議。OSPF通過路由器之間通告網絡接口的狀态來建立鍊路狀态數據庫,生成最短路徑樹,每個OSPF路由器使用這些最短路徑構造路由表。
開放最短路徑協議(OSPF)協議不僅能計算兩個網絡結點之間的最短路徑,而且能計算通信費用。可根據網絡用戶的要求來平衡費用和性能,以選擇相應的路由。在一個自治系統内可劃分出若幹個區域,每個區域根據自己的拓撲結構計算最短路徑,這減少了OSPF路由實現的工作量;OSPF屬動态的自适應協議,對于網絡的拓撲結構變化可以迅速地做出反應,進行相應調整,提供短的收斂期,使路由表盡快穩定化。每個路由器都維護一個相同的、完整的全網鍊路狀态數據庫。這個數據庫很龐大,尋徑時,該路由器以自己為根,構造最短路徑樹,然後再根據最短路徑構造路由表。路由器彼此交換,并保存整個網絡的鍊路信息,從而掌握全網的拓撲結構,并獨立計算路由。
更多說明
OSPF路由協議的工作原理
為了解決RIP協議的缺陷,1988年RFC成立了OSPF工作組,開始着手于OSPF的研究與制定,并于1998年4月在RFC2328中OSPF協議第二版(OSPFv2)以标準形式出現。OSPF全稱為開放式最短路徑優先協議(Open Shortest-Path First),OSPF中的O意味着OSPF标準是對公共開放的,而不是封閉的專有路由方案。OSPF采用鍊路狀态協議算法,每個路由器維護一個相同的鍊路狀态數據庫,保存整個AS的拓撲結構(AS不劃分情況下)。
一旦每個路由器有了完整的鍊路狀态數據庫,該路由器就可以自己為根,構造最短路徑樹,然後再根據最短路徑構造路由表。對于大型的網絡,為了進一步減少路由協議通信流量,利于管理和計算,OSPF将整個AS劃分為若幹個區域,區域内的路由器維護一個相同的鍊路狀态數據庫,保存該區域的拓撲結構。OSPF路由器相互間交換信息,但交換的信息不是路由,而是鍊路狀态。
OSPF路由協議分組及其作用
OSPF定義了5種分組:Hello分組用于建立和維護連接;數據庫描述分組初始化路由器的網絡拓撲數據庫;當發現數據庫中的某部分信息已經過時後,路由器發送鍊路狀态請求分組,請求鄰站提供更新信息;路由器使用鍊路狀态更新分組來主動擴散自己的鍊路狀态數據庫或對鍊路狀态請求分組進行響應;由于OSPF直接運行在IP層,協議本身要提供确認機制,鍊路狀态應答分組是對鍊路狀态更新分組進行确認。
OSPF路由協議的優點
相對于其它協議,OSPF有許多優點。OSPF支持各種不同鑒别機制(如簡單口令驗證,MD5加密驗證等),并且允許各個系統或區域采用互不相同的鑒别機制;提供負載均衡功能,如果計算出到某個目的站有若幹條費用相同的路由,OSPF路由器會把通信流量均勻地分配給這幾條路由,沿這幾條路由把該分組發送出去;在一個自治系統内可劃分出若幹個區域,每個區域根據自己的拓撲結構計算最短路徑,這減少了OSPF路由實現的工作量;OSPF屬動态的自适應協議,對于網絡的拓撲結構變化可以迅速地做出反應,進行相應調整,提供短的收斂期,使路由表盡快穩定化,并且與其它路由協議相比,OSPF在對網絡拓撲變化的處理過程中僅需要最少的通信流量;OSPF提供點到多點接口,支持CIDR(無類型域間路由)地址。
OSPF的不足之處就是協議本身龐大複雜,實現起來較RIP困難。
OSPF協議配置
1.有關命令
全局設置
注:1、OSPF路由進程process-id必須指定範圍在1-65535,多個OSPF進程可以在同一個路由器上配置,但最好不這樣做。多個OSPF進程需要多個OSPF數據庫的副本,必須運行多個最短路徑算法的副本。process-id隻在路由器内部起作用,不同路由器的process-id可以不同。
2、wildcard-mask是子網掩碼的反碼,網絡區域ID area-id在0-4294967295内的十進制數,也可以是帶有IP地址格式的x.x.x.x。當網絡區域ID為0或0.0.0.0時為主幹域。不同網絡區域的路由器通過主幹域學習路由信息。
2.基本配置舉例
Router1:
interface ethernet 0
ip address 192.1.0.129 255.255.255.192
!
interface serial 0
ip address 192.200.10.5 255.255.255.252
!
router ospf 100
network 192.200.10.4 0.0.0.3 area 0
network 192.1.0.128 0.0.0.63 area 1
!
Router2:
interface ethernet 0
ip address 192.1.0.65 255.255.255.192
!
interface serial 0
ip address 192.200.10.6 255.255.255.252
!
router ospf 200
network 192.200.10.4 0.0.0.3 area 0
network 192.1.0.64 0.0.0.63 area 2
!
Router3:
interface ethernet 0
ip address 192.1.0.130 255.255.255.192
!
router ospf 300
network 192.1.0.128 0.0.0.63 area 1
!
Router4:
interface ethernet 0
ip address 192.1.0.66 255.255.255.192
!
router ospf 400
network 192.1.0.64 0.0.0.63 area 1
!
相關調試命令:
debug ip ospf events
debug ip ospf packet
show ip ospf
show ip ospf database
show ip ospf interface
show ip ospf neighbor
show ip route
3.使用身份驗證
為了安全的原因,我們可以在相同OSPF區域的路由器上啟用身份驗證的功能,隻有經過身份驗證的同一區域的路由器才能互相通告路由信息。
在默認情況下OSPF不使用區域驗證。通過兩種方法可啟用身份驗證功能,純文本身份驗證和消息摘要(md5)身份驗證。純文本身份驗證傳送的身份驗證口令為純文本,它會被網絡探測器确定,所以不安全,不建議使用。而消息摘要(md5)身份驗證在傳輸身份驗證口令前,要對口令進行加密,所以一般建議使用此種方法進行身份驗證。
使用身份驗證時,區域内所有的路由器接口必須使用相同的身份驗證方法。為起用身份驗證,必須在路由器接口配置模式下,為區域的每個路由器接口配置口令。
以下列舉兩種驗證設置的示例,示例的網絡分布及地址分配環境與以上基本配置舉例相同,隻是在Router1和Router2的區域0上使用了身份驗證的功能。:
例1.使用純文本身份驗證
Router1:
interface ethernet 0
ip address 192.1.0.129 255.255.255.192
!
interface serial 0
ip address 192.200.10.5 255.255.255.252
ip ospf authentication-key cisco
!
router ospf 100
network 192.200.10.4 0.0.0.3 area 0
network 192.1.0.128 0.0.0.63 area 1
area 0 authentication
!
Router2:
interface ethernet 0
ip address 192.1.0.65 255.255.255.192
!
interface serial 0
ip address 192.200.10.6 255.255.255.252
ip ospf authentication-key cisco
!
router ospf 200
network 192.200.10.4 0.0.0.3 area 0
network 192.1.0.64 0.0.0.63 area 2
area 0 authentication
!
例2.消息摘要(md5)身份驗證:
Router1:
interface ethernet 0
ip address 192.1.0.129 255.255.255.192
!
interface serial 0
ip address 192.200.10.5 255.255.255.252
ip ospf message-digest-key 1 md5 cisco
!
router ospf 100
network 192.200.10.4 0.0.0.3 area 0
network 192.1.0.128 0.0.0.63 area 1
area 0 authentication message-digest
!
Router2:
interface ethernet 0
ip address 192.1.0.65 255.255.255.192
!
interface serial 0
ip address 192.200.10.6 255.255.255.252
ip ospf message-digest-key 1 md5 cisco
!
router ospf 200
network 192.200.10.4 0.0.0.3 area 0
network 192.1.0.64 0.0.0.63 area 2
area 0 authentication message-digest
!
相關調試命令:
debug ip ospf adj
debug ip ospf events
OSPF基本配置命令
配置LOOPBACK接口地址
ROUTER(config)#interface loopback 0
ROUTER(config)#ip address IP地址 掩碼
●ospf區域的配置
router ospf 100 /* 區域号在銳捷低端設備(交換機S3550,路由器R2621)裡是不需要指定區域号的*/
network 192.168.1.0 0.0.0.255 area 0
router-id 192.168.2.1 手動設置router-id
area 1 default-cost 50 手動設置開銷
#clean ip ospf process
●配置ospf明文認證
interface s0
ip ospf authentication
ip ospf authentication-key <;密碼>
●配置ospf密文認證
interface s0
ip ospf authentication
ip ospf message-digest-key 1 md5 7 <;密碼>
●debug ip ospf adj 開啟ospf調試
show ip protocols
show ip ospf interface s0
●手動配置接口花銷,帶寬,優先級
inter s0
ip ospf cost 200
bandwidth 100
ip ospf priority 0
●虛鍊路的配置
router ospf 100
area
show ip ospf virtual-links
Show ip ospf border-routers
Show ip ospf process-id
Show ip ospf database
show ip ospf database nssa-external
●OSPF路由歸納
Router ospf 1對ASBR外部的路由進行路由歸納
Summary-address 200.9.0.0 255.255.0.0
Router ospf 1執行AREA1到AREA0的路由歸納
Area 1 range 192.168.16.0 255.255.252.0
●配置末節區域
IR area
ABR area
●配置完全末節區域
IR area
ABR area
●配置NSSA
ASBR router ospf 100
area 1 nssa
ABR router ospf 100
area 1 nssa default-information-orrginate
OSPF協議主要優點
1、OSPF是真正的LOOP-FREE(無路由自環)路由協議。源自其算法本身的優點。(鍊路狀态及最短路徑樹算法)
2、OSPF收斂速度快:能夠在最短的時間内将路由變化傳遞到整個自治系統。
3、提出區域(area)劃分的概念,将自治系統劃分為不同區域後,通過區域之間的對路由信息的摘要,大大減少了需傳遞的路由信息數量。也使得路由信息不會随網絡規模的擴大而急劇膨脹。
4、将協議自身的開銷控制到最小。見下:
1)用于發現和維護鄰居關系的是定期發送的是不含路由信息的hello報文,非常短小。包含路由信息的報文時是觸發更新的機制。(有路由變化時才會發送)。但為了增強協議的健壯性,每1800秒全部重發一次。
2)在廣播網絡中,使用組播地址(而非廣播)發送報文,減少對其它不運行ospf的網絡設備的幹擾。
3)在各類可以多址訪問的網絡中(廣播,NBMA),通過選舉DR,使同網段的路由器之間的路由交換(同步)次數由 O(N*N)次減少為O(N)次。
4)提出NSSA區域的概念,使得NSSA區域内不再傳播引入的ASE路由。
5)在ABR(區域邊界路由器)上支持路由聚合,進一步減少區域間的路由信息傳遞。
6)在點到點接口類型中,通過配置按需撥号屬性(OSPF over On Demand Circuits),使得ospf不再定時發送hello報文及定期更新路由信息。隻在網絡拓撲真正變化時才發送更新信息。
5、通過嚴格劃分路由的級别(共分四極),提供更可信的路由選擇。
6、良好的安全性,ospf支持基于接口的明文及md5驗證。
7、OSPF适應各種規模的網絡,最多可達數千台。