第6章 靜態路由和動態路由(4)_OSPF動態路由協議


6. OSPF動態路由協議

6.1 OSPF協議(Open Shortest Path First,OSPF開放式最短路徑優先協議

(1)通過路由器之間通告鏈路的狀態來建立鏈路狀態數據庫,網絡中所有的路由器具有相同的鏈路狀態數據庫,通過該數據庫構建出網絡拓撲。

(2)運行OSPF協議的路由器通過網絡拓撲計算到各個網絡的最短路徑(開銷最小的路徑),路由器使用這些最短路徑來構造路由表。

6.2 OSPF術語

(1)Router-ID:每一台OSPF路由器只有一個Router-ID,使用IP地址的形式來表示,該ID可以手工指定或路由器上活動Loopback接口中最大的IP地址,如C類地址優先於B類地址,注意非活動接口的IP地址不能被用作Router-ID。如果沒有活動的Loopback接口,則選擇活動物理接口IP地址最大的。

(2)開銷(Cost)

  ①OSPF協議選擇最佳路徑的標准是帶寬,帶寬越高計算出來的開銷越低。到達目標網絡的各個鏈路累計開銷最低的,就是最佳路徑。用Metric(度量值)來表示開銷,如10Mb/s接口(10 000 000),其Metric=100 000 000/10 000 000 = 10。其中的分子是個固定值。

  ②OSPF路由器計算到目標網絡的Metric值,必須將沿途所有接口的Cost值累加起來,但只累加出接口,不計算進接口。

  ③OSPF會自動計算接口上的Cost值,但也可以通過手工指定該接口的Cost值手工指定的值優先於自動計算的值。如果到目標網絡Cost值相同,會執行負載均衡,最多有6條鏈路同時執行負載均衡。

(3)鏈路(Link):運行在OSPF進程下的路由器接口。

(4)鏈路狀態(Link-State,LSA):即OSPF接口上的描述信息。如接口的IP地址、子網掩碼、網絡類型、Cost值等等。OSPF路由器之間交換的並不是路由表,而是鏈路狀態。

(5)鄰居(Neighbor)

  ①要想在OSPF路由器之間交換LSA,必須先形成OSPF鄰居。只有鄰居才會交換LSA,路由器將鏈路狀態數據庫中所有的內容毫不保留地發給所有鄰居

  ②OSPF靠周期性地發送Hello包來建立和維護。當超過4倍的Hello時間,也就是Dead時間過后還沒收到鄰居的Hello包,鄰居關系將被斷開。

6.3 OSPF協議工作過程

 

(1)鄰居表的建立

  ①當R1路由器剛開始工作時,接口狀態為down state,然后R1發送一個 Hello包,狀態變為init state,等收到R2路由器發送來的Hello數據包,看到自己的ID出現在其應答的鄰居表中,就建立了鄰接關系,將其狀態改為雙向(two-way state)。

  ②OSPF規定,每兩個相鄰路由器每隔10秒要交換一次問候數據包這樣就能確定哪些鄰站是可達的若40秒鍾沒收到某相鄰路由器發來的問候數據包,則可認為該相鄰路由器不可到達,應立即修改鏈路狀態數據庫,並重新計算路由表。

  ③路由器通過發送Hello得知哪些相鄰路由器在工作,以及將數據發往相鄰路由器所需的“代價”,生成“鄰居表”。

(2)拓撲表的建立

  ①交換狀態:OSPF讓每一個路由器相鄰路由器交換己有的鏈路狀態摘要信息

  ②加載狀態:經過與相鄰路由器交換摘要信息后,路由器就使用鏈路狀態請求數據包向對方請求發送自己所缺少的某些鏈路狀態項目的詳細信息。經過一系列的分組交換,全網同步的鏈路數據庫就建立了。

  ③完全鄰接狀態:鄰居間的鏈路狀態數據庫同步完成,通過鄰居鏈路狀態請求列表為空且鄰居狀態為Loading判斷

(3)生成路由表

  ①每個路由器按照產生的全區域數據拓撲圖,再運行最短路徑算法,產生到目標網段的路由條目

  ②在網絡運行中,只要一個路由器的鏈路狀態發生變化,該路由器就要使用鏈路狀態更新數據包,用洪泛法向全網更新鏈路狀態。(洪泛法指的是路由器通過所有輸出端口向所有相鄰的路由器發送消息。而每一個相鄰路由器又再將此消息發往其所有的相鄰路由器(但不再發送給剛剛發來消息的那個路由器)。這樣,最終整個區域中所有的路由器都得到這個消息的一個副本,所以OSPF總是比RIP收斂更快,也沒有RIP那種“壞消息傳播得慢”的問題。)

6.4 OSPF的5種報文

(1)問候數據包(hello包):發現並建立鄰接關系。

(2)數據庫描述數據包:向鄰居給出自己的鏈路狀態數據庫中的所有鏈路狀態項目的摘要信息

(3)鏈路狀態請求(LSR)數據包:向對方請求某些鏈路狀態項目的完整信息

(4)鏈路狀態更新(LSU)數據包:用洪泛法對全網更新鏈路狀態。這種數據包是OSPF協議最核心的部分,也是最復雜的數據包。

(5)鏈路狀態確認(LSAck):對LSU做確認

6.4 配置OSPF單區域

(1)配置OSPF協議(以R1路由器為例)

  ①R1(config)#router ospf 1  //1表示給ospf進程指定一個進程編號

  ②R1(config-router)#network 192.168.0.0 0.0.255.255 area 0,network的作用是為本路由器的OSPF進程指定網絡范圍,路由器R1的三個接口都屬於192.168.0.0/16這個網段,可以合並,但注意使用的是反轉掩碼。

(2)查看OSPF協議的三張表

  ①顯示鄰居信息:R1#show ip ospf neighbor (注意NeighborID就是鄰居路由的ID。FULL狀態表示路由器與其他鄰居處於完全鄰接狀態)

  ②顯示鄰居詳細信息:R1#show ip ospf neighbor detail

  ③顯示鏈路狀態數據庫:R1#show ip ospf database(其中的ADV Router表示通告鏈路狀態的路由器)

  ④查看完全的鏈路狀態數據庫:R1#show ip ospf database router(每條鏈路狀態包括自己與哪個路由器直連,以及自己連接着哪些網段)

  ⑤查看路由表:R1#show ip route或R1#show ip route ospf(只顯示OSPF生成的路由表)

 

(3)監控OSPF協議的活動

  ①R1#debug ip ospf ? //查看能診斷的事件

  ②R1#debug ip ospf hello //顯示hello數據包的活動(采用多播地址224.0.0.5)

  ③R1#debug ip ospf flood //洪泛數據包跟蹤,顯示鏈路狀態更新(LSU)數據包的發送和接收。

  ④R1#undebug all  //關閉診斷

(4)驗證OSPF協議的健壯性

  ①PC1> tracer 192.168.3.2 //通過R1→R2→R3

  ②斷開R1和R2之間的鏈路,再次PC1> tracer 192.168.3.2 //通過R1→R4→R5→R6

6.5 OSPF多區域

(1)自治系統與OSPF區域

 

  ①因特網的規模非常大,有成千上萬的路由設備的互連在一起。如果讓所有的路由器知道所有網絡怎樣到達,則路由表將非常大

  ②許多單位不願外界了解自己單位網絡的布局細節以及本部門所采用的路由選擇協議。

  ③划分區域的好處就是利用洪泛法交換鏈路狀態信息的范圍局限於每一個區域而不是整個自治系統。在一個區域內部的路由器只需要知道本區域的完整網絡拓撲,而不需要知道其他區域的網絡拓撲。

  ④OSPF使用層次結構的區域划分,在上層的區域叫主干區域(標識符為0.0.0.0),其作用是連通其下層的區域。從其他區域來的信息都由區域邊界路由器進行概括(路由匯總)(如上圖主干路由器有R1、R2、R3,自治系統邊界路由器有R3,區域邊界路由器有R4和R5)

(2)兩大類路由選擇協議

  ①內部網關協議(IGP):即在一個自治系統內部使用的路由選擇協議,與在互聯網中的其他自治系統選用什么協議無關。目前主要使用RIP和OSPF協議

  ②外部網關協議(EGP):負責在不同的自治系統間進行路由選擇協議(不同的自治系統可能使用不同的內部網關協議)。目前使用最多的外部網關協議是BGPv4協議。

(3)OSPF多區域

 

  ①RouterA上啟用和配置OSPF協議

//RouterA路由器
RouterA#conf t
RouterA(config)#router ospf 1
RouterA(config-router)#network 40.0.0.0 0.0.0.255 area 0

  ②RouterB上啟用和配置OSPF協議

//RouterB路由器
RouterB#conf t
RouterB(config)#router ospf 1
RouterB(config-router)#network 40.0.0.0 0.0.255.255 area 0
//將area1匯總成1條通告給area0
RouterB(config-router)#network 40.1.0.0 0.0.255.255 area 1

  ③RouterC上啟用和配置OSPF協議

//RouterC路由器
RouterC#conf t
RouterC(config)#router ospf 1
RouterC(config-router)#network 40.0.0.0 0.0.255.255 area 0
//將area2匯總成1條通告給area0
RouterC(config-router)#network 40.2.0.0 0.0.255.255 area 2

  ④RouterD、RouterE和RouterF上啟用和配置OSPF協議

//RouterD路由器
RouterD#conf t
RouterD(config)#router ospf 1
RouterD(config-router)#network 40.1.0.0 0.0.255.255 area 1

  ⑤RouterG、RouterH和RouterI上啟用和配置OSPF協議

//RouterG路由器
RouterG#conf t
RouterG(config)#router ospf 1
RouterG(config-router)#network 40.2.0.0 0.0.255.255 area 2

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM