距離向量型與鏈路狀態型路由協定的差異:以RIP與OSPF比較路由計算、收斂與規模

路由協定是讓路由器之間交換路由資訊、自動建立路由表的機制。在組織內部使用的協定(IGP)大致有兩種想法。距離向量型是由各路由器從鄰居得知「到哪個目的地、距離多少」,再加上到該鄰居的距離來選擇路由。代表例RIP以經過的路由器數(跳數)作為距離。鏈路狀態型則是各路由器通告自己鏈路的狀態,共享網路的地圖(拓撲),再各自以戴克斯特拉演算法計算最短路徑。代表例OSPF以每條鏈路設定之成本的總和來選擇路由。距離向量型機制單純、設定也簡單,但故障後路由穩定下來(收斂)較慢,不適合大型網路。鏈路狀態型的計算與記憶體負擔較大,但能迅速跟上變化,也能用於大型網路。

項目距離向量型(RIP等)鏈路狀態型(OSPF等)
路由器掌握的資訊只有從鄰居得知、到各目的地的距離與下一跳。不知道整個網路的架構同一區域內所有路由器與鏈路及其成本。區域內所有路由器擁有相同的地圖(鏈路狀態資料庫)
路由的計算在從鄰居得知的距離上加上到鄰居的距離,選出最小者(貝爾曼-福特演算法的想法)根據地圖,以自己為起點用戴克斯特拉演算法計算最短路徑樹
度量值(表示路由好壞的值)RIP使用跳數。最多到15,16代表「無法到達」OSPF使用各鏈路成本的總和。成本可由管理者設定,一般以頻寬為基準決定
更新的傳送方式RIP以固定間隔(RFC 2453為30秒)把路由表的內容送給鄰居。有變化時也會立即傳送(觸發更新)有變化時,把鏈路狀態(LSA)傳遍整個區域(泛洪)。平時以Hello確認鄰居存活,LSA只以長間隔(30分鐘)重送
收斂速度與迴圈慢。故障後可能發生距離逐步增加的無限計數問題。以水平分割等方式抑制快。變化傳開後各路由器立即重新計算。所有路由器都從相同的地圖計算,因此不易形成迴圈
網路規模適合小型網路。RIP無法處理16跳以上的目的地也能用於大型網路。劃分區域,以骨幹區域(區域0)為中心分層
所需資源與設定CPU與記憶體負擔小。設定也簡單保存地圖與計算最短路徑需要較多CPU與記憶體。區域的設計等,設定也較複雜
代表例RIP(RIPv1、RIPv2、IPv6用的RIPng)OSPF(IPv4用的OSPFv2、IPv6用的OSPFv3)、IS-IS

數值為具代表性的大致參考值,會因世代或產品而異。

適用於什麼情況

距離向量型(RIP等)
路由器數量少、架構幾乎不變的小型網路中,以設定簡單為優先時。由於收斂慢且有跳數上限,不適合大型網路或備援架構。
鏈路狀態型(OSPF等)
在企業或資料中心等路由器多、具有備援路徑的網路中,希望故障時迅速切換路由時。規模大時,會劃分區域來抑制計算量與資訊量。

常見問題

什麼是無限計數(count to infinity)?

在距離向量型中,某個目的地無法到達時,相鄰的路由器互相告知舊資訊,使距離每次加1、路由遲遲不消失的現象。在這段期間,送往該目的地的封包會在路由器之間來回。RIP規定16為「無法到達」來設定上限。此外,還以不把路由回傳給告知該路由之鄰居的水平分割、以距離16(無法到達)回傳給該鄰居的毒性逆轉,以及立即傳送變化的觸發更新,使其不易發生。

OSPF的成本如何決定?

RFC 2328把各介面的成本視為由管理者決定的值。許多設備以參考頻寬除以鏈路頻寬的值作為預設成本。若參考頻寬維持100 Mbps,100 Mbps以上的鏈路成本全部變成1,無法區分快速鏈路,因此會在所有路由器上把參考頻寬一致設定為較大的值。

BGP屬於哪一型?

BGP是在路由上附加經過之AS的順序(AS_PATH)並傳給鄰居、稱為路徑向量型的方式。根據鄰居告知的資訊選擇路由這一點與距離向量型相似,但它傳送的不是距離而是路徑本身,因此能藉由丟棄含有自己AS編號的路由來防止迴圈。BGP用於組織之間(AS之間),組織內部則使用OSPF等。

同時從RIP與OSPF學到同一目的地的路由時,會使用哪一個?

跳數與成本的意義不同,度量值無法直接比較。若是相同目的地、相同前綴長度的路由,會把代表各來源優先程度之管理距離較小者放入路由表。數值依設備廠商而異,例如在OSPF為110、RIP為120的設備上,會選擇OSPF的路由。

理解度檢測

下列關於鏈路狀態型路由協定的敘述,何者正確?

  1. A各路由器只根據從相鄰路由器收到的目的地與距離(跳數等)資訊,建立自己的路由表
  2. B各路由器散播自己所連接之鏈路的狀態,共享整個網路的架構(拓撲),各自以戴克斯特拉演算法計算最短路徑
  3. C由管理者在各路由器上手動設定路由,路由器之間不交換路由資訊
查看答案與解析

正確答案:B. 各路由器散播自己所連接之鏈路的狀態,共享整個網路的架構(拓撲),各自以戴克斯特拉演算法計算最短路徑

在鏈路狀態型(OSPF、IS-IS等)中,各路由器通告自己之鏈路的狀態(相連的對象與成本),同一範圍內的所有路由器擁有相同的地圖。各路由器根據這份地圖,以自己為起點用戴克斯特拉演算法計算最短路徑樹。距離向量型(RIP等)則是在從鄰居得知的「到哪個目的地距離多少」加上自己的距離來選擇路由,機制單純,但不知道整個網路的架構,故障後路由穩定下來可能需要時間。鏈路狀態型的計算與記憶體負擔較大,但能迅速跟上變化。

在OSPF中,路由器R1通往R4另一側網路的路徑有3條。路徑A的R1–R5為10 Gbps、R5–R4為1 Gbps的鏈路;路徑B是直接連接R1–R4的100 Mbps鏈路;路徑C的R1–R2、R2–R3、R3–R4都是1 Gbps的鏈路。設各鏈路的成本為「參考頻寬10 Gbps ÷ 鏈路頻寬」,且R4之後的成本在各路徑都相同。R1選擇的路徑是下列何者?

  1. A路徑A
  2. B路徑B
  3. C路徑C
查看答案與解析

正確答案:A. 路徑A

成本為:10 Gbps的鏈路 10 ÷ 10 = 1,1 Gbps為 10 ÷ 1 = 10,100 Mbps為 10 ÷ 0.1 = 100。路徑A為 1 + 10 = 11,路徑B為100,路徑C為 10 × 3 = 30,因此選擇成本合計最小的路徑A。若參考頻寬維持許多設備一直以來的預設值100 Mbps,100 Mbps以上的鏈路成本全部為1,路徑A為2、路徑B為1、路徑C為3,反而會選中最慢的路徑B。因此,使用高速鏈路的網路,會把所有路由器的參考頻寬一致設定為較大的值。

某台路由器從OSPF與RIP兩者學到通往同一目的地 192.168.50.0/24 的路由。在這台路由器上,表示各路由來源優先程度的管理距離(值越小越優先),OSPF為110,RIP為120。放入路由表的路由,下列何者正確?

  1. A兩條路由都放入路由表,每個封包輪流使用
  2. B只放入RIP的路由
  3. C只放入OSPF的路由
查看答案與解析

正確答案:C. 只放入OSPF的路由

像OSPF的成本與RIP的跳數那樣,不同的路由協定表示路由好壞之值(度量值)的意義不同,無法直接比較。因此,從多個來源得到相同目的地、相同前綴長度的路由時,會採用代表各來源可信程度之管理距離較小的一方。這裡OSPF的110比RIP的120小,因此OSPF的路由會放入路由表。一般而言,直接相連的網路為0、靜態路由為1,人設定的路由值越小,但名稱與預設值依設備廠商而異。

  1. 在網際網路上,於網路服務供應商等組織所管理的網路單位(AS,自治系統)之間交換路由資訊,並依據經過之AS的順序(AS_PATH)等屬性與各組織的政策選擇路由的協定是下列何者?
  2. 下列關於動態路由的敘述,何者正確?

前往網路設計與維運的練習題

相關名詞的解說

路由選擇(Routing)
在IP網路中,為了把封包送到目的地而決定經由哪條路徑傳送。各路由器持有路由表,選擇與目的地IP位址前綴一致最長的路由(最長前綴比對),交給下一個路由器。路由表可由人設定的靜態路由建立,也可由OSPF、RIP、BGP等路由協定自動建立的動態路由產生。
路由器
在不同網路之間轉送封包的網路層(第3層)設備。把收到的封包之目的地IP位址與路由表比對,決定下一個要交給的路由器(下一跳)與輸出介面後送出。家用路由器還整合了NAPT、DHCP伺服器與防火牆等功能。
OSPF(開放最短路徑優先)
Open Shortest Path First的縮寫。在組織內部使用的鏈路狀態型路由協定。各路由器散播自己之鏈路的狀態以共享網路架構,並以戴克斯特拉演算法計算成本合計最小的路徑。成本一般由鏈路頻寬決定,並可把網路分成多個區域,以支援大規模的網路。
BGP(邊界閘道協定)
Border Gateway Protocol的縮寫。在網際網路上,於AS(自治系統,網路服務供應商等組織所管理的網路單位)之間交換路由資訊的路由協定。依據路由所附之經過AS的順序(AS_PATH)等屬性,以及各組織的政策選擇路由。路由器之間以TCP的179號連接埠連線交換資訊。
戴克斯特拉演算法
在邊的權重都在0以上的圖中,求從一個起點到各頂點最短路徑的演算法。反覆確定距離尚未確定的頂點中最近的一個,並更新其相鄰頂點的距離。有負權重的邊時無法正確求出。
管理距離
從靜態路由、OSPF、RIP等多個來源得到相同目的地、相同前綴長度的路由時,用來決定要把哪一條放入路由表的、各來源的優先程度值。值越小越優先。不用於在前綴長度不同的路由之間做選擇,那是由最長前綴匹配決定。名稱與預設值依設備廠商而異。

相關的比較