|
BGP用戶培訓(xùn)材料
BGP用戶培訓(xùn)材料:k K-B#|}$v%W Y e/D w p6y9dr BE+S^DBeb AS -- Autonomous System 使用相同路由管理策略的區(qū)域 6p6ya(sTfgf BGP -- Border Gateway Protocol Defined in RFC 1771 h Vlge9nC g,u‘|2u CIDR -- Classless Interdomain Routing 無(wú)類型的域間選路OdT+]8N)O EGP -- Exterior Gateway Protocol Defined in RFC 904^;D\?:U*Y2n IGP -- Internal Gateway Protocol AS內(nèi)部的路由協(xié)議 )OH7~ b4?5b|#Z EGP -- External Gateway Protocol AS外部的路由協(xié)議,對(duì)應(yīng)于IGP*UX#?f}_{ N3z#v 一、概述+[.rS#^A4y4l.J BGP是一種自治系統(tǒng)間的動(dòng)態(tài)路由發(fā)現(xiàn)協(xié)議,它的基本功能是在自治系統(tǒng)間自動(dòng)交換無(wú)環(huán)路的路由信息。與OSPF和RIP等在自治區(qū)域內(nèi)部運(yùn)行的協(xié)議對(duì)應(yīng),BGP是一類EGP(Edge Gateway Protocol)協(xié)議,而OSPF和RIP等為IGP(Interior Gateway Protocol)協(xié)議。9XT2k"JYKM%wk6D BGP是在EGP應(yīng)用的基礎(chǔ)上發(fā)展起來(lái)的。EGP在此以前已經(jīng)作為自治區(qū)域間的路由發(fā)現(xiàn)協(xié)議,廣泛應(yīng)用于NFSNET等主干網(wǎng)絡(luò)上。但是,EGP被路由環(huán)路問(wèn)題所困擾。BGP通過(guò)在路由信息中增加自治區(qū)域(AS)路徑的屬性,來(lái)構(gòu)造自治區(qū)域的拓?fù)鋱D,從而消除路由環(huán)路并實(shí)施用戶配置的策略。同時(shí),隨著INTERNET的飛速發(fā)展,路由表的體積也迅速增加,自治區(qū)域間路由信息的交換量越來(lái)越大,都影響了網(wǎng)絡(luò)的性能。BGP支持無(wú)類型的區(qū)域間路由CIDR(Classless Interdomain Routing),可以有效的減少日益增大的路由表。&X.z(j0TA9W)M$O BGP運(yùn)行時(shí)刻分別與本自治區(qū)域外和區(qū)域內(nèi)的BGP伙伴建立連接(使用Socket)。與區(qū)域內(nèi)伙伴的連接稱為IBGP(Internal BGP)連接,與自治區(qū)域外的BGP伙伴的連接稱為EBGP(External BGP)連接。本地的BGP協(xié)議對(duì)IBGP和EBGP伙伴使用不同的機(jī)制處理。 n[2cXS[(m/T X 二、BGP協(xié)議分析 rXl(a8Qh 1、BGP協(xié)議的層次位置B$EU.aN"DN )Zr G"m X Na*@ c BGP,OSPF,RIP,TELNET,SNMP$z)d#iDG5av+D@ SOCKET Z+{v8c v*F TCP,UDP^1a0r gb/~jk IP,IPXx8C/~-n1d*? PPP,X.25等 V"t#xul0tF *作系統(tǒng) |.z.R&Oh-i y6[2Odk 硬件接口及驅(qū)動(dòng) ]wJvf[.G\8] 7rGQ%g9K/Le(|3p BGP使用Socket服務(wù)建立連接,端口號(hào)為179。 U\!\quu 2、BGP的消息結(jié)構(gòu)%Z-r3f;[S%M BGP有4種類型的消息。分別為OPEN,UPDATE,KEEPALIVE和NOTIFY。它們有相同的消息頭。 Mv-LPr ~ ⑵OPEN消息結(jié)構(gòu):HN1{(w\(`rz 消息頭加如下結(jié)構(gòu) :3es({W%Gi |5pS [6u Version :(1字節(jié)) 發(fā)送端BGP版本號(hào)E L6T?z*L1^ My Autonomous System :(2字節(jié)無(wú)符號(hào)整數(shù)) 本地AS號(hào):g(_7M~6kC(Q)H[&s Hold Time :(2字節(jié)無(wú)符號(hào)整數(shù)) 發(fā)端建議的保持時(shí)間-t9D,L}Bfb]Yb BGP Identifier :(4字節(jié)) 發(fā)端的路由器標(biāo)識(shí)符(w7Q `)Vtq T OptParmLen :(1字節(jié)) 可選的參數(shù)的長(zhǎng)度 #s q:z}K*I*Ht3\ Optional Parameters :(變長(zhǎng)) 可選的參數(shù))^%[jl,o.O9e%@` ⑶KEEPALIVE消息結(jié)構(gòu) Wt;G;Ul0G| KEEPALIVE消息只有一個(gè)消息頭。 `pP$~t!yl+MY kB,C5@I)kyC y^ ⑷NOTIFY消息結(jié)構(gòu) 0E4\S/`F[Vu*^@ 消息頭加如下結(jié)構(gòu): 1t1Fe;U t@p];@ 0 1 2 3 4$fw~0_tFi‘P8@4q 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7d o1foLj/i[U:N Errorcode Errsubcode 0Dm?iT3YVs Data `BZ‘hL!YF![ Wg yr^R Errorcode :(1字節(jié)) 錯(cuò)誤代碼 Ex^`$hN 錯(cuò)誤代碼 錯(cuò)誤類型 f8H/Kr0t1b 1 消息頭錯(cuò) ]&C2lk2Z%P 2 OPEN消息錯(cuò)5n\ S teN-~ o(|_Z:V(C 3 UPDATE消息錯(cuò) 1yiPCO,o 4 保持時(shí)間超時(shí) $pxEl:y Q!@:t 5 狀態(tài)機(jī)錯(cuò) O d-P_hoN$x,K 6 退出 $U,Bw0Y5K ?*Ul4Xt H?V~H8s Errsubcode :(1字節(jié)) 輔助錯(cuò)誤代碼,略。 +D1G-zV f,tp Data :(變長(zhǎng)) 依賴于不同的錯(cuò)誤代碼和輔助錯(cuò)誤代碼。用于診斷錯(cuò)誤原因。Gz!S![m!L(i "yD0_K:~EW6m ⑸UPDATE消息結(jié)構(gòu) ^5Z6X-mr_2t9Tw3P Unfeasible Routes Len :(2字節(jié)無(wú)符號(hào)整數(shù)) 不可達(dá)路由長(zhǎng)度 6A+_"s$^E%_ G3S$ew Withdrawn Routes :(變長(zhǎng)) 退出路由!J djNRH u~ Path Attribute Len :(2字節(jié)無(wú)符號(hào)整數(shù)) 路徑屬性長(zhǎng)n.Or2T:_‘P*j Path Attributes :(變長(zhǎng)) 路徑屬性(以下詳細(xì)說(shuō)明) h-@(m3BX0u5h7l Network Layer Reachability Information :(變長(zhǎng)) 網(wǎng)絡(luò)可達(dá)信息(信宿) s+e#Z%?.aP fdC9S@Y @5yB 其中退出路由和信宿地址的表示方法為一 <length,prefix> 的二元組。length一個(gè)字節(jié),指示地址前綴的長(zhǎng)度。prefix為地址前綴,長(zhǎng)度1至4字節(jié)。 1z Z5U;MI._7XZ8?\0^ *~N x f"|‘]3UA ;T0i h6n+b[ 3、BGP協(xié)議路由屬性的應(yīng)用 7U‘W.r6A6~/pe2L 路由是用信宿地址來(lái)標(biāo)識(shí)的。路由的屬性即UPDATE消息中的路由屬性部分,是用來(lái)幫助BGP進(jìn)行路由選擇的。它們?cè)诒镜谺GP選擇路由時(shí)有不同的作用。當(dāng)BGP通過(guò)不同的路由源收到了相同信宿地址的路由時(shí),需要進(jìn)行路由選擇。}*ls(Qt*{ (1)ORIGIN起點(diǎn)屬性8sA1_`0[+@)t;N_ 起點(diǎn)屬性表示路由相對(duì)于發(fā)出它的自治系統(tǒng)的路由更新起點(diǎn)。5QF C"u8r}A -IGP BGP把聚合路由和用network定義的路由看成是AS內(nèi)部的,起點(diǎn)類型設(shè)置為IGP。 `K/_0P.V k~(Q -EGP BGP把通過(guò)EGP得到的路由的起點(diǎn)設(shè)置為EGP。N)at @}*R`h?W j vu -INCOMPLETE BGP把通過(guò)其它IGP協(xié)議引入的路由的起點(diǎn)設(shè)置為INCOMPLETE。這是因?yàn)橐氲穆酚煽赡軓娜魏蔚胤絹?lái),如OSPF的ASE路由。Juq$| _)g9K2^ m3NTT1q~7yl Cw BGP在其它因素相同的情況下,按IGP,EGP,INCOMPLETE的順序選擇路由,因?yàn)镮GP路由的位置更確定,EGP次之,而INCOMPLETE則很不確定。@"r P(N6g$V/V |1N3jgy` (2)AS路徑屬性 O0v a KH,{ 路由的AS路徑屬性記錄了此路由所穿過(guò)的所有AS區(qū)域,它可以避免路由環(huán)路的出現(xiàn),即當(dāng)BGP把一條路由通告給一個(gè)此路由曾穿越過(guò)的AS自治區(qū)域時(shí),此AS又把這條路由當(dāng)作新路由來(lái)處理了,這也正是困擾EGP問(wèn)題。 r"W1I3f~p 在加入了AS路徑屬性后,BGP可以根據(jù)AS路徑屬性中的信息來(lái)消除路由環(huán)路。BGP不會(huì)接受AS路徑屬性中包含了本AS自治區(qū)域號(hào)的路由,因?yàn)榇寺酚梢呀?jīng)被本自治區(qū)域處理過(guò)了,從而避免了生成路由環(huán)路的可能。為此,BGP在向EBGP對(duì)端,即向本AS外部通告一條路由時(shí),要把本AS自治區(qū)域的AS號(hào)加入的AS路徑屬性中,以記錄此路由通過(guò)的AS區(qū)域信息。 L!o]8oY!F)i;{ 同時(shí),AS路徑屬性也在影響路由選擇。顯然,在其它因素相同的情況下,應(yīng)該選擇AS路徑較短的路由,因?yàn)樗┻^(guò)了較少的自治區(qū)域。這一點(diǎn)并不一定精確,因?yàn)榇┻^(guò)了的3個(gè)由高速網(wǎng)絡(luò)構(gòu)成的AS區(qū)域的路由,有可能比穿過(guò)了2個(gè)低速網(wǎng)絡(luò)的AS區(qū)域的路由更好。這種情況要求恰當(dāng)?shù)呐渲茫栽谄渌囊蛩刂杏绊懧酚傻倪x擇。9`Pr3~m1](Zy 協(xié)議不可能自動(dòng)完成一切,有經(jīng)驗(yàn)的工程師的合理的配置對(duì)優(yōu)化網(wǎng)絡(luò)更重要。L(fy;\+E?,D 在AS路徑屬性中,AS_SEQUENCE屬性的AS路徑值表示此AS路徑是有順序關(guān)系的。通過(guò)它可以在本生成AS自治區(qū)域的拓?fù)浣Y(jié)構(gòu)圖。當(dāng)路由被發(fā)送到AS自治區(qū)域外時(shí),一般要把本區(qū)域AS號(hào)加入到AS_SEQUENCE序列后。AS_SET屬性是用于路由聚合的,它的AS路徑信息無(wú)順序關(guān)系,無(wú)法生成拓?fù)浣Y(jié)構(gòu)圖,但用于檢測(cè)AS路由環(huán)路是足夠用的。/CdT&K*QP]i (3)NEXTHOP下一跳屬性Lm*w)I~};Fx5QR+jV-W W1r0},bO 對(duì)于EBGP,下一跳屬性是本地BGP與對(duì)端連接的端口地址。如上圖,RTC向RTA通過(guò)EBGP通告路由170.10.0.0時(shí),下一跳屬性為170.10.20.2;RTA向RTC通告150.10.0.0的路由時(shí),下一跳為170.10.20.1。 3jn-N6` R4~ My 對(duì)于IBGP,本地BGP將從EBGP得到的路由的下一跳屬性,直接注入IBGP的UPDATE路由更新消息。上圖中,RTA通過(guò)IBGP向RTB通告路由170.10.0.0時(shí),下一跳仍然為EBGP中的170.10.20.2,而不是150.10.30.1。對(duì)于RTB,此下一跳信息最終應(yīng)該通過(guò)IGP得到。 X7Z+E MG.l0w 對(duì)于可以多路訪問(wèn)的網(wǎng)絡(luò),下一跳情況有所不同。!bOJ2[.i{p8I :RJM{&~K"mV 在上圖中,RTA和RTC運(yùn)行BGP,AS300中IGP為OSPF。OSPF通告RTC通過(guò)下一跳170.10.20.3可以到達(dá)網(wǎng)絡(luò)180.20.0.0。RTC在通過(guò)EBGP通告RTA路由180.20.0.0時(shí),發(fā)現(xiàn)本地端口170.10.20.2和此路由的下一跳170.10.20.3為同一共享子網(wǎng),因此使用170.10.20.3作為EBGP通告路由的下一跳,而非170.10.20.2。4I#P\%v#L-pm4F 這種情況,對(duì)于NBMA非廣播多點(diǎn)可達(dá)網(wǎng)絡(luò)不適用。yU*x&|cYRU :csU0`.Q E)`D5_ 將以太網(wǎng)替換為FrameRelay楨中繼網(wǎng)和其它NBMA網(wǎng)絡(luò),箭頭指示方向有PVC永久虛電路。此時(shí),RTC也發(fā)送下一跳為170.10.20.3的180.20.0.0路由給RTA,就會(huì)出現(xiàn)問(wèn)題:RTA到RTD無(wú)可達(dá)鏈路! PY8D*M cXXD2F 為了避免此問(wèn)題,請(qǐng)使用Next-hop-self命令,強(qiáng)制RTA將路由180.20.0.0的下一跳設(shè)置為本地BGP端口地址170.10.20.2。(V@/l^:ED (4)MED屬性{;Ft2N8ok:K MULTI_EXIT_DISCRIMINATOR就是一條路由的Metric。當(dāng)某AS自治區(qū)域有多個(gè)人口點(diǎn)時(shí),此屬性用來(lái)幫助選擇一個(gè)較好的人口點(diǎn)。即,選擇MED較小的人口點(diǎn)。7Ku*y:ka,BuT ,fM4^C&hU Q$I2l 如上圖,網(wǎng)絡(luò)路由180.10.0.0從RTC、RTD和RTB出發(fā),通過(guò)EBGP通告給RTA。其中RTC的MED為120,RTD的MED為200,RTB的MED為50。缺省情況下,BGP只比較同一AS區(qū)域發(fā)送的MED,這是因?yàn)椴煌珹S自治區(qū)域的度量Metric的方法可能不同,只有相同AS區(qū)域的Metric才有可比性。因此RTA選擇MED較小的RTC發(fā)送的路由,將2.2.2.1作為路由180.10.0.0的下一跳(RTB的MED更小,但AS路徑較長(zhǎng))。MED屬性不會(huì)通過(guò)AS區(qū)域傳播,因此,RTA發(fā)送路由180.10.0.0時(shí)的MED設(shè)置為其缺省的0。5x_ SET+a Fw 也可以使用always-compare-med命令來(lái)強(qiáng)制比較同一路由的所有的MED。上例中,最終會(huì)選擇RTB作為路由180.10.0.0的下一跳,因?yàn)樗哂凶钚〉腗ED。t h m9L1P!Q iY 總之,MED可以幫助本地BGP選擇到達(dá)某一個(gè)AS區(qū)域的人口點(diǎn)。7X$SH&d8e3A,M (5)LOCALPREFERENCE本地優(yōu)先級(jí)屬性K9wEA#w4R-Y:s1p6U*D 本地優(yōu)先級(jí)屬性用來(lái)幫助AS區(qū)域內(nèi)部的路由器,選擇到AS區(qū)域外部使用的較好的出口。 m;H#{!e6]#yO ?;p &J0H$Ir!uo r 如上圖例,當(dāng)路由170.10.0.0通過(guò)RTC和RTD發(fā)送到AS256內(nèi)部時(shí),RTC將本地優(yōu)先級(jí)設(shè)置為150;RTD將本地優(yōu)先級(jí)設(shè)置為200。這可能是因?yàn)镽TC連接的AS區(qū)域具有較高的速度或收費(fèi)較低。因此,AS256內(nèi)部的路由器選擇本地優(yōu)先級(jí)較高的RTC作為得到網(wǎng)絡(luò)170.10.0.0的下一跳。 `/[J.R;e+I+NC1l 和MED相反,較高的本地優(yōu)先級(jí)的路由被選擇。 #gr1P5Eb 和MED對(duì)應(yīng),本地優(yōu)先級(jí)用來(lái)幫助本地BGP在不同的相鄰AS區(qū)域中選擇較好的退出路由。v$|QU A‘q 在一個(gè)自治區(qū)域中的所有BGP路由器必須使用IBGP連通起來(lái),已相互通過(guò)比較某條路由的本地優(yōu)先級(jí)來(lái)就到達(dá)此信宿的AS出口點(diǎn)達(dá)成一致。\\w hQDI-| (6)ATOMIC_AGGREGATE元聚合屬性 UJ+nE(I‘w.Oe 此屬性用來(lái)表示一條路由是在某處被聚合形成的,丟失了部分信息。!P_ b] g(G-v (7)AGGREGATOR聚合者屬性 !eA‘~w"j 此屬性記錄了一條路由被聚合的路由器的AS號(hào)和IP地址。"W;Ua\wqlp0`uY ` t.nhz 綜合起來(lái),本地BGP路由選擇的過(guò)程為: ‘c&N aCv‘qrPGv (1)如果此路由的下一跳不可達(dá),忽略此路由;k7bK:ORr (2)選擇本地優(yōu)先級(jí)較大的路由; T2u s9e-X2B tN (3)選擇本地路由器始發(fā)的路由(本地優(yōu)先級(jí)相同);$}z@.IV4c7o (4)選擇AS路徑較短的路由;|t:OI IwdgKs` (5)依次選擇起點(diǎn)類型為IGP,EGP,INCOMPLETE類型的路由; z xg/xs (6)選擇MED較低的路由;r&dnR$OfM (7)選擇RouterID較低的路由。 FA(smOHn#h:Z 4、BGP協(xié)議的特點(diǎn) 9{(d$e7J y BGP是一種AS(自治區(qū)域)外部路由協(xié)議,主要負(fù)責(zé)本自治區(qū)域和外部的自治區(qū)域間的路由可達(dá)信息的交換。因此,它所關(guān)心的拓?fù)浣Y(jié)構(gòu)是AS(自治區(qū)域)的拓?fù)浣Y(jié)構(gòu),BGP通過(guò)UPDATE消息中路由的AS屬性來(lái)構(gòu)造AS的拓?fù)浣Y(jié)構(gòu)圖,進(jìn)一步通過(guò)此結(jié)構(gòu)圖來(lái)選擇路由。 5tZ*oo‘{o/N;hgo 與OSPF,RIP等IGP協(xié)議相比,BGP的拓?fù)鋱D要更抽象和粗略一些。因?yàn)镮GP協(xié)議構(gòu)造的是AS內(nèi)部的路由器的拓?fù)浣Y(jié)構(gòu)圖。IGP把路由器抽象成若干端點(diǎn),把路由器之間的鏈路抽象成邊,根據(jù)鏈路的狀態(tài)等參數(shù)和一定的度量標(biāo)準(zhǔn),每條邊配以一定的權(quán)值,生成拓?fù)鋱D。根據(jù)此拓?fù)鋱D選擇代價(jià)(兩點(diǎn)間經(jīng)過(guò)的邊的權(quán)值和)最小的路由。這里有一個(gè)假設(shè),即路由器(端點(diǎn))轉(zhuǎn)發(fā)數(shù)據(jù)包是沒(méi)有的代價(jià)的。而在BGP中,拓?fù)鋱D的端點(diǎn)是一個(gè)AS區(qū)域,邊是AS之間的鏈路。此時(shí),數(shù)據(jù)包經(jīng)過(guò)一個(gè)端點(diǎn)(AS自治區(qū)域)時(shí)的代價(jià)就不能假設(shè)為0了,此代價(jià)要由IGP來(lái)負(fù)責(zé)計(jì)算。這體現(xiàn)了EGP和IGP是分層的關(guān)系。即IGP負(fù)責(zé)在AS內(nèi)部選擇花費(fèi)最小的路由,EGP負(fù)責(zé)選擇AS間花費(fèi)最小的路由。 lm\)F|Y j;Z BGP作為EGP的一種,選擇路由時(shí)考慮的是AS間的鏈路花費(fèi),AS區(qū)域內(nèi)的花費(fèi)(由BGP路由器配置)等因素。 1UR,R$K8t9h 如上所述,內(nèi)部網(wǎng)關(guān)協(xié)議IGP需引入AS自治區(qū)域內(nèi)部網(wǎng)絡(luò)拓?fù)鋱D其它各點(diǎn)的路由,同時(shí)向其它端點(diǎn)發(fā)送本端點(diǎn)(路由器)所知的路由,如直接路由、靜態(tài)路由等。作為外部網(wǎng)關(guān)協(xié)議,BGP發(fā)送和引入路由的單位是整個(gè)AS自治區(qū)域,即BGP要發(fā)送本地路由器所在的AS內(nèi)部的所有路由,引入其它AS自治區(qū)域的所有路由(假設(shè)不使用路由策略控制發(fā)送和引入)。其路由數(shù)量顯然要遠(yuǎn)遠(yuǎn)大于IGP發(fā)送和引入的路由數(shù)量。因此,類似于IGP那樣定時(shí)對(duì)外廣播路由信息是不可取的。BGP采用發(fā)送路由增量(Incremental)的方法,完成全部路由信息的通告和維護(hù):初始化時(shí)發(fā)送所有的路由給BGP對(duì)端(BGP Peer),同時(shí)在本地保存了已經(jīng)發(fā)送給BGP對(duì)端的路由信息。當(dāng)本地的BGP收到了一條新路由時(shí)(如通過(guò)IGP注入了新路由或加入了新的靜態(tài)路由),與保存的已發(fā)送信息進(jìn)行比較,如未發(fā)送過(guò),則發(fā)送,如已發(fā)送過(guò)則與已經(jīng)發(fā)送的路由進(jìn)行比較,如新路由花費(fèi)更小,則發(fā)送此新路由,同時(shí)更新已發(fā)送信息,反之則不發(fā)送。當(dāng)本地BGP發(fā)現(xiàn)一條路由失效時(shí)(如對(duì)應(yīng)端口失效),如此路由已發(fā)送過(guò),則向BGP對(duì)端發(fā)送一個(gè)退出路由消息。O-VdV%g/HZ0Ao 總之,BGP不是每次都廣播所有的路由信息,而是在初始化全部路由信息后只發(fā)送路由的變化量(增量)。這樣保證了BGP和對(duì)端的最小通信量,但同時(shí)增加了BGP的復(fù)雜程度。因?yàn)閷?duì)于IGP,本地路由協(xié)議只需發(fā)送發(fā)送時(shí)刻所知的全部路由,而不保存任何已發(fā)送信息,路由選擇的工作由對(duì)端來(lái)完成;而BGP必須為每個(gè)BGP對(duì)端保存已經(jīng)發(fā)送的路由信息,以便發(fā)送一條新路由前確認(rèn)其是否真的應(yīng)該發(fā)送。3LH"Y!xH7K JcC 為了減小路由表的體積和發(fā)送路由的通信量,BGP還支持CIDR(Classless InterDomain Routing)。它使用帶有較短的掩碼(相對(duì)于自然掩碼)的路由來(lái)在一條路由中表達(dá)更多的路由信息。如從202.112.1.0/24-202.112.254.0/24可以使用202.112.0.0/16表示,從而減小了路由表的體積和發(fā)送路由信息時(shí)的網(wǎng)絡(luò)流量。 Z1@/pc[,V‘YX(LD 同時(shí),作為AS自治區(qū)域間的路由協(xié)議,由于政治的、經(jīng)濟(jì)的等原因,BGP需要按照不同的路由的屬性控制路由的發(fā)送和引入。因此,BGP有豐富的路由策略控制手?jǐn)唷?font style="FONT-SIZE: 0px; COLOR: #ffffff">@NZy*\ Z‘P&N 在本地BGP路由變化時(shí),也使用UPDATE消息修正對(duì)端BGP的路由表。 -xTR|] I }? ql 經(jīng)過(guò)一段時(shí)間的路由信息交換后,本地BGP和對(duì)端BGP都無(wú)新路由通告,趨于穩(wěn)定了。此時(shí)要定時(shí)發(fā)送KEEPALIVE消息以保持BGP連接的有效性。對(duì)于本地BGP,如果在超過(guò)保持時(shí)間的時(shí)間內(nèi),還未收到任何對(duì)端BGP消息,就認(rèn)為此BGP連接已經(jīng)無(wú)效,將此BGP連接斷開。 FMx#X9LzT 當(dāng)本地BGP在運(yùn)行中發(fā)現(xiàn)錯(cuò)誤時(shí),要發(fā)送NOTIFY消息通告BGP對(duì)端。如對(duì)端BGP版本本地不支持,本地BGP收到了結(jié)構(gòu)非法的UPDATE消息等。本地BGP退出BGP連接時(shí)也要發(fā)送NOTIFY消息。BGP收到NOTIFY消息后,要作相應(yīng)處理。 y%p,IQ9S1_9n/b9Rz/w 三、BGP配置任務(wù)列表C;g-J*VPlN3r BGP配置任務(wù)主要包括: ef7x4p6S*zHHS$q*i Ÿ 啟動(dòng)和關(guān)閉BGP \![U.Y S%WC[-}1?] Ÿ 配置BGP本地參數(shù) ,MP&du5Q*I Ÿ 復(fù)位BGP連接 L9j(G8s7T Ÿ 定義訪問(wèn)列表、AS路徑列表和路由映射 *V#Xa#^XD?!v Ÿ 配置neighbor D {C7wP,w vr.@Plk Ÿ 配置BGP同伴組 2r P*c*K H u!Q Ÿ BGP與IGP交互 PhS ^I%Qfo\ | 以下各節(jié)中引用的參數(shù)范圍如下表所示: Q{1t Dsz kR z)_~8n;|*F 表7-59 BGP配置參數(shù)范圍J*Vb"a7R:b 參數(shù)名稱 參數(shù)范圍 G#I5jCk kldh2x as-number 0~65535 #E9KI my metirc 0 ~4294967295!Fg1t/k*L8WD%[xFy perference –2147483648 ~21474836471z$N$t_z1tJA| holdtime 60~65535j `2~P+h0a-Z(|Yq asp-list-number 1~200 |/sn^6k list-number 1~200 \0FWK6FJ|*nB version-number 2~44A2I9C+{x1ZbT9M#u seq-number 0~65535 +r;|uG? as-regular-expression 參見(jiàn)RFC1164 section 4.2‘ZFl|E[| names 字符串(有效長(zhǎng)度32位)0BX/N:J2Z\&~P2d9] u@5i)lG!mYY 3. 啟動(dòng)和關(guān)閉BGP )| f9S)s}C,u 啟動(dòng)BGP協(xié)議時(shí)應(yīng)指定本地的自治區(qū)域號(hào)(AS號(hào))。啟動(dòng)BGP后,本地路由器不接收相鄰路由器的BGP連接請(qǐng)求。要使本地路由器主動(dòng)向相鄰路由器發(fā)出BGP連接請(qǐng)求,請(qǐng)參照Neighbor的配置。F4X6[8`ys5Y9M1P 關(guān)閉BGP協(xié)議時(shí),BGP協(xié)議將切斷所有已經(jīng)建立的BGP連接。~_*qv VX zGl/NF!_1\YOQ J"g~)B.~E+O A O!`!poi"b9sc 表7-60 啟動(dòng)和關(guān)閉BGP,?.\ lq2[3J *作 命令#A+e%m$E;b!J{7{ 啟動(dòng)BGP,并進(jìn)入BGP協(xié)議配置模式 router bgp as-numberW%E7JgD QO3@D&Y 退出BGP協(xié)議配置模式 exit-I9| a:yp$u/I 關(guān)閉BGP no router bgp@!HK_‘_H B3? Sb#lU YG 4. 配置BGP本地參數(shù) A-^H4XPxY0x4BD-rm BGP協(xié)議完成的主要任務(wù)之一是向其它的自治區(qū)域(AS)廣播本自治區(qū)域中的網(wǎng)絡(luò)可達(dá)信息。為了完成此任務(wù),BGP需要和內(nèi)部網(wǎng)關(guān)協(xié)議(IGP,如RIP和OSPF等)協(xié)同工作。一個(gè)簡(jiǎn)單的方法是將特定的IGP協(xié)議發(fā)現(xiàn)的網(wǎng)絡(luò)路由全部注入到BGP的路由表中,再由BGP發(fā)送出去(請(qǐng)參見(jiàn)“BGP與IGP交互”)。 4B _1o]A~nk \ A!M (1)定義和取消本地網(wǎng)絡(luò)#owo.B/Z M0YL 但有時(shí)只需要發(fā)送部分網(wǎng)絡(luò)路由。此時(shí),用network命令指定要發(fā)送的網(wǎng)絡(luò),同時(shí)也可以指定此網(wǎng)絡(luò)路由的掩碼和路由映射。 ‘T6H*Em‘O p:Qi(J 6B/k_SLQ"w.wh z 表7-61 定義和取消本地網(wǎng)絡(luò) pL]xyv+Y *作 命令X kC d*t6`(N‘\q 定義本地網(wǎng)絡(luò) network ip-address [mask mask] [routemap map-name] m|d P2U s9A 取消本地網(wǎng)絡(luò)的定義 no network ip-address ];P~2Y[0H ?|j-Lawbp (2)配置本地優(yōu)先級(jí) _2y1`mOWH 當(dāng)一個(gè)運(yùn)行BGP的路由器通過(guò)不同的內(nèi)部伙伴(Internal Peer)得到目的地相同、下一跳不同的路由時(shí),將根據(jù)不同路由的本地優(yōu)先級(jí)進(jìn)行選擇,選取本地優(yōu)先級(jí)最高的路由為到達(dá)此目的地的路由。用戶可以使用以下命令配置BGP路由的本地優(yōu)先級(jí): "~2Eyu Qio4z.\ 表7-62 配置本地優(yōu)先級(jí) |gz{:` @ W *作 命令 8@V_FG)gb+VbY 配置本地優(yōu)先級(jí) bgp default local-preference preference IP7qcK#t.}u 使用缺省的本地優(yōu)先級(jí) no bgp default local-preference |/FC`qC!W1q y (3)指定是否允許BGP生成默認(rèn)路由 "on4[)h0~ 表7-63 允許或禁止BGP生成默認(rèn)路由 /R5JKX-cD%E *作 命令-os%r-T7g.G ZL7Y ?_ 允許BGP生成默認(rèn)路由 default-information originate MI"u `bCr8G5W2` 禁止BGP生成默認(rèn)路由 no default-information originatee)Z$p(aMe 2p~8bR:{XrH Ql (4)配置MEDR3H$MJ7KV 當(dāng)一個(gè)運(yùn)行BGP的路由器通過(guò)不同的外部部伙伴(External Peer)得到目的地址相同、下一跳不同的路由時(shí),將根據(jù)不同路由的MED(Multi-Exit Discriminator)進(jìn)行選擇,選取MED最低的路由為到達(dá)此目的地的路由。 6K!Xe$_1[ 表7-64 配置MED 3IW1\ \v+I4QhQ *作 命令9opJr:I 配置MED default-metric metricZ0R[FT5Q.B7kCD 使用缺省的MED no default-metricp-uD1}-\4L2J }(q ~$k.EP (5)配置BGP定時(shí)器 cyat%T7C2yDRj 當(dāng)一臺(tái)路由器與對(duì)端路由器建立了BGP連接后,定時(shí)向?qū)Χ税l(fā)送Keepalive消息,以指示連接通路正常,可以保持連接。路由器在一定的時(shí)間內(nèi)沒(méi)有收到對(duì)端的Keepalive消息(或其它類型的消息)即認(rèn)為此BGP連接已經(jīng)被中斷,從而退出此BGP連接,并對(duì)從此BGP連接收到的路由進(jìn)行相應(yīng)的處理。因此,RFC中規(guī)定的Keepalive消息的間隔時(shí)間和BGP連接保持時(shí)間是BGP協(xié)議機(jī)制中比較重要的參數(shù)。用戶可通過(guò)以下命令配置這些參數(shù)。k"bp]JA-x w;F9@ 表7-65 配置BGP定時(shí)器S%U ec:jX.Cm *作 命令8Lz"a;o!Sa/IiPI:qi2Lr 配置BGP定時(shí)器 timers bgp keepalive-interval holdtime (H0m:{q-g_ 使用缺省的定時(shí)器值 no timers bgp +Lwt X7S/v6f9u km0G-T9A/Ta~Y;x 5. 復(fù)位BGP連接sM(K+au%h Jr6S 當(dāng)BGP有關(guān)的參數(shù)被用戶改變時(shí),由于相關(guān)信息已經(jīng)發(fā)送或是在BGP建立連接時(shí)由BGP連接的雙方協(xié)商的,因此須切斷當(dāng)前的BGP連接,待重新建立起連接后才能生效。用戶可以使用以下命令了達(dá)到此目的: (a;f)q!?;B 表7-66 復(fù)位BGP連接:vY8N0drI*jU *作 命令z-C:lh*yc8b 復(fù)位一個(gè)neighbor clear ip bgp ip-addressa x#M9q O~T%L-s 復(fù)位全部neighbor clear ip bgp *.gqifr ,V KrV(Q | 6. 定義訪問(wèn)列表、AS路徑列表和路由映射 L T$PV.ZI 本節(jié)描述的訪問(wèn)列表(Access List)、AS路徑列表和路由映射(Routemap)是為以下的Neighbor配置做準(zhǔn)備。 \q\[#M3g9TZ#K (1) 定義訪問(wèn)列表 i2Ik_IC0Y3U1{ 請(qǐng)參見(jiàn)防火墻的配置。T:HLaX1Xvu (2)定義AS路徑列表Lze.?B2h|? 每個(gè)AS路徑列表是用數(shù)字來(lái)標(biāo)識(shí)的。 T0q3b-Z{,X3y 表7-67 定義AS路徑列表 je9^q%T^*_ *作 命令 F"RM!aF%S*m 定義AS路徑列表 ip as-path access-list list-number {permit | deny} as-regular-expression0{N G|D Jh$p8|:j j 刪除指定的AS列表 no ip as-path access-list list-number RL1Z_0R y`3o‘\\ j,r3l (3)定義路由映射(Routemap) &h Ir:O5N 路由映射是BGP實(shí)施路由策略的重要部分。它根據(jù)路由屬性的匹配結(jié)果,決定對(duì)路由屬性的*作。即完成用戶指定的將特定條件的路由集合的屬性修改的任務(wù)。每個(gè)路由映射中可以有若干映射規(guī)則,用序列號(hào)標(biāo)識(shí)。在進(jìn)行路由映射時(shí),按序列號(hào)從小到大的順序進(jìn)行匹配,遇到第一個(gè)匹配的映射規(guī)則,就完成此次的路由映射過(guò)程。如未匹配任何一條映射規(guī)則,則此路由的發(fā)送和接收等*作被取消。8M)N8^#|I+v 7@;AH#Pvm Y k,o8U7H+S{M ,s:Bt:_g 表7-68 定義路由映射(Routemap)X8T&@ Fk *作 命令 o)d p;lU0vW)` 進(jìn)入路由映射配置模式 route-map map-name { permit | deny } seq-number ]*\\Z e;e&? y2k 退出路由映射配置模式 exit U)]*Js1z9X8dS8? 刪除指定的路由映射 no route-map map-name A u6QJ u2H#nDO ‘Hz?:g$B5n;o1~%f 定義匹配規(guī)則。o ACjU-z$x 表7-69 定義匹配規(guī)則 "`d5X}3EU$Y@ *作 命令 }Pd3]‘sz]~!S+H 匹配AS路徑正則表達(dá)式 match as-path [asp-list-num] ge A L-n*F;f0IQ 取消AS路徑表達(dá)式匹配 no match as-path-O:Gk0@ t,x5D 匹配端口 match interface { Ethernet | Serial | Null } [interface-number] .M‘~A~0\6z 取消端口匹配 no match interface S:`pI(`#n*Z#[4f 匹配地址 match ip address [ access-list-num ] +~ b0ShM6K h#E7g 取消地址匹配 no match ip address $h)K3oCt,i‘pG 匹配metric match metric [metric] ‘` J‘c5@*I(EJt J 取消metric匹配 no match metric?D Mb] 4P1KMP!D4^ `M 定義賦值規(guī)則。 KoQQD8o 表7-70 定義賦值規(guī)則 Y^K:~Sz5m *作 命令s&sG!VG(C8oQ~*l 設(shè)置AS號(hào) set as-path prepend as-numberJXXe3`M!j;j+GF 取消AS號(hào)的設(shè)置 no set as-path G |Q&} N R3kY 設(shè)置下一跳 set ip next-hop ip-address uT‘U8`Q H-w[ 取消下一跳的設(shè)置 no set ip next-hopb+^bm‘U0m!p4{E)S"E 設(shè)置本地優(yōu)先級(jí) set local-preference [preference] (}e fM(R{ 取消本地優(yōu)先級(jí)的設(shè)置 no set local-preference)T%o!Of6\ 設(shè)置metric set metric [metric] h;fx4y n}.Q;Y 取消metric的設(shè)置 no set metric Jh+rK](I? l 設(shè)置路由源 set origin { igp | egp | incomplete }utn3?3E~-Z [ 取消路由源的設(shè)置 no set origin6Q)C5\ fWx b !~ JJ/\u\ 7. 配置neighborYt#[_za"Q zOF;PL (1)啟動(dòng)和關(guān)閉neighborF"K m‘Z$j"t-ml R$~ 在啟動(dòng)BGP協(xié)議后,本地路由器就不再接收BGP連接請(qǐng)求。neighbor命令是用來(lái)向指定的對(duì)端路由器連接的。 R W8Nra {,w$cE 表7-71 啟動(dòng)和關(guān)閉neighbor Zi g,Ao[#Y UK *作 命令 2j6}$U8fP| 定義neighbor neighbor neighbor-address remote-as as-numberD,bHv xJ:Ja"Y 取消neighbor的定義 no neighbor neighbor-address remote-as as-number*^7[fN!L8K&`9U N o fI F|~[ (2)neighbor的策略K‘K!X!Uq 在本地BGP的neighbor上,可以施加若干策略,來(lái)控制BGP路由的輸入輸出。策略可以過(guò)濾掉指定目的地址且含有指定AS路徑屬性的路由,同時(shí)也可以對(duì)指定的路由進(jìn)行路由映射。 {@)Cj V~ k[u i:V 使用以下命令,可以使用存取列表(Access List)來(lái)指定BGP對(duì)目的地址的要求。其中,in或out指明是輸入還是輸出時(shí)使用此策略。 k;w3G`6U ~uAS 表7-72 配置neighbor的前綴過(guò)濾器 n(q;eQ}l+t[? *作 命令GEG1q-sgc 配置neighbor的前綴過(guò)濾器 [no] neighbor neighbor-address distribute-list lny0z"[o list-num { in | out })F3p\ }ew Nz,O6g*c?2Y 使用以下命令,可以指定BGP過(guò)濾掉(或過(guò)濾出)含有指定AS路徑屬性的路由。 O0Bxb4k2_1Gu E9B .^IG [5K3hn+Vfc| IQ,NU*aZ0y 表7-73 配置neighbor的AS路徑過(guò)濾器 SFwA?)dq? *作 命令;{u‘lO|#q v 配置neighbor的AS路徑過(guò)濾器 [no] neighbor neighbor-address filter-list asp-list-num { in | out }l)yu6X1\0w#{9z^ i v m u V.qJ 以下命令,指定某Neighbor(Peer伙伴),在輸入或輸出時(shí)所使用的路由映射。 anvTZSvl 表7-74 配置neighbor的路由映射 &V!O H-HR *作 命令 ]l4Ql)_E/t%W@A$d 配置neighbor的路由映射 [no] neighbor neighbor-address route-map map-name { in | out } eO"NWV7Uj_o sG _An&R9M 使用以下命令,可以設(shè)置此neighbor是否可以引入缺省路由。.n*U0h!G0P6u"\)b 表7-75 允許或禁止引入默認(rèn)路由 9LEd(b"o+C3Z G f5h *作 命令`C*V F r*a M 允許或禁止引入默認(rèn)路由 [no] neighbor neighbor-address default-originate )@w-YTx1SW M [ route-map map-name ] @1]v[Q:X&]w )z&yj,_4pU4u:~e| D (3)neighbor其它屬性的配置S xel4b0k 表7-76 neighbor其它屬性的配置-F Xw&u1p4qb5E9D"ZO.^ *作 命令 4?W!c-[L&\ 定義廣告時(shí)間間隔 neighbor neighbor-address advertisement-interval adv-interval e![F3OTmx v 定義keepalive時(shí)間間隔 neighbor neighbor-address timers interval 1QR-m"rYp!\ 指定版本號(hào) neighbor neighbor-address version version-number r3G9p%W,[:aAye 0{-E @O4EL 8. 配置BGP同伴組"LpL Y,X 在配置BGP時(shí),可能有很多neighbor的配置是相同的。對(duì)每一個(gè)neighbor都配置一次工作量較大。此時(shí),可以使用BGP同伴組,BGP同伴組是一個(gè)有相同配置的所有同伴的集合。在配置好同伴組后,將一個(gè)同伴加入到此同伴組中,就賦予了此同伴所有同伴組擁有的屬性。 I,q3p)WN&Z"o (1)創(chuàng)建同伴組wyy8HkWX5R"Y 表7-78 創(chuàng)建同伴組 L ^ d6T7Wk5DJ8|C *作 命令y*N6T3vJV/t"Dl 創(chuàng)建或取消同伴組 [no] neighbor group-name peer-group #ys$zv8oy:fu F kn%dJ9D[W (2)配置同伴組的策略B)~To2o!l4}&j 表7-79 配置同伴組的策略*x`Cr*xF *作 命令Y.v;@T%`N W Ui 配置同伴組的前綴過(guò)濾器 [no] neighbor group-name distribute-list foLx+gb/Z%@ { list-num | list-name } { in | out } L[R2dy 配置同伴組的AS路徑過(guò)濾器 [no] neighbor group-name filter-list _y!u%X3v.q]%p6R as-list-num { in | out } \0_k.Vbe 配置同伴組的路由映射 [no] neighbor group-name route-map *Cw ZK0BOF map-name { in | out } %Es.\w"|4C 引入默認(rèn)路由 [no] neighbor group-name default-originate g)`R `el‘v;ku [ route-map map-name ] ~!P8n9n B Kx &Su-r‘h%U Q(Y I (3) 配置同伴組的其它選項(xiàng);A%CO a*i9j9}+e (_.B2J5N j#S!I 表7-80 配置同伴組的其它選項(xiàng)L[yeL1E3Xz$Pp O.S *作 命令 rI-L a_ 定義廣告時(shí)間間隔 neighbor group-name advertisement-interval adv-interval2[,~k#kJ ] 定義keepalive時(shí)間間隔 neighbor group-name timers intervalH&o(\4k$|‘P 指定版本號(hào) neighbor group-name version version-number %f*P(x(ZD s"ZW:^q2k2fX-} (4)定義同伴組的成員$A7~H&`#i7] 將一個(gè)同伴加入到另一個(gè)同伴組中,等價(jià)于配置了一個(gè)有此同伴組所有屬性的同伴,并啟動(dòng)它。?KLs+b-S [ 7x/y PS xM[ 表7-81 配置同伴組的其它選項(xiàng) eQ#md^ AaF‘Q\ *作 命令p2R-y/F$Et 定義同伴組的成員 [no] neighbor ip-address peer-group group-nameaQ!ZCh,uNrFo 4Fp.~zKkC 9 BGP與IGP交互 [.Yk!U.[Lq (1)引入其它IGP協(xié)議的路由 2I~ BU MC BGP協(xié)議還可以向其它的自治區(qū)域發(fā)送本區(qū)域的內(nèi)部網(wǎng)絡(luò)的信息。為了達(dá)到此目的,可以將本地路由器通過(guò)IGP路由協(xié)議得到的關(guān)于本區(qū)域內(nèi)部的網(wǎng)絡(luò)信息通過(guò)BGP發(fā)送出去。使用下列命令可以將指定的IGP協(xié)議的路由通過(guò)BGP發(fā)送。用network命令也可以達(dá)到類似的目的。-tTvC9z QEd.}S%S 表7-82 引入靜態(tài)路由 Jv#Ko W#Vu2p *作 命令 P ^oz5a@,u0o!S*wX 引入靜態(tài)路由 [no] redistribute static twq?E(v?gt 引入靜態(tài)路由并設(shè)置metric redistribute static metric metric ,Y9PhcQh ^|I5F5h 引入靜態(tài)路由并設(shè)置路由映射 redistribute static route-map map-nameVG:k;hGho0l9H&c ?Kp7I:wt )q8p[x)E!N4PTw d *m}vSwE 表7-83 引入RIP路由7~1{BFu x2_} ^ld *作 命令$F QR*k,N&DK#Kh!` 引入RIP路由 [no] redistribute rip u o g8_ P g Kf 引入RIP路由并設(shè)置metric redistribute rip metric metric#v ~IHM%Rqf 引入RIP路由并設(shè)置路由映射 redistribute rip route-map map-name}!i|"@ I 8{.C@D2] J;z 表7-84 引入OSPF路由1|r[6~3a O} *作 命令 $]u#y%GXhM2{C*p 引入OSPF路由 redistribute ospf |8p"m I?|FV 取消引入OSPF路由 no redistribute ospf_;@VV-q `;y 引入OSPF的external路由 redistribute ospf match external "MQk.Jc W$iy7x 引入OSPF的external1路由 redistribute ospf match external 1 !?9STF}W{i C 引入OSPF的external2路由 redistribute ospf match external 2Z M‘jPLs 引入OSPF的internal路由 redistribute ospf match internal1f4U*Tb1f? K 引入OSPF路由并設(shè)置metric redistribute ospf metric metric b,V0QlOP _%w 引入OSPF路由并設(shè)置路由映射 redistribute ospf route-map map-name m}sGo`m,kd6u%~ #x‘T hB:p (2)BGP與IBGP的同步 x)c F*`A/alGN 關(guān)于BGP同步的描述較繁瑣,此處略,請(qǐng)參考RFC文檔及相關(guān)資料。 B%m1O6yS9v\j 表7-85 配置與IBGP的同步 3B!dr$Z%X7rS *作 命令 3?1{2[Fv+i.`!j 配置同步 [no] synchronizationv;@#zzt0Uf;~/h$u pEc8n| 10. BGP監(jiān)控和維護(hù)i ENAX~#X 通過(guò)執(zhí)行show命令可以顯示BGP的當(dāng)前運(yùn)行狀態(tài)。1j E,o:t;Z qR c$~?G/a ^M5l`.Q 表7-86 顯示BGP運(yùn)行狀態(tài).B p WVH8YQ‘| *作 命令&TP2OM2I0]f S 顯示BGP路由表中指定ip地址的路由信息。 show ip bgp A.B.C.D vM oAdN-{ 顯示cidr路由信息 show ip bgp CIDR fvQU;{m%h 顯示與指定Access-list 號(hào)相匹配的BGP路由信息 show ip bgp filter-list L:g,_‘u0w 顯示BGP同伴連接的詳細(xì)信息 show ip bgp neighbors C&pym/e‘RHIG;t 顯示AS路徑信息 show ip bgp paths Sbb9t1[5F 顯示AS伙伴組信息 show ip bgp peer-group5i(O z noB X 顯示匹配AS正則表達(dá)式的AS路徑信息 show ip bgp regexpOY#l)L8r.fGi`I:w 顯示BGP同伴狀態(tài)的綜合信息 show ip bgp summaryq#An_&Y ae3w){ E\,V 顯示BGP路由信息 show ip bgp .| T*A Y T2j w5U 2Jd1a G,o3K@&GE!J 四、BGP的應(yīng)用 %t#ymr O[A qg 1、基本配置 .UP‘@+Y1q f5q9R Ul -~}%YHtP9w8p 以下給出一簡(jiǎn)單的配置:/ug]X+yA 配置以上拓?fù)浣Y(jié)構(gòu)的BGP協(xié)議的命令為:9F)V6z9Bh-Z6e(Q8@a RTA的配置:#Ww }.z]3i]/E !RTAr tGl3j O%R+O e9Q router bgp 100%Q b8tpL$y neighbor 10.0.0.2 remote-as 200:Z4PN;C[.gN neighbor 10.0.0.3 remote-as 200^j:EtM1BH‘Y,M)k redistribute rip+Y_4tp_oSH9_ neighbor 129.102.1.2 remote-as 100sW?5YK!nI‘G ! pw"aI/\+{Y)z RTB的配置:V9ucM/a9F7k q !RTBl#x5Hn9p‘Fc router bgp 100dYmg6_2O!w neighbor 129.102.1.1 remote-as 100 *Rxd._0{"^R9M !4sO b{L:Z2JA RTC的配置: (cbZt+h4jJ !RTC 3tM hsaR router bgp 200 :H5yu1V*C? neighbor 10.0.0.1 remote-as 100 5r x#pqF A4y neighbor 139.102.1.2 remote-as 200 p2hfX(WA H no redistribute rip 0u4]j+y5|:q !iOh;otB!u8Y RTD的配置:N^qj:N+PB9C !RTD +S)p3B;JG:i1p0Z router bgp 200H%l7nqDCMV2A neighbor 10.0.0.1 remote-as 100k| r2o{8c neighbor 139.102.1.1 remote-as 200aq8Q SP&aw c no redistribute ripQE2u2o4UhE !? M$P"Eh ._ Mw!~2Mh/w:yI 2、BGP同步uE‘c M4d4r ~ 本地BGP在收到一條路由時(shí),要檢查此路由的下一跳是否可達(dá)。在同步狀態(tài)下,此BGP路由直到IGP也通告了此路由,BGP路由才被加入到路由表中。在非同步狀態(tài)下,BGP路由被直接加入到路由表。R;XY‘V6ZEjdZ BGP在通過(guò)EBGP收到其它AS自治區(qū)域BGP對(duì)端的UPDATE消息后,將此消息中的路由不加修改(<信宿地址,下一跳>不變)地通過(guò)IBGP發(fā)送給IBGP同伴。對(duì)于IBGP對(duì)端,在此路由的下一跳不可達(dá)的情況下,路由是應(yīng)該是無(wú)效的;同時(shí),在IGP通告此路由前,此路由也應(yīng)該是無(wú)效的,因?yàn)榇藭r(shí)此路由還未在AS區(qū)域內(nèi)由IGP收斂,此信宿的IP包會(huì)因?yàn)橹贿\(yùn)行IGP的路由器無(wú)此路由而被丟棄。aU0WF%r G T 如何判斷下一跳是否可達(dá)呢?BGP在路由表中遞歸查找,直到找到一個(gè)直接相連的接口,從而確認(rèn)此下一跳可達(dá),否則不可達(dá);同時(shí),到達(dá)此下一跳的路徑上的所有路由器必須也被通告了此路由,即AS區(qū)域內(nèi)此路由已經(jīng)由IGP擴(kuò)散。由于IBGP是通過(guò)TCP連接的,其間可能經(jīng)過(guò)若干路由器,IBGP消息中路由的下一跳的可達(dá)信息不能通過(guò)BGP來(lái)通告給途徑的路由器,而必須通過(guò)IGP在IBGP的發(fā)端通過(guò)引入BGP路由來(lái)完成。AS自治區(qū)域內(nèi)部的路由可達(dá)信息的傳播應(yīng)該由IGP完成,AS自治區(qū)域間的路由可達(dá)信息的傳播則由BGP完成。"同步"在這里指的是IGP和BGP的同步。 LX,_‘R*?T 以下舉例說(shuō)明同步。 +b;\-T&N~ t M;z,sx-A5x RTC通過(guò)EBGP通告RTA路由170.10.0.0,下一跳為2.2.2.1。RTA將此路由通過(guò)IBGP通告給RTB,下一跳不變,也是2.2.2.1。RTB知道為了到達(dá)2.2.2.1,應(yīng)該將IP包發(fā)送到RTE,而RTE如果并不知到網(wǎng)絡(luò)路由170.10.0.0,則會(huì)把丟棄此IP包。同時(shí),RTB通過(guò)EBGP將路由170.10.0.0通告給RTD,結(jié)果,AS400到網(wǎng)絡(luò)170.10.0.0的流量在RTE出全被丟棄了。 :n!X!`6nW)h 為了避免此情況,RTA處的IGP應(yīng)該引入BGP的路由170.10.0.0并通告給RTE。RTB在收到IGP通告的網(wǎng)絡(luò)路由170.10.0.0時(shí),說(shuō)明RTA和RTB之間至少有一條通路上的路由器全部被通告了170.10.0.0的路由,因此可以安全地把路由加入到路由表中,并可以通告RTD。*aL$F ~0l6_ 如果把AS自治區(qū)域視為一個(gè)大的AS路由器,AS路由器組成了Internet網(wǎng)絡(luò)。則BGP就成為了這個(gè)由AS路由器組成的更高一級(jí)的自治區(qū)域的IGP了,只不過(guò)這個(gè)更高一級(jí)的自治區(qū)域只有一個(gè),即因特網(wǎng)本身。在AS路由器內(nèi)部,BGP運(yùn)行于各個(gè)端口上(AS邊界的與其它AS連通的路由器)。當(dāng)AS從一個(gè)端口上得到了一條其它AS的路由時(shí),它通告給所有其它的端口(收到EBGP消息后通過(guò)IBGP通告AS內(nèi)部的所有BGP同伴)。而此AS路由器是分布式的,端口之間的可達(dá)信息是由AS內(nèi)部的IGP(RIP,OSPF)保證的,只有這條IBGP通告的路由的下一跳的可達(dá)信息通過(guò)IGP到達(dá)本地后,此IBGP通告的路由才加入本地路由表。之所以有"同步"問(wèn)題,是因?yàn)镮GP的收斂需要一定時(shí)間,而IBGP通過(guò)TCP連接直接發(fā)送無(wú)收斂時(shí)間,如果未等IGP收斂,就將IBGP通告的路由加入路由表,會(huì)造成"黑洞"。:^‘kt‘NqA 在路由器中,BGP缺省處于同步狀態(tài)。通過(guò)上例可以看出,在IBGP同步直接相連的情況下,不需要同步。 1UQ _o|4y`F 3、路由的過(guò)濾 p7|Y.o\ (1) 定義訪問(wèn)列表 vT!]j)m_1TSb9X:H 請(qǐng)參見(jiàn)防火墻的配置I,r fCz ii [ (2) 定義AS路徑列表e@tC f 每個(gè)AS路徑列表是用數(shù)字來(lái)標(biāo)識(shí)的。在配置模式下使用命令:‘Z.Y${.|8{~ i ip as-path access-list list-num permit|deny AS正則表達(dá)式 9]qJ nWB*I 可以配置一條AS路徑訪問(wèn)列表。 iw-jj)p 其中,AS正則表達(dá)式規(guī)定了路由AS屬性的模式,用于指定符合此模式的路由集合。 可以參考RFC1164 Section4.2。 ~3z|Pu5u)w R)S CISCO正則表達(dá)式的符號(hào)意義: } S?q]+g(^9Z\ j%BHF‘ZH(E.q 字符 符號(hào) 特殊意義 Xc4HV0t K.N^ 句號(hào) . 匹配任意單字符rP{ yi D4[3x&dD 星號(hào) * 匹配模式中0或更多的序列 0`4E)yjPsx 加號(hào) + 匹配模式中1或更多的序列 r%gX]Z4Q6~6_1w(g[ 問(wèn)號(hào) ? 匹配模式0或1次出現(xiàn) bCuC7J~ LV&XA 加字符 ^ 匹配輸入字符串的開始 yr(g&]o#CZ8oB 美元符 $ 匹配輸入字符串的結(jié)束 2G+MMfjV 下劃線 _ 匹配逗號(hào),括號(hào),字符串的開始和結(jié)束,空格 w\;Z‘[]-cn 方括號(hào) [范圍] 表示一個(gè)單字符模式的范圍 EU;r~H:g?7i:Wat 連字符 - 把一個(gè)范圍的結(jié)束點(diǎn)分開+jp9ZJ.| 7? fK2q@ b&B 例如: ?5f-P6|,ac3t/D "100 200 300" 匹配 _300$ "AS300始發(fā)的路徑"‘X#E|MgC y{0W U "300 400 100" 匹配 ^300_ "AS300為相鄰的AS自治區(qū)域"YJu^O:e/LQ 所有AS路徑 匹配 .* "所有AS路徑" A9Bnv L1v I?-w "300 100 200 400" 匹配 _100_ "經(jīng)過(guò)AS100的路徑" 2kOQM\KO/K (3)指定對(duì)路由的過(guò)濾 A"_)xe^"v]2Q f0B 根據(jù)配置的地址訪問(wèn)列表和AS路徑列表可以指定對(duì)特定的路由集合進(jìn)行過(guò)濾。此過(guò)濾可以施加于所有的同伴或特定的同伴。在BGP中,使用distribute-list指定地址訪問(wèn)列表,使用filter-list指定AS路由列表。4I"ha%@,]#C:U 以下分別舉例說(shuō)明地址過(guò)濾和路徑過(guò)濾: \1x t+cSB "A@h%a;R~_J[ 如圖,由于各種原因,網(wǎng)絡(luò)路由160.10.0.0不能經(jīng)過(guò)RTC通告給AS100中的RTA,但要通告本AS區(qū)域的網(wǎng)絡(luò)路由170.10.0.0,此時(shí)應(yīng)使用基于地址訪問(wèn)列表的路由過(guò)濾。 2\i8U.Z%o6I&] 路由器RTC的匹配為:u9]‘nh*ga !RTC}1},V!]u5x0p/u router bgp 300 :RD |7v0K\D#_-V network 170.10.0.0 -dm X4t|i neighbor 3.3.3.3 remote-as 200 0z7~J D)cpqwH neighbor 2.2.2.2 remote-as 100 ‘I9yi6W4V;e neighbor 2.2.2.2 distribute-list 1 out zebp5J$a E:Ka _ !(j B‘X2L/w"z access-list 1 deny 160.10.0.0 0.0.255.255 .g@+C r,y:WVj access-list 1 permit 0.0.0.0 255.255.255.255 r"@I-X(a+zG PZ ! &dk"HI!n#@,tx 路由器RTC在向RTA通告路由時(shí),要通過(guò)地址訪問(wèn)列表1,如果一條路由的信宿地址被地址訪問(wèn)列表拒絕,則不發(fā)送此路由。從而完成過(guò)濾路由160.10.0.0的目的。)B R6{v7Uc*? +N7|$d iBd2chf 用上圖說(shuō)明基于AS路徑屬性的過(guò)濾。 7QTp:r@D 此時(shí)也要RTC過(guò)濾掉所有發(fā)自AS200的路由。RTC使用的配置:T\5D r;c+d Iy6e !RTC9z`3E:j)nV router bgp 300 I_cMgw:y0z3T neighbor 3.3.3.3 remote-as 200 4ACS7F9rs B neighbor 2.2.2.2 remote-as 100 I5r f5{%A*{zx0D{ neighbor 2.2.2.2 filter-list 1 out /T序列中定義了一種匹配路由和的路由屬性賦值的集合。 路由通過(guò)一個(gè)Route-map時(shí),按序列號(hào)從小到大依次匹配各序列。當(dāng)路由屬性匹配某序列的匹配條件時(shí),根據(jù)此序列的賦值屬性對(duì)此路由的指定的路由屬性進(jìn)行*作,同時(shí)中斷匹配*作,路由通過(guò)此Route-map。 若路由未匹配任何一序列,則路由未通過(guò)此Route-map,之后的*作被終止。 1CDOFt0w)G‘xa_ 在一個(gè)序列中,可以根據(jù)一條路由的信宿地址、AS路徑、Metric花費(fèi)、BGP路由的源類型等對(duì)路由進(jìn)行匹配;同時(shí),可以設(shè)置路由的下一跳、AS路徑、Metric花費(fèi)、源類型、本地優(yōu)先級(jí)等路由屬性。 x$^1p‘xA;z)Va)\ 可以看出,Route-map也可以用作路由過(guò)濾,但更靈活一些。同時(shí)Route-map通過(guò)修改路由屬性來(lái)影響對(duì)端BGP的路由選擇。 5`3^$_|‘l-pf 以下舉例說(shuō)明Route-map的應(yīng)用:zp;f a4y g8J|`,s C!Z.p 例一:使用Route-map令RTC從RTB引入AS200區(qū)域中的路由,并將其Metric設(shè)置為20,而丟棄其它AS區(qū)域的路由。配置如下: "FIB0_lF1ojS !RTC,u‘@,h4k \/f] router bgp 300 MrAi }] network 170.10.0.0 pTy NVV:N8w#g2p neighbor 3.3.3.3 remote-as 200 DT ]bZk Kd neighbor 3.3.3.3 route-map stamp in Bzr5L#xJO&`#x7J ! ]N!g~3ap,j route-map stamp permit 109d;E+wRs[p L match as-path 1 wc0?5? EEN_P^Yi set metric 20 ~h(O`5kF ~d3^/d !s@4S&D5T J(Sn ip as-path access-list 1 permit ^200$$X\4d s l4D iOK !r)qkI?3S 其中使用的AS路徑列表1匹配AS200發(fā)出的路由。Route-map的序列10,使用AS路徑列表1作為匹配規(guī)則,如匹配,將匹配路由的Metric設(shè)置為20。對(duì)于其它AS屬性的路由,由于未匹配任何一條Route-map序列,即未匹配此Route-map,則拒絕引入此路由。IWQ?]m 例二:要求引入AS200發(fā)送的路由,并設(shè)置此路由的Metric屬性為20,丟棄AS400發(fā)送的路由,引入其它AS區(qū)域發(fā)送的路由,并匹配此路由的Metirc為10。9k zHR_6Q3{+L*m 路由器的配置為: I6m[I:Xe,_T} !RTC$dI `;NCP?G| router bgp 300 7[fo,aid;d network 170.10.0.05y4GKEw I*p neighbor 3.3.3.3 remote-as 2003r&l xQfC neighbor 3.3.3.3 route-map stamp in ‘dr;K/@W ! xS(M1@~o"]#@ route-map stamp permit 109IA%aXNG match as-path 18J/} o!sq9nA? set metric 20$O+vw5nSND !5\1~`)RF6U2v route-map stamp deny 20&W];d8C5a match as-path 2 m6n7G)nyd }*E-C !"n T-e‘hj+cb route-map stamp permit 30H/~)GW,@*Z h;x%D? set metric 10 rG \[)U#c !h6BQ9}?!V3M7{:D ip as-path access-list 1 permit ^200$5}1IOwR$U$ky ip as-path access-list 2 permit ^400 .*aH6ZEKT!@ !%Rw:`g$j-ZD7M~L 匹配AS路徑列表1的路由metric被設(shè)置為20,匹配AS路徑列表2的路由被拒絕引入,其余的路由metric被設(shè)置為10。 0D4X sc/_ZXz 使用上圖說(shuō)明Route-map中set as-path prepend的作用: [,A F l)Y,zl*k AS600中的路由器通過(guò)2條路徑收到了網(wǎng)絡(luò)路由170.10.0.0,AS路徑屬性分別為(100,300)和(400,200,300)。在其它因素相同的情況下,AS600會(huì)選擇AS100發(fā)送的路由,因?yàn)樗哂休^短的AS路徑。為了影響這種選擇,可以使用set as-path prepend功能。:M|VPz5tXS}r !RTC 9{ OFkn&na Qy router bgp 300 J/oZl m"E5as"L] network 170.10.0.0 0N1Ou s1^2s)H$x"y neighbor 2.2.2.2 remote-as 100 C4X*X X5petl neighbor 2.2.2.2 route-map SETPATH out )S`._9n~ !b]E&B$K0O%v3WK route-map SETPATH 1[jH @d \!HJp set as-path prepend 300 300 ;一般使用本AS區(qū)域的AS號(hào)2Z dE SK s?*xf !4YFz`j9D7jo 此配置將向AS100發(fā)送的路由的AS路徑屬性設(shè)置為(300,300,300),因此,通過(guò)AS100到達(dá)AS600的路由的AS路徑屬性為(100,300,300,300),從而影響AS600路由選擇,使其選擇從AS400發(fā)送來(lái)的路由,而不是AS100發(fā)送來(lái)的。 |
|
|
來(lái)自: todaytomo > 《網(wǎng)絡(luò)技術(shù)》