BGP協議 基本原理


一、自治區系 AS

  自治系統(Autonomous System,AS),指的是在同一個組織管理下、使用相同策略的設備的集合。

  BGP 網絡中的每個AS都被分配一個唯一的AS號,用於區分不同的AS。AS號可分為2個字節AS號和4個字節AS號,其中 2字節AS的取值范圍為 1至 65535,其中64512-65535是私有AS號。4字節AS號的取值范轉為 1至 4294967295,支持 4字節AS號的設備能與支持 2字節AS號的設備兼容,IANA負責AS號的分發

 

二、邊界網關協議 BGP

  邊界網關協議 BGP(Border Gateway Protocol)運行於 TCP 上的一種自治系統的路由協議用於在AS之間實現路由信息的交互。1994年開始使用BGP-4(RFC1771),2006年之后單播IPv4網絡使用的版本是BGP-4(RFC4271),其他網絡使用的版本是MP-BGP(RFC4760)。

  BGP的特點:

  (1)BGP能夠承載大批量的路由信息,能夠支撐大規模網絡。

  (2)BGP能夠支持多協議的擴展(IP v4、IP v6)。

  (3)BGP能夠支撐MPLS/VPN的應用,傳遞客戶VPN路由。 

 

三 、BGP的路徑矢量特征

   BGP通常被稱為路徑矢量路由協議(Path-Vector Routing Protocol)。每條BGP路由都攜帶着多種路徑屬性(Path attribute),在各種路徑屬性中,AS_Path屬性是非常關鍵的一個,AS_Path屬性記錄了BGP路由傳遞過程中所經過的AS號,實際上它是一個AS號的列表

  BGP路由器不接受AS_Path中包含其自身AS號的路由更新。AS_Path屬性值的長短(AS號的個數)會作為一個比較的依據,影響BGP路由選擇的決策。

 

四、BGP協議特證

   (1)BGP使用TCP為傳輸層協議,TCP端口號179,BGP路由器之間基於TCP建立BGP會話BGP對等體無需直連。

  (2)運行BGP的路由器被稱為BGP發言者(BGP Speaker),兩台BGP路由器需建立對等體關系(鄰居關系)才能交互BGP路由,存在兩種類型的BGP對等體關系 EBGP和 IBGP

  (3)在BGP對等體關系建立完成之后,BGP路由器只發增量更新或觸發更新(不會發周期性更新)

  (4)目前主要的 BGP版本為 V4和 MP-BGP

 

五、BGP報文類型

  

 

六、BGP的狀態機制

  

 

七、BGP對等體 BGP Peer

  (1)運行BGP的路由器被稱為BGP發言者,或者BGP路由器。

  (2)BGP對等體也叫BGP鄰居,與OSPF、RIP等協議不同,BGP的會話是基於TCP建立的,建立BGP對等體關系的兩台路由器並不要求必須直連。

  (3)BGP存在兩種對等體關系類型:EBGP及IBGP

 

  EBGP(External BGP):位於不同自治系統的BGP路由器之間的BGP鄰接關系,建立EBGP對等體關系,必須滿足兩個條件:

  (1)兩個路由器所屬AS不同(也即AS號不同)

  (2)在配置BGP時,Peer命令所指定的對等體IP地址要求路由可達,並且TCP連接能夠正確建立

 

  IBGP(Internal BGP):位於相同自治系統的BGP路由器之間的BGP鄰接關系,建立IBGP對等體關系,必須滿足兩個條件:

  (1)兩個路由器所屬AS需相同(也即AS號相同)

  (2)在配置BGP時,Peer命令所指定的對等體IP地址要求路由可達,並且TCP連接能夠正確建立。

 

八、AS中的路由黑洞問題

  

  實例:

  (1)在 AS 65101與 AS 65102之間,路由器A、B 運行了 BGP 建立了 EBGP對等體關系,在 AS 65102與 AS 65103之間,路由器E、F 運行了BGP 建立了 EBGP對等體關系, 在AS 65102 中,BCDE四台路由器運行了OSPF,路由器 B與E運行BGP,兩者建立IBGP對等體關系,路由器 C與 D並未運行BGP。

  (2)路由器A 將本地路由1.1.1.0/24通告到BGP,最終F能夠通過BGP學習到該條路由,路由器C、D由於並未運行BGP,因此無法通過BGP學習到1.1.1.0/24路由,當路由器F 發往1.1.1.0/24網絡的數據包在到達路由器C、D 后將被丟棄,在C及D路由器這里,就出現了黑洞。

 

  AS中黑洞問題的解決辦法:

  (1)將 BGP路由引入 IGP

  (2)在AS 65102內,沒有運行BGP路由協議的 C、D路由器上運行BGP,實現BGP對等體關系的全互聯。

  (3)通過MPLS技術解決黑洞問題實現通信。

 

九、IBGP水平分割規則

  (1)BGP路由在AS之間的防環依賴於AS_Path路徑屬性,當路由器收到BGP路由后,發現該路由所攜帶的AS_Path屬性中出現了其自己所處的AS號,則路由器認為出現了路由環路,它將忽略該條路由

  (2)AS_Path屬性僅在路由離開AS時才會被更改,而BGP路由在AS內部傳遞時,路由的AS_Path屬性值不會發生改變,如此一來,IBGP路由的防環就無法依賴AS_Path了。

  (3)為了防止BGP路由在AS內部傳遞時發生環路,BGP要求:“路由器不能將自己從IBGP對等體學習到的路由再傳遞給其他IBGP對等體”,這就是IBGP水平分割規則。

  (4)由於IBGP水平分割原則的存在,BGP要求AS內須保證IBGP對等體關系的全互聯,因為只有這樣,才能夠確保每一個路由器都能學習到路由。

  (5)然而在AS內的所有BGP路由器之間維護全互聯的IBGP對等體關系是需要耗費大量資源的,網絡的可擴展性、可維護性也非常差。解決方案:路由反射器,聯邦。

 

十、路由通告規則

  (1)當存在多條路徑時,路由器只選取最優(Best)的BGP路由來使用(沒有激活負載均衡的情況下)。

  (2)BGP只把自己使用的路由,也就是自己認為最優的路由傳遞給對等體

  (3)路由器從EBGP對等體獲得的路由會傳遞給它所有的BGP對等體(包括EBGP和IBGP對等體)。

  (4)路由器從IBGP對等體獲得的路由不會傳遞給它的IBGP對等體(存在反射器RR的情況除外)。

  (5)路由器從IBGP對等體獲得的路由是否通告給它的EBGP對等體要視IGP和BGP同步的情況來決定

 

十一、BGP基本配置

  (1)創建BGP,指定BGP Router-ID:  

  [Router] bgp as-num           //as-num參數為設備所處的AS號;
  [Router-bgp] router-id x.x.x.x

  為了增加網絡的可靠性,建議將BGP Router-ID手工配置為設備Loopback接口的地址。如果沒有配置,則BGP會自動選取系統視圖下的Router-ID作為BGP協議的Router-ID。

 

  (2)配置BGP對等體:  

  [Router-bgp] peer x.x.x.x as-number as-num
  

  Peer關鍵字后面的x.x.x.x為對等體的IP地址,本設備與該IP地址之間必須路由可達。

  AS號碼決定了與對等體建立的是EBGP會話還是IBGP會話。

 

  (可選)指定用於建立BGP會話(也就是TCP連接)的源接口或源地址:  

[Router-bgp] peer x.x.x.x connect-interface intf[ ipv4-src-address]

  缺省情況下,BGP使用報文出接口的IP地址作為與對等體建立會話的源地址。

 

  (3)BGP引入IGP路由

  BGP引入路由時支持Import和Network兩種方式:

    Import方式是按協議類型,將RIP、OSPF、ISIS等協議的路由引入到BGP路由表中。Import方式還可以引入靜態路由和直連路由。

    Network方式是逐條將IP路由表中已經存在的路由引入到BGP路由表中。

  注:BGP在引入IGP的路由時,可以使用路由策略進行路由過濾和路由屬性設置。

  使用network命令將路由通告到BGP:  

  [router-bgp] network ipv4-address[ mask| mask-length]

  使用network命令將路由表中的路由通告到BGP,路由必須存在於路由表中才能夠被成功通告到BGP。

  BGP中的network命令與IGP中的network是大不相同的,BGP中的network命令用於將路由通告到BGP,而不是在接口上激活BGP。

  如果上述命令沒有指定mask或mask-length參數,則按有類地址處理。指定了mask,則僅當路由選擇表中有與該網絡完全匹配的條目時才被通告出去。

  在執行上述命令時,可以關聯route-policy從而更為靈活的控制所引入的路由。

 

十二、相關命令

  dis bgp peer                 //查看bgp對等體
  dis bgp routing-table        //查看bgp路由表
  dis ip routing-table         //查看全局路由表
  peer x.x.x.x next-hop-local  //配置對等體下一跳地址為自身

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM