BGP(BorderGatewayProtocol)邊界網關協議,用來連接Internet上獨立系統的路由選擇協議。它是Internet工程任務組制定的一個加強的、完善的、可伸縮的協議。BGP4支持CIDR尋址方案,該方案增加了Internet上的可用IP地址數量。BGP是為取代最初的外部網關協議EGP設計的,也被認為是一個路徑矢量協議。
背景
路由包括兩個基本的動作:確定最佳路徑和信息群(通常稱為分組)通過網絡的傳輸。通過網絡傳輸分組相對較簡單,而路徑的確定復雜。BGP就是當今網絡中實現路徑選擇的一種協議。下面簡述BGP的基本操作,並提供其協議組件的描述。
BGP在TCP/IP網中實現域間路由。BGP是一種外部網關協議(EGP),即它在多個自治系統或域間執行路由、與其它BGP系統交換路由和可達性信息。
BGP設計用以代替其前身(現在已不用了)外部網關協議(EGP)作為全球因特網的標准外部網關路由協議。BGP解決了EGP的嚴重問題,能更有效地適應因特網的飛速發展。
BGP在多個RFC中規定:RFC1771-描述了BGP4,即BGP的當前版本。RFC1654-描述了第一個BGP4規范。RFC1105,RFC1163和RFC1267-描述了BGP4之前的BGP版本。
操作
BGP執行三類路由:AS間路由、AS內部路由和貫穿AS路由。
AS間路由發生在不同AS的兩個或多個BGP路由器之間,這些系統的對等路由器使用BGP來維護一致的網絡拓撲視圖,AS間通信的BGP鄰居必 須處於相同的物理網絡。因特網就是使用這種路由的實例,因為它由多個AS(或稱管理域)構成,許多域為構成因特網的研究機構、公司和實體。BGP經常用於 為因特網內提供最佳路徑而做路由選擇。
AS內部路由發生在同一AS內的兩個或多個BGP路由器間,同一AS內的對等路由器用BGP來維護一致的系統拓撲視圖。BGP也用於決定哪個路 由器作為外部AS的連接點。再次重申,因特網提供了AS間路由的實例。一個組織,如大學,可以利用BGP在其自己的管理域(或稱AS)內提供最佳路由。 BGP協議既可以提供AS間也可以提供AS內部路由。
bgp貫穿(pass-through)AS路由發生在通過不運行BGP的AS交換數據的兩個或多個BGP對等路由器間。在貫穿AS環境中,BGP通信既不源自AS內,目的也不在該AS內的節點,BGP必須與AS內使用的路由協議交互以成功地通過該AS傳輸BGP通信,下圖所示為貫穿AS環境:
路由
與其它路由協議一樣,BGP維護路由表、發送路由更新信息且基於路由metric決定路由。BGP系統的主要功能是交換其它BGP系統的網絡可達信息,包括AS路徑的列表信息,此信息可用於建立AS系統連接圖,以消除路由環,及執行AS策略確定。
每個BGP路由器維護到特定網絡的所有可用路徑構成的路由表,但是它並不清除路由表,它維持從對等路由器收到的路由信息直到收到增值(incremental)更新。
BGP設備在初始數據交換和增值更新後交換路由信息。當路由器第一次連接到網絡時,BGP路由器交換它們的整個BGP路由表,類似的,當路由表改變時,路由器發送路由表中改變的部分。BGP路由器並不周期性發送路由更新,且BGP路由更新只包含到某網絡的最佳路徑。
BGP用單一的路由metric決定到給定網絡的最佳路徑。這一metric含有指定鏈路優先級的任意單元值,BGP的metric通常由網管賦給每條鏈路。賦給一條鏈路的值可以基於任意數目的尺度,包括途經的AS數目、穩定性、速率、延遲或代價等。