BGP(Border Gateway Protocol)是一種自治系統間的動態路由發現協議。早期發佈的三個版本分別是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),當前使用的版本是BGP-4(RFC1771)。BGP-4適用於分佈式結構,並支持無類域間路由CIDR(Classless Inter-Domain Routing)。BGP-4作爲事實上的Internet外部路由協議標準,被普遍應用於ISP,數據中心,跨國公司。html
BGP是一種外部網關協議(EGP),與OSPF、RIP等內部網關協議(IGP)不一樣,其着眼點不在於發現和計算路由,而在於控制路由的傳播和選擇最佳路由。 不一樣AS間BGP路由經過攜帶AS路徑信息解決路由循環問題,同一個AS間BGP路由,經過IGP解決路由環路。BGP使用TCP做爲其傳輸層協議,提升了協議的可靠性。
路由更新時,BGP只發送更新的路由,大大減小了BGP傳播路由所佔用的帶寬,適用於在Internet上傳播大量的路由信息。 出於管理和安全方面的考慮,每一個自治系統都但願可以對進出自治系統的路由進行控制,BGP-4提供了豐富的路由策略,可以對路由實現靈活的過濾和選擇。 BGP-4易於擴展,可以適應網絡新的發展。
BGP在路由器上如下列兩種方式運行,IBGP(Internal BGP) EBGP(External BGP) 當BGP運行於同一自治系統(AS)內部時,被稱爲IBGP;當BGP運行於不一樣自治系統之間時,稱爲EBGP。
BGP的消息類型 **安全
BGP的運行是經過消息驅動的,BGP使用如下消息類型:****** Type 1(OPEN):TCP鏈接創建後發送的第一個消息,用於創建BGP對等體間的鏈接關係 Type 2(UPDATE):BGP系統中最重要的信息,用於在對等體之間交換路由信息,它最多由三部分構成:不可達路由(unreachable)、路徑屬性(path attributes)、網絡可達性信息NLRI(Network Layer Reachability Information)。 Type 3(NOTIFICATION):錯誤通告消息。 Type 4(KEEPALIVE):用於檢測鏈接有效性的消息。 Type 5(ROUTE-REFRESH):用於通知對等體本身支持路由刷新能力。 其 中,前四種消息的定義能夠在RFC1771中找到,而Type 5的消息則是在RFC2918(Route Refresh Capability for BGP-4)中定義的。**
BGP初次啓動時,路由器發送整個BGP路由表與對等體交換路由信息,以後只交換更新消息(update message)。運行過程當中,經過接收和發送keep alive消息檢測相互之間的鏈接是否正常。 發送BGP消息的路由器稱爲BGP發言人(speaker),它接收或產生新的路由信息,併發布(advertise)給其它BGP發言人。 當BGP發言人收到來自其它自治系統的新路由時,若是該路由比當前已知路由更優、或者當前尚未該路由,它就把這條路由發佈給自治系統內全部其它BGP發言人。 相互交換消息的BGP發言人之間互稱對等體(peer),若干相關的對等體能夠構成對等體組(group)。
1. BGP發佈路由的策略
在VRP的實現中,BGP發佈路由時採用以下策略: 有多條可選路徑時,BGP發言人只選擇最優的使用;
BGP發言人只把本身使用的路由通告給對等體;
BGP發言人從EBGP得到的路由會向它全部BGP對等體通告(包括EBGP對等體和IBGP對等體);
BGP發言人從IBGP得到的路由不向它的IBGP對等體通告;
BGP發言人從IBGP得到的路由通告給它的EBGP對等體(VRP中,BGP與IGP不一樣步);
鏈接一旦創建,BGP發言者將把本身全部BGP路由通告給新對等體。
2. BGP選擇路由的策略
在VRP的實現中,BGP選擇路由時採起以下策略:
首先丟棄下一跳(Next hop)不可達的路由;
優選最高本地優先級(Local-preference)的路由;
優選本路由器始發的路由;
優選通過AS(AS-Path)最少的路由;
優選起點類型(Origin)最低的路由; 優選MED值最低的路由;
優選從EBGP學來的路由;
若是配置了負載分擔,而且有多條到達同一AS或AS聯盟的外部路由,則根據配置的路由條數選擇多條路由進行負載分擔;
優選BGP ID最低的路由器發佈的路由。 網絡
傳統的BGP-4只能管理IPv4的路由信息,對於使用其它網絡層協議(如IPv6等)的應用,在跨自治系統傳播時就受到必定限制。 爲了提供對多種網絡層協議的支持,IETF對BGP-4進行了擴展,造成MBGP。 目前的MBGP標準是RFC2858(Multiprotocol Extensions for BGP-4,BGP-4的多協議擴展)。 MBGP向後兼容,即,支持BGP擴展的路由器與不支持BGP擴展的路由器能夠互通。
BGP-4使用的報文中,與IPv4相關的三條信息都由Update報文攜帶,這三條信息分別是:NLRI(Network Layer Reachability Information,網絡層可達性信息)、路徑屬性中的Next_Hop(下一跳的IP地址)、路徑屬性中的Aggregator(該屬性中包含造成聚合路由的BGP發言者的IP地址)。
爲實現對多種網絡層協議的支持,BGP-4須要將網絡層協議的信息反映到NLRI及Next_Hop。
MBGP中引入了兩個新的路徑屬性: MP_REACH_NLRI:Multiprotocol Reachable NLRI,多協議可達NLRI。
用於發佈可達路由及下一跳信息。 MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多協議不可達NLRI。用於撤銷不可達路由。
這兩種屬性都是可選非過渡(optional non-transitive)的,所以,不提供多協議能力的BGP發言者將忽略這兩個屬性的信息,不把它們傳遞給其它鄰居。併發
BGP採用地址族(Address Family)來區分不一樣的網絡層協議,關於地址族的一些取值能夠參考RFC1700(Assigned Numbers)。
VRP實現多種MBGP擴展應用,包括對組播的擴展、對×××的擴展等,不一樣的擴展應用在各自的地址族視圖下配置。
轉載:https://www.wendangxiazai.com/b-96312f650b1c59eef8c7b426.htmlless