基礎(chǔ)配置
修改下一跳為自身
指定更新源IP地址
完成這個實(shí)驗(yàn)
EBGP多跳
學(xué)會看三張表
BGP鄰居表
BGP表
路由表,display ip routing-table
基礎(chǔ)配置
R1沽瞭、R2奠骄、R3屬于AS 123豆同;R4屬于AS 400;
R1含鳞、R2影锈、R3運(yùn)行OSPF,運(yùn)行OSPF的目的是為了打通AS 123內(nèi)的路由;
R3-R4之間建立EBGP鄰居關(guān)系鸭廷,R2不運(yùn)行BGP枣抱;
R1-R3之間建立IBGP鄰居關(guān)系;
在R4上靴姿,將路由4.4.4.0/24發(fā)布到BGP沃但。
R1的配置如下(省略接口IP地址的配置):
[R1]?ospf?1?router-id?1.1.1.1
[R1-ospf-1]?area?0
[R1-ospf-1-area-0.0.0.0]?network?10.1.12.0?0.0.0.255
[R1]?bgp?123#創(chuàng)建BGP進(jìn)程,AS號為123
[R1-bgp]?router-id?1.1.1.1#配置BGP?Router-ID
[R1-bgp]?peer?10.1.23.3?as-number?123#配置BGP鄰居(指定鄰居的地址及AS號)佛吓,由于該鄰居的AS號與本地AS號一致,因此兩者之間為IBGP鄰居關(guān)系垂攘。
R2的配置比較簡單维雇,就是運(yùn)行OSPF而已,這部分配置不再贅述晒他。
R3的配置如下:
[R3]?ospf?1?router-id?3.3.3.3
[R3-ospf-1]?area?0
[R3-ospf-1-area-0.0.0.0]?network?10.1.23.0?0.0.0.255
[R3]?bgp?123
[R3-bgp]?router-id?3.3.3.3
[R3-bgp]?peer?10.1.34.4?as-number?400#配置EBGP鄰居R4
[R3-bgp]?peer?10.1.12.1?as-number?123#配置IBGP鄰居R1
R4的配置如下:
[R4]?interface?loopback?0
[R4-loopback0]?ip?address?4.4.4.4?24
[R4]?bgp?400
[R4-bgp]?router-id?4.4.4.4
[R4-bgp]?peer?10.1.34.3?as-number?123
[R4-bgp]?network?4.4.4.0?24#把本地直連路由network進(jìn)BGP
完成上述配置后吱型,在R3上查看BGP路由表:
[R3]?display?bgp?routing-table
BGP?Local?router?ID?is?10.1.23.3
Status?codes:?*?-?valid,?>?-?best,?d?-?damped,
h?-history,?i?-?internal,?s?-?suppressed,?S?-?Stale
Origin?:?i?-?IGP,?e?-?EGP,???-?incomplete
Total?Number?of?Routes:?1
Network?NextHop?MED?LocPrf?PrefVal?Path/Ogn
*>?4.4.4.0/24?10.1.34.4?0?0?400?i
我們看到R3已經(jīng)學(xué)習(xí)到了R4通告過來的BGP路由4.4.4.0/24。并且該條BGP路由的NextHop屬性值為10.1.34.4陨仅,這個下一跳地址是路由可達(dá)的津滞。該條路由在R3的BGP路由表里有“* >” 標(biāo)記,其中“*”表示這條路由是可用的(valid)灼伤,只有當(dāng)BGP路由的NextHop為路由可達(dá)時触徐,該BGP路由才會被視為可用;而“>”則表示這條路由是被優(yōu)選的路由狐赡,或者說是到達(dá)該目的網(wǎng)絡(luò)的最優(yōu)路由撞鹉。
BGP路由的NextHop屬性是一個非常重要的屬性,它是所有BGP路由都會攜帶的路徑屬性颖侄,它指示了到達(dá)目的網(wǎng)絡(luò)的下一跳地址鸟雏。
在R3上查看路由表:
[R3]?display?ip?routing-table?protocol?bgp
Destination/Mask?Proto?Pre?Cost?Flags?NextHop?Interface
4.4.4.0/24?EBGP?255?0?D?10.1.34.4?GigabitEthernet0/0/1
R3已經(jīng)將到達(dá)4.4.4.0/24的BGP路由加載到了全局路由表中。
對于R3而言览祖,到達(dá)4.4.4.0/24的路由已經(jīng)被優(yōu)選孝鹊,接下來,它會將該路由通告給IBGP鄰居R1展蒂。
在R1上查看BGP路由表:
[R1]display?bgp?routing-table
Network?NextHop?MED?LocPrf?PrefVal?Path/Ogn
i?4.4.4.0/24?10.1.34.4?0?100?0?400i
我們看到又活,R1的BGP路由表中已經(jīng)出現(xiàn)了4.4.4.0/24路由,而這條路由的NextHop屬性值是10.1.34.4玄货,但是R1在本地路由表中沒有到達(dá)10.1.34.4的路由皇钞,因此10.1.34.4不可達(dá),如此一來松捉,該BGP路由也就不可用了(在BGP路由表中沒有*號標(biāo)記)夹界,既然不可用,自然就不能裝載進(jìn)路由表中使用。
那么怎么解決這個問題呢可柿?一個最簡單的方法是鸠踪,為R1配置一條靜態(tài)路由:ip route-static 10.1.34.0 24 10.1.23.3,這樣一來R1的路由表里就有了到達(dá)10.1.34.4的路由复斥,那么BGP路由4.4.4.0/24的下一跳地址就可達(dá)了营密,對應(yīng)的BGP路由自然也就可用了。但是這種方法太“笨拙”目锭。另一種方法是评汰,在R3的OSPF進(jìn)程中將10.1.34.0/24網(wǎng)段也注入進(jìn)去,使得R1能夠通過OSPF學(xué)習(xí)到10.1.34.0/24路由痢虹,這種方法也是可行的被去。但是由于R3-R4之間的互聯(lián)鏈路被視為AS外部鏈路,因此10.1.34.0/24作為外部網(wǎng)段往往不會被宣告進(jìn)AS內(nèi)的IGP奖唯。那么還有什么其他辦法能解決這個問題么惨缆?
修改下一跳為自身
BGP路由器在向EBGP對等體發(fā)布某條路由時,會把該路由信息的下一跳屬性設(shè)置為本地與對端建立BGP鄰居關(guān)系的接口地址丰捷。如下圖所示坯墨,R4將4.4.4.0/24通告給R3時,下一跳為10.1.34.4病往,也就是R4的GE0/0/0接口地址捣染。
BGP路由器將本地始發(fā)路由發(fā)布給IBGP對等體時,會把該路由信息的下一跳屬性設(shè)置為本地與對端建立BGP鄰居關(guān)系的接口地址荣恐。
BGP路由器在向IBGP對等體發(fā)布從EBGP對等體學(xué)來的路由時液斜,并不改變該路由信息的下一跳屬性。
例如下圖所示叠穆,R3收到R4通告的EBGP路由少漆,該路由的下一跳屬性值為10.1.34.4,它將該條路由通告給IBGP對等體R1的時候硼被,路由的下一跳屬性值不會發(fā)生改變示损,仍然為10.1.34.4。
這就造成了我們上面所述的問題嚷硫,由于R1沒有到達(dá)10.1.34.0/24的路由检访,因此下一跳地址10.1.34.4不可達(dá),從而導(dǎo)致BGP路由4.4.4.0/24不可用仔掸。
還有一個方法可以解決這個問題:在R3上使用next-hop-local命令脆贵,可修改BGP路由的下一跳屬性值為自身。在下圖中起暮,我們在R3上增加了peer 10.1.12.1 next-hop-local命令卖氨,那么這樣一來,當(dāng)R3再將EBGP路由通告給R1的時候,會將這些路由的下一跳屬性值修改為自己的更新源地址(10.1.23.3)筒捺,而R1已經(jīng)通過OSPF獲知到達(dá)10.1.23.0/24的路由柏腻,因此10.1.23.3是可達(dá)的。
完成配置后系吭,我們在R1上查看BGP路由表:
指定更新源IP地址
可以手工指定用于建立BGP連接的源接口及源IP地址五嫂。命令如下:[Router-bgp] peer x.x.x.x connect-interface intf [ ipv4-src-address ]缺省情況下,BGP使用報文的出接口作為BGP報文的源接口肯尺。當(dāng)用戶完成peer命令的配置后沃缘,設(shè)備會在自己的路由表中查詢到達(dá)該對等體地址的路由,并從該路由得到出接口信息则吟。如果peer命令中沒有指定接口(connect-interface)和IP地址(ipv4-src-address)孩灯,那么設(shè)備將會使用前述出接口和該接口的IP地址作為BGP報文的源接口和源地址。
為了使物理接口在出現(xiàn)問題時逾滥,設(shè)備仍能發(fā)送BGP報文,可將發(fā)送BGP報文的源接口配置成Loopback接口败匹。在使用Loopback接口作為BGP報文的源接口時寨昙,必須確認(rèn)BGP對等體的Loopback接口的地址是可達(dá)的。由于一個AS內(nèi)往往會運(yùn)行IGP協(xié)議掀亩,因此AS內(nèi)的設(shè)備能夠通過該IGP協(xié)議獲知到達(dá)其他設(shè)備的Loopback接口的路由舔哪。在AS內(nèi)部,IBGP鄰居關(guān)系通巢酃鳎基于Loopback接口建立捉蚤。
EBGP鄰居之間通常使用直連接口的IP地址作為BGP報文源地址,如若使用環(huán)回接口建立EBGP鄰居關(guān)系炼七,要配置peer ebgp-max-hop命令缆巧,允許EBGP通過非直連方式建立鄰居關(guān)系。
同樣是上面的環(huán)境豌拙,我們稍作變更陕悬,在R1及R3上創(chuàng)建loopback0,地址分別為1.1.1.1/32及3.3.3.3/32按傅,然后設(shè)備各自將loopback0宣告進(jìn)OSPF捉超,使得彼此都能通過OSPF學(xué)習(xí)到對方的Loopback0路由。
我們修改BGP的配置唯绍,使得R1-R3之間的IBGP鄰居關(guān)系基于Loopback0來建立拼岳。
R1的關(guān)鍵配置如下:
[R1]?Interface?loopback0
[R1-Loopback0]?ip?address?1.1.1.1?32
[R1]?bgp?123
[R1-bgp]?peer?3.3.3.3?as-number?123
[R1-bgp]?peer?3.3.3.3?connect-interface?LoopBack?0
R3的關(guān)鍵性配置如下:
[R1]?Interface?loopback0
[R1-Loopback0]?ip?address?3.3.3.3?32
[R1]?bgp?123
[R1-bgp]?peer?1.1.1.1?as-number?123
[R1-bgp]?peer?1.1.1.1?connect-interface?LoopBack?0
[R1-bgp]?peer?1.1.1.1?next-hop-local
注意,務(wù)必要將R1及R3的Loopback0接口激活OSPF况芒。
完成這個實(shí)驗(yàn)
經(jīng)過前面的講解惜纸,我們的環(huán)境現(xiàn)在是這樣的:R1-R3之間建立了基于Loopback接口的IBGP鄰居關(guān)系;R3對R1配置了next-hop-local;R3與R4之間仍然維持基于直連接口的EBGP鄰居關(guān)系堪簿;R4在BGP中發(fā)布路由4.4.4.0/24痊乾。
現(xiàn)在R1是能夠?qū)W習(xí)到BGP路由4.4.4.0/24的,并且該路由也是被優(yōu)選的椭更,此時這條路由會被R1裝載進(jìn)全局路由表使用哪审,但是,這是不是意味著R1就能夠ping通4.4.4.4了呢虑瀑?經(jīng)過測試你可能會發(fā)現(xiàn):無法ping通湿滓?因?yàn)閿?shù)據(jù)包在R2這里就被丟棄了,R2并沒有運(yùn)行BGP舌狗,因此它無法學(xué)習(xí)到BGP路由4.4.4.0/24叽奥。
怎么才能讓R1 ping通4.4.4.4呢?方法之一是在R3上將BGP路由重發(fā)布進(jìn)OSPF痛侍,使得R2能夠通過OSPF學(xué)習(xí)到BGP路由4.4.4.0/24朝氓,但是這種方法存在一定的風(fēng)險,因?yàn)槲覀冎繠GP承載的前綴數(shù)量往往是非常龐大的主届;另一種方法是赵哲,讓R2也運(yùn)行BGP,并與R1君丁、R3建立IBGP鄰居關(guān)系枫夺,這樣一來問題就解決了。那么BGP鄰居關(guān)系就變成了如下圖所示绘闷。具體配置此處不再贅述橡庞。
EBGP多跳
通常情況下,EBGP鄰居之間必須具有直連的物理鏈路印蔗,EBGP鄰居關(guān)系也將基于直連接口來建立扒最,如果不滿足這一要求,則必須使用peer ebgp-max-hop命令允許它們之間經(jīng)過多跳建立TCP連接喻鳄。
peer ebgp-max-hop命令用來配置允許BGP同非直連網(wǎng)絡(luò)上的對等體建立EBGP連接扼倘,并同時可以指定允許的最大跳數(shù)。命令格式如下:[Router-bgp] peer ipv4-address ebgp-max-hop [ hop-count ]
如上圖所示除呵,R1及R2要基于Loopback口建立EBGP鄰居關(guān)系再菊。這種情況也屬于EBGP鄰居之間不基于直連接口建立鄰居關(guān)系的場景,必須配置peer ebgp-max-hop命令颜曾。圖中R1與R2之間的兩條物理鏈路是為了冗余性考慮纠拔。R1的關(guān)鍵配置如下:
[R1]?bgp?64512
[R1-bgp]?peer?2.2.2.2?as-number?64513
[R1-bgp]?peer?2.2.2.2?ebgp-max-hop?2
[R1-bgp]?peer?2.2.2.2?connect-interface?loopback0
[R1]?ip?route-static?2.2.2.2?32?10.1.10.2
[R1]?ip?route-static?2.2.2.2?32?10.1.20.2?80
R2的關(guān)鍵配置如下:
[R2]?bgp?64513
[R2-bgp]?peer?1.1.1.1?as-number?64512
[R2-bgp]?peer?1.1.1.1?ebgp-max-hop?2
[R2-bgp]?peer?1.1.1.1?connect-interface?loopback0
[R2]?ip?route-static?1.1.1.1?32?10.1.10.1
[R2]?ip?route-static?1.1.1.1?32?10.1.20.1?80
學(xué)會看三張表
BGP鄰居表
BGP表
查看BGP條目的詳細(xì)信息:
路由表,display ip routing-table