OSPF與BGP的差異:IGP與EGP、路由選擇方式、鄰居連線方式與規模比較

網際網路是由網路服務供應商、大學、企業等管理的網路單位AS(自治系統)互相連接而成。在AS內部交換路由的協定稱為IGP,在AS之間交換的協定稱為EGP,OSPF是IGP的代表,BGP是EGP的代表。OSPF根據AS內部的鏈路成本自動求出最短路由,目標是在故障時迅速切換。BGP則根據經過之AS的順序(AS_PATH)等屬性,以及要優先哪個對象等組織的政策,選擇AS之間的路由。由於要處理整個網際網路的路由,其設計重視穩定性與容易控制,而非速度。

項目OSPFBGP
分類與使用範圍IGP。一個AS(組織)的內部EGP。AS與AS之間。同一AS內的BGP路由器之間也會使用(iBGP)
方式鏈路狀態型路徑向量型
路由的選擇方式以戴克斯特拉演算法求出鏈路成本總和最小的路由依固定順序比較LOCAL_PREF、AS_PATH長度、MED等屬性。可設定屬性以反映組織的政策
防止迴圈的方式區域內所有路由器從相同的地圖計算最短路徑收到的路由的AS_PATH中若有自己的AS編號就丟棄
與鄰居路由器的連線方式直接在IP上運作(協定編號89)。以群播送出Hello,自動找到鄰居以TCP的179號連接埠連線。連線對象(對等端)由管理者逐一設定
更新的傳送方式有變化時把LSA傳遍區域內。以Hello確認鄰居存活(RFC 2328的例子為每10秒)先一次送出所有路由,之後只以UPDATE傳送有變化的部分。不會定期重送路由,以KEEPALIVE維持連線
收斂速度一般較快。察覺鏈路中斷後立即重新計算一般較慢。察覺故障可能需等待保持時間(RFC 4271的建議值為90秒),處理的路由也多
處理的路由數量與規模組織內部的路由。大型網路會劃分區域,抑制計算量與資訊量能處理整個網際網路非常多的路由。用於網路服務供應商之間,以及連接多家供應商的組織

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

適用於什麼情況

OSPF
在一個組織的網路內,希望從備援路徑中自動選擇最短路由,並在故障時迅速切換時。適合據點或資料中心內部的路由。
BGP
連接多家網路服務供應商(多重歸屬),想控制要優先哪條線路時,或以供應商身分與其他AS交換路由時。能依政策細緻控制要對組織外部通告的路由與要接受的路由。

常見問題

為什麼組織內部使用OSPF,組織之間使用BGP?

因為目的不同。在組織內部,整個網路由相同的管理者管理,因此重要的是自動選擇最佳路由,並在故障時迅速切換。在組織之間,對方是各自擁有不同政策的組織,彼此不公開內部架構。需要依合約與政策決定要優先來自哪個對象的路由、要把哪些路由告知對方,而BGP就是為了能以屬性與過濾器表達這些而設計的。

iBGP與eBGP有什麼不同?

eBGP是不同AS的路由器之間的BGP連線,iBGP是同一AS內路由器之間的BGP連線。以eBGP把路由告知其他AS時,會在AS_PATH中加入自己的AS編號。iBGP在同一AS內,不加入AS編號,因此為了防止迴圈,從iBGP收到的路由不會再傳給其他iBGP對象。所以iBGP的路由器之間要全部互連(全網狀),或使用路由反射器。

會同時使用OSPF與BGP嗎?

會。在網路服務供應商或大型組織中,一般的架構是以OSPF等IGP求出到AS內設備位址的路由,再在其上建立BGP連線,以BGP傳送外部路由。也就是由IGP告知如何到達BGP路由的下一跳(NEXT_HOP)的分工。此外,也有在大規模資料中心內不使用IGP、只以BGP交換路由的設計(RFC 7938)。

也有名為EGP的協定嗎?

有。EGP(Exterior Gateway Protocol)也是在BGP之前用於AS之間的舊協定的名稱。它現在已不再使用,「EGP」被當作指在AS之間交換路由之協定種類的稱呼,其代表就是BGP。

理解度檢測

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

  1. AOSPF
  2. BBGP
  3. CRIP
查看答案與解析

正確答案:B. BGP

BGP(Border Gateway Protocol,邊界閘道協定)是以AS編號區分的組織之間交換路由用的協定,網際網路上的路由基本上以BGP交換。路由附有經過之AS的順序(AS_PATH)與下一跳(NEXT_HOP)等屬性,路由器會丟棄含有自己AS編號的路由,以防止迴圈。選擇路由時,不只看AS_PATH的長短,還能以屬性表達要優先哪個連接對象等組織的政策並加以反映。OSPF與RIP是在一個組織內部使用的路由協定(IGP)。

在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。因此,使用高速鏈路的網路,會把所有路由器的參考頻寬一致設定為較大的值。

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

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

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

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

  1. 下列關於動態路由的敘述,何者正確?

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

相關名詞的解說

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

相關的比較