概念
BGP協議是一種外部閘道器協議,用來連線不同自治系統中的主機
為什麼使用BGP協議
在不同自治系統之間的路由選擇,為什麼不能使用內部閘道器協議?因為以下兩點:
- 網際網路的規模太大,使得自治系統之間路由選擇非常困難。連線在網際網路主幹網上的路由器,必須對任何有效的IP地址都能在路由表中找到匹配的目的網路。如果使用鏈路狀態協議,則每一個路由器必須維持一個很大的鏈路狀態資料庫。對於這樣大的主幹網,計算最短路徑花費的時間也太長。另外,由於自治系統各自執行自己選定的內部路由選擇協議,並使用本自治系統指明的路徑度量,因此,當一條路徑透過幾個不同的的自治系統時,要想對這樣的路徑計算出有意義的代價是不可能的。
- 自治系統之間的路由選擇必須考慮有關策略。由於相互連線的網路的效能相差很大,根據最短距離找出來的路徑,可能並不合適。再比如自治系統AS1要傳送資料包給自治系統AS2,本來最好是經過自治系統AS3,但AS3不願意讓這些資料包透過本自治系統的網路,因為“這是他們的事情,和我沒有關係”。因此,自治系統之間的路由選擇協議應當允許使用多種路由選擇策略,這些策略包括政治、安全或經濟方面的考慮。
BGP路由
在一個自治系統中有兩種不同功能的路由器,邊界路由器(也叫BGP發言人)和內部路由器,一個AS至少要有一個邊界路由器和相鄰AS的邊界路由器相連。
兩個自治系統的BGP發言人之間建立eBGP連線,而同一個自治系統中的路由器之間建立iBGP連線。由此可見,BGP協議並非僅執行在AS之間,也執行在AS內部
BGP報文種類
- OPEN(開啟)報文,用來與BGP連線對等端建立關係。
- UPDATE(更新)報文,用來通告某一路由的資訊,以及列出要撤銷的路由
- KEEPALIVE(保活)報文,用來週期性地證實與對等端的連通性。
- NOTIFICATION(通知)報文,用來傳送檢測到的差錯。
不同路由選擇協議的比較
BGP是一種路徑向量路由選擇協議,他和RIP、PSPF之間的區別如下:
-
路徑向量路由協議(path-vector routing protocol )是一種網路路由協議,它維護動態更新的路徑資訊。透過網路迴圈並返回到同一節點的更新很容易被檢測和丟棄。該演算法有時用於 Bellman–Ford algorithm路由演算法,以避免“數到無窮”問題。它不同於距離向量路由和鏈路狀態路由。路由表中的每個條目都包含目的地網路、下一個路由器和到達目的地的路徑。
-
距離向量路由協議(distance-vector routing protocol):資料網路中的距離向量路由協議根據距離確定資料包的最佳路由。距離向量路由協議透過分組必須透過的路由器數量來衡量距離,一個路由器算作一跳。一些距離向量協議還考慮了網路延遲和影響給定路由上流量的其他因素。為了確定跨網路的最佳路由,在其上實現了距離向量協議的路由器相互交換資訊,通常是路由表加上目的地網路的跳躍計數,以及可能的其他交通訊息。距離向量路由協議還要求路由器定期通知其鄰居網路拓撲變化。距離向量路由協議使用Bellman-Ford演算法和Ford-Fulkerson演算法來計算最佳路由。
-
鏈路狀態路由協議(Link-state routing protocols):是分組交換網路中用於計算機通訊的兩類主要路由協議之一,另一類是距離向量路由協議。鏈路狀態路由協議的例子包括開放最短路徑優先(OSPF)和中間系統到中間系統(IS-IS)。鏈路狀態協議由網路中的每個交換節點(即準備轉發資料包的節點;在網際網路中,這些被稱為路由器)執行。
鏈路狀態路由的基本概念是,每個節點以圖的形式構建到網路的連線對映,顯示哪些節點連線到哪些其他節點。然後,每個節點獨立計算從它到網路中每個可能目的地的下一個最佳邏輯路徑。然後,每個最佳路徑集合將形成每個節點的路由表。這與距離向量路由協議形成鮮明對比,距離向量路由協議的工作原理是讓每個節點與其鄰居共享其路由表,在鏈路狀態協議中,節點之間傳遞的唯一資訊與連線性有關。鏈路狀態演算法有時被非正式地描述為每個路由器,“向世界講述它的鄰居”
iBGP和IGP的區別
iBGP是內部邊界閘道器協議,是要告訴結點去外部的結點應該怎麼走,應該找哪個閘道器、怎麼找閘道器。而IGP是內部閘道器協議,是一個自治系統內部使用的閘道器協議,包含OSPF、RIP等。是要告訴結點到每個內部結點應該怎麼走。