1. 程式人生 > 其它 >BGP路由協議

BGP路由協議

IGP和EGP

路由協議通常分為內部閘道器協議(IGP: Interior Gateway Protocol)和外部閘道器協議(EGP: Exterior Gateway Protocol)兩大類。一般來講,IGP 用於自治系統AS(Autonomous System)內部,EGP用於AS之間。最早的IGP是一種稱為GGP(Gateway-to-Gateway Protocol)的路由協議,而最早的EGP 是一種稱為EGP(Interior Gateway Protocol,注意,它與類別名EGP同名,現已被廢除)的路由協議。

目前,常見的IGP包括RIP、OSPF、IS-IS 等,而常見的EGP只有BGP(Border Gateway Protocol)。

BGP概述

BGP(Border Gateway Protocol,邊界閘道器協議)是一種用於AS(Autonomous System,自治系統)之間的動態路由協議。AS是擁有同一選路策略,在同一技術管理部門下執行的一組路由器。

BGP用於在不同的自治系統(AS)之間交換路由資訊。當兩個AS需要交換路由資訊時,每個AS都必須指定一個執行BGP的節點,來代表AS與其他的AS交換路由資訊。通常是路由器來執行BGP。兩個AS中利用BGP交換資訊的路由器也被稱為邊界閘道器(Border Gateway)或邊界路由器(Border Router)。

早期釋出的三個版本分別是BGP-1(RFC 1105)、BGP-2(RFC 1163)和BGP-3(RFC 1267),當前使用的版本是BGP-4(RFC 1771,已更新至RFC 4271)。BGP-4作為事實上的Internet外部路由協議標準,被廣泛應用於ISP(Internet Service Provider,因特網服務提供商)之間。

BGP的基本概念

1、AS(自治系統)

(1)BGP的AS是指在一個組織機構管轄下擁有相同選路策略的IP網路,在一個自治系統中的所有路由器必須相互連線,執行相同的路由協議,BGP網路中的每個AS都被分配了一個唯一的AS號,用於區域不同的AS。
(2)BGP的AS號分為2位元組和4位元組的AS號,
2位元組AS號範圍1----65535的整數,
4位元組AS號範圍2----4 294 967 295的整數(可以有不同的表示格式)

2、BGP發言者(BGP Speaker)

傳送BGP訊息的路由器稱為BGP發言者(BGP Speaker),它接收或產生新的路由資訊,併發布(Advertise)給其它BGP發言者。當BGP發言者收到來自其它自治系統的新路由時,如果該路由比當前已知路由更優、或者當前還沒有該路由,它就把這條路由釋出給自治系統內所有其它BGP發言者。

運行了BGP協議的路由器,就是BGP發言者。

當R1、R2、R3、R5都運行了BGP協議,他們都發送BGP訊息,這些路由器就是BGP發言者。

3、Router ID(RID)

用來在自治系統中唯一標識一臺路由器。Router ID可以是手工配置或這是路由協議自動選舉。

4、BGP對等體(BGP Peer)

相互交換訊息的BGP發言者之間互稱對等體(Peer),若干相關的對等體可以形成對等體組(Peer Group),BGP傳輸層協議TCP,所以在BGP對等體建立前,首先進行TCP連線,也表明對等體之間首先路由可達。也有人叫BGP鄰居。

兩個BGP發言者通過TCP建立鄰居成功,就叫BGP對等體。

5、IBGP對等體(Internal BGP Peer)

如果BGP對等體處於同一自治系統內,被稱為IBGP對等體,要求TCP可達。為了防止環路,BGP協議規定BGP發言者從IBGP獲得的路由不向它的IBGP對等體釋出。

如果BGP路由器都在一個AS裡,就叫IBGP對等體。

AR1和AR2、AR3和AR5它們之間都是EBGP對等體,都是有物理直連鏈路,如果在AR1和AR5上建立EBGP連線,則必須手工在AR1和AR2的路由器上設定多跳,允許它們經過多跳物理鏈路建立EBGP連線。

IBGP對等體不一定是物理直連,但是一定TCP可達,也就是建立IBGP對等體的路由必須要IGP協議互通。

AR2從EBGP對等體獲得路由192.168.1.0/24後,會把此路由資訊傳送給它的IBGP對等體AR3,同理,AR3也會把這條路由資訊傳送給它的EBGP對等體AR5,這樣的話,192.168.1.0/24就能再AS間傳遞。但是AR2不能再將這條路由釋出給AR1。

6、EBGP對等體(External BGP Peer)

BGP對等體處於不同自治系統時,被稱為EBGP對等體,一般物理直連。BGP Speaker從EBGP對等體獲得的路由會向它所有BGP對等體通告(包括EBGP和IBGP);同時為了防止環路,他不會將學習到的路由再向原發布者釋出。

如果BGP路由器處在兩個AS間,就叫EBGP對等體。

7、AS-PATH

BGP的路由可能會從一個AS發往另外一個AS,從而穿越多個AS,可能在經過轉發之後,又回到了最初的AS之中,最終形成路由環路,出於防止環路的目的考慮,BGP在將路由發往其它AS(EBGP鄰居)時,需要在路由中寫上自己的AS號碼,下一個AS收到路由後,除了保留之前的AS號碼之外,也要新增上自己的AS號碼,這樣的寫在路由中的AS被稱為AS-path,如果BGP收到的路由的AS_PATH中包含自己的AS號碼,就認為路由被髮了回來,以此斷定出現了路由環路。

BGP特性描述

  • BGP是一種外部閘道器協議(Exterior Gateway Protocol,EGP),與OSPF、RIP等內部閘道器協議(Interior Gateway Protocol,IGP)不同,它並不產生路由、不發現路由、不計算路由,其主要功能是完成最佳路由的選擇並在 BGP鄰居之間進行最佳路由的傳遞。
  • BGP使用TCP作為其傳輸層協議(埠號179),與每個BGP對等體形成獨特的基於單播的連線 並支援BGP於BFD聯動,提高了網路的可靠性。
  • BGP支援CIDR(Classless Inter-Domain Routing,無類別域間路由)。
  • 路由更新時,BGP只發送更新的路由,採用觸發增量更新方式,大大減少了BGP傳播路由所佔用的頻寬,適用於在Internet上傳播大量的路由資訊。
  • BGP路由通過攜帶AS路徑資訊徹底解決路由環路問題。
    • AS之間:BGP通過攜帶AS路徑資訊來標記途經的AS,帶有本地AS號的路由將被丟棄,從而避免了域間產生環路
    • AS內部:BGP在AS內學到的路由不再通告給AS內的BGP鄰居,避免了AS內產生環路
  • BGP提供了豐富的路由策略,能夠對路由實現靈活的過濾和選擇。
  • BGP擁有豐富的選路參考屬性,靈活組合可以實現路由的優選和避免路由環路,能夠高效率的傳遞路由和維護大量的路由資訊;
  • BGP易於擴充套件,能夠適應網路新的發展。