1. 程式人生 > >OSPF路由協議

OSPF路由協議

全部 存在 使用 2個 無符號整數 路由表 整數 路徑 src

OSPF的基本概念和工作過程
開放式最短路徑優先協議,是基於開放標準的鏈路狀態路由選擇協議,它完成各路由選擇協議算法的兩個主要功能:路徑選擇和路徑交換
OSPF路由協議概述
OSPF是內部網關路由協議
在共同管理域下的一組運行相同路由選擇協議的路由器的集合為一個自治系統,在互聯網中,一個AS是一個有權決定本系統使用哪種路由協議的單位,它可以是一個企業,一座城市或一個電信運營商。隨著網絡的發展,上述對AS的定義已經不是十分準確了,網絡的發展使得網絡之間經常出現網絡合並情況,導致同一個AS中使用的路由協議越來越多,所以AS的定義應該是在共同管理下的互聯網絡。
內部網關路由協議:用於在單一AS內決策路由,內部網關路由協議包括RIP,OSPF等
技術分享圖片
與內部網關路由協議相對應的是外部網關路由協議,外部網關路由協議用於在多個AS之間執行路由,例如,BGP就是外部網關路由協議
技術分享圖片
OSPF是鏈路狀態路由協議
鏈路狀態路由協議——各自“繪制”
技術分享圖片
鏈路狀態路由協議——互相“交流”
技術分享圖片
鄰居路由器:位於同一條物理鏈路或物理網段上的路由器。
鏈路狀態數據庫:也稱為拓撲數據庫,它包含所有路由器,路由器的鏈路及這些鏈路的狀態,還包含所有網路及到達這些網絡的所有路徑。
鄰接關系:當兩臺運行OSPF的鄰居路由器的鏈路狀態數據庫達到一致(同步)時,他們就是完全鄰接的。
OSPF的工作過程
運行RIP路由協議的路由器只需要保存一張路由表,而使用OSPF路由協議的路由器需要保存以下三張表
鄰居列表:列出每臺路由器已經建立鄰接關系的全部鄰居路由器。
鏈路狀態數據庫:列出網絡中其他路由器的信息,由此顯示了全網的網絡拓撲。
路由表:列出通過了Dijkstra算法計算出的到達每個相連網絡的最佳路徑。
這三張表的作用和他們之間的關系。運行OSPF的路由器試圖與鄰居路由器建立鄰接關系,在鄰居之間互相同步鏈路狀態數據庫。使用最短路徑算法(OSPF依據的算法是Dijkstra算法),從鏈路狀態信息計算得到一個以自己為樹根的“最短路徑樹”,到最後,每一臺路由器都將從最短路徑樹中構建出自己的路由表。OSPF的路由器也仍然時依據路由表進行數據轉發的
技術分享圖片
OSPF的基本概念
OSPF區域
OSPF路由協議與RIP相比,前者適合更大型的網絡環境。
OSPF是一種鏈路狀態型的路由協議,不會產生環路問題,因此不需要使用最大跳數等限制來防止環路的產生。
OSPF將AS分割成多個小的區域,OSPF的路由器只在區域內部學習完整的鏈路狀態信息,而不必了解整個AS內部所有的鏈路狀態。

DR和BDR
DR和BDR的概念
運行OSPF的路由器通過與鄰居路由器建立鄰接關系,互相傳遞鏈路狀態信息,如下圖所示,路由器A,B,C,D,E連接在同一廣播網段上,如果每兩個路由器之間都要建立鄰接關系,那麽,就會構成n(n-1)/2個鄰接關系,每臺路由器都要與其他所有的鄰居路由器互相傳遞鏈路狀態信息,這時情況就會顯得比較混亂,而且也會浪費許多不必要的網絡資源。
為了避免這些問題的發生,可以在該網段上選舉一個指定路由器。由DR同網絡中的其他路由器建立鄰接關系,並負責將網段上的變化告知他們。
網絡上的每一臺路由器都和DR構成一個鄰接關系,那麽只需要建立n-1個鄰接關系就可以了
技術分享圖片
技術分享圖片
為了實現冗余,當DR失效時,需要有一個新的DR來接替它,這個路由器就是備份指定路由器。網絡上所有的路由器將和DR,BDR同時形成鄰接關系,DR和BDR之間也將形成鄰接關系,如果DR失效了,BDR將成為新的DR。
技術分享圖片
DR和BDR選舉
可以由OSPF自動選舉DR和BDR,也可以手動選舉
自動選舉DR和BDR
網段上router ID最大的路由器將被選舉為DR,第二大的將被選舉為BDR。
手動選舉DR和BDR
要手工選舉DR和BDR,需要設置路由器的優先級,每臺路由器的接口都有一個路由器優先級,用一個八位的無符號整數來表示,大小範圍是0~255,數值越大,優先級越高。
DR和BDR的選舉過程
當一臺OSPF路由器啟動並發現它的鄰居路由器時,他將去檢查有效的DR和BDR路由器,如果DR和BDR路由器存在,這臺路由器將接受已經存在的DR和BDR路由器。如果BDR路由器不存在,將執行一個選舉過程,選出具有最高優先級的路由器作為BDR路由器。如果存在多個路由器具有相同的優先級,那麽router ID最大的路由器將被選中,如果沒有有效的DR路由器存在,那麽BDR路由器將被提升為DR路由器,然後執行一個選舉過程選舉BDR路由器。
OSPF數據包類型
技術分享圖片
OSPF鄰接關系的建立
失效(down)狀態
這是OSPF建立交互關系的初始化狀態,路由器沒有與任何鄰居交換信息
初始(Init)狀態
路由器使用224.0.0.5發送hello收到後進入初始化狀態
雙向(2-way)狀態
路由器都收到彼此的hello表知道對方的router ID,選舉DR和BDR
準啟動(exstart)狀態
選舉DR和BDR後進入準啟動狀態,其他路由器和DR以及BDR建立鄰接關系
交換(exchange)狀態
從DR或者BDR獲取多個鏈路狀態描述信息進入到交換狀態,請求摘要信息
加載(loading)狀態
發送LSR請求更新詳細的信息,使用LSU進行更新,需要使用LSACK進行確認
完全鄰居(full)狀態
轉發數據
OSPF的網絡類型
點到點網絡:兩個點通信使用,永遠使用鄰居,不需要選DR和BDR,使用244.0.0.5通信
廣播多路訪問網絡:使用比較廣泛的互聯網,互聯網就是廣播多路訪問網絡
非廣播多路訪問網絡:不能進行數據包廣播,幀中繼網絡是典型非廣播多路訪問網絡,需要管理員進行手動建立鄰接關系,OSPF報文使用單播協議發送
點到多點:一個點到多點通信使用,多個點被稱為組,不需要選舉DR和BDR,使用組播通OSPF的優勢
適合大型企業網絡使用
支持的網絡類型廣泛
支持多區域靈活性強
是一個無環路路由協議
收斂速度快10S
支持子網劃分
支持組播協議報文發送OSPF數據包
OSPF的基本配置命令
啟動OSPF進程
R1(config)#router ospf 1
手動指定router ID
R1(config-router)#router-id 1.1.1.1
宣告直連網絡寫反掩碼和OSPF區域
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 192.168..0 0.0.0.255 area 0
修改路由器的優先級和成本
進入接口
R1(config)#interface fastEthernet 0/0
修改優先級
R1(config-if)#ip ospf priority 200
修改cost值
R1(config)#interface fastEthernet 0/0
R1(config-if)#ip ospf cost 10
查看OSPF配置
查看鄰接關系表
R1#show ip ospf neighbor
查看接口OSPF配置
R1#show ip ospf interface fastethernet 0/0
監控OSPF數據包
R1#debug ip ospf packet

OSPF路由協議