BGP;邊界網關協議
使用范圍;BGP范圍,在AS之間使用的協議。
協議的特點(算法):路徑矢量型,沒有算法。
協議是否傳遞網絡掩碼:傳遞網絡掩碼,支持VLSM,CIDR
協議消息數據包封裝:基于TCP封裝(可靠的),端口號:179
AS:自治系統,自治系統范圍:1-65535,分為公有AS(1-64512)和私有AS(64513-65535)
一、BGP協議特點:
1、BGP是一種路徑矢量型路由協議。
2、BGP協議版本,當前版本V4(或叫V4+) V1,V2,V3(有類別的路由協議,不傳遞網絡掩碼) V4(無類別,支持傳遞網絡掩碼,僅僅支持IPV4單播路由傳遞) V4+(支持IPV4單播路由、IPV6單播IPV4組播,IPV6組播【一般的路由協議沒辦法運行組播,運行組播的協議叫做PIM(叫做協議無關組播)是一個完全獨立的協議,和OSPF等常見的協議是完全不一樣的,因為單播和組播干的就不是同一個事,單播我們更關注數據要去哪(關注目標地址),而組播與單播相反,它更多關注的是源地址】,VPNV4,VPNV6等,除了IPV4單播路由之外的其他的都稱為MP-BGP——多協議BGP:注意的是,默認僅僅支持傳遞IPV4單播路由,傳遞其他方式路由時需要開啟(激活)? [BGP版本是從版本3和版本4開始直接使用的,跳過了V1,V2,它可以配置的版本只有V3和V4,因為BGP的很多東西都是直接繼承的EGP,而EGP當初有EGP1和EGP2,在BGP設計出來的時候直接從版本3開始的。現在很多廠商的設備允許BGP之后,默認允許的版本是V4,但是它具備V4+的功能,V4+就是V4的增強版,除了支持默認的V4的IPV4單播路由外,其他的相關路由都支持,只是默認沒有開啟,要做的話需要一條命令給激活]
3、更新地址:單播更新(因為BGP是基于TCP的,TCP第一步就是三次握手,三次握手不能與組播,廣播三次握手,所以只能是單播更新,不能是組播更新和廣播更新等)
4、更新方式:觸發更新,增量更新。觸發更新(網絡穩定時,BGP是不向外發送任何路由信息且是永久不發,只要不變就不發與OSPF不同,它沒有三十分鐘的鏈路狀態刷新,網絡改變時才向外發送的路由信息)。增量更新(網絡路由信息改變時,只發送路由信息改變了的路由信息,其他沒有改變的不發送,因為BGP中的屬性太多了,若是都重新完完全全的發一遍則費時費資源等)。
5、BGP協議中存在大量的屬性(是一種基于規則的路由協議)
6、BGP協議支持路由認證(幾乎所有的路由協議都支持路由認證,只是BGP的路由認證比較個性,一般的路由認證是在協議本身上實施,BGP的路由認證是做在TCP的可選項里,在TCP的可選項里設置了賬號密碼,所以BGP的路由認證是基于TCP的)
7、支持BGP路由聚合(匯總)
8、BGP是一種非常消耗資源的路由協議(因為BGP的路由量很大,而且每一條BGP中的屬性也很多。如何證明:比如一個路由器上只能運行一個BGP,而一個路由器運行OSPF可以運行多個OSPF,一個路由器上最多起31個OPSF。)
二、適合使用BGP的網絡環境
1、傳輸AS(就是運營商級別的網絡,也就是用戶通過運行商的這個AS去訪問連接這個AS的服務器)
2、多宿主(多出口的意思,比如說一個學校里很多學生老師的用戶,在上網時要接入到運行商,也就是進入到另一個不同的AS比如接入的電信的AS,但是不可能只接入電信這一家AS,還要接入其他的AS,比如移動,聯通等不同的AS,這種就叫做多宿主。一個網絡連接著多個出口,雖然一個學校連接著多出口,多個AS宿主,但是學校是可以不做AS,BGP的,這種對網絡的利用率很低,很多情況下,學校對于網絡的區域出口劃分不合理,對于重要的教學樓什么的地方連接的是穩定性高帶寬高的出口,等這個出口掛掉之后再走另一個出口,而對于宿舍一些地方連接的是帶寬低的出口,等這個出口掛掉之后再走另一個出口。簡而言之就是學校將自己的網絡劃成了好幾部分,某些網絡比較重要的時候,就走穩定的出口,穩定的出口掛了,再走別的,對于學校宿舍等對學校無所謂的地方就走一個帶寬低的出口,這個出口掛了再去走其他出口,這種就很不合理。合理的是我訪問的是誰就走誰的出口,比如訪問的服務器是放在電信的機房,而走的是移動或聯通的出口去訪問,這樣的速度勢必會很慢。正確的是我訪問的服務器機房在電信,就走電信出去,在聯通就走聯通出去等……為什么不做BGP,是因為BGP對設備性能的要求高之外,對工程師還有足夠的一個水平能夠支持和維護這樣大的一個路由條目數量)
3、需要對進入和離開的流量進行強大的策略控制時(使用BGP的最主要原因,不用IGP是因為IGP的屬性很少,來來回回就修改一個metric值。自動化程度越高的協議,它的路由控制越難)
BGP除了速度慢一點,沒有什么其他的缺點。
不適合使用BGP的條件:當自己對BGP知之甚少的時候不要使用BGP(說白點就是不懂BGP就不要使用BGP)除了這個之外能使用BGP就使用BGP最好。
三、BGP鄰居關系
IBGP:內部BGP鄰居
EBGP:外部BGP鄰居
如何區分BGP關系,建立鄰居的雙方都屬于同一個AS的就是IBGP,學到的路由叫做IBGP路由。如果建立鄰居的雙方不屬于同一個AS建立的鄰居關系就是EBGP,學到的路由叫做EBGP路由。
比如下圖的拓撲圖中,R1與R2建立的鄰居關系就是EBGP,R2與R3建立的鄰居關系就是IBGP。R1與R3建立的鄰居關系也是EBGP。在IBGP協議里鄰居關系建立或路由傳遞時,只能在直連之間傳遞(大多數用的組播更新,組播更新地址用的是224.0.0.X,而224.0.0.X的地址用的TTL值默認為1,所以不能跨網段傳遞路由,而BGP為什么行可以跨網段傳遞,是因為它是基于TCP的,TCP是要進行三次握手的,即只要兩個IP之間能相互通信,就能進行三次握手,能夠三次握手BGP就能傳路由,跟中間傳遞的路由器沒有關系,對于中間的路由器而言,它們只知道傳遞的是點對點的TCP數據包,而實質上這里面承載著BGP的路由信息)。
IBGP的防環機制:IBGP水平分割機制(IBGP只傳一條規則,通過一個IBGP鄰居學習的路由不能傳遞給其他的IBGP鄰居);next-hop、起源者屬性,簇ID列表。
未完待續……由于BGP的內容很多,每天盡量更新夠多的BGP詳細內容解釋。