BGP學(xué)習(xí)寶典筆記完整版_第1頁(yè)
BGP學(xué)習(xí)寶典筆記完整版_第2頁(yè)
BGP學(xué)習(xí)寶典筆記完整版_第3頁(yè)
BGP學(xué)習(xí)寶典筆記完整版_第4頁(yè)
BGP學(xué)習(xí)寶典筆記完整版_第5頁(yè)
已閱讀5頁(yè),還剩67頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

BGP學(xué)習(xí)寶典筆記完整版BGP學(xué)習(xí)寶典筆記完整版1目錄ContentsBGP概述BGP工作原理BGP報(bào)文詳解BGP選路目錄ContentsBGP概述BGP概述BGP工作原理BGP報(bào)文詳解BGP選路BGP概述3BGP協(xié)議的產(chǎn)生網(wǎng)絡(luò)收斂狀態(tài),實(shí)現(xiàn)全網(wǎng)信息可達(dá)路由條目數(shù)量驚人(一臺(tái)路由擁有10萬(wàn)乃至100萬(wàn)路由條目)如果網(wǎng)絡(luò)發(fā)生中斷,或者不斷的變化,對(duì)整個(gè)互聯(lián)網(wǎng)造成的巨大動(dòng)蕩,最終造成路由信息不同步;互聯(lián)網(wǎng)中,一個(gè)網(wǎng)絡(luò)的中斷與恢復(fù),沒(méi)有必要通告給網(wǎng)絡(luò)中數(shù)以萬(wàn)計(jì)的路由器此外網(wǎng)絡(luò)中的路由需要實(shí)施路由策略網(wǎng)絡(luò)中需要部署MPLSVPNBGP協(xié)議的產(chǎn)生網(wǎng)絡(luò)收斂狀態(tài),實(shí)現(xiàn)全網(wǎng)信息可達(dá)4自治系統(tǒng)什么是自治系統(tǒng)(AS)

自治系統(tǒng)指由同一個(gè)技術(shù)管理機(jī)構(gòu)管理、使用內(nèi)部路由策略的一些路由器的集合。每個(gè)自治系統(tǒng)都有唯一的自治系統(tǒng)編號(hào)。

自治系統(tǒng)的編號(hào)范圍是1到65535,其中1到65411是注冊(cè)的因特網(wǎng)編號(hào),65412到65535是私有編號(hào)。為什么引入自治系統(tǒng)這一概念?引入自治系統(tǒng)的基本思想就是通過(guò)不同的編號(hào)來(lái)區(qū)分不同的自治系統(tǒng)。AS將一臺(tái)路由器的路由更新限制在一定的范圍內(nèi),最終達(dá)到收斂的狀態(tài)自治系統(tǒng)內(nèi)部的路由協(xié)議——IGP如OSPF、IS-IS、RIP、EIGRP(cisco專(zhuān)有)自治系統(tǒng)之間的路由協(xié)議——BGP如:EGP、BGP自治系統(tǒng)什么是自治系統(tǒng)(AS)5不采用RIP、OSPF的原因:RIP記錄的只有下一跳,沒(méi)有真正定義到目的地的完整路徑,RIP跳數(shù)上限只有16,不適合較大規(guī)模網(wǎng)絡(luò)OSPF的LSDB隨網(wǎng)絡(luò)規(guī)模的增加成幾何數(shù)增長(zhǎng)。BGP的提出是面向AS之間的路由選擇。BGP是基于路徑向量路由的思想,但從設(shè)計(jì)上避免了環(huán)路的產(chǎn)生。BGP要給出到目的地的完整路徑。不關(guān)心跳數(shù)、量度,而是關(guān)心所要經(jīng)過(guò)的自治系統(tǒng)。BGP協(xié)議基本思想不采用RIP、OSPF的原因:BGP協(xié)議基本思想6BGP協(xié)議基本思想BGP是作為EGP路由協(xié)議,主要用來(lái)在AS之間傳遞路由信息在AS之間是一種距離矢量的路由協(xié)議,應(yīng)用特定的屬性避免環(huán)路的發(fā)生路由信息攜帶豐富的屬性傳送協(xié)議:TCP,端口號(hào)179支持CIDR(無(wú)類(lèi)別域間選路)路由更新:只發(fā)送增量路由信息豐富的路由過(guò)濾和路由策略BGP協(xié)議基本思想BGP是作為EGP路由協(xié)議,主要用來(lái)在AS7BGP概述BGP工作原理BGP報(bào)文詳解BGP選路BGP概述8BGP工作機(jī)制AS1AS2AS3AS5AS6AS4AS7傳輸AS多出口ASSTUBASBGP工作機(jī)制AS1AS2AS3AS5AS6AS4AS7傳9BGP問(wèn)題?1、既然BGP用于AS之間的通信,為什么BGP對(duì)等體還有內(nèi)外之分呢?IBGP用于承載外部EBGP更新,使它可以在AS內(nèi)部通過(guò)BGP傳輸。BGP數(shù)據(jù)結(jié)構(gòu):BGP鄰居表:記錄BGP對(duì)等體信息BGP表:記錄到達(dá)目標(biāo)網(wǎng)絡(luò)所有的路徑信息,以及每條BGP更新的屬性路由表:到達(dá)目標(biāo)網(wǎng)絡(luò)的最佳路由2、為什么在有IBGP的情況下,還需要IGP呢?需要IGP解析BGP對(duì)等體的可達(dá)性,保證TCP連接可以建立,IBGP關(guān)系也可以建立BGP問(wèn)題?1、既然BGP用于AS之間的通信,為什么BGP10BGP使用原則多條路徑時(shí),BGPSpeaker選擇最優(yōu)的路徑給自己使用。BGPSpeaker只把自己使用的路由通告給相鄰體。BGPSpeaker把從EBGP獲得的路由向所有相鄰體通告(包括EBGP和IBGP)。BGPSpeaker從IBGP獲得的路由不向它的IBGP相鄰體通告。BGPSpeaker從IBGP獲得的路由是否向它的EBGP相鄰體通告要看IGB與BGP的同步情況而定。連接一建立,BGPSpeaker把自己所有的BGP路由通告給新的相鄰體。BGP使用原則多條路徑時(shí),BGPSpeaker選擇最優(yōu)11協(xié)議報(bào)文報(bào)文名稱(chēng)作用是什么什么時(shí)候發(fā)包OPEN協(xié)商BGP鄰居的各項(xiàng)參數(shù),建立鄰居關(guān)系通過(guò)TCP建立BGP連接,發(fā)送open報(bào)文UPDATE進(jìn)行路由信息的交換連接建立后,有路由需要發(fā)送或路由變化時(shí),發(fā)送UPDATE通告對(duì)端路由信息NOTIFICATION報(bào)告錯(cuò)誤,中止鄰居關(guān)系當(dāng)BGP在運(yùn)行中發(fā)現(xiàn)錯(cuò)誤時(shí),要發(fā)送NOTIFICATION報(bào)文通告BGP對(duì)端KEEPALIVE維持鄰居關(guān)系定時(shí)發(fā)送KEEPALIVE報(bào)文以保持BGP鄰居關(guān)系的有效性Route-refresh為保證網(wǎng)絡(luò)穩(wěn)定,觸發(fā)更新路由的機(jī)制當(dāng)路由策略發(fā)生變化時(shí),觸發(fā)請(qǐng)求鄰居重新通告路由協(xié)議報(bào)文報(bào)文名稱(chēng)作用是什么什么時(shí)候發(fā)包OPEN協(xié)商BGP鄰居12鄰居狀態(tài)機(jī)Peer狀態(tài)名稱(chēng)發(fā)什么包在做什么Idle嘗試建立TCP連接開(kāi)始準(zhǔn)備TCP的連接并監(jiān)視遠(yuǎn)程peer啟動(dòng)TCP連接,啟用BGP時(shí),要準(zhǔn)備足夠的資源Connect發(fā)TCP包正在進(jìn)行TCP連接,等待完成中,認(rèn)證都是在TCP建立期間完成的。如果TCP連接不上則進(jìn)入Active狀態(tài),反復(fù)嘗試連接。Active發(fā)TCP包反復(fù)嘗試TCP連接,OpenSent發(fā)Open包TCP連接建立已經(jīng)成功,開(kāi)始發(fā)送Open包,Open包攜帶參數(shù)協(xié)商對(duì)等體的建立。OpenConfirm發(fā)Keepalive包參數(shù)、能力特性協(xié)商成功,自己開(kāi)始發(fā)送Keepalive包,等待對(duì)方的Keepalive包。Established發(fā)Update包已經(jīng)收到對(duì)方的Keepalive包,雙方能力特性一致,開(kāi)始使用Update通告路由信息。鄰居狀態(tài)機(jī)Peer狀態(tài)名稱(chēng)發(fā)什么包在做什么Idle嘗試建立T13BGP協(xié)議狀態(tài)機(jī)-建立鄰居過(guò)程ActiveOpen-sentOpen-confirmEstablishedIdleConnectTCPconnectionfailsConnect-RetrytimerexpiryStartOthersTCPconnectionfailsErrorErrorErrorKeepAlivetimerexpiryKeepAlivepacketreceived1.KeepAlivetimerexpiry2.Updatereceived3.KeepAlivereceivedTCPconnectionsetupTCPconnectionsetupOthersBGP協(xié)議狀態(tài)機(jī)-建立鄰居過(guò)程ActiveOpen-se14BGP概述BGP工作原理BGP報(bào)文詳解BGP選路BGP概述15BGP報(bào)文詳解Marker:16字節(jié),用于標(biāo)明BGP報(bào)文邊界,所有比特均為“1”Length:2字節(jié),BGP消息總長(zhǎng)度(包括報(bào)文頭在內(nèi)),以字節(jié)為單位,從Marker算起。Type:1字節(jié),BGP消息的類(lèi)型。其取值從1到5,分別表示Open、Update、Notification、Keepalive和Route-refresh消息。BGP報(bào)文詳解Marker:16字節(jié),用于標(biāo)明BGP報(bào)文邊16BGP報(bào)文詳解Open消息Update消息Keepalive消息Notification消息Router-refresh消息其他BGP特性BGP報(bào)文詳解Open消息17Open消息Version:BGP的版本號(hào)。對(duì)于BGP-4來(lái)說(shuō),其值為4。Myautonomoussystem:本地AS號(hào)。AS號(hào)可以確定是EBGP連接還是IBGP連接。Holdtime:保持時(shí)間。在建立對(duì)等體關(guān)系時(shí)兩端要協(xié)商Holdtime,并保持一致。如果在這個(gè)時(shí)間內(nèi)未收到對(duì)端發(fā)來(lái)的Keepalive消息或Update消息,則認(rèn)為BGP連接中斷。RFC規(guī)定兩種實(shí)現(xiàn),一種采用本地配置和收到的OPEN較小值進(jìn)行協(xié)商,不過(guò)這個(gè)值為3。另一種是如果holdtime不一致則斷開(kāi)連接。

BGPidentifier:BGP標(biāo)必須為0或者最小識(shí)符。以IP地址的形式表示,用來(lái)識(shí)別BGP路由器。OptParmLen(OptionalParametersLength):可選參數(shù)的長(zhǎng)度。如果為0則沒(méi)有可選參數(shù)。Optionalparameters:可選參數(shù)。用于多協(xié)議擴(kuò)展(MultiprotocolExtensions)等功能。Open消息Version:BGP的版本號(hào)。對(duì)于BGP-4來(lái)18Open消息-Optionalparameters該字段為T(mén)LV格式,總長(zhǎng)度在OptParmLen中。RFC1711中只定義了一種認(rèn)證格式parameters,type為1AuthenticationData

Auth.CodeAuth.Code:是指認(rèn)證系統(tǒng)AuthenticationData:該部分包括認(rèn)證數(shù)據(jù),長(zhǎng)度由code決定。Open消息-Optionalparameters該字段為19Open消息-CapabilitiesAdvertisement【CA】Capabilitiesadvertisement:OptionalParametertype為2,結(jié)構(gòu)為Code、length、Value,也是個(gè)TLV結(jié)構(gòu)。該部分的作用是向BGP對(duì)等體通告所支持的Capabilities,以便進(jìn)行協(xié)商。如果對(duì)端不支持CA協(xié)商,則在收到包含CA屬性O(shè)PEN報(bào)文后,回應(yīng)一個(gè)帶有error的NOTIFICATIONmessage,其中subcode字段置為Unsupported。之后會(huì)重新進(jìn)行BGP連接的發(fā)起,這次發(fā)送的OPEN報(bào)文中不攜帶CA屬性。如果對(duì)端支持部分CA,也會(huì)在受到CA屬性后,回應(yīng)帶有error的NOTIFICATIONmessage,其中subcode字段置為Unsupported。并且消息中包括其所不支持的CA類(lèi)型。此時(shí)并不需要重新進(jìn)行BGP的連接。CapabilityCodevalue:0為保留,RFC2434中規(guī)定1~63為IETF規(guī)定,64~127用作IANA,采用FCFS的策略定義。128~255為私有。Open消息-CapabilitiesAdvertisem20MultiprotocolExtensionsBGPAFI:協(xié)議族標(biāo)記,0和65535保留,1為IPv4,2為IPv6,4為HDLC,10為X.25,11為IPXReserved:保留位,全0。SAFI:全稱(chēng)為SubsequentAddressFamilyIdentifier(并發(fā)地址族標(biāo)識(shí)):本字段攜帶包含在屬性中的網(wǎng)絡(luò)層可達(dá)信息(NLRI)類(lèi)型的補(bǔ)充信息。主要取值如下1:網(wǎng)絡(luò)層可達(dá)信息NLRI為單播unicast2:網(wǎng)絡(luò)層可達(dá)信息NLRI為組播multicast3:網(wǎng)絡(luò)層可達(dá)信息NLRI為both(單播和組播)MultiprotocolExtensionsBGPAF21BGP擴(kuò)展——MP-BGP傳統(tǒng)的BGP-4只能管理IPv4單播路由信息,對(duì)于使用其它網(wǎng)絡(luò)層協(xié)議(如IPv4組播,IPv6單播、組播)的應(yīng)用,在跨自治系統(tǒng)傳播時(shí)就受到一定限制。為了提供對(duì)多種網(wǎng)絡(luò)層協(xié)議的支持,IETF對(duì)BGP-4進(jìn)行了擴(kuò)展,形成MP-BGP。所有的用戶(hù)私有網(wǎng)絡(luò)在被BGP傳遞時(shí),都加入了RD(路由區(qū)分符),BGP要支持這些RD的傳遞,也需要多協(xié)議的BGP(MP-BGP)BGP-4使用的報(bào)文中,與IPv4地址格式相關(guān)的三條信息都由Update報(bào)文攜帶,這三條信息分別是:NLRI、路徑屬性中的NEXT_HOP、路徑屬性中的AGGREGATOR(該屬性中包含形成聚合路由的BGP發(fā)言者的IP地址)。為實(shí)現(xiàn)對(duì)多種網(wǎng)絡(luò)層協(xié)議的支持,BGP-4需要將網(wǎng)絡(luò)層協(xié)議的信息反映到NLRI及NEXT_HOP。MP-BGP中引入了兩個(gè)新的路徑屬性MP_REACH_NLRI:MultiprotocolReachableNLRI,多協(xié)議可達(dá)NLRI。用于發(fā)布可達(dá)路由及下一跳信息。MP_UNREACH_NLRI:MultiprotocolUnreachableNLRI,多協(xié)議不可達(dá)NLRI。用于撤銷(xiāo)不可達(dá)路由。這兩種屬性都是可選非過(guò)渡(Optionalnon-transitive)的,因此,不提供多協(xié)議能力的BGP發(fā)言者將忽略這兩個(gè)屬性的信息,不把它們傳遞給其它鄰居。MP-BGP采用地址族(AddressFamily)來(lái)區(qū)分不同的網(wǎng)絡(luò)層協(xié)議。目前,系統(tǒng)實(shí)現(xiàn)了多種MP-BGP擴(kuò)展應(yīng)用,包括對(duì)VPN的擴(kuò)展、對(duì)IPv6的擴(kuò)展等。BGP擴(kuò)展——MP-BGP傳統(tǒng)的BGP-4只能管理IPv4單22BGP擴(kuò)展——MP-BGP攜帶MP_REACH_NLRI屬性的UPDATE消息必須同樣攜帶ORIGIN和AS_PATH屬性(存在于EBGP和IBGP交換中)。在IBGP交換這樣一個(gè)消息時(shí),還必須攜帶LOCAL_PREF屬性。如果這個(gè)消息時(shí)來(lái)自于外部“對(duì)端”,本地系統(tǒng)應(yīng)該檢查在AS_PAHT屬性最左邊標(biāo)記的AS是否與發(fā)送這個(gè)消息的“對(duì)端”的AS號(hào)碼相等。否則本地系統(tǒng)應(yīng)該發(fā)送攜帶錯(cuò)誤碼為UPDATE消息出錯(cuò)的NOTIFICATION消息,錯(cuò)誤子碼應(yīng)該設(shè)置為錯(cuò)誤AS_PATH(MalformedAS_PATH)。MP-BGP使用了擴(kuò)展屬性MP_REACH_NLRI。一個(gè)擴(kuò)展之后的NLRI,增加了地址族的描述,以及私網(wǎng)lable和RD。BGP擴(kuò)展——MP-BGP攜帶MP_REACH_NLRI屬23

Open消息

Open消息

24BGP報(bào)文詳解Open消息Update消息Keepalive消息Notification消息Router-refresh消息其他BGP特性BGP報(bào)文詳解Open消息25Update消息Update消息用于在對(duì)等體之間交換路由信息,它既可以發(fā)布可達(dá)路由,也可以撤銷(xiāo)不可達(dá)路由,一條Update報(bào)文可以通告一類(lèi)具有相同路徑屬性的可達(dá)路由,這些路由放在NLRI字段。Unfeasiblerouteslength:不可達(dá)路由字段的長(zhǎng)度,以字節(jié)為單位。如果為0則說(shuō)明沒(méi)有WithdrawnRoutes字段。Withdrawnroutes:不可達(dá)路由的列表。BGPidentifier:BGP標(biāo)識(shí)符。以IP地址的形式表示,用來(lái)識(shí)別BGP路由器。Totalpathattributelength:路徑屬性字段的長(zhǎng)度,以字節(jié)為單位。如果為0則說(shuō)明沒(méi)有NLRI字段。Pathatributes:與NLRI相關(guān)的所有路徑屬性列表,每個(gè)路徑屬性由一個(gè)TLV構(gòu)成。BGP正是根據(jù)這些屬性值來(lái)避免環(huán)路,進(jìn)行選路,協(xié)議擴(kuò)展等。NLRI(NetworkLayerReachabilityInformation):可達(dá)路由的前綴和前綴長(zhǎng)度二元組。Update消息Update消息用于在對(duì)等體之間交換路由信息26

Update消息

Update消27Update消息-withdrawnroutesWithdrawnroutes部分?jǐn)y帶需要撤銷(xiāo)的路由信息,格式是<length,prefix>二元組。Length:表示所要取消的路由掩碼長(zhǎng)度,如果為0則表示默認(rèn)路由。Length其實(shí)是我們常用的位數(shù),后面prefix的長(zhǎng)度為length/8取整。Prefix:長(zhǎng)度可變,只要能表達(dá)清楚足夠的前綴信息即可,后續(xù)的尾部可有可無(wú)。長(zhǎng)度可變,但最小單位必須為字節(jié)。AttributeFlagUpdate消息-withdrawnroutesWithd28Update消息-NLRINLRI:NetworkLayerReachabilityInformation該這是一個(gè)或者多個(gè)(長(zhǎng)度、前綴)用來(lái)公布IP地址前綴和前綴長(zhǎng)度的字節(jié)組。Length:路由前綴長(zhǎng)度,其實(shí)是我們常用的前綴位數(shù),0表示默認(rèn)路由。Prefix:長(zhǎng)度可變,只要能表達(dá)清楚足夠的前綴信息即可。該字段長(zhǎng)度不定,但最小單位必須為字節(jié)。如果公布了地址206.193.160.0/19,長(zhǎng)度部分就是/19,前綴部分是206.193.160.注意:雖然在NLRI字段中可能會(huì)包含多個(gè)前綴,但是每個(gè)更新消息也只描述了一條BGP路由(因?yàn)槁窂綄傩灾幻枋鲆粭l路徑,但是該路徑可能會(huì)到達(dá)多個(gè)目的地)AttributeFlagUpdate消息-NLRINLRI:NetworkLa29Update消息-PathAttributesPathAttributes屬性為可變長(zhǎng)度,每一個(gè)update消息中都存在。格式為attrib<T,L,V>的形式。Flag字段在attribtype之前。Attributetype共2bytes

,前8位為flag,后8位為typecodeBits:含義

01為option表示可選,0為well-know公認(rèn)。該位代表路由器必須識(shí)別該路由屬性。

11為transitive,0為nontransitive,表示可傳遞性,如果前一flag為well-know則此處必須為1。該位表示路由器是否將該路由屬性傳遞下去發(fā)給其他BGP對(duì)等體。

21為partial,0為complete。表示transitive屬性是否為部分支持。well-knownattributes或者optionalnon-transitiveattributes,則此位必須為0。

3ExtendedLength1表示后續(xù)Attrilength字段長(zhǎng)度為2字節(jié),0表示長(zhǎng)度為1字節(jié)。

4~7保留,目前必須為全0

01234567flagUpdate消息-PathAttributesPathA30Update消息-路由屬性公認(rèn)必遵(Well-knownmandatory):所有BGP路由器都必須能夠識(shí)別這種屬性,且必須存在于Update消息中。如果缺少這種屬性,路由信息就會(huì)出錯(cuò)。公認(rèn)可選(Well-knowndiscretionary):所有BGP路由器都可以識(shí)別,但不要求必須存在于Update消息中,可以根據(jù)具體情況來(lái)選擇??蛇x過(guò)渡(Optionaltransitive):在AS之間具有可傳遞性的屬性。BGP路由器可以不支持此屬性,但它仍然會(huì)接收帶有此屬性的路由,并通告給其他對(duì)等體??蛇x非過(guò)渡(Optionalnon-transitive):如果BGP路由器不支持此屬性,該屬性被忽略,且不會(huì)通告給其他對(duì)等體。

Update消息-路由屬性公認(rèn)必遵(Well-knownm31Update消息-Attributetypecode屬性名稱(chēng)typecode類(lèi)別ORIGIN01公認(rèn)必須遵循AS_PATH02公認(rèn)必須遵循NEXT_HOP03公認(rèn)必須遵循MULTI_EXIT_DISC(MED)04可選非過(guò)渡LOCAL_PREF05公認(rèn)可選ATOMIC_AGGREGATE06公認(rèn)可選AGGREGATOR07可選過(guò)渡COMMUNITY08可選過(guò)渡ORIGINATOR_ID09可選非過(guò)渡CLUSTER_LIST10可選非過(guò)渡MP_REACH_NLRI14可選非過(guò)渡MP_UNREACH_NLRI15可選非過(guò)渡EXTENDED_COMMUNITY16可選過(guò)渡AS4_PATH17可選過(guò)渡AS4_AGGREGATOR18可選過(guò)渡Update消息-Attributetypecode屬性32Attributes—ORIGINORIGIN(typecode1):公認(rèn)必須遵循0:IGP協(xié)議從AS內(nèi)部學(xué)到的路由【network手工注入】1:EGP協(xié)議從外部學(xué)來(lái)的路由2:INCOMPLETE【將IGP重分布進(jìn)入BGP表】AttributeFlaglengthAS_numbers(2bytes*N)lengthAttributes—ORIGINORIGIN(type33Attributes—AS_PATHAS_PATH(TypeCode2):公認(rèn)必須遵循由許多ASpath段組成,每個(gè)AS段是由三元組<pathsegmenttype,pathsegmentlength,pathsegmentvalue>組成Pathsegmenttype:1個(gè)字節(jié),1表示updatemessage傳遞經(jīng)過(guò)的AS集合是無(wú)序的,2表示有序。Pathsegmentlength:1個(gè)字節(jié),表示pathsegmentValue中所攜帶的AS的個(gè)數(shù),注意這里不是Value的長(zhǎng)度Pathsegmentvalue:N個(gè)字節(jié)。一個(gè)或者多個(gè)ASnumber號(hào),每個(gè)ASnumber占用2個(gè)字節(jié)。AttributeFlaglengthAS_numbers(2bytes*N)lengthAttributes—AS_PATHAS_PATH(T34Attributes—AS_PATH

AS_PATH的取值定義:AS_SET:一組無(wú)序的AS組合【路由聚合】AS_SEQUENCE:路由穿過(guò)的有序的AS序列AS_CONFED_SEQUENCE:BGP聯(lián)盟中用到。指聯(lián)盟內(nèi)部路由穿過(guò)的有序AS序列?!韭?lián)盟】AS_CONFED_SET:BGP聯(lián)盟中使用。指聯(lián)盟內(nèi)部路由穿過(guò)的無(wú)序AS組合?!韭?lián)盟】Attributes—AS_PATHAS_PATH的取35Attributes—AS_PATHAS_PATH屬性:按一定次序記錄了某條路由從本地到目的地址所要經(jīng)過(guò)的所有AS號(hào)。當(dāng)BGP將一條路由通告到其他AS時(shí),便會(huì)把本地AS號(hào)添加在AS_PATH列表的最前面。收到此路由的BGP路由器根據(jù)AS_PATH屬性就可以知道去目的地址所要經(jīng)過(guò)的AS。離本地AS最近的相鄰AS號(hào)排在前面,其他AS號(hào)按順序依次排列。BGP發(fā)言者在發(fā)布源路由時(shí)AS_PATH必須滿(mǎn)足如下的要求:發(fā)布給自治系統(tǒng)內(nèi)部的路由,AS_PATH必須為empty。即length字段為0發(fā)布給鄰居自治系統(tǒng)的路由,AS_PATH中必須填上自己的AS號(hào),并且只有一個(gè)AS號(hào)。通常情況下,BGP不會(huì)接受AS_PATH中已包含本地AS編號(hào)的路由,從而避免了形成路由環(huán)路的可能。BGP水平分割:考慮到在iBGP之間的路由傳遞也加入防環(huán)機(jī)制,因而強(qiáng)制將BGP路由在AS內(nèi)部只傳一跳。具體操作為:一臺(tái)BGP路由器從eBGP鄰居收到路由,發(fā)給iBGP鄰居之后,iBGP鄰居收到后就不能再傳給其它任何iBGP鄰居,只能傳遞給eBGP鄰居。Attributes—AS_PATHAS_PATH屬性:36EBGP使用AS-Path防止循環(huán)EBGPEBGPR1R2IBGPR4R3R5AS100AS200AS300AS-path(300)18.0.0.0/8AS-path(300)18.0.0.0/8AS-path(100,200,300)18.0.0.0/8AS-path(200,300)18.0.0.0/8EBGP使用AS-Path防止循環(huán)EBGPEBGPR1R2I37AS_PATH應(yīng)用—BGP聯(lián)盟聯(lián)盟(Confederation)是處理AS內(nèi)部的IBGP網(wǎng)絡(luò)連接的另一種方法,它將一個(gè)自治系統(tǒng)劃分為若干個(gè)子自治系統(tǒng),每個(gè)子自治系統(tǒng)內(nèi)部的IBGP對(duì)等體建立全連接關(guān)系,子自治系統(tǒng)之間建立EBGP連接關(guān)系。在不屬于聯(lián)盟的BGP發(fā)言者看來(lái),屬于同一個(gè)聯(lián)盟的多個(gè)子自治系統(tǒng)是一個(gè)整體,外界不需要了解內(nèi)部的子自治系統(tǒng)情況,聯(lián)盟ID就是標(biāo)識(shí)聯(lián)盟這一整體的自治系統(tǒng)號(hào)。BGP發(fā)布者在向同一個(gè)聯(lián)盟內(nèi)部其他AS成員發(fā)布路由時(shí)MED和NEXT_HOP保持不變。BGP在同一個(gè)聯(lián)盟內(nèi)部,可以向不同的AS成員發(fā)送LOCAL_PREFERENCE屬性。聯(lián)盟的缺陷是:從非聯(lián)盟方案向聯(lián)盟方案轉(zhuǎn)變時(shí),要求路由器重新進(jìn)行配置,邏輯拓?fù)湟惨淖冊(cè)诖笮虰GP網(wǎng)絡(luò)中,路由反射器和聯(lián)盟可以被同時(shí)使用。聯(lián)盟依靠AS_PATH字段實(shí)現(xiàn)。AS_PATH應(yīng)用—BGP聯(lián)盟聯(lián)盟(Confederat38BGP聯(lián)盟AS100RTFRTERTD20.0.0.1RTCRTB20.0.0.2AS200RTA40.0.0.140.0.0.230.0.0.230.0.0.1AS65050AS65060RTGAS300BGP聯(lián)盟AS100RTFRTERTD20.0.0.1RT39BGP聯(lián)盟當(dāng)BGP發(fā)布者需要通告(傳播)一個(gè)路由時(shí)同一個(gè)自治系統(tǒng)內(nèi)部不需要修改AS_PATH通告給同一個(gè)聯(lián)盟內(nèi)部其他AS成員如果AS_PATH中第一個(gè)字段是AS_CONFED_SEQUENCE,那么發(fā)布者需要把自己的ASnumber放到該序列的最后如果AS_PATH中第一個(gè)字段不是AS_CONFED_SEQUENCE,那么發(fā)布者需要在前面添加一個(gè)新的AS_CONFED_SEQUENCE字段,并填上自己的聯(lián)盟ID通告給不同的聯(lián)盟成員如果AS_PATH中第一個(gè)字段是AS_CONFEDSEQUENCE,那么刪去所有的該字段和其后的AS_CONFED_SET字段如果AS_PATH中第一個(gè)字段是AS_SEQUENCE,那么發(fā)布者需要把自己的聯(lián)盟ID添加到序列的最后如果AS_PATH中第一個(gè)字段不是AS_SEQUENCE或者已經(jīng)移除了AS_CONFED_SEQUENCE以及AS_CONFED_SET,那么發(fā)布者需要在前面添加一個(gè)新的AS_SEQUENCE字段,并且填上自己的聯(lián)盟IDBGP聯(lián)盟當(dāng)BGP發(fā)布者需要通告(傳播)一個(gè)路由時(shí)40BGP聯(lián)盟當(dāng)BGP發(fā)布一個(gè)源路由的時(shí)候,遵循規(guī)定總結(jié):向同一個(gè)聯(lián)盟同一個(gè)AS成員內(nèi)部發(fā)布路由時(shí),必須包含emptyAS_PATH,即AS_PATH中的length字段為0向同一個(gè)聯(lián)盟其他AS成員發(fā)布路由時(shí),必須包含自己的成員AS號(hào)添加到AS_CONFED_SEQUENCE字段中向其他聯(lián)盟成員發(fā)布路由時(shí),必須包含自己的聯(lián)盟ID添加到AS_SEQUENCE字段中BGP聯(lián)盟當(dāng)BGP發(fā)布一個(gè)源路由的時(shí)候,遵循規(guī)定總結(jié):41Attributes—MEDMULTI_EXIT_DISC(TypeCode4):可選非過(guò)渡Type為04,length字段為04。Value為4字節(jié)的非負(fù)整數(shù)MED屬性?xún)H在相鄰兩個(gè)AS之間交換,收到此屬性的AS一方不會(huì)再將其通告給任何其他第三方AS。MED屬性相當(dāng)于IGP使用的度量值(metrics),它用于判斷流量進(jìn)入AS時(shí)的最佳路由。當(dāng)一個(gè)運(yùn)行BGP的路由器通過(guò)不同的EBGP對(duì)等體得到目的地址相同但下一跳不同的多條路由時(shí),在其它條件相同的情況下,將優(yōu)先選擇MED值較小者作為最佳路由。通常情況下,BGP只比較來(lái)自同一個(gè)AS路由的MED屬性值A(chǔ)ttributes—MEDMULTI_EXIT_DIS42Attributes—LOCAL_PREFLOCAL_PREF(TypeCode5):公認(rèn)可選Type為05,length字段為04。Value為4字節(jié)的非負(fù)整數(shù)LOCAL_PREF屬性?xún)H在IBGP對(duì)等體之間交換,不通告給其他AS。它表明BGP路由器的優(yōu)先級(jí)。如果AS收到其他AS發(fā)來(lái)的LOCAL_PREF屬性則必須忽略。LOCAL_PREF屬性用于判斷流量離開(kāi)AS時(shí)的最佳路由。當(dāng)BGP的路由器通過(guò)不同的IBGP對(duì)等體得到目的地址相同但下一跳不同的多條路由時(shí),將優(yōu)先選擇LOCAL_PREF屬性值較高的路由。Attributes—LOCAL_PREFLOCAL_P43Attributes—路由聚合ATOMIC_AGGREGATE(TypeCode6):公認(rèn)可選Type為06,length字段為0。當(dāng)BGP發(fā)言者對(duì)本地路由進(jìn)行聚合以后,發(fā)布該路由時(shí)必須攜ATOMIC_AGGREGATE

屬性。其他BGP對(duì)等體收到帶有ATOMIC_AGGREGATE的路由時(shí),再把該路由發(fā)布給其他BGP鄰居時(shí)也必須攜帶該屬性。在BGP發(fā)言者發(fā)布攜帶有ATOMIC_AGGREGATE屬性的路由時(shí),其N(xiāo)LRI中不能攜帶比之更精確的路由,也就是必須進(jìn)行路由聚合。例如:如果有自動(dòng)聚合屬性,則發(fā)布該屬性時(shí)NLRI中不能有這樣更為精確的prefixBGP收到一條帶有聚合屬性的路由,也必須確認(rèn)其是否存在環(huán)路,因?yàn)榫酆系脑?,所以該路由?jīng)過(guò)的一些AS可能并沒(méi)有列在AS_PATH列表中Attributes—路由聚合ATOMIC_AGGREG44Attributes—路由聚合路由聚合:擁有龐大路由表的BGP,如果可以盡可能的減少路由表的條目,縮小路由表的空間,可以使用路由表的匯總來(lái)實(shí)現(xiàn)。在BGP中,被稱(chēng)為路由聚合。Automic-aggregate屬性的存在,在默認(rèn)情況下,匯總路由會(huì)將所有明細(xì)路由的AS-PATH去掉。當(dāng)把匯總路由發(fā)送給它的鄰居之后,由于AS-PATH丟失,會(huì)造成路由環(huán)路。AS-SET命令,可以讓匯總路由保留所有的明細(xì)路由的AS-PATH。擁有AS-SET的匯總路由不會(huì)丟失路徑,也不會(huì)攜帶Automic-aggregate屬性。AS-SET可能包含多個(gè)AS,但即使一個(gè)AS-SET中有多個(gè)AS,但在計(jì)算AS-PATH長(zhǎng)度時(shí),置備算作一個(gè)AS。創(chuàng)建路由匯總的BGP路由器被認(rèn)為是該路由的起源,匯總路由在該路由器上為本地路由Attributes—路由聚合路由聚合:45Attributes—路由聚合Attributes—路由聚合46Attributes—CommunityCOMMUNITIES(Type08):可選過(guò)渡。團(tuán)體是共享相同特性的一組目的地(也就是前綴)。每一個(gè)目的地都可以屬于多個(gè)團(tuán)體,所有的具有團(tuán)體屬性的前綴屬于屬性中的團(tuán)體列表內(nèi)。團(tuán)體屬性是一組序列,每一組為4個(gè)字節(jié)。一個(gè)路由可以有多個(gè)團(tuán)體屬性。團(tuán)體屬性分為公認(rèn)和私有的Community。公認(rèn)CommunityNO_ADVERTISE:不通告給任何的BGP對(duì)等體;

NO_EXPORT:不通告給任何EBGP鄰居,將路由在本AS內(nèi)部傳遞;INTERNET:可以通告給所有的其他BGP對(duì)等體。LOCAL-AS:表示本路徑不發(fā)布到本AS外部,當(dāng)配置聯(lián)盟時(shí),本路徑不發(fā)布給其它的自治系統(tǒng)或子自治系統(tǒng)。私有Community使用私有Community,可以將特定的路由設(shè)置私有Community,并將其傳遞給所有鄰居,最終所有路由器都對(duì)擁有該私有Community的路由配置策略。并且對(duì)大量路由設(shè)置私有Community只需要在一臺(tái)路由器上完成后,發(fā)給所有鄰居即可,私有Community可以減少網(wǎng)絡(luò)中路由器對(duì)相同路由的匹配工作,這就是標(biāo)簽的效果Attributes—CommunityCOMMUNIT47Community團(tuán)體屬性使用私有團(tuán)體是對(duì)特定用戶(hù)有意義的數(shù)字??梢岳斫鉃锽GP路由的自定義標(biāo)簽。四個(gè)字節(jié),為增加可讀性,可配置為aa:nn,一般aa建議為AS號(hào),nn代表業(yè)務(wù)。默認(rèn)路由器支持單個(gè)32bit格式,若要支持AS:NN格式,必須開(kāi)啟BGP-CommunityNew-Format功能。缺省在peer之間不傳遞community屬性,必須針對(duì)特定peer使用【也就是BGPCommunity必須明確要求傳遞,否則另?yè)?jù)收不到相應(yīng)Community】neighbor××××send-community才能將community屬性發(fā)送出去。Community團(tuán)體屬性使用私有團(tuán)體是對(duì)特定用戶(hù)有意義的數(shù)48團(tuán)體擴(kuò)展屬性—RT(路由對(duì)象)EXTENDED_COMMUNITY為可選過(guò)渡,TYPE為16擴(kuò)展的community有如下兩種格式:其中type字段為0x0002或者0x0102時(shí)表示RT。一個(gè)擴(kuò)展團(tuán)體屬性中可以攜帶多個(gè)RTRT是BGP擴(kuò)展團(tuán)體屬性,分為輸入和輸出兩種。可以理解為什么樣的RD值可以進(jìn)入該VRF或者什么樣RD值的路由將被該VRF導(dǎo)出。如果路由的RD值和RT所允許的值不匹配,將不能進(jìn)入或者出去的,這樣不同RD的用戶(hù)也就不能通信,想要通信,就配置為相同的RD。團(tuán)體擴(kuò)展屬性—RT(路由對(duì)象)EXTENDED_COMM49Attributes—CLUSTER_LISTCLUSTER_LIST(TypeCode10):可選非過(guò)渡Code為10,length字段為CLUSTER_LIST的長(zhǎng)度,每個(gè)Cluster占用4bytes。路由反射器和它的客戶(hù)組成一個(gè)集群(Cluster)當(dāng)路由反射器RR反射路由的時(shí)候必須將本地的群ID加入到CLUSTER_LIST中。如果此時(shí)CLUSTER_LIST為空,那么必須創(chuàng)建CLUSTER_LIST屬性。通過(guò)該屬性,Reflector在將路由反射出去時(shí),都會(huì)寫(xiě)入自己的ClusterID,在路由發(fā)送到其它Cluster后,其它Reflector在寫(xiě)入自己的ClusterID時(shí),還會(huì)保留之前的ClusterID,就像保留AS_Path一樣,如果收到一條路由帶有與自己相同的ClusterID,就說(shuō)明路由發(fā)回了原來(lái)的Cluster,則認(rèn)為環(huán)路產(chǎn)生,將接收到的路由丟失,以此來(lái)防止環(huán)路。Attributes—CLUSTER_LISTCLUST50Attributes—ORIGINATOR_IDORIGINATOR_ID(TypeCode9):可選非過(guò)渡Type為09,length字段為04。Value為4字節(jié)的非負(fù)整數(shù)該屬性是在路由反射器RR反射路由的時(shí)候被創(chuàng)建。BGP發(fā)布者不能夠再次創(chuàng)建該屬性,如果該屬性已經(jīng)存在在路由是從別的AS發(fā)過(guò)來(lái)時(shí),OriginatorID就是AS邊界接收的第一臺(tái)BGP路由器Attributes—ORIGINATOR_IDORIG51BGP-路由反射器為保證IBGP對(duì)等體之間的連通性,需要在IBGP對(duì)等體之間建立全連接關(guān)系。假設(shè)在一個(gè)AS內(nèi)部有n臺(tái)路由器,那么應(yīng)該建立的IBGP連接數(shù)就為n(n-1)/2。當(dāng)IBGP對(duì)等體數(shù)目很多時(shí),對(duì)網(wǎng)絡(luò)資源和CPU資源的消耗都很大。解決上述問(wèn)題的方法很多,但是在解決上述主要問(wèn)題的同時(shí)還必須滿(mǎn)足如下幾個(gè)標(biāo)準(zhǔn):簡(jiǎn)單:必須易于配置同時(shí)也易于理解容易轉(zhuǎn)變:在不改變拓?fù)浜妥灾蜗到y(tǒng)的前提下,能夠?qū)⑷B接的拓?fù)滢D(zhuǎn)變。“聯(lián)盟”技術(shù)在這點(diǎn)上就做得不夠好,對(duì)管理者來(lái)說(shuō)是不幸的。兼容性:必須保證在IBGP發(fā)言者之間的連接只有原自治系統(tǒng)或者域全連接的一部分的情況下,不丟失任何的路由信息。實(shí)現(xiàn)技術(shù)就是——BGPRouteReflectorBGP-路由反射器為保證IBGP對(duì)等體之間的連通性,需要在I52clientclientnonclientAS100RRAS200BGP-路由反射器RR從clients和nonclients收路由更新后路由反射的規(guī)則按照BGP的基本選路原則,選出最佳路由,只通告最佳路由從client收到的更新,反射到nonclients和clients從nonclient收到的更新,反射到clients從EBGP鄰居收到的更新,反射到所有nonclients和clientsclientclientnonclientAS100RRAS53BGP—路由反射器EBGPNon-clientRBRCRARDAS100AS200RoutereflectorIBGPclientclientclientclientRERFBGP—路由反射器EBGPNon-clientRBRCR54BGP—路由反射器總結(jié)RR通過(guò)引入Originator–id和Cluster-list防止循環(huán)Originator–id可選非傳遞屬性由RR建立,使用始發(fā)路由器的router-id,收到路由,發(fā)現(xiàn)自己的router-id則丟棄Cluster-list可選非傳遞屬性由update經(jīng)過(guò)的cluster-id組成,cluster-id的值一般使用RR的router-id,值不同認(rèn)為是兩個(gè)不同的簇,RR收到cluster-list中有自己的cluster-id,則丟棄。RR可能導(dǎo)致單點(diǎn)故障,冗余時(shí),可路由反射器冗余備份配置bgpcluster-id××××指定cluster-id,多臺(tái)冗余備份的RR設(shè)備設(shè)置相同的cluster-id配置反射器neighbor××××route-reflector-clientRR可以嵌套BGP—路由反射器總結(jié)RR通過(guò)引入Originator55BGP報(bào)文詳解Open消息Update消息Keepalive消息Notification消息Router-refresh消息其他BGP特性BGP報(bào)文詳解Open消息56Keepalive消息BGP使用keepalive消息來(lái)維護(hù)鄰居關(guān)系。該消息類(lèi)型為04,消息格式中只包含報(bào)文頭,沒(méi)有任何其他字段。BGP的holdertimer內(nèi)如果沒(méi)有收到對(duì)端發(fā)來(lái)的keepalive則鄰居斷開(kāi)。keepalivetimer最大應(yīng)該不超過(guò)holdertimer的三分之一。最小應(yīng)該大于等于1秒。如果holdertimer為0,那么keepalive報(bào)文不能周期性的發(fā)送。Keepalive報(bào)文只有報(bào)文頭Keepalive消息BGP使用keepalive消息來(lái)維護(hù)57

Keepalive消息

Keepaliv58BGP報(bào)文詳解Open消息Update消息Keepalive消息Notification消息Router-refresh消息其他BGP特性BGP報(bào)文詳解Open消息59Notification消息當(dāng)BGP檢測(cè)到錯(cuò)誤狀態(tài)時(shí),就向?qū)Φ润w發(fā)出Notification消息,之后BGP連接會(huì)立即中斷ErrorCode:差錯(cuò)碼,指定錯(cuò)誤類(lèi)型,1bytes。ErrorSubcode:差錯(cuò)子碼,錯(cuò)誤類(lèi)型的詳細(xì)信息,1bytesData:用于輔助發(fā)現(xiàn)錯(cuò)誤的原因,它的內(nèi)容依賴(lài)于具體的差錯(cuò)碼和差錯(cuò)子碼,記錄的是出錯(cuò)部分的數(shù)據(jù),長(zhǎng)度不固定。Notification消息當(dāng)BGP檢測(cè)到錯(cuò)誤狀態(tài)時(shí),就向?qū)?0Notification消息—ErrorcodeErrorCodeName1MessageHeaderError2OPENMessageError3UPDATEMessageError4HoldTimerExpired5FiniteStateMachineError6CeaseSubCodeMessageHeaderError1ConnectionNotSynchronized2BadMessageLength3BadMessageType

SubCodeOPENMessageErrorsubcodes1UnsupportedVersionNumber2BadPeerAS3BadBGPIdentifier4UnsupportedOptionalParameter5AuthenticationFailure6UnacceptableHoldTime7UnsupportedCapability

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論