教您如何學(xué)好BGP一、先總結(jié)一下BGP怎么學(xué)(磨刀不誤砍柴工哈):
先看BGP的特性ferture,然后再看這些ferture在數(shù)據(jù)包傳遞過程中會產(chǎn)生哪些問題,接下來就看怎么解決這些問題,以實(shí)現(xiàn)數(shù)據(jù)包的正確傳遞! 1:BGP靠TCP進(jìn)行連接,故第一步要保證三層IP的可達(dá)性; 2:BGP以單播建鄰居,故須手工指鄰居; 3:BGP有源檢測特性,故鄰居地址須和發(fā)送更新地址保持一致(至少保證一條TCP連接); 4:EBGP鄰居open包的TTL值為1(其他包呢),如以環(huán)回接口建鄰居須將它改大; 5:BGP要關(guān)自動匯總吧,這個(gè)是因?yàn)槭裁? 6:BGP有同步規(guī)則,這會導(dǎo)致傳輸AS不傳遞路由條目(從外部AS傳過來的條目不再傳向其他AS)[這個(gè)同步關(guān)了會造成路由黑洞,不關(guān)路由器承受不住,怎么折衷?傳輸AS的路由器性能應(yīng)該不錯(cuò)吧,為什么還要關(guān)同步?]; 7、BGP有水平分割,在同一個(gè)AS內(nèi)路由條目只傳一跳,故要求IBGP全互聯(lián)或者是做路由反射; 8、BGP的下一跳是以AS計(jì)數(shù),故為了保證數(shù)據(jù)包能夠被正確封裝,應(yīng)該將下一跳改成物理上的下一跳(這個(gè)如果BGP和IGP同步了就不用打nexthop-self命令了吧?) 回頭看看,這好像都是從BGP到數(shù)據(jù)包的思路,那么還可以從數(shù)據(jù)包到BGP吧。嗯,兩種思路!回頭再總結(jié)一下! 二、next-hop屬性 1、針對EBGP鄰居傳遞過來的條目; 2、非MA網(wǎng)絡(luò)上只須在連接外部AS的邊緣路由器上打相應(yīng)命令; 3、MA網(wǎng)絡(luò)上的next-hop,如圖: (1)A向AS65000傳遞路由時(shí)無須更改下一跳 (2)第三方下一跳: 前提:以直連物理口建立鄰居 問題:AS65000在向A傳遞外部AS路由條目時(shí)會先經(jīng)C到B然后到A,并且A上這種條目的下一跳地址會顯示為B,這在MA網(wǎng)絡(luò)中并不是數(shù)據(jù)包傳遞的最佳路徑(完全可由C直接到A)。BGP解決這種問題的具體方法是怎么樣的?沒弄明白,還請老師指教!!! 三、peer-group 1、作用:簡化IBGP鄰居配置任務(wù);減少資源消耗(只對peer-group建立緩存) 2、范圍:針對IBGP鄰居 3、命令: R2(config-router)#neighbor PG peer-group 建立peer-group R2(config-router)#neighbor PG remote-as 123 設(shè)置peer-group所屬AS R2(config-router)#neighbor PG update-source lo0 指明更新源 R2(config-router)#neighbor PG next-hop-self 修改下一跳 R2(config-router)#neighbor 1.1.1.1 peer-group PG 針對1.1.1.1這個(gè)鄰居調(diào)用peer-group R2(config-router)#neighbor 3.3.3.3 peer-group PG 調(diào)用 4、不足:一旦所有的IBGP鄰居都用peer-group建立,就不能針對單個(gè)IBGP鄰居實(shí)施出站策略(入站策略還是可以的)
四、鄰居狀態(tài) 1、idle:在這上狀態(tài)下BGP會查路由表,看有沒有去往建立鄰居地址的路由,如果有的話則進(jìn)行TCP的連 接,一直處于此種狀態(tài)則表明找不到去住鄰居地址的路由,無法完成數(shù)據(jù)幀的封裝; 2、Active:有路由了,這時(shí)嘗試建立TCP的連接,發(fā)出TCP請求; 3、Connect:被請求的一方才會有這種狀態(tài)(端口為179的一方),出現(xiàn)這種狀態(tài)表示TCP連接已經(jīng)建立; 4、Open sent:發(fā)送BGP的路由信息 5、Open confirm:路由信息發(fā)送完畢,鄰居關(guān)系快要協(xié)商成功了 6、Established:鄰居關(guān)系建立,開始為數(shù)據(jù)包提供正常的路由. 注意:一會顯示idle一會顯示active,則有以下原因: 發(fā)出去的包鄰居沒有回包; 指的鄰居地址不對; AS號碼錯(cuò)誤. 五、BGP的認(rèn)證 1、只支持MD5認(rèn)證 2、非對稱式密鑰,只發(fā)消息摘要,不發(fā)密碼本身 3、針對每個(gè)TCP段、每個(gè)路由更新進(jìn)行認(rèn)證 4、命令 R3(config-router)#neighbor 1.1.1.1 password 0 cisco 六、查看寫路由表失敗的路由: show ip bgp rib-failure 可以看到失敗的原因 七、BGP會話的清除方式 作用:讓BGP立刻執(zhí)行所實(shí)施的策略 1、硬清除:直接清除鄰居關(guān)系重新建; (1)R3#clear ip bgp * 清除所有BGP的會話,鄰居關(guān)系重新從IDLE狀態(tài)開始協(xié)商 (2)R3#clear ip bgp 1.1.1.1 清除單個(gè)的BGP鄰居 2、軟清除:清除BGP路由重新發(fā)或者重新收 (1)R3#clear ip bgp * soft out 只針對out方向清,in方向通常清不了(原因?) (2)R3#clear ip bgp 1.1.1.1 soft out (3)清入站路由更新 R3(config-router)#nei 2.2.2.2 soft-reconfiguration inbound R3#clear ip bgp * soft in 或者到鄰居端清出站更新 這個(gè)好像沒多大效果啊,沒看出來 3、等待BGP的刷新,讓它自己清 八、路由黑洞 1、BGP水平分割帶來的黑洞 (1)原因:IBGP的水平分割 (2)解決方法:IBGP全互聯(lián)、路由反射器、BGP聯(lián)盟 (3)查看向鄰居通告了哪些BGP路由 R2#show ip bgp neighbors 1.1.1.1 advertised-routes BGP table version is 4, local router ID is 2.2.2.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 4.1.1.0/24 202.100.0.1 0 0 400 i 2、不同步帶來的路由黑洞 (1)原因:沒有路由 (2)解決:同步 九、路由反射器 1、路由反射簇:路由反射器和它的客戶端所在的范圍,可以看作是一個(gè)邏輯上的路由器,但這個(gè)路由器只有RR知道,非RR只是一個(gè)普通的IBGP路由器。 2、工作原理 卷二上是這么說的 (1)從客戶端發(fā)送過來的BGP路由RR會發(fā)送給其他客戶端,會反射給其他非客戶端,會反射給EBGP鄰居; (2)從非客戶端發(fā)送過來的BGP路由RR會發(fā)送給它的客戶端,會發(fā)送給它的EBGP鄰居,但不會發(fā)送給其他的非客戶端; (3)從EBGP鄰居發(fā)送過來的BGP路由RR會發(fā)送給它的客戶端、非客戶端 但是這很廢話,所以事實(shí)上我們可以把路由反射器理解為遵從BGP規(guī)則的一個(gè)邏輯路由器。 3、應(yīng)用:在IBGP之間打破BGP水平分割原則傳遞BGP路由(前提:該路由在RR上能夠被優(yōu)化--下一跳可達(dá)) 4、配置: R1(config-router)#nei 3.3.3.3 route-reflector-client 指明客戶端 R1(config-router)#bgp cluster-id ? 配置簇ID(可選) <1-4294967295> Route-Reflector Cluster-id as 32 bit quantity A.B.C.D Route-Reflector Cluster-id in IP address format 有關(guān)簇ID:在BGP選路的時(shí)候會用到,經(jīng)過的簇越多,簇ID越長(?),越不優(yōu)選。 5、實(shí)踐:中間的路由器做雙向的反射,如果存在多臺中間路由器,則這些中間路由器都得做路由反射器,以最終將BGP路由傳遞出去 十、BGP聯(lián)盟 1、含義:大AS含小AS 2、聯(lián)盟AS號:通常為私有AS號 3、角色:聯(lián)盟IBGP、聯(lián)盟EBGP 4、做法:將IBGP域用私有AS號劃成幾個(gè)小AS,對外以大AS宣告 5、問題: (1)一臺路由器上只能起一個(gè)BGP進(jìn)程,私有AS號又不能在公網(wǎng)上識別,如何與外部AS建立EBGP鄰居? (2)聯(lián)盟EBGP之間鄰居關(guān)系的建立:須用到EBGP多跳屬性 (3)聯(lián)盟EBGP路由器都宣稱自己是大AS,但是又不是屬于同一個(gè)AS,怎么建立鄰居? (4)下一跳的問題 6、解決: (1)向外宣告大AS(注意:大AS內(nèi)所有路由器都得打這條命令); R3(config-router)#bgp confederation identifier 123 (2)在聯(lián)盟EBGP對等體上修改更新源和TTL值; (3)不向聯(lián)盟AS宣告自己的大AS號 R3(config-router)#bgp confederation peers 65100 65200 (4)修改下一跳,聯(lián)盟BGP之間也得這樣做 7、變與不變: (1)變:AS path 路由條目標(biāo)識 (2)不變:從聯(lián)盟EBGP學(xué)來的路由條目的管理距離仍為200 8、應(yīng)用:打破BGP水平分割傳遞路由 變態(tài)了一把:中間的路由器上不宣告自己的大AS號,結(jié)果報(bào)錯(cuò),公網(wǎng)上的BGP路由的AS path中出現(xiàn)了私有AS號 |
前 臺:0771-3185755
培訓(xùn)部:15994437962
認(rèn)證部:15994437962
技術(shù)部:15578317196