CCNP:BGP協(xié)議最佳路徑選擇算法揭秘
它是一個(gè)路徑矢量路由協(xié)議,也就是說(shuō),它的工作就是在自主系統(tǒng)間交換路由信息,以便發(fā)現(xiàn)訪問(wèn)互聯(lián)網(wǎng)某處數(shù)據(jù)的最有效路徑。每個(gè) BGP路由器通過(guò)鄰居聲名與周邊的一個(gè)或多個(gè)路由器連接。一旦建立了鄰居關(guān)系,這些BGP路由器之間就會(huì)相互交換路由信息。據(jù)我最近一次統(tǒng)計(jì),整個(gè)互聯(lián)網(wǎng)上有大約12.5萬(wàn)個(gè)路由信息,因此要配備一個(gè)強(qiáng)大的路由器才能將所有BGP路由信息接收下來(lái)。
什么是 BGP ***路徑選擇算法?
由于整個(gè)互聯(lián)網(wǎng)的BGP路由表有超過(guò)20萬(wàn)個(gè)路由,同時(shí)一個(gè)BGP路由器可能從多個(gè)來(lái)源收到多份的路由表,因此肯定會(huì)有一種方法可以比較不同的 BGP路由表,并從中選擇***的路由方案。這種方法就是BGP ***路徑選擇算法。
可能你會(huì)注意到,Cisco BGP路由器會(huì)將應(yīng)用權(quán)重(weight)作為 路由表的***標(biāo)準(zhǔn),而其它品牌的路由器則不是這樣。Cisco的官方BGP ***路徑選擇算法文檔 中詳細(xì)列明了所參考的各項(xiàng)標(biāo)準(zhǔn)。接下來(lái)我會(huì)列出每種標(biāo)準(zhǔn)并給出解釋和范例。
默認(rèn)情況下, BGP***路徑都是基于最短自治系統(tǒng)(AS)的原理得出的。不過(guò)很多時(shí)候,諸如weight,local preference以及MED這樣的標(biāo)準(zhǔn)都是網(wǎng)絡(luò)管理員自行設(shè)定的。
接下來(lái)我們就按照BGP選擇***路徑的參考順序?qū)⑦@幾項(xiàng)標(biāo)準(zhǔn)介紹一下:
#1 Weight — 權(quán)重是 Cisco為本地路由器設(shè)定的自定義參數(shù),并不隨路由器更新而變化。如果指向某一IP地址的路徑有多條(這很常見),那么BGP會(huì)尋找權(quán)重***的路徑。設(shè)定權(quán)重的參考因素很多,包括鄰居命令, as-path 訪問(wèn)列表,或者路由鏡像等。
#2 Local Preference — 本地出口優(yōu)先級(jí)參數(shù)會(huì)告知 AS 哪條路徑具有本地優(yōu)先,數(shù)值越高優(yōu)先級(jí)越高。默認(rèn)為100。比如:
bgp default local-preference 150
#3 Network or Aggregate — 這個(gè)參數(shù)會(huì)選擇本地發(fā)起的網(wǎng)絡(luò)或聚合作為路徑。將特定的路徑加入路由中,會(huì)讓路由更有效率,同時(shí)也節(jié)省了網(wǎng)絡(luò)空間。更多有關(guān)聚合的信息,可以參考Cisco的文章“Understanding Route Aggregation in BGP.”
#4 Shortest AS_PATH — BGP 只有在weight, local preference和locally originated相當(dāng)接近的時(shí)候才使用這個(gè)參數(shù)。
#5 Lowest origin type — 這個(gè)參數(shù)處理Interior Gateway Protocol (IGP) 協(xié)議的優(yōu)先級(jí)低于 Exterior Gateway Protocol (EGP)協(xié)議。
#6 Lowest multi-exit discriminator (MED) — 較低的 MED 值要優(yōu)于較高的MED值。
#7 eBGP over iBGP — 類似于#5, BGP AS Path 更傾向 eBGP 而不是 iBGP。
#8 Lowest IGP metric — 這個(gè)參數(shù)傾向于采用***IGP作為BGP下一跳。
#9 Multiple paths — 這個(gè)參數(shù)決定是否要在路由表中裝入多個(gè)路徑??梢詤⒖?BGP Multipath 獲取更多信息。
#10 External paths — 當(dāng)所有路徑都為外部路徑時(shí),選擇首先接收到的路徑(較老的路徑)。
#11 Lowest router ID — 選擇來(lái)自具有***路由器ID的BGP路由器的路徑。
#12 Minimum cluster list — 如果多個(gè)路徑的originator或路由器 ID相同,選擇cluster 列表長(zhǎng)度最短的路徑。
#13 Lowest neighbor address — 這是指***鄰居地址傳來(lái)的路徑。
有些命令需要不斷的用到BGP 參數(shù),它們是show ip bgp 和 show ip bgp summary。實(shí)際上,我更喜歡給這兩個(gè)命令創(chuàng)建別名,以便能更快捷的使用它們(參考我的文章《 用Cisco命令別名更有效的輸入命令》)。這些命令可以讓你快速獲取 BGP以及與路由器的關(guān)系。下面是使用show ip bgp 命令后的情況范例:
RTA# show ip bgp
BGP table version is 14, local router ID is 203.250.15.10
Status codes: s suppressed, d damped, h history, * valid, > best, i -internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*>i128.213.0.0 128.213.63.2 0 200 0 200 i
> 192.208.10.0 192.208.10.5 0 300 0 300 i
*>i200.200.0.0/16 128.213.63.2 200 0 200 400 i
>i203.250.13.0 203.250.13.41 0 100 0 i
*>i203.250.14.0 203.250.13.41 0 100 0 i
*> 203.250.15.0 0.0.0.0 0 32768 i
帶星號(hào)的是BGP***路徑選擇算法選出的***路徑。
總 結(jié)
不論你是使用 BGP的網(wǎng)管,還是只是為了CCIE或CCNP考試學(xué)習(xí)BGP的學(xué)員,懂得這方面的知識(shí)都是非常有益的。正如上面看到的,使用參數(shù)和命令行的方式,確實(shí)可以快速實(shí)現(xiàn)所需功能。
【編輯推薦】