BGP工作原理


 BGP對等體的建立、更新和刪除等交互過程主要有5種報文、6種狀態機和5個原則

 

一、5種報文類型:

1,open:用於建立BGP對等體連接

1.1,BGP鄰居參數協商:

  • AS number:要和鄰居一致,否則無法建立鄰居關系;
  • Router-id:不能沖突,否則無法建立鄰居關系;
  • Hold time:鄰居失效時間 ,默認180s,如果不一致,協商成小的;
  • BGP version:默認運行為v4版本

1.2,BGP鄰居能力的協商:

  • 地址族協商一致,否則無法建立鄰居關系,默認為ipv4單播地址族(至少有一種地址組能力要一致)
  • 路由刷新能力
  • 是否支持4字節的AS號

 

2,update:用於在對等體之間交換路由信息,更新和撤銷

3,notification:用於中斷BGP TCP連接

4,keepalive:用於保持BGP連接,周期性發送,默認60s,180s內沒收到,鄰居關系斷開

5,route-refresh:用於手動觸發路由的觸發更新,或者用於ORF功能。只有支持路由刷新(Route-refresh)能力的BGP設備會發送和響應此報文

二、6種狀態機制

1,空閑(Idle)

  • 沒有去往鄰居路由
  • 鄰居發起的tcp連接,被本端拒絕,源地址不是本端指定的鄰居地址

2,連接(Connect)

  • 發起tcp連接,無法收到鄰居的任何響應
  • 如果TCP連接成功,那么BGP向對等體發送Open報文,並轉至OpenSent狀態。
  • 如果TCP連接失敗,那么BGP轉至Active狀態。

3,活躍(Active)

  • 發起tcp連接的路由器,能收到相應鄰居的應答報文,但依然無法建立起tcp 3次握手
  • 如果TCP連接成功,那么BGP向對等體發送Open報文,關閉連接重傳定時器,並轉至OpenSent狀態。
  • 如果TCP連接失敗,那么BGP停留在Active狀態。
  • 如果連接重傳定時器超時,BGP仍沒有收到BGP對等體的響應,那么BGP轉至Connect狀態

4,Open報文已發送(OpenSent)

  • 如果收到的Open報文正確,那么BGP發送Keepalive報文,並轉至OpenConfirm狀態。
  • 如果發現收到的Open報文有錯誤,那么BGP發送Notification報文給對等體,並轉至Idle狀態。

 

5,Open報文已確認(OpenConfirm)

 

  • 在OpenConfirm狀態下,BGP等待Keepalive或Notification報文。如果收到Keepalive報文,則轉至Established狀態,如果收到Notification報文,則轉至Idle狀態。

6,連接已建立(Established)

 

  • 如果收到正確的Update或Keepalive報文,那么BGP就認為對端處於正常運行狀態,將保持BGP連接。
  • 如果收到錯誤的Update或Keepalive報文,那么BGP發送Notification報文通知對端,並轉至Idle狀態。
  • Route-refresh報文不會改變BGP狀態。
  • 如果收到Notification報文,那么BGP轉至Idle狀態。
  • 如果收到TCP拆鏈通知,那么BGP斷開連接,轉至Idle狀態。

 

在BGP對等體建立的過程中,通常可見的3個狀態是:Idle、Active和Established

 

 

三、BGP對等體之間的交互5個原則

 

BGP設備將最優路由加入BGP路由表,形成BGP路由。BGP設備與對等體建立鄰居關系后,采取以下交互原則:

 

  1. 從IBGP對等體獲得的BGP路由,BGP設備只發布給它的EBGP對等體。

  2. 從EBGP對等體獲得的BGP路由,BGP設備發布給它所有EBGP和IBGP對等體。

  3. 當存在多條到達同一目的地址的有效路由時,BGP設備只將最優路由發布給對等體。

  4. 路由更新時,BGP設備只發送更新的BGP路由。

  5. 所有對等體發送的路由,BGP設備都會接收

 


免責聲明!

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



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