版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
BGP路由協(xié)議詳解(完整篇)BGP路由協(xié)議詳解(完整篇)作者:張選波此BGP協(xié)議的內容也不算太難,一些關于BGP的高級應用,會在以后MPLS協(xié)議和MPLS流量工程中的內容中會更深入的講解!希望通過本文檔能幫助那些愛好網(wǎng)絡知識和那些參加CCIE考試的網(wǎng)友們提供一些幫助。BGPBGP2012LeroyLee目錄第1章BGP的概況 31.1BGP的特性 31.2BGP的三張表 31.3BGP消息類型 5建立鄰居的過程 11建立IBGP鄰居 13建立EBGP鄰居 131.7neighborip-addressremote-asnumber命令 131.8IBGP的同步 14第2章BGP屬性 172.1AS路徑屬性(AS-path) 18源頭屬性(Origin) 22下一跳屬性(NEXT_HOP) 22本地優(yōu)先級屬性(Local_preference) 28原子聚合屬性 30權重屬性 312.7MED屬性 32共同體屬性 35第3章BGP路由匯總 37第4章BGP路由決策 39第5章路由翻動(routeflaps)和路由懲罰(routedampening) 42第6章路由反射器 46第7章BGP聯(lián)邦 47第8章配置樣例1 49第9章配置樣例2 61目錄第1章BGP的概況 11.1BGP的特性 11.2BGP的三張表 11.3BGP消息類型 3建立鄰居的過程 9建立IBGP鄰居 11建立EBGP鄰居 111.7neighborip-addressremote-asnumber命令 111.8IBGP的同步 13第2章BGP屬性 152.1AS路徑屬性(AS-path) 17源頭屬性(Origin) 20下一跳屬性(NEXT_HOP) 21本地優(yōu)先級屬性(Local_preference) 27原子聚合屬性 29權重屬性 292.7MED屬性 30共同體屬性 34第3章BGP路由匯總 36第4章BGP路由決策 38第5章路由翻動(routeflaps)和路由懲罰(routedampening) 41第6章路由反射器 45第7章BGP聯(lián)邦 46第8章配置樣例1 48第9章配置樣例2 60BGP的概況BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定義的;一個路由器只能屬于一個AS。AS的范圍從1-65535(64512-65535是私有AS號),RFC1930提供了AS號使用指南。BGP的主旨是提供一種域間路由選擇系統(tǒng),確保自主系統(tǒng)只能夠無環(huán)地交換路由選擇信息,BGP路由器交換有關前往目標網(wǎng)絡的路徑信息。BGP是一種基于策略的路由選擇協(xié)議,BGP在確定最佳路徑時考慮的不是速度,而是讓AS能夠根據(jù)多種BGP屬性來控制數(shù)據(jù)流的傳輸。BGP的特性BGP將傳輸控制協(xié)議(TCP)用作其傳輸協(xié)議。是可靠傳輸,運行在TCP的179端口上(目的端口)。由于傳輸是可靠的,所以BGP0使用增量更新,在可靠的鏈路上不需要使用定期更新,所以BGP使用觸發(fā)更新。類似于OSPF和ISIS路由協(xié)議的Hello報文,BGP使用keepalive周期性地發(fā)送存活消息(60s)(維持鄰居關系)。BGP在接收更新分組的時候,TCP使用滑動窗口,接收方在發(fā)送方窗口達到一半的時候進行確定,不同于OSPF等路由協(xié)議使用1-to-1窗口。豐富的屬性值可以組建可擴展的巨大的網(wǎng)絡BGP的三張表鄰居關系表所有BGP鄰居轉發(fā)數(shù)據(jù)庫表記錄每個鄰居的網(wǎng)絡包含多條路徑去往同一目的地,通過不同屬性判斷最好路徑數(shù)據(jù)庫包括BGP屬性路由表最佳路徑放入路由表中EBGP路由(從外部AS獲悉的BGP路由)的管理距離為20IBGP路由(從AS系統(tǒng)獲悉的路由)管理距離為200如下圖所示。鄰居表,包含與之建立BGP連接的鄰居使用命令showipbgpsummary可以查看到Router#shipbgpsummaryBGProuteridentifier,localASnumber100BGPtableversionis8,mainroutingtableversion85networkentriesusing585bytesofmemory6pathentriesusing312bytesofmemory4/3BGPpath/bestpathattributeentriesusing496bytesofmemory1BGPAS-PATHentriesusing24bytesofmemory0BGProute-mapcacheentriesusing0bytesofmemory0BGPfilter-listcacheentriesusing0bytesofmemoryBGPusing1417totalbytesofmemoryBGPactivity5/0prefixes,6/0paths,scaninterval60secsNeighborVASMsgRcvdMsgSentTblVerInQOutQUp/DownState/PfxRcd4100141880000:09:324200121680000:07:031轉發(fā)表,從鄰居那里獲悉的的所有路由都被加入到BGP轉發(fā)表中。使用命令showipbgp可以查看Router#shipbgpStatuscodes:ssuppressed,ddamped,hhistory,*valid,>best,i-internal,rRIB-failure,SStaleOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfWeightPath*i01000i*>i01000i*>032768i*>00200i路由表,BGP路由選擇進程從BGP轉發(fā)表中選出前往每個網(wǎng)絡的最佳路由,并加入到路由表中。使用命令showiproutebgp可以查看Router#shiproutebgpB/24[200/0]via,00:13:11B/24[20/0]via,00:11:19BGP消息類型open:用來建立最初的BGP連接。(包含hold-time,router-id)Keepalive:對等體之間周期性的交換這些消息以保持會話有效。(默認60秒)Update:對等體之間使用這些消息來交換網(wǎng)絡層可達性信息。Notification:這些消息用來通知出錯信息。所有的BGP分組共享同樣的公有首部,在學習不同類型的分組之前,先討論公共首部,如下圖所示,這個首部的字段如下。標記:這個16字節(jié)標記字段保留給鑒別用長度:這個2字節(jié)字段定義包括首部在內的報文總長度類型:這個1字節(jié)段定義分組的類型,用數(shù)值1至4定義BGP消息類型打開消息:主要是利用此報文建立鄰居,運行BGP的路由器打開與鄰居的TCP連接,并發(fā)送打開報文,如果鄰居接受這種鄰居關系,由響應保活報文。打開報文格式如下所示。版本:這個1字節(jié)字段定義BGP的版本,當前的版本是4自治系統(tǒng):這個2字節(jié)字段定義自治系統(tǒng)號。保持時間:這個2字節(jié)字段定義一方從另一方收到?;顖笪幕蚋聢笪闹八涍^的最大秒數(shù),若路由器在保持時間的期間內沒有收到這些報文中的一個,就認為對方是不工作的。BGP協(xié)議標識:這是2字節(jié)字段,這定義發(fā)送打開報文的路由器,為此,這個路由器通常使用它的IP地址中的一個作為BGP標識符。選項長度:打開報文還可以包含某些選項參數(shù),若包含,則這個1字節(jié)字段定義選項參數(shù)總長度,若沒有選項參數(shù),則這個字段的值為0選項參數(shù):若選項參數(shù)長度的值不是0,則表示有某些選項參數(shù),每一個選項參數(shù)本身又有兩個字段,參數(shù)長度和參數(shù)值,到現(xiàn)在已定義的唯一的選項參數(shù)是鑒別。如下圖是采用ethereal采集到的BGP的打開消息報文。更新報文:更新報文是BGP協(xié)議的核心,路由器使用它來撤銷以前已通知的終點和宣布到一個新終點的路由,或兩者都有,應該注意:BGP可以撤銷好幾個在以前曾通知過的終點,但在單個更新報文中則只能通知一個新終點,如下所示。不可行路由長度:這個2字節(jié)字段定義下一字段的長度。撤銷路由:這個字段列出必須從以前通知的清單中刪除的所有路由路徑屬性長度:這個2字節(jié)字段定義下一個字段的長度路徑屬性:這個字段定義到這個報文宣布可達性的網(wǎng)絡路徑屬性網(wǎng)絡層可達性信息:這個字段定義這個報文真正通知的網(wǎng)絡。它有一個長度字段和一個IP地址前綴,長度定義前綴中的位數(shù)。前綴定義這個網(wǎng)絡地址的共同部分。例如,若這個網(wǎng)絡是/24,則網(wǎng)絡前綴是24而前綴是123.1.10。下圖為,是采用ethereal采集到的BGP的更新消息報文。保活報文:是用來告訴對方自己是工作的,保活報文只包括公共首部,如下圖所示。下圖為,是采用ethereal采集到的BGP的保活報文。通知報文:當檢測出差錯狀態(tài)或路由器打算關閉連接時,路由器就發(fā)送通知報文,如下圖所示。差錯碼:這個1字節(jié)字段定義差錯的種類差錯子碼:這個1字節(jié)字段進一步定義每一種差錯的類型差錯數(shù)據(jù):這個字段可用來給出關于該差錯的更多的診斷信息具體的差錯碼,如下表所示。差錯碼差錯碼說明差錯子碼說明1報文首部差錯3種不同的子碼:同步問題(1),壞的報文長度(2),壞的報文類型(3)2打開報文差錯6種不同的子碼:不支持的版本(1),壞的對等AS(2),壞的BGP標識符(3),不支持的可選參數(shù)(4),鑒別失敗(5),不可接受的保持時間(6)3更新報文差錯11種不同的子碼:錯誤形成的屬性表(1),不能識別的熟知屬性(2),丟失熟知屬性(3),屬性標志差錯(4),屬性長度差錯(5),非法起點屬性(6),AS路由選擇環(huán)路(7),無效的下一路屬性(8),可選屬性差錯(9),無效的網(wǎng)絡字段(10),錯誤形成的AS_PATH(11)4保持計時器截止期到未定義子碼5有限狀態(tài)機差錯定義過程的差錯,未定義子碼6關閉未定義子碼下圖為,是采用ethereal采集到的BGP的通知報文。建立鄰居的過程在兩個BGP發(fā)言人交換信息之前,BGP都要求建立鄰居關系,BGP不是動態(tài)地發(fā)現(xiàn)所感興趣的運行BGP的路由器,相反,BGP使用一個特殊的鄰居IP地址來配置的。BGP使用周期性的Keepalive分組來確認BGP鄰居的可訪問性。Keepalive計時器是保持時間(HoldTime)的三分之一,如果發(fā)給某一特定BGP鄰居三個連續(xù)的Keepalive分組都丟失的話,保持時間計時器超時,那個鄰居被視為不可達,RFC1771對保持時間的建議是90秒,Keepalive計時器的建議值是30秒。按照RFC1771,BGP建立鄰居關系要經歷以下幾個階段,如下圖所示。Idle:在此狀態(tài)下不分配網(wǎng)絡資源,不允許傳入的BGP連接。當在持續(xù)性差錯條件下,經常性的重啟會導致波動。因此,在第一次進入到空閑狀態(tài)后,路由器會設置連接重試定時器,在定時器到期時才會重新啟動BGP,思科的初始連接重試時間為60秒,以后每次連接重試時間都是之前的兩倍,也就是說,連接等待時間呈指數(shù)關系遞增。Connect:(已經建立完成了TCP三次握手),BGP等待TCP連接完成,如果連接成功,BGP在發(fā)送了OPEN分組給對方之后,狀態(tài)機變?yōu)镺penSent狀態(tài),如果連接失敗,根據(jù)失敗的原因,狀態(tài)機可能演變到Active,或是保持Connect,或是返回Idle。Active:在這個狀態(tài)下,初始化一個TCP連接來建立BGP間的鄰居關系。如果連接成功,BGP在發(fā)送了OPEN分組給對方之后,狀態(tài)機變?yōu)镺penSent狀態(tài),如果連接失敗,可能仍處在Active狀態(tài)或返回Idle狀態(tài)。OpenSent:BGP發(fā)送OPEN分組給對方之后,BGP在這一狀態(tài)下等待OPEN的回應分組,如果回應分組成功收到,BGP狀態(tài)變?yōu)镺penConfirm,并給對方發(fā)送一條Keepalive分組,如果沒有接到回應分組,BGP狀態(tài)重新變?yōu)镮dle或是Active。OpenConfirm:這時,距離最后的Established狀態(tài)只差一步,BGP在這個狀態(tài)下等待對方的Keepalive分組,如果成功接收,狀態(tài)變?yōu)镋stablished,否則,因為出現(xiàn)錯誤,BGP狀態(tài)將重新變?yōu)镮dle。Established:這是BGP對等體之間可以交換信息的狀態(tài),可交換的信息包括UPDATE分組、KeepAlive分組和Notification分組。connect和active都是TCP連接階段,ACTIVE是發(fā)起方,connect是應答方??梢允褂妹顂howipbgpsummary、debugipbgpevents、debugipbgp來查看。Router#debugipbgpBGPdebuggingisonforaddressfamily:IPv4Unicast*Jun2322:00:05.619:BGP:wentfromIdletoActive*Jun2322:00:05.627:BGP:openactivedelayed30128ms(35000msmax,28%jitter)*Jun2322:00:06.219:BGP:wentfromActivetoIdle*Jun2322:00:06.219:BGP:wentfromIdletoConnect*Jun2322:00:06.227:BGP:rcvmessagetype1,length(excl.header)26*Jun2322:00:06.227:BGP:rcvOPEN,version4,holdtime180seconds*Jun2322:00:06.231:BGP:wentfromConnecttoOpenSent*Jun2322:00:06.231:BGP:sendingOPEN,version4,myas:100,holdtime180seconds*Jun2322:00:06.231:BGP:rcvOPENw/OPTIONparameterlen:16*Jun2322:00:06.231:BGP:rcvdOPENw/optionalparametertype2(Capability)len6*Jun2322:00:06.235:BGP:OPENhasCAPABILITYcode:1,length4*Jun2322:00:06.235:BGP:OPENhasMP_EXTCAPforafi/safi:1/1*Jun2322:00:06.235:BGP:rcvdOPENw/optionalparametertype2(Capability)len2*Jun2322:00:06.235:BGP:OPENhasCAPABILITYcode:128,length0*Jun2322:00:06.239:BGP:OPENhasROUTE-REFRESHcapability(old)foralladdress-families*Jun2322:00:06.239:BGP:rcvdOPENw/optionalparametertype2(Capability)len2*Jun2322:00:06.239:BGP:OPENhasCAPABILITYcode:2,length0*Jun2322:00:06.239:BGP:OPENhasROUTE-REFRESHcapability(new)foralladdress-familiesBGP:rcvdOPENw/remoteAS200*Jun2322:00:06.243:BGP:wentfromOpenSenttoOpenConfirm*Jun2322:00:06.243:BGP:sendmessagetype1,length(incl.header)45*Jun2322:00:06.359:BGP:wentfromOpenConfirmtoEstablished*Jun2322:00:06.363:%BGP-5-ADJCHANGE:neighborUp建立IBGP鄰居IBGP運行在AS內部,不需要直連。IBGP有水平分割,建議使用FullMesh,由于FullMesh不具有擴展性,為了解決IBGP的FullMesh問題,使用路由反射器(RR)和聯(lián)邦兩種方法來解決。主要減少了backboneIGP中的路由。Neighbor后所指的地址可達。發(fā)起方不能是缺省路由,應答方不能是缺省路由??梢允褂孟旅鎯煞N方法來建立IBGP鄰居:鄰居之間可以通過各自的一個物理接口建立對等關系,該對等關系是通過屬于它們共享的子網(wǎng)的IP地址來建立的。鄰居之間也可以通過使用環(huán)回接口建立對等關系。在IBGP中,由于假定了IBGP鄰居在物理上直接相連的可能性不大,所以將IP分組頭中的TTL域設置為255。建立EBGP鄰居EBGP運行在AS與AS之間的邊界路由器上,默認情況下,需要直連或使用靜態(tài)路由,如果不是直連,必須指EBGP多跳,Neighborx.x.x.xebgp-multihop[1-255]不選擇為最大值,255跳??梢允褂孟旅鎯煞N方法來建立EBGP鄰居:鄰居之間可以通過各自的一個物理接口建立對等關系。鄰居之間也可以通過使用環(huán)回接口建立對等關系。neighborip-addressremote-asnumber命令例:neighborremote-as100指定對方屬于哪一個AS。所指的地址,必須在IGP中可達。A、允許鄰居用這個地址來訪問我的179端口,但沒有指明訪問本路由器的哪個地址,只檢查源地址。B、本路由器以更新源地址去訪問neighbor后面這個地址的179端口,是否可以建立TCP鏈接要看對方是否允許我的更新源來訪問它。示例:R1/R2兩臺路由器運行RIPv2,都將環(huán)回口宣告進RIP。這時假如在兩臺路由器之間運行IBGP鄰居關系:R1:neighborremote-as1R2:neighborremote-as1雙方都沒有寫更新源。(neighborx.x.x.xupdate-sourcelo0代表本路由器的更新源為lo0口,BGP的包以這個接口的地址為源地址發(fā)送出去。)一邊指環(huán)回口,一邊指直連接口??梢越⑧従?。這里有2個TCP的session,其中只有R1去訪問R2的環(huán)回口的179端口的TCPsession可以建立??梢杂胹howtcpbrief查看。Router#shtcpbriefTCBLocalAddressForeignAddress(state)65693960.51124.179ESTAB這時在R2上寫上確定更新源命令:neighborupdate-sourcelo1,這時即可建立2條TCPsession。可以使用命令Showtcpbrief查看到2條TCPsession在建立,當一條establish完成后,另一條過會即消失。Router#shtcpbriefTCBLocalAddressForeignAddress(state)65693960.51124.179CLOSED65693E14.37992.179ESTABRouter#shtcpbriefTCBLocalAddressForeignAddress(state).1.37992.179ESTAB注:路由器建立BGP鄰居寫兩條正確的neighbor命令,是為了冗余。IBGP的同步BGP同步規(guī)則指出,BGP路由器不應用使用通過IBGP獲悉的路由或將其通告給外部鄰居,除非該路由是本地的或是通過IGP獲悉的。同步開啟意味著,從一個IBGP鄰居學來的路由,除非從IGP中也同樣學習到,否則不可能被選為最優(yōu)。如果IGP為OSPF,那么在IGP中,這些前綴的router-id也必須與通告這些前綴的bgp的router-id相匹配。才有可能被選為最優(yōu)。實例說明:如下圖所示R1、R2、R3同為OSPFarea0中路由器(每臺路由器的router-id如上圖所示),R2上一條路由/24宣告進OSPF。R1、R3運行IBGP,R1將/24的前綴引入BGP,傳給R3。這時R3既從OSPFarea0中的R2學習到該前綴,又從IBGP對等體R1,學習到該前綴,如果R3的synchronizaion是開啟的,檢查同步,在R3的BGP轉發(fā)表里:R1routerospf10log-adjacency-changesnetwork55area0network55area0!routerbgp100synchronizationbgplog-neighbor-changesredistributeospf10neighborremote-as100noauto-summaryR3routerospf10log-adjacency-changesnetwork55area0!routerbgp100synchronizationbgplog-neighbor-changesneighborremote-as100noauto-summaryR3#shipbgpStatuscodes:ssuppressed,ddamped,hhistory,*valid,>best,i-internal,rRIB-failure,SStaleOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfWeightPathR3#shipbgpBGProutingtableentryfor/32,version26Paths:(1available,nobestpath)NotadvertisedtoanypeerLocal(metric20)from()Originincomplete,metric11,localpref100,valid,internal,notsynchronized說明同步檢查沒有通過,當把R1的bgp的router-id改為時,R3這時檢查同步就可以通過了。R1routerospf10log-adjacency-changesnetwork55area0network55area0!routerbgp100synchronizationbgprouter-idbgplog-neighbor-changesredistributeospf10neighborremote-as100noauto-summaryR3#shipbgpStatuscodes:ssuppressed,ddamped,hhistory,*valid,>best,i-internal,rRIB-failure,SStaleOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfWeightPathR3#shipbgpBGProutingtableentryfor/32,version35Paths:(1available,best#1,tableDefault-IP-Routing-Table,RIB-failure(17))Flag:0x820NotadvertisedtoanypeerLocal(metric20)from()Originincomplete,metric11,localpref100,valid,internal,synchronized,best關閉同步的條件將EBGP的路由重分布進IGP本AS不為其他AS提供穿越服務(末節(jié)的AS)穿越路徑上所有路由器都運行BGPBGP屬性路由器發(fā)送關于目標網(wǎng)絡的BGP更新消息,更新的度量值被稱為路徑屬性。屬性可以是公認的或可選的、強制的或自由決定的、傳遞的或非傳遞的。屬性也可以是部分的。并非組織的和有組合都是合法的,路徑屬性分為4類:1——公認強制的2——公認自由決定的3——可選傳遞的4——可選非傳遞的只有可選傳遞屬性可被標記為部分的公認屬性是公認所有BGP實現(xiàn)都必須能夠識別的屬性。這早些屬性被傳遞給BGP鄰居。公認強制屬性必須出現(xiàn)在路由描述中,公認自由決定屬性可以不出現(xiàn)在路由描述中可選屬性非公認屬性被稱為可選的,可選屬性可以是傳遞的或非傳遞的可選屬性不要求所有的BGP實現(xiàn)都支持對于不支持的可選傳遞屬性,路由器將其原封不動地傳遞給其他BGP路由器,在這種情況下,屬性被標記為部分的。對于可選非傳遞屬性,路由器必須將其刪除,而不將其傳遞給其他BGP路由器BGP定義屬性公認強制屬性公認自由決定可選傳遞屬性可選非傳遞屬性BGP每條更新消息都有一個長度可變的路徑屬性序列<屬性類型,屬性長度,屬性值>,如果第1比特是0,則屬于是公認屬性,如果它是1,則該屬性是任選屬性,如果第2比特是0,則該屬性是不可傳遞的,如果它是1,則屬性是可傳遞的,公認屬性總是可傳遞的,屬性標志域中的第3個比特指示任選可傳遞屬性中的信息是部分的(值為1)還是完整的(值為0),第4個比特確定該屬性長度是1字還是2字節(jié),標志域其他4個比特總為0.屬性類型代碼字節(jié)含有屬性代碼。如下圖所示。AS路徑屬性(AS-path)AS_PATH是一個公認必選的屬性,它用AS號的順序來描述AS間的路徑或到NLRI所明確的目的地的路由。當每個運行運行BGP的路由器發(fā)起一條路由——當它在自己的AS域內公布一個有關目的地NLRI——它將自己的AS號附加到AS_PATH中。當后續(xù)的運行BGP的路由器向外部的對端公布路由,它將自己的AS號附加到AS_PATH中。AS可以描述所有它經過的自治系統(tǒng),以最近的AS開始,以發(fā)起者的AS結束。如下圖所示。只有將更新消息發(fā)送給在另一個AS域內的鄰居時,BGP路由器才將它的AS號加到AS_PATH中,也就是說只有在兩個EBGP對等體之間公布路由時,AS號才被附加到AS_PATH中??梢酝ㄟ^使用AS附加改變其公布路由的AS_PATH來影響數(shù)據(jù)流的流向。AS_PATH屬性的另一個功能就是避免環(huán)路,如果BGP路由器從它的外部鄰居收到一條路由,而該路由AS_PATH包含這個BGP路由器自己的AS號。于是該路由器就知道是條環(huán)路路由。如下圖所示。實例說明:如圖所示??梢詫⑺接械腁S號進行隱藏,如下配置所示。下面是AS屬性的另一個實例,如下圖所示。R1在發(fā)送更新的時候,剝除私有AS號;并且不將AS100的路由傳播給其客戶路由器R3,配置如下所示。聚合后繼承明細路由的屬性,在大括號里面的as-path在計算長度時,只算一個。在聯(lián)盟內小括號里面的AS號,在選路時,不計算到as-path長度里面。增加as-path的長度,可以用route-map里面的setas-pathprepend來做,如:neighborroute-mapAS{in|out}route-mapASsetas-pathprepend1010在neighbor的入向做as-pathprepend。是在as-path靠近我的地方加長度,如:10102i。1010是新加的。而在neighbor的出向做as-pathprepend。是在AS起源的方向加path長度,如:21010i。1010是新加的。在as-pathprepend的后面還有一個參數(shù),last-as,如:route-mapASsetas-pathprependlast-as?<1-10>numberoflast-ASprepends意思是將離我最近的AS,將它的AS號在as-path里面再重復出現(xiàn)幾次。這個10看起來可以和allowas-in里面的10對應起來。假如as-pathprepend與as-pathprependlast-as合用的時候,last-as先生效,然后prepend再生效。減小as-path的長度,如用聯(lián)盟和remove-private-AS等可以實現(xiàn)。注意:Remove-private-as,如果在as-path里交替出現(xiàn)私有和公有的AS號,這樣將無法將私有AS號去掉。在起源的時候,連續(xù)的時候才有效。bgpbestpathas-pathignore(隱藏命令),這條命令可以使我們在選路時,跳過as-path的選路,直接往下繼續(xù)選擇最優(yōu)路徑。源頭屬性(Origin)源頭是公認強制屬性,它定義了路徑信息的源頭。IGP:路由在起始AS的內部,使用network命令通過BGP通告路由時,通常屬于這種情況,在BGP表中,IGP源頭用i表示EGP:路由是通過EGP獲悉的,在BGP表中用e表示。不完全:路由的源頭未知或是通過其他方法獲悉的,在BGP表中,不完整源頭用?表示如下示例所示。下一跳屬性(NEXT_HOP)該為公認必選屬性,描述了到公布目的地的路徑下一跳路由器的IP地址。由BGPNEXT_HOP屬性所描述的IP地址不經常是鄰居路由器的IP地址,要遵循下面的規(guī)則:如果正在進行路由宣告的路由器和接收的路由器在不同的自治系統(tǒng)中,NEXT_HOP是正在宣告路由器接口的IP地址,如下圖所示。如果正在進行路由宣告的路由器和接收的路由器在同一個AS內,并且更新消息的NLRI指明的目的地也在同一個AS內,那么NEST_HOP就是宣告路由的鄰居的IP地址。如下圖所示。如果正在宣告的路由器和接收的路由器是內部對等體,并且更新消息的NLRI指明目的地在不同的AS,則NEXT_HOP就是學習到路由的外部對等實體的IP地址。如下圖所示。從上面圖可以知道,在去往的網(wǎng)段中會出現(xiàn)路徑不可達的情況,解決這個問題的方法是保證內部路由器知道與兩處自治系統(tǒng)相連的外部網(wǎng)絡,可以使用靜態(tài)路由的辦法,但實際的做法是在外部端口上以被動模式運行IGP。但在某種情況下,該方法并不理想。第二種方法是采用配置選項來做,這個配置選項被稱做next-hop-self。下面具體詳述了下一跳的不可達的解決方法:解決下一跳不可達的方法:n靜態(tài)路由n在IBGP鄰居所處的IGP中宣告n將與EBGP直連的網(wǎng)絡重分布進IGPnneighborx.x.x.xnext-hop-self(將指向EBGP鄰居更新源的地址變?yōu)樽约旱母略吹刂罚≧R有的版本會將下一跳改變)一般情況下,在本路由器上將直連的網(wǎng)絡引入BGP,下一跳為,本路由器聚合的路由的下一跳也為。在本路由器上將從IGP學來的路由引入BGP時,在本路由器上看BGP的轉發(fā)表,下一跳為IGP路由的下一跳。在多訪問網(wǎng)絡環(huán)境中,用直連接口建立鄰居關系,會產生第三方下一跳。實例說明:如下圖所示,R2與R1是IBGP鄰居,R1與R3是EBGP鄰居,當用直連接口建鄰居時,R2引入BGP的前綴/24,在R3的bgp轉發(fā)表里,將顯示為R2的多訪問網(wǎng)絡接口地址(如:)。產生第三方下一跳的現(xiàn)象。n如果R1、R2、R3全部用直連接口建鄰居時會產生第三方下一跳。n如果R1、R2用環(huán)回口而R1、R3用直連建立鄰居時,會產生第三方下一跳。n如果R1、R2用直連而R1、R3用回環(huán)口時,不會產生第三方下一跳,如下所示配置。n如果R1、R2、R3都用環(huán)回口建立鄰居,則不會產生第三方下一跳,如下配置所示。R3#showipbgpStatuscodes:ssuppressed,ddamped,hhistory,*valid,>best,i-internal,rRIB-failure,SStaleOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfWeightPathR1routerbgp100nosynchronizationbgplog-neighbor-changesneighborremote-as200neighborebgp-multihop2neighborupdate-sourceLoopback1neighborremote-as100noauto-summaryR3routerbgp200nosynchronizationbgplog-neighbor-changesneighborremote-as100neighborebgp-multihop2neighborupdate-sourceLoopback1noauto-summaryR3#shipbgpStatuscodes:ssuppressed,ddamped,hhistory,*valid,>best,i-internal,rRIB-failure,SStaleOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfWeightPathR1routerbgp100nosynchronizationbgplog-neighbor-changesneighborremote-as100neighborupdate-sourceLoopback1neighborremote-as200neighborebgp-multihop2neighborupdate-sourceLoopback1noauto-summaryR2routerbgp100nosynchronizationbgplog-neighbor-changesneighborremote-as100neighborupdate-sourceLoopback1noauto-summaryR3routerbgp200nosynchronizationbgplog-neighbor-changesneighborremote-as100neighborebgp-multihop2neighborupdate-sourceLoopback1noauto-summaryR3#shipbgpStatuscodes:ssuppressed,ddamped,hhistory,*valid,>best,i-internal,rRIB-failure,SStaleOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfWeightPath.0/24032768i第三方下一跳:收到路由更新的源地址與將要發(fā)出去的接口地址在同一網(wǎng)段的時候,路由的下一跳不改變,為原來路由更新的源地址。有時雖然路由的下一跳可達,但會出現(xiàn)訪問網(wǎng)絡出現(xiàn)環(huán)路的現(xiàn)象。實例說明:R5、R3,R1、R2為EBGP鄰居關系,R1、R3為IBGP鄰居關系。那么R5通過BGP傳給R3的路由(如/24),R3通過IBGP傳給R1,R1通過EBGP傳給R2,這時R2訪問/24這個網(wǎng)絡的下一跳就在R1上。這時R2去訪問R5的時候,就會產生環(huán)路。則R2(走下一跳)——R1(走物理鏈路)——R2,這樣環(huán)路產生了。解決方法:neighborx.x.x.xnext-hop-unchanged(此命令只能用在EBGP多跳的環(huán)境下,將路由的下一跳,從自己的更新源地址改變?yōu)閺腎BGP學來的下一跳地址)(這時路由的下一跳在路由表里將改變。)neighborx.x.x.xroute-mapXX{in|out}然后在route-map里面setipnext-hop來改變前綴的下一跳。(在路由表里下一跳會改變。)策略路由PBR,強制命令R2到/24的時候走R3。(路由表里下一跳不會改變)本地優(yōu)先級屬性(Local_preference)本地優(yōu)先級是公認自由決定的屬性,它告訴AS中的路由器,那條路徑離開AS的首選路徑。本地優(yōu)先級越高,路徑被選中的可能性越大。本地優(yōu)先級這種屬性只能在同一個AS中的路由器之間交換,本是優(yōu)先級只適用于內部鄰居,用于內部對等體之間的Update消息。本地優(yōu)先級,可以在本AS和大聯(lián)盟內傳遞。越大越優(yōu)先。影響路由器的出站流量。默認情況下,local-preference為100。使用下面的命令,如下圖所示是將路由器收到的所有外部BGP路由的默認本地優(yōu)先級修改為指定值。對IBGP鄰居路由器傳過來的路由,不會改變它們的local-preference。如果將一個IBGP鄰居傳來的路由傳給另外一個IBGP鄰居,那我必須是RR。實例說明:如下圖所示。未使用本地優(yōu)先級操作路徑,如下所示路由器C的BGP表。在路由器A上修改本地優(yōu)先級,如下所示。在使用本地優(yōu)先操縱后的路徑,查看路由器C的BGP表。原子聚合屬性原子聚合是一個公認自決的屬性。類型代碼為6,它告訴鄰接AS,始發(fā)路由器對路由進行了聚合??梢允褂孟旅娴拿钸M行配置,命令只聚合已經包含在BGP表中的網(wǎng)絡,這與使用network來通告匯總路由要求不同,后者要求網(wǎng)絡必須出現(xiàn)在IP路由選擇表中配置命令aggregate-address后,一條與匯總路由對應的指向null0的BGP路由將自動被加入到IP路由表中。如下示例所示??梢允褂胹howipbgp命令來查看關于原子聚合的詳細內容在以后的章節(jié)中詳細說明。權重屬性cisco私有的參數(shù)。本地有效。缺省條件下,本地始發(fā)的路徑具有相同的WEIGHT值(即32768),所有其他的路徑的weight值為0。越大越優(yōu)選。影響路由器的出站流量。權重只影響當前路由器,指定鄰居的權重。使用下面命令來修改權重。可以在neighbor的入向設置。范圍0-65535。Neighborweight10,從對等體接收過來的所有路由的weight值都設置為10。還可以用route-map來設定,可以將特定路由的weight值改變。如下所示:Neighborroute-mapAAinRoute-mapAApermit10MatchipaddressprefixAASetweight10Route-mapAApermit20MED屬性MED屬性也被稱為度量值,是一種可選非傳遞屬性。承載于EBGP的Update消息中。MED用于向外部鄰居指出進入AS的首選路徑,當入口有多個時,AS可以使用MED來動態(tài)地影響其他AS如何選擇進入路徑,在BGP中,MED是唯一一個可影響數(shù)據(jù)如何進入AS的屬性。度量值越小,路徑被選中的可能性越大。與本地優(yōu)先級不同,MED是在自主系統(tǒng)之間交換的。MED影響進入AS的數(shù)據(jù)流,而本地優(yōu)先級影響離開AS的數(shù)據(jù)流。如下圖所示。Metric和med:BGP的metric對IBGP同樣有效。特指med:從EBGP收到的metric比較的時候才叫MED,MED是借用了BGP的metric在EBGP的時候進行比較。MED(多出口區(qū)分)比較EBGP的metric找到最優(yōu)的出口。MED相當于IGP路由的metric值,越小越優(yōu)先。在新的IOS中,將IGP中的路由重分布進BGP,BGP將自動繼承IGP路由的metric值。在老的IOS里,如果需要繼承需要在重分布時加route-map,如:Redistributeriproute-mapRERoute-mapREsetmetric-typeinternal默認情況下,只有在兩條路徑的第一個(鄰近的)AS相同的情況下才會進行比較:任何聯(lián)盟內的子自治系統(tǒng)都被忽略。任何多跳路徑,只有在AS_SEQUENCE中的第一個AS相同的情況下,才會比較MED;任何打頭的AS_CONFED_SEQUENCE都將被忽略。如果激活了bgpalways-compare-med,那么對于所有路徑都比較MED,而不考慮是否來自同一個AS。如果使用了這個選項,就應該在整個AS中都這樣做,以避免路由選擇環(huán)路。實例說明:如下拓撲圖下面是一個使用策略路由來實現(xiàn)修改MED值的案例。實例說明:如下圖所示,此實例采用了本地優(yōu)先級與MED屬性共同體屬性BGP團體是一組共享某些共同特性的目的地,用于簡化路由策略的執(zhí)行,一個團體并不被限制在一個網(wǎng)絡或一個AS之中。是另一種過濾入站或出站BGP路由的方法。COMMUNITY屬性是一組4個8位組的數(shù)值,RFC1997規(guī)定,前2個8位組表示自治系統(tǒng),后2個8位組表示出于管理目的而定義的標識符,格式為AA:NN,而思科的默認格式為NN:AA,可以使用命令ipbgpcommunitynew-format將思科默認格式改為RFC1997的標準格式。團體屬性是一個可傳遞屬性,類型代碼為8。no_export——如果接收到的路由攜帶該數(shù)值,不通告到EBGP對等體。如果配置了聯(lián)盟,則不能將此路由宣告到聯(lián)盟之外。no_advertise——如果接收到的路由攜帶該數(shù)值,不通告給任何對等體,包括EBGP和IBGP。internet——無任何值,所有路由器默認情況下都屬于該團體,帶此屬性的路由在被收到后,應該被通告給所有的其他路由器local_as——帶有此屬性的路由在被收到后,應該被通告給本地AS域內的對等體,但不應該被通告給外部系統(tǒng)中的對等體,包括同一個聯(lián)盟內其它自治系統(tǒng)中的對等體。實例說明:如下圖所示。BGP路由匯總BGP的匯總有2種:A.匯總:summary靜態(tài)路由手工匯總指向null0,再network引入BGP。如果明細路由斷了,匯總仍然會被引入,且缺乏靈活性。命令network要求路由選擇表中有與指定的前綴或掩碼完全匹配的條目,為滿足這種要求,可配置一條指向接口null0的靜態(tài)路由,如果IGP執(zhí)行匯總,則路由選擇中可能已以有這樣的靜態(tài)路由。命令network告訴BGP通告哪些網(wǎng)絡,而不如何通告,僅當描寫的網(wǎng)絡號出現(xiàn)在IP路由選擇中后,BGP才會通告它,如下圖所示。B.聚合:aggregate聚合路由在本路由器上生成一條聚合路由,下一跳為。aggregate-address?advertise-mapSetconditiontoadvertiseattributeas-setGenerateASsetpathinformationattribute-mapSetattributesofaggregateroute-mapSetparametersofaggregatesummary-onlyFiltermorespecificroutesfromupdatessuppress-mapConditionallyfiltermorespecificroutesfromupdatesnlri<cr>Advertise-mapn只對advertise-map里面匹配的路由進行聚合。當advertise-map里面匹配的明細路由全部消失后,即使聚合路由范圍內還有其他明細路由,聚合路由也將消失。當與as-set合用時,只繼承advertise-map里面匹配的明細路由的屬性。如果用summary-only,會將所有的明細包括沒有在advertise-map里面匹配的路由一起抑制。As-setn聚合路由繼承明細路由的屬性,包括:as-path、local_preference、community、origin-code。與advertise-map合用,只繼承advertise-map里面匹配的明細路由的屬性。如果繼承了as-path屬性,繼承的as-path如果沒有在大括號{}中顯示,則有幾個算幾個AS;如果繼承AS是在大括號中排列的,那么只算一個AS號。只關心AS的號碼,不關心順序。As-path、as-seq(as-path)原子聚合不帶任何AS。AS-SET首先是區(qū)別于atomic-aggregate,產生了AS的序列,序列中無分先后順序,這一點也不同于有明確順序的AS-SEQEUENCEAttribute-map和route-map這兩個參數(shù)一樣,可以將聚合路由的屬性清除掉(除了as-path屬性),添加自己需要添加的屬性。Attribute-map與as-set的合用時,能否將聚合的路由的屬性重置。(OK可以改)Summary-only將聚合路由所包括的所有路由都抑制掉,被抑制的路由在bgp的轉發(fā)表里,顯示為s,代表suppress的意思。發(fā)送更新時,只發(fā)送聚合路由??梢耘cneighborunsuppress-mapXX合用,對特定鄰居漏過特定的明細路由。Suppress-map,將suppress-map里面匹配的路由抑制掉,被抑制的路由在bgp的轉發(fā)表里,顯示為s,代表suppress的意思。發(fā)送更新時,只發(fā)送聚合路由和沒有被抑制的明細路由。可以與neighborunsuppress-mapXX合用,對特定鄰居漏過特定的明細路由。BGP路由決策BGP的RIB包括三部分:Adj-RIBs-In:存儲了從對等體學習到的路由理新中未經處理的路由信息,這些包含在Adj-RIBs-In中的路由被認為是可行路由。Loc-RIB:包含了BGP發(fā)言者對Adj-RIBs-In中的路由應用本地策略之后選定的路由Adj-RIBs-Out:包含了BGP發(fā)言者向對等體宣告路由。BGP有三個部分既可以是3個不同的數(shù)據(jù)庫,也可以是利用指針來區(qū)分不同部分的單一數(shù)據(jù)庫。BGP路由決策通過對Adj-RIBs-In中的路由應用本地路由策略,且向Loc-RIB和Adj-RIBs-Out中輸入選定或修改的路由進行路由選擇。其有三個階段。第一階段:計算每條可行路由的優(yōu)先級第二階段:從所有可用路由中為特定目的地選出最佳路由,并將其安裝到Loc-RIB中。第三階段:將相應的路由加入到Adj-RIBs-Out中,以便向對等體進行宣告。以下為BGP選路原則的13條:(1)weightcisco私有的參數(shù)。本地有效。缺省條件下,本地始發(fā)的路徑具有相同的WEIGHT值(即32768),所有其他的路徑的weight值為0。越大越優(yōu)選。影響路由器的出站流量。(2)local-preference本地優(yōu)先級,可以在本AS和大聯(lián)盟內傳遞。越大越優(yōu)先。影響路由器的出站流量。默認情況下,local-preference為100。(3)本地起源路由器本地始發(fā)的路徑優(yōu)先。在BGP的轉發(fā)表里顯示為。依次降低的優(yōu)先級順序是:default-originate(針對每個鄰居配置)、default-informaiton-originate(針對每種地址簇配置)、network、redistribute、aggregate-address。(4)as-path評估as-path的長度,as-path列表最短的路徑優(yōu)先。聚合后繼承明細路由的屬性,在大括號里面的as-path在計算長度時,只算一個。在聯(lián)盟內小括號里面的AS號,在選路時,不計算到as-path長度里面。(5)起源代碼評估路由的origincode屬性,有3個i<e<?。i代表用network將IGP引入BGP的,或者是聚合等路由,e代表EGP,?代表重分布進BGP的路由。i為0,e為1,?為3。越小越優(yōu)。(6)MEDmetric傳遞不能傳出AS。例外:始發(fā)路由器可以metric傳給鄰居,可以是IBGP/EBGP,但是EBGP再傳不出去。MED相當于IGP路由的metric值,越小越優(yōu)先。(7)EBGP優(yōu)于IBGP這里EBGP>聯(lián)盟內的EBGP>IBGP。(8)最近的IGP鄰居這里是指peer的更新源在我的路由表里顯示,哪個最近哪個最優(yōu)。OSPF是否考慮O、OIA、OE1、OE2?只看cost不看O/OIA/OE。(9)如果配置了maximum-path[ibgp]n,如果存在多條等價的路徑,會插入多條路徑。BGP默認maximum-path=1,只能有一條最優(yōu)路徑,但可以通過命令來改變,如果沒有IBGP參數(shù),默認只能做EBGP的負載均衡。做負載均衡還有一個條件,就是上面的8條都比不出哪條最優(yōu)的情況下,才有可能出現(xiàn)負載均衡。做了BGP的負載均衡后,在BGP的轉發(fā)表里還是一個最優(yōu),但在路由表里可以出現(xiàn)2個下一跳。(10)最老的與本端最早建立鄰居關系的peer,被優(yōu)選。因為它最穩(wěn)定。但一般不考慮,會跳過這個繼續(xù)往下選。如果以下任一條件為真,這一步將會被忽略:啟用了bgpbestpathcompare-routerid,多條路徑具有相同的router-id,因為這些路由都是從同一臺路由器接收過來的;當前沒有最佳路徑。缺乏當前最佳路徑的例子發(fā)生在正在通告最佳路徑的鄰居失效的時候。(11)最低的ROUTER-IDBGP優(yōu)選來自具有最低的路由器ID的BGP路由器的路由。Router-id是路由器上最高的IP地址,并且優(yōu)選環(huán)回口。也可以通過bgprouter-id命令靜態(tài)的設定路由器ID。如果路徑包含RR屬性,那么在路徑選擇過程中,就用originator-id來替代路由器ID。(12)多跳路徑的始發(fā)路由器ID相同,那么選擇CLUSTER_LIST長度短的,因為每經過一個RR,cluster-list會加上這個RR的router-id如果多條路徑的始發(fā)router-id相同,那么BGP將優(yōu)選cluster-list長度最短的路徑。這種情況僅僅出現(xiàn)在BGPRR的環(huán)境下。(13)BGP優(yōu)選來自于最低的鄰居地址的路徑。是BGP的neighbor配置中的那個地址,如果是環(huán)回口,則看環(huán)回口地址的高低。BGP優(yōu)選來自于最低的鄰居地址的路徑。這是BGP的neighbor配置中所使用的IP地址,并且它對應于與本地路由器建立TCP連接的遠端對等體。路由翻動(routeflaps)和路由懲罰(routedampening)路由翻動產生的原因有很多種比如:鏈路不穩(wěn)定、路由器接口故障、ISP工程施工、管理員錯誤配置和錯誤故障檢查等等都能造成路由翻動,由于路由翻動會造成每臺路由器重新計算路由,從而消耗了大量的網(wǎng)絡帶寬和路由器的CPU資源。BGP鄰居的flaping當R1與R2兩臺路由器運行IGP協(xié)議,并且建立EBGP的鄰居關系,用環(huán)回口建立鄰居關系。這時假如R1、R2將他們的更新源通告進了BGP,然后通過BGP傳遞給對方,這時由于從EBGP學到的路由的AD為20,大于IGP的默認AD,這時會產生鄰居的flaping現(xiàn)象。這時showipbgpsummary可以看到每經過60秒BGPtableversionis1,mainroutingtableversion1會改變一次。BGP轉發(fā)表里變化了多少次。用debugipbgp、debugipbgpupdate來查看BGP的flaping。解決方法:(1)EBGP建鄰居時不要將環(huán)回口引入BGP。(2)Network+backdoorBGP路由下一跳的flapingR1、R2、R3因為屬于同一個AS,所以運行一個IGP,R2-R4,R3-R5之間的鏈路并沒有通告進IGP中。R1、R2、R3IBGP對等體關系,R3在指R1時,打了neighbornext-hop-self;R4、R2,R5、R3,R4、R5為EBGP對等體關系,它們都拿直連接口建立鄰居關系。這時R4將它的環(huán)回口/24和R2-R4的直連網(wǎng)絡/24引入BGP,這時在R1上就會產生路由下一跳flaping的現(xiàn)象。這時showipbgpsummary可以看到每經過60秒BGPtableversionis1,mainroutingtableversion1會改變一次。解決方法:(1)靜態(tài)路由(R1上靜態(tài)路由)(2)在IBGP鄰居所處的IGP中宣告(3)將與EBGP直連的網(wǎng)絡重分布進IGP(4)neighborx.x.x.xnext-hop-self(R2指R1時輸入)路由懲罰(routedampening)由RFC2439描述,它主要由以下三個目的:提供了一種機制,以減少由于不穩(wěn)定路由引起的路由器處理負載防止持續(xù)的路由抖動增強了路由的穩(wěn)定性,但不犧牲表現(xiàn)良好的(well-behaved)路由的收斂時間。ROUTERBG1BGDAM對所有的路由。BGDAMPROUTE-MAPXXXROUTE-MAPXXXMATIPADDPREFISXXSETDAEFAULTSHIPBGSHIPBGDAMPARADampening為每一條前綴維護了一個路由抖動的歷史記錄。Dampening算法包含以下幾個參數(shù):歷史記錄――――當一條路由flaping后,改路由就會被分配一個懲罰值,并且它的懲罰狀態(tài)被設置為history。懲罰值(penalty)――――路由每flaping一次,這個懲罰值就會增加。默認的路由flaping懲罰值為1000。如果只有路由屬性發(fā)生了變化,那么懲罰值為500。這個值是硬件編碼的。抑制門限(suppresslimit)――――如果懲罰值超過了抑制門限,改路由將被懲罰或dampen。路由狀態(tài)將由history轉變?yōu)閐amp狀態(tài)。默認值的抑制門限是2000,它可以被設置。懲罰狀態(tài)(dampstate)――――當路由處于懲罰狀態(tài)時,路由器在最佳路徑選擇中將不考慮這條路徑,因此也不會把這條前綴通告給它的對等體。半衰期(halflife)――――在一半的生命周期的時間內,路由的懲罰值將被減少,半衰期的缺省值是15分鐘。路由的懲罰值每5秒鐘減少一次。半衰期的值可以被設置。重用門限(reuselimit)――――路由的懲罰值不斷的遞減。當懲罰值降到重用門限以下時,改路由將不再被抑制。缺省的重用門限為750。路由器每10秒鐘檢查一次那些不需要被抑制的前綴。重用門限時可以被配置的。當懲罰值達到了重用門限的一半時,這條前綴的歷史記錄(history)將被清除,以便更有效率的使用內存。最大抑制門限/最大抑制時間――――如果路由在短時間內表現(xiàn)出極端的不穩(wěn)定性,然后又穩(wěn)定下來,那么累計的懲罰值可能會導致這條路由在過長的時間里一直處于懲罰狀態(tài)。這就是設置最大抑制門限的基本目的。如果路由表現(xiàn)出連續(xù)的不穩(wěn)定性,那么懲罰值就停留在它的上限上,使得路由保持在懲罰狀態(tài)。最大抑制門限是用公式計算出來的。最大抑制時間為一條路由停留在懲罰狀態(tài)的最長時間。默認為60分鐘(半衰期的4倍)可以配置。最大抑制門限=重用門限×2(最大抑制時間÷半衰期)由于最大抑制門限為公式算出來的,所以有可能最大抑制門限≤抑制門限,當這種情況發(fā)生時,dampening的設置是沒有效果的。如重用門限=750,抑制門限=3000,半衰期=30分鐘,最大抑制時間=60分鐘。按照這樣的配置,算出來的最大抑制門限為3000,與抑制門限一樣,因為必須超過抑制門限,才能對路由進行dampening,所以這時dampening的設置沒有效果。BGP的dampening僅僅影響EBGP的路由。Dampening是基于每條路徑的路由而操作的。如果一條前綴具有兩條路徑,并且其中一條被懲罰了,那么另一條前綴仍然是可用的,可以通告給BGP對等體。命令:bgpdampening[route-mapXX][{Half-lifereuse-limitsuppress-limitMaximum-time}]如果掛了route-map,那么就在route-map里面匹配特定EBGP路由,來設置dampening值。檢查命令:showipprotocolshipbgpdampening?dampened-paths只顯示(清除)被抑制的路由。flap-statistics顯示(清除)所有出現(xiàn)擺動的路由以及該路由出現(xiàn)擺動的次數(shù)。parametersDisplaydetailsofconfigureddampeningparametersshowipbgpneighborsdampened-routesshowipbgpneighborsflap-statistics路由反射器由于IBGP的水平分割問題,所以IBGP需要FullMesh。由于整個IBGPfullmesh的話,需要建的session數(shù)為n*(n-1)/2。不具有擴展性。所以產生兩種解決方法,路由反射器是其中一種,而另一種則是聯(lián)邦。路由反射器是被配置為允許它把通過IBGP所獲悉的路由通告到其他IBGP對等體的路由器,路由器反射器與其他路由器有部分IBGP對等關系,這些路由器被稱為客戶。客戶間的對等是不需要的,因為路由反射器將在客戶間傳遞通告。如下圖所示。其優(yōu)點:減少AS內BGP鄰居關系的數(shù)量,從而減少了TCP連接數(shù);在AS內可以有多個路由反射器,即是為了冗余也是為了分成組,以進一步減少所需IBGP會話的數(shù)量。路由反射器的路由器可以與非路由反射器的路由器共存,所以配置更簡單。RFC1966中定義了3條RR用來決定要宣告哪條路由的規(guī)則,具體使用時取決于路由是如何學習到的。如果路由學習自非客戶IBGP對等體,則僅反射給客戶路由器。如果路由學習自某客戶,則反射給所有非客戶和客戶路由器(發(fā)起該路由的客戶除外)。如果路由學習自EBGP對等體,則反射給所有非客戶和客戶路由器路由反射器的客戶并不知道自己是客戶。客戶和非客戶經過路由反射器反射的路由更新將會帶上cluster-list和originator,可用于IBGP防環(huán)。Cluster-id默認為路由反射器自己的router-id,可以通過命令bgpcluster-id來修改,cluster-id為32位的值,可以寫成點分十進制,也可以寫成十進制數(shù);originator為IBGP內起源路由器的router-id。路由反射器是IBGP的特性,出了IBGP后,路由反射器所有的特性消失(即路由攜帶的cluster-list和originator全部消失)。neighborroute-reflector-client可以通過這條命令來將IBGP的peer變?yōu)樽约旱目蛻?。建議對每個IBGP鄰居都打上。當路由反射器的客戶fullmesh時,可以用nobgpclient-to-clientreflection禁止客戶到客戶的路由反射。可以減少路由更新。如下圖為路由反射器的基本配置。BGP聯(lián)邦由于IBGP的水平分割問題,所以IBGP需要fullmesh。由于整個IBGPfullmesh的話,需要建的session數(shù)為n*(n-1)/2。不具有擴展性。所以產生兩種解決方法,聯(lián)邦是其中一種。聯(lián)邦既有EBGP的特性,又有IBGP的特性。聯(lián)盟是另一種控制大量IBGP對等體的方法,它就是一個被細分為一組子自治系統(tǒng)(稱為成員自治系統(tǒng))的AS。如下圖所示。聯(lián)盟增加了兩種類型的AS_PATH屬性AS_CONFED_SEQUENCE:一個去往特定目的地所經路徑上的有序AS號列表,其用法與AS_SEQUENCE完全一樣,區(qū)別在于該列表中的AS號屬于本地聯(lián)盟中的自治系統(tǒng)。AS_CONFED_SET:一個去往特定目的地所經路徑上的無序AS號列表,其用法與AS_SET完全一樣,區(qū)別在于該列表中的AS號屬于本地聯(lián)盟中的自治系統(tǒng)。由于AS_PATH發(fā)生被用于成員自治系統(tǒng)之間,因而保留了環(huán)路預防功能。將Update消息發(fā)送給聯(lián)盟之外的對等體時,將從AS_PATH屬性中剝離AS_CONFED_SEQUENCE和AS_CONFED_SET信息,而將聯(lián)盟ID附加到AS_PATH中。Local_preference和MED可以在聯(lián)邦內傳遞。聯(lián)盟內的小AS號,在as-path里顯示在小括號里,在as-path計算長度時,不被考慮。下一跳在聯(lián)邦內傳遞不會改變。配置樣例1下面的示例中涉及到BGP的基本配置,涉及到一些基本的知識點,如EBGP多跳、更新源使用環(huán)回接口、路由映射發(fā)布團體屬性等,如下圖所示。下面是其參考配置。R1#shrunning-configinterfaceLoopback0interfaceLoopback1interfaceLoopback6interfaceSerial2/0serialrestart-delay0routerbgp300nosynchronizationbgplog-neighbor-changesneighborremote-as100neighborebgp-multihop2neighborupdate-sourceLoopback6noauto-summaryR2#shrunning-configinterfaceLoopback5interfaceLoopback6interfaceEthernet1/0duplexhalfinterfaceEthernet1/1duplexhalfinterfaceSerial2/0serialrestart-delay0interfaceSerial2/1serialrestart-delay0routerospf10log-adjacency-changespassive-interfaceSerial2/0passive-interfaceSerial2/1networkarea0network92area0network20area0routerbgp100nosynchronizationbgplog-neighbor-changesneighborremote-as100neighborupdate-sourceLoopback5neighbornext-hop-selfneighborremote-as100neighborupdate-sourceLoopback5neighbornext-hop-selfneighborremote-as300neighborebgp-multihop2neighborupdate-sourceLoopback6neighbor25remote-as200noauto-summaryR3#shrunning-configinterfaceLoopback5interfaceEthernet1/0duplexhalfinterfaceEthernet1/1duplexhalfrouterospf10log-adjacency-changesnetworkarea0network96area0network20area0routerbgp100nosynchronizationbgplog-neighbor-changesneighborremote-as100neighbo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度鍋爐老舊設備改造與維保承包合同3篇
- 2024版廢鋼采購與分銷標準協(xié)議格式版B版
- 2025年度智能安防系統(tǒng)銷售代理與維護服務協(xié)議3篇
- 2024物流配送服務委托合同
- 學生社交能力在綜合素質評價中的體現(xiàn)
- 2025年度股權轉讓與經營權許可協(xié)議3篇
- 2024年版:新建項目消防安全保證協(xié)議
- 二零二五年度橋梁加固與維修施工合同3篇
- 專業(yè)人才外包服務協(xié)議(2024版)一
- 2024美容院美容院與醫(yī)療美容機構合作項目協(xié)議范本3篇
- 船形烏頭提取工藝優(yōu)化
- 財務總監(jiān)個人述職報告
- 軟件企業(yè)戰(zhàn)略規(guī)劃
- 護理安全隱患及風險防范
- 居家養(yǎng)老護理人員培訓方案
- 臨床成人失禁相關性皮炎的預防與護理團體標準解讀
- 期末復習試題(試題)-2024-2025學年三年級上冊數(shù)學蘇教版
- 江蘇省無錫市2024年中考語文試卷【附答案】
- JGJT46-2024《建筑與市政工程施工現(xiàn)場臨時用電安全技術標準》知識培訓
- 供應鏈貿易安全制度
- 2024美容院規(guī)章制度(31篇)
評論
0/150
提交評論