南昌網(wǎng)站建設平臺百度信息流
一、BGP基礎
1、BGP得概述
(1)、AS
OSPF、IS-IS等IGP路由協(xié)議在組織機構網(wǎng)絡內(nèi)部廣泛應用,隨著網(wǎng)絡規(guī)模擴大,網(wǎng)絡中路由數(shù)量不斷增長,IGP已無法管理大規(guī)模網(wǎng)絡,AS的概念由此誕生。 AS指的是在同一個組織管理下,使用統(tǒng)一選路策略的設備集合。 不同AS通過AS號區(qū)分,AS號存在16bit、32bit兩種表示方式。IANA負責AS號的分發(fā)。 當不同AS之間需要進行通信時,在AS之間應使用何種路由協(xié)議進行路由的傳遞?
(2)、BGP的概述
BGP是一種實現(xiàn)自治系統(tǒng)AS之間的路由可達,并選擇最佳路由的矢量性協(xié)議。早期發(fā)布的三個版本分別是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),1994年開始使用BGP-4(RFC1771),2006年之后單播IPv4網(wǎng)絡使用的版本是BGP-4(RFC4271),其他網(wǎng)絡(如IPv6等)使用的版本是MP-BGP(RFC4760)。 BGP的特點: BGP使用TCP作為其傳輸層協(xié)議(端口號為179),使用觸發(fā)式路由更新,而不是周期性路由更新。 BGP能夠承載大批量的路由信息,能夠支撐大規(guī)模網(wǎng)絡。 BGP提供了豐富的路由策略,能夠靈活的進行路由選路,并能指導對等體按策略發(fā)布路由。 BGP能夠支撐MPLS/VPN的應用,傳遞客戶VPN路由。 BGP提供了路由聚合和路由衰減功能用于防止路由振蕩,通過這兩項功能有效地提高了網(wǎng)絡穩(wěn)定性。
(3)、BGP特征
BGP使用TCP為傳輸層協(xié)議,TCP端口號179。路由器之間的BGP會話基于TCP連接而建立。 運行BGP的路由器被稱為BGP發(fā)言者(BGP Speaker),或BGP路由器。 兩個建立BGP會話的路由器互為對等體(Peer),BGP對等體之間交換BGP路由表。 BGP路由器只發(fā)送增量的BGP路由更新,或進行觸發(fā)式更新(不會周期性更新)。 BGP能夠承載大批量的路由前綴,可在大規(guī)模網(wǎng)絡中應用。
BGP通常被稱為路徑矢量路由協(xié)議(Path-Vector Routing Protocol)。 每條BGP路由都攜帶多種路徑屬性(Path attribute),BGP可以通過這些路徑屬性控制路徑選擇,而不像IS-IS、OSPF只能通過Cost控制路徑選擇,因此在路徑選擇上,BGP具有豐富的可操作性,可以在不同場景下選擇最合適的路徑控制方式。
(4)對等體特征
與OSPF、IS-IS等協(xié)議不同,BGP的會話是基于TCP建立的。建立BGP對等體關系的兩臺路由器并不要求必須直連。 BGP存在兩種對等體關系類型:EBGP及IBGP: EBGP(External BGP):位于不同自治系統(tǒng)的BGP路由器之間的BGP對等體關系。兩臺路由器之間要建立EBGP對等體關系,必須滿足兩個條件: 兩個路由器所屬AS不同(即AS號不同)。 在配置EBGP時,Peer命令所指定的對等體IP地址要求路由可達,并且TCP連接能夠正確建立。 IBGP(Internal BGP):位于相同自治系統(tǒng)的BGP路由器之間的BGP鄰接關系。
先啟動BGP的一端先發(fā)起TCP連接,如左圖所示,R1先啟動BGP,R1使用隨機端口號向R2的179端口發(fā)起TCP連接,完成TCP連接的建立。 三次握手建立完成之后,R1、R2之間相互發(fā)送Open報文,攜帶參數(shù)用于對等體建立,參數(shù)協(xié)商正常之后雙方相互發(fā)送Keepalive報文,收到對端發(fā)送的Keepalive報文之后對等體建立成功,同時雙方定期發(fā)送Keepalive報文用于保持連接。 其中Open報文中攜帶: My Autonomous System:自身AS號 Hold Time:用于協(xié)商后續(xù)Keepalive報文發(fā)送時間 BGP Identifier:自身Router ID
BGP對等體關系建立之后,BGP路由器發(fā)送BGP Update(更新)報文通告路由到對等體
(5)BGP路由生成
不同于IGP路由協(xié)議,BGP自身并不會發(fā)現(xiàn)并計算產(chǎn)生路由,BGP將IGP路由表中的路由注入到BGP路由表中,并通過Update報文傳遞給BGP對等體。 BGP注入路由的方式有兩種: Network import-route 與IGP協(xié)議相同,BGP支持根據(jù)已有的路由條目進行聚合,生成聚合路由。