BGP

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

邊界網關協議(Border Gateway Protocol,BGP)

目錄

什麼是BGP

  BGP(Border Gateway Protocol)即邊界網關協議,是互聯網上一個核心的去中心化自治路由協議。它通過維護IP路由表或‘首碼’表來實現自治系統(AS)之間的可達性,屬於矢量路由協議。 BGP不使用傳統的內部網關協議IGP)的指標,而使用基於路徑、網路策略或規則集來決定路由。因此,它更適合被稱為矢量性協議,而不是路由協議。

  BGP是為了取代外部網關協議(EGP)協議而創建的,允許運行一個完全分散的路由系統,從ARPANET模型的核心路由系統過渡到包括NSFNET骨幹網及其相關區域網路的分散系統。這使得互聯網成為一個真正的分權制度。自1994年以來,BGP已有四個版本在互聯網上使用,所有以前的版本現在已經過時不可用。在第4版主要的增強功能是通過支持無類別域間路由和路由聚合來減少路由表的大小。第4版是在早期的RFC 1771第4版的基礎上編纂,通過20多個草案修改,最終在2006年1月通過形成RFC 4271RFC 4271版本糾正了一些錯誤,澄清模糊之處,帶來了更接近工業級應用標準的RFC行業慣例。

  大多數互聯網服務提供商(ISP)必須使用BGP來與其他ISP建立路由連接(尤其是當它們採取多宿主連接時)。因此,即使大多數互聯網用戶不直接使用它,但是與7號信令系統(SS7)相比,即通過PSTN的跨供應商核心響應設置協議,BGP仍然是互聯網最重要的協議之一。特大型的私有IP網路也可以使用BGP。例如當需要將若幹個大型的開放最短路徑優先OSPF)網路進行合併,而開放最短路徑優先協議本身又無法提供這種可擴展性時。使用BGP的另一個原因是其能為多宿主的單個ISP(RFC 1998)或多個ISP網路提供更好的冗餘網路。

BGP使用原則

  ①多條路徑時,BGPSpeaker只選最優的路徑給自己使用。

  ②BGPSpeaker只把自己使用的路由通告給鄰居。

  ③BGPSpeaker從EBGP獲得的路由會向它所有BGP鄰居通告(包括EBGP和IBGP)。

  ④BGPSpeaker從IBGP獲得的路由不向它的IBGP鄰居通告。

  ⑤BGPSpeaker從IBGP獲得的路由是否通告給它的EBGP鄰居要依IGP和BGP同步的情況來決定。

  ⑥連接一旦建立,BGPSpeaker將把自己所有BGP路由通告給新鄰居。

BGP屬性[1]

  BGP是一種外部路由協議,與OSPFRIP等的內部路由協議不同,其著眼點不在於發現和計算路由,而在於控制路由的傳播和選擇最好的路由。

  為控制路由的傳播和路由選擇,BGP為路由附帶屬性信息。BGP可在給定的路由上附上很多屬性,因此,IGP使用的路由更新包比BGP使用的路由更新報文更小,這也是IGP和BGP最大的不同之處。

  BGP路由屬性是一套參數,它對特定的路由進行了進一步的描述,使得BGP能夠對路由進行過濾和選擇。在配置路由策略時將廣泛地使用路由屬性,但是不是所有路由屬性都要被用上。路由屬性被分為以下幾類。

  • 必遵屬性:在路由更新數據報文中必須存在的路由屬性,這種屬性域在BGP路由信息中有著不可替代的作用,如果缺少必遵屬性,路由信息就會出錯。如AS-Path就是必遵屬性,BGP用它來避免路由環路,沒有它路由就可能出問題。
  • 可選屬性:它是可選的,不一定存在於路由更新數據報文中,設置它完全是根據需要。如MED屬性,就用它來控制選路。
  • 過渡屬性:具有AS間可傳遞性的屬性就是過渡屬性,過渡屬性的域值可以被傳遞到其他AS中去並繼續起作用。如Origin屬性,路由信息的起源一旦確定,域值會一直存在,無論此路由信息被傳到哪個AS中去。
  • 非過渡屬性:只在本地起作用,出了自治系統,域值就恢覆成預設值,如Local preference。以下列出幾種常用屬性的情況,如表所示。

  表:幾種常用屬性

類型代碼屬性名必遵/可選過渡/非過渡
1Origin必遵過渡
2AS-Path必遵過渡
3Next-hop必遵過渡
4MED可選非過渡
5Local-preference可選非過渡
8Community可選過渡

  每個屬性都有特定的含義並可以靈活地運用,使得BGP的功能十分強大。BGP屬性可以擴展到256種。這裡列出了一些BGP的常用屬性。

  • Origin起點屬性:定義路徑信息的來源,標記一條路由是怎樣成為BGP路由的。如IGP、EGP和Incomplete等。
  • AS-PathAS路徑屬性:是路由經過的AS的序列,即列出在到達所通告的網路之前所經過的AS的清單。BGP發言者將自己的AS前置到接收到的AS路徑的頭部,它可以防止路由迴圈,並用於路由的過濾和選擇。
  • Next-hop下一跳屬性:包含到達更新消息所列網路的下一跳邊界路由器的IP地址。BGP的下一跳與IGP有所不同,它可以是通告此路由的對等體的地址,如EBGP,這同IGP是相同的。而在其他情況下,BGP使用第三方的下一跳,如IBGP對從EBGP對等體獲得的下一跳不加改變地在自治系統內傳遞。在多路訪問媒體上,BGP以路由的實際來源為下一跳,即使它不是BGP對等體。
  • MED(Multi-Exit-Discriminators)屬性:當某個AS有多個入口時,可以用MED屬性來幫助其外部的鄰居路由器選擇一個較好的人口路徑。一條路由的MED值越小,其優先順序越高。
  • Local-preference本地優先屬性:用於在自治系統內優選到達某一個目的地的路由。反映了BGP發言人對每個外部路由的偏好程度。本地優先屬性值越大,路由的優選程度就越高。
  • Community團體屬性:標識了一組具有相同特征的路由信息,與它所在的IP子網和自治系統無關。公認的團體屬性值有NO-EXPORT、N0一ADVERTISE、LOCALAS和INTERNET。

參考文獻

  1. 徐宇傑.路由技術深入分析[M].清華大學出版社,2009.05.
本條目對我有幫助7
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目

本条目由以下用户参与贡献

Yixi,KAER,连晓雾,方小莉,Lin.

評論(共0條)

提示:評論內容為網友針對條目"BGP"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

MBA智库
打开APP

以上内容根据网友推荐自动排序生成