版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單元8:使用BGP路由實(shí)現(xiàn)域間路由選擇《高級(jí)路由技術(shù)》(理論篇)主講教師:XXX技術(shù)背景從技術(shù)角度講,Internet這樣遍布全世界龐大的網(wǎng)絡(luò),需要一種機(jī)制確保信息從世界一端可靠傳輸?shù)搅硪欢耍@個(gè)機(jī)制就是BGP(BorderGatewayProtocol,邊界網(wǎng)關(guān)協(xié)議)。在Internet中使用唯一進(jìn)行自治系統(tǒng)間路由協(xié)議就是BGP,BGP構(gòu)成整個(gè)Internet的核心網(wǎng)絡(luò),有人把BGP稱為“BGP是Internet的心臟”。學(xué)習(xí)目標(biāo)認(rèn)識(shí)邊界網(wǎng)關(guān)BGP路由協(xié)議
掌握BGP域間路由技術(shù)原理了解BGP路由常見(jiàn)屬性配置BGP路由協(xié)議,實(shí)現(xiàn)域間路由選擇8.1認(rèn)識(shí)BGP域間路由 RIP、OSPF和IS-IS等都屬于內(nèi)部網(wǎng)關(guān)協(xié)議(InteriorGatewayProtocol,IGP)。在一個(gè)網(wǎng)絡(luò)內(nèi)部,或者一個(gè)自治系統(tǒng)(AutonomousSystem,AS)內(nèi)部提供路由。各個(gè)AS系統(tǒng)都有專門技術(shù)負(fù)責(zé)AS內(nèi)路由、網(wǎng)絡(luò)結(jié)構(gòu)及編址方案。一個(gè)ISP就是一個(gè)AS系統(tǒng),有時(shí)一個(gè)企業(yè)網(wǎng)絡(luò)也為一個(gè)單獨(dú)AS系統(tǒng)。整個(gè)Internet是不同AS系統(tǒng)集合,Internet中每個(gè)AS自治系統(tǒng)都有一個(gè)唯一自治系統(tǒng)編號(hào),也就是AS號(hào)。8.1.1什么是自治系統(tǒng)AS8.1認(rèn)識(shí)BGP域間路由 常見(jiàn)RIP、OSPF路由屬于內(nèi)部網(wǎng)關(guān)協(xié)議(InteriorGatewayProtocol,IGP)。IGP設(shè)計(jì)在一個(gè)AS自治系統(tǒng)內(nèi)部(通常是園區(qū)網(wǎng)絡(luò))提供路由選擇,在園區(qū)網(wǎng)中提供穩(wěn)定、可擴(kuò)展以及快速的收斂選路機(jī)制。與IGP相對(duì)應(yīng)另一種路由協(xié)議是外部網(wǎng)關(guān)協(xié)議(ExteriorGatewayProtocol,EGP)。與IGP不同,EGP的設(shè)計(jì)并不用于在自治系統(tǒng)內(nèi)部提供路由選擇功能,EGP用來(lái)連接不同自治系統(tǒng),實(shí)現(xiàn)不同的AS自治系統(tǒng)之間路由選擇。8.1.2區(qū)別IGP與EGP8.2熟悉BGP路由特征BGP也是一種矢量路由協(xié)議,BGP通告的也是鄰居路由表信息。但BGP不使用跳數(shù),使用一系列路徑屬性衡量路由優(yōu)劣,稱之為路徑矢量路由協(xié)議。在BGP路由計(jì)算中,最典型路徑屬性是AS列表,BGP路由器對(duì)外通告每一條路由,都包括一個(gè)列表:記錄這條路由經(jīng)過(guò)AS號(hào)。AS列表說(shuō)明如果要到達(dá)目的地,途中經(jīng)過(guò)哪些AS。8.2.1BGP路徑矢量特征8.2熟悉BGP路由特征距離矢量路由協(xié)議RIP使用水平分割來(lái)、毒性逆轉(zhuǎn)、觸發(fā)更新等機(jī)制避免環(huán)路產(chǎn)生;OSPF使用SPF算法避免環(huán)路。BGP也需要防止路由環(huán)產(chǎn)生。BGP通過(guò)檢測(cè)收到路由AS列表。如果AS列表中包含自己AS號(hào),丟棄這條更新,意味著這條路由之前已經(jīng)過(guò)本地AS,并被通告出去。如果接收將導(dǎo)致路由環(huán)路產(chǎn)生。8.2.2BGP環(huán)路檢測(cè)機(jī)制8.2熟悉BGP路由特征Internet采用逐跳路由選擇模式,BGP非常適用于當(dāng)前Internet的AS間路由選擇。BGP路由支持遵循逐跳路由選擇策略,也就是說(shuō),網(wǎng)絡(luò)管理人員不能左右鄰接AS,如何轉(zhuǎn)發(fā)數(shù)據(jù)流,但可以決定數(shù)據(jù)流如何前往指定AS。如圖AS65006經(jīng)過(guò)AS65004,到達(dá)AS65001中192.0.1.0/24目標(biāo)網(wǎng)絡(luò),可以采用多條路徑傳輸。雖然AS65006經(jīng)過(guò)AS65004到達(dá)AS65000有多條路徑選擇;但實(shí)際上,AS65006并不知道所有路徑,因?yàn)锳S65004只將其最佳路徑:“65004—>65002—>65000”,通告給AS65006。8.2.3BGP逐跳路由選擇特征8.3了解BGP的鄰居關(guān)系RIP使用UDP作為傳輸協(xié)議,使用端口號(hào)為UDP520;OSPF的路由協(xié)議報(bào)文承載在IP報(bào)文,使用的IP協(xié)議號(hào)為89。而B(niǎo)GP使用TCP作為傳輸協(xié)議,其端口號(hào)為TCP179。這也是第一個(gè)以TCP作為傳輸協(xié)議的路由協(xié)議。BGP使用TCP作為傳輸協(xié)議,是因?yàn)門CP是面向連接協(xié)議,可以保障路由傳輸可靠性。由于TCP協(xié)議擁有確認(rèn)和重傳機(jī)制,這樣BGP路由信息傳輸中就無(wú)需支持確認(rèn)、重傳機(jī)制,簡(jiǎn)化了BGP的實(shí)現(xiàn)。BGP利用TCP協(xié)議來(lái)實(shí)現(xiàn)路由會(huì)話的建立、流量控制、重傳和會(huì)話拆除;提供可靠、穩(wěn)定的AS域間路由選擇,相比OSPF這樣的IGP協(xié)議,BGP路由協(xié)議不是非常關(guān)注網(wǎng)絡(luò)的收斂速度。8.3.1熟悉BGP協(xié)議報(bào)文8.3了解BGP的鄰居關(guān)系在BGP中,把運(yùn)行BGP的路由器稱BGP發(fā)言者(BGPSpeaker)。Internet中存在著成千上萬(wàn)BGP發(fā)言者。每個(gè)BGP發(fā)言者無(wú)法與所有BGP發(fā)言者建立鄰居關(guān)系,通常都是本地AS內(nèi)的BGP發(fā)言者與鄰居AS發(fā)言者。在BGP中,BGP鄰居另個(gè)叫法為BGP對(duì)等體(BGPPeer)。BGP使用TCP建立對(duì)等體間會(huì)話。當(dāng)兩個(gè)BGP發(fā)言者之間建立起TCP連接后,雙方發(fā)送Open(打開(kāi))消息,標(biāo)識(shí)自己,建立鄰居關(guān)系。BGP鄰居關(guān)系分為:外部BGP(EBGP,ExternalBGP)和內(nèi)部BGP(IBGP,InternalBGP)。8.3.2區(qū)別EBGP與IBGP8.3了解BGP的鄰居關(guān)系External/ExteriorBGP,外部BGP,運(yùn)行于不同AS之間的BGP稱為外部BGP。為了防止AS之間產(chǎn)生環(huán)路,當(dāng)BGP設(shè)備接受EBGP對(duì)等體發(fā)來(lái)的路由時(shí),會(huì)將路由信息AS_path列表中帶有本地AS號(hào)的路由丟棄。EBGP將路由信息從一個(gè)自治系統(tǒng)傳遞到另一個(gè)自治系統(tǒng),在不同的自治系統(tǒng)之間交換路由選擇信息。默認(rèn)情況下,BGP協(xié)議要求建立EBGP鄰居關(guān)系的兩個(gè)BGP發(fā)言者,必須在物理上直接相連。但也可以改變EBGP這種默認(rèn)行為,在非直連的兩個(gè)BGP發(fā)言者之間建立EBGP鄰居。當(dāng)需要在非直連的兩個(gè)BGP發(fā)言者之間建立EBGP鄰居時(shí),稱為EBGP多跳(EBGP-Multihop)。8.3.3掌握EBGP鄰居關(guān)系8.3了解BGP的鄰居關(guān)系使用AS路徑列表,不能防止AS自治系統(tǒng)內(nèi)部的BGP路由環(huán)路,是因?yàn)楫?dāng)一條BGP路由在AS自治系統(tǒng)內(nèi)部傳遞時(shí),AS列表并不會(huì)產(chǎn)生變化。對(duì)于一個(gè)BGP發(fā)言者來(lái)說(shuō),只有當(dāng)它將路由通告給它的EBGP對(duì)等體時(shí),才會(huì)將本地的AS號(hào)添加到AS路徑列表中。AS路徑列表中也不記錄在自治系統(tǒng)內(nèi)部處理過(guò)該路由信息的路由器。如圖中AS65001中BGP發(fā)言者,三臺(tái)路由器R1、R2、R3間建立IBGP鄰居關(guān)系。R1路由器從外部自治系統(tǒng)BGP發(fā)言者R4路由器上,收到BGP路由通告。然后,將此路由信息,通告給本地自治系統(tǒng)中的IBGP對(duì)等體R2和R3路由器。8.3.4掌握IBGP鄰居關(guān)系和水平分割8.4生成BGP路由表BGP路由不僅僅生成、更新一張路由表,BGP路由還維護(hù)著一張鄰居列表,列表中是記錄所有與本地建立了鄰居關(guān)系的BGP對(duì)等體。BGP路由將從鄰居路由器上接收到的所有BGP路由,都加入到BGP路由表中;然后,再進(jìn)行路徑的選擇。但是BGP最終只會(huì)把最優(yōu)路徑,加入到IP路由表中,通過(guò)IP路由表中的路由條目,指導(dǎo)接受到IP數(shù)據(jù)包轉(zhuǎn)發(fā)。當(dāng)本地BGP對(duì)等體,將BGP路由通告給鄰居時(shí),仍然是將BGP路由表中的路由條目通告給鄰居。鄰居收到后,也會(huì)將路由加入到它的BGP路由表中。8.5掌握BGP基礎(chǔ)配置啟用BGP路由協(xié)議后,路由器將不會(huì)自動(dòng)與任何對(duì)等體,需要建立鄰居關(guān)系并通告路由信息。由于BGP路由使用TCP會(huì)話來(lái)完成所有的操作,所以必須通過(guò)手工的方式,為BGP路由器指定它要與哪個(gè)對(duì)等體建立鄰居關(guān)系。在BGP路由協(xié)議工作過(guò)程中不存在任何自動(dòng)發(fā)現(xiàn)、并自動(dòng)建立鄰居關(guān)系的機(jī)制。在BGP路由進(jìn)程模式下,使用如下命令通過(guò)手工的方式指定對(duì)等體。8.5.1BGP基本配置8.5掌握BGP基礎(chǔ)配置默認(rèn)情況下,BGP路由協(xié)議按照BGP的路徑屬性,使用BGP路由下一跳(Next_hop)屬性規(guī)則,以及BGP發(fā)言者設(shè)置下一跳(Next_hop)屬性規(guī)則,對(duì)外通告BGP路由。但有時(shí)需要針對(duì)BGP的下一跳屬性進(jìn)行修改,簡(jiǎn)化BGP路由選擇操作。AS1中存在一條指向1.0.0.0/8網(wǎng)絡(luò)路由,現(xiàn)在需要將這個(gè)網(wǎng)絡(luò)通告給AS2中的BGP路由器。8.5.2配置BGP下一跳屬性8.5掌握BGP基礎(chǔ)配置當(dāng)需要在本地的BGP發(fā)言者上,斷開(kāi)與某個(gè)對(duì)等體的鄰居關(guān)系時(shí),可以在BGP路由進(jìn)程模式下使用如下命令。neighborip-addressshutdown使用此命令斷開(kāi)與某個(gè)BGP對(duì)等體的鄰居關(guān)系時(shí),無(wú)需刪除與這個(gè)鄰居有關(guān)的配置。當(dāng)需要重新啟用與對(duì)等體的鄰居關(guān)系時(shí),使用如下命令恢復(fù)。noneighborip-addressshutdown8.5.3關(guān)閉BGP鄰居8.6熟悉BGP路由消息類型BGPv4協(xié)議有5種消息報(bào)文:open(建立)、update(更新)、notification(通知)、keepalive(保持活躍)、route-refresh(路由刷新),承擔(dān)的功能描述如下。Open消息是TCP連接建立后發(fā)送的第一個(gè)報(bào)文,包含本地speaker信息以及與后面對(duì)等體之間建立TCP會(huì)話的信息,實(shí)現(xiàn)建立BGP對(duì)等體之間的連接關(guān)系。BGP用Open消息來(lái)建立BGP鄰居關(guān)系。當(dāng)BGP發(fā)言者之間的TCP連接建立起來(lái)后,雙方都要發(fā)送一個(gè)Open消息標(biāo)識(shí)自己。Open消息中所有信息都要被協(xié)商和接受。當(dāng)BGP發(fā)言者通過(guò)發(fā)送和接收Open消息,建立起B(yǎng)GP鄰居關(guān)系后,雙方就開(kāi)始使用Update消息交換路由信息。Update消息中包含可達(dá)路由、需要?jiǎng)h除的路由和BGP路徑屬性值。8.7了解BGP路由狀態(tài)機(jī)當(dāng)路由器啟用了BGP路由后,首先進(jìn)入的就是空閑狀態(tài)(Idle)狀態(tài)。在Idle狀態(tài)下,BGP發(fā)言者不會(huì)接收BGP的會(huì)話請(qǐng)求,這時(shí),BGP進(jìn)程不會(huì)擁有任何資源。只有在收到BGPStart事件(IE1)后,才會(huì)給BGP進(jìn)程分配資源。當(dāng)BGPStart事件發(fā)生后,BGP路由器開(kāi)始初始化它的BGP資源,并嘗試和已配置BGP對(duì)等體建立TCP會(huì)話;同時(shí),它也將偵聽(tīng)來(lái)自對(duì)等體的TCP會(huì)話請(qǐng)求。如果由于TCP連接被關(guān)閉或者其他錯(cuò)誤等,狀態(tài)機(jī)將保持在Idle狀態(tài)。如果沒(méi)有發(fā)生任何異常,狀態(tài)機(jī)將過(guò)渡到連接(Connect)狀態(tài)。通常BGP狀態(tài)機(jī)如果停留在Idle狀態(tài),可能有以下原因。在遠(yuǎn)端對(duì)等體上沒(méi)有正確的配置本地對(duì)等體的IP地址和自治系統(tǒng)號(hào)。在本地對(duì)等體上沒(méi)有正確的配置遠(yuǎn)端對(duì)等體的IP地址和自治系統(tǒng)號(hào)。本地或?qū)Χ藳](méi)有到達(dá)對(duì)方的路由。訪問(wèn)控制列表或防火墻阻斷了TCP的179端口,因?yàn)锽GP需要使用它。8.7.1空閑狀態(tài)(Idle)8.7了解BGP路由狀態(tài)機(jī)在連接狀態(tài)(Connect)狀態(tài)下,BGP等待TCP連接的建立。如果TCP連接建立成功,狀態(tài)機(jī)過(guò)渡到打開(kāi)發(fā)送(OpenSent)狀態(tài)。如果TCP連接沒(méi)有成功建立,狀態(tài)機(jī)將過(guò)渡到激活狀態(tài)(Active)。如果連接重試計(jì)時(shí)器超時(shí),狀態(tài)機(jī)仍保持在Connect狀態(tài)。如果遇到其他事件(見(jiàn)表6-1),狀態(tài)機(jī)將返回到Idle狀態(tài)。8.7.2連接狀態(tài)(Connect)8.7了解BGP路由狀態(tài)機(jī)如果BGP發(fā)言者無(wú)法和對(duì)等體建立TCP連接,那么狀態(tài)機(jī)將進(jìn)入到Active狀態(tài)。此時(shí),BGP發(fā)言者嘗試重新進(jìn)行TCP會(huì)話連接,并重置重連接計(jì)時(shí)器。如果在重連接過(guò)程中成功建立TCP連接。那么將發(fā)送一個(gè)Open消息,并過(guò)渡到OpenSent狀態(tài)。如果在重連接計(jì)時(shí)器超時(shí)后,還沒(méi)有建立TCP會(huì)話,狀態(tài)機(jī)將重啟重連接計(jì)時(shí)器,并返回Connect狀態(tài)。8.7.3激活狀態(tài)(Active)8.7了解BGP路由狀態(tài)機(jī)當(dāng)BGP對(duì)等體之間成功建立了TCP連接后,BGP發(fā)言者便發(fā)送一個(gè)Open消息,從而進(jìn)入OpenSent狀態(tài)。此時(shí),本地對(duì)等體將等待遠(yuǎn)端發(fā)送Open消息。當(dāng)收到對(duì)端Open消息后,BGP對(duì)等體檢查消息中字段是否匹配。如果發(fā)現(xiàn)了錯(cuò)誤,將會(huì)給遠(yuǎn)端對(duì)等體發(fā)送一個(gè)Notification消息,并返回到Idle狀態(tài)。如果此時(shí)TCP連接斷開(kāi),狀態(tài)機(jī)將返回Active狀態(tài)。如果在檢查Open消息時(shí),檢測(cè)到錯(cuò)誤,BGP將發(fā)送一個(gè)Keepalive報(bào)文,并且重置Keepalive計(jì)時(shí)器。在這個(gè)階段,雙方要協(xié)商保持時(shí)間,并且選擇雙方中較小的保持時(shí)間;之后,狀態(tài)機(jī)將過(guò)渡到OpenConfirm狀態(tài)。通常BGP不會(huì)在OpenSent狀態(tài)停留較長(zhǎng)時(shí)間。當(dāng)本地對(duì)等體收到遠(yuǎn)端的OPEN消息后,將會(huì)很快發(fā)送一個(gè)Keepalive報(bào)文,并過(guò)渡到OpenConfirm狀態(tài)。8.7.4打開(kāi)發(fā)送狀態(tài)(OpenSent)8.7了解BGP路由狀態(tài)機(jī)在打開(kāi)確認(rèn)狀態(tài)(OpenConfirm)狀態(tài)下,本地對(duì)等體將等待從遠(yuǎn)端收到一個(gè)Keepalive報(bào)文。如果收到對(duì)端的Keepalive報(bào)文,過(guò)渡到最終已建立狀態(tài)(Established)。如果收到了一個(gè)Notification消息,將返回到Idle狀態(tài)。BGP對(duì)等體只會(huì)在打開(kāi)確認(rèn)狀態(tài)(OpenConfirm)停留一定時(shí)間,來(lái)等待Keepalive報(bào)文。如果在保持計(jì)時(shí)器超市后,還沒(méi)有收到報(bào)文,將返回到Idle狀態(tài)。8.7.5打開(kāi)確認(rèn)狀態(tài)(OpenConfirm)8.7了解BGP路由狀態(tài)機(jī)已建立狀態(tài)(Established)是BGP對(duì)等體協(xié)商的最終狀態(tài)。在這個(gè)狀態(tài)下,BGP對(duì)等體開(kāi)始通過(guò)發(fā)送Update報(bào)文,交換路由信息。當(dāng)對(duì)等體收到Update或Keepalive報(bào)文后,保持計(jì)時(shí)器將被重置。如果收到Notification消息,則返回到Idle狀態(tài)。如果BGP對(duì)等體在Update消息中檢測(cè)到錯(cuò)誤,它將發(fā)送一個(gè)Notification消息到對(duì)等體,并且返回Idle狀態(tài)。如果保持計(jì)時(shí)器超時(shí),或者由于其他的一些事件,如BGPStop,狀態(tài)機(jī)也將返回到Idle狀態(tài)。8.7.6已建立狀態(tài)(Established)8.8掌握BGP路徑屬性起源屬性(ORIGIN)是公認(rèn)、強(qiáng)制屬性,指明這條路由信息來(lái)源。在BGP更新中,每條路由信息都包括這種屬性,而且接收它的BGP發(fā)言者,也必須識(shí)別和處理這種屬性。當(dāng)BGP發(fā)言者擁有到達(dá)相同目的網(wǎng)絡(luò)的路由時(shí),起源屬性作為一個(gè)決定路徑優(yōu)劣因素。這里的起源,是指始發(fā)BGP發(fā)言者,將這條路由通告到BGP中的方式。R1路由器擁有一條直連路由1.0.0.0/8,R2路由器擁有一條直連路由2.0.0.0/8。R1路由器使用network將直連路由通告到BGP中,R2路由器通過(guò)redistribute將直連路由重分發(fā)到BGP中。當(dāng)R4路由器收到這兩條路由后,看到1.0.0.0/8路由的起源屬性為“i”;2.0.0.0/8路由的起源屬性為“?”。8.8.1起源屬性8.8掌握BGP路徑屬性AS1中的路由器R1作為始發(fā)路由器,將路由1.0.0.0/8通告到BGP中,在發(fā)送給EBGP鄰居之前,將本地的AS號(hào)加入到AS路徑列表中。但是R1路由器從本地來(lái)看,1.0.0.0/8的路徑屬性為空。R2路由器收到此路由通告后,看到AS的路徑列表為“1”,表明該條路由始于AS1。R2再將路由通告給它的IBGP鄰居R3路由器時(shí),不會(huì)修改AS路徑列表,所以R3路由器看到的路徑列表仍然為“1”。R3路由器把這條路由再通告給EBGP鄰居R4路由器時(shí),就會(huì)附加上本地的AS號(hào)。此時(shí),R4路由器看到這條路由的路徑列表就為“2,1”,表明該路由始于AS1,并在傳輸路徑中經(jīng)過(guò)了AS2。對(duì)于路由器R4來(lái)說(shuō),如果要到達(dá)網(wǎng)絡(luò)1.0.0.0/8,需要先后經(jīng)過(guò)AS2和AS1二個(gè)自治域。8.8.2AS路徑屬性8.8掌握BGP路徑屬性下一跳屬性(NEXT_HOP)也是一個(gè)公認(rèn)又強(qiáng)制屬性,所有的BGP路由攜帶該屬性,所有BGP發(fā)言者都必須識(shí)別和處理該屬性。下一跳屬性指出要到達(dá)目標(biāo)網(wǎng)絡(luò),需要將數(shù)據(jù)發(fā)送到的下一個(gè)接口的地址或者路由器。在IP路由表中,所有路由都有下一跳,告訴路由器應(yīng)將收到IP數(shù)據(jù)包發(fā)送到哪里。在BGP路由表中,下一跳也一樣,告訴路由器去往某自治系統(tǒng)中的網(wǎng)絡(luò)時(shí),應(yīng)該將數(shù)據(jù)包送往何處。但在BGP中,對(duì)于EBGP路由和IBGP路由下一跳,存在一些差別。8.8.3下一跳屬性8.8掌握BGP路徑屬性R2路由器通過(guò)EBGP網(wǎng)絡(luò),從R1路由器上接收到1.0.0.0/8的路由更新,路由的下一跳屬性為200.1.1.1,即R1路由器發(fā)送路由更新的地址。當(dāng)R2路由器再將該路由通告給IBGP中的鄰居路由器R3時(shí),根據(jù)BGP路由的規(guī)定,R2路由器不對(duì)此路由的下一跳進(jìn)行修改。也就是說(shuō),當(dāng)R3路由器接收到這條路由后,看到的下一條屬性仍然為200.1.1.1,而不是R2發(fā)送路由更新的地址10.1.1.1。這就是指EBGP通告下一跳屬性,會(huì)被傳遞到IBGP中。需要注意的是:BGP是一個(gè)以自治系統(tǒng)為跳數(shù)路由協(xié)議,所有EBGP通告下一跳會(huì)傳輸?shù)洁従覣S中。8.8.3下一跳屬性8.8掌握BGP路徑屬性本地優(yōu)先級(jí)屬性(LOCAL_PREF)是一個(gè)公認(rèn)的、自由決定屬性,也就是說(shuō)每個(gè)BGP發(fā)言者都必須能夠識(shí)別該屬性,但是BGP更新中可以不攜帶該屬性。本地優(yōu)先級(jí)屬性也是BGP協(xié)議進(jìn)行路徑?jīng)Q策屬性,優(yōu)先級(jí)越高(數(shù)值越大)的路徑,被選為最佳路徑可能性越大。如果BGP發(fā)言者收到多條到達(dá)同一目標(biāo)網(wǎng)絡(luò)路徑,它將比較這些路徑本地優(yōu)先級(jí),選擇本地優(yōu)先級(jí)最高作為最佳路徑,本地優(yōu)先級(jí)默認(rèn)值為100。需要注意的是:本地優(yōu)先級(jí)屬性只在AS內(nèi)部傳播,也就是IBGP對(duì)等體之間。它不會(huì)被通告給EBGP對(duì)等體,這也是“本地”一詞的意義。本地優(yōu)先級(jí)屬性用來(lái)指導(dǎo)本地AS中的路由器,如果數(shù)據(jù)流要離開(kāi)本地AS,需要通過(guò)首選路徑是哪條。8.8.4本地優(yōu)先級(jí)屬性8.8掌握BGP路徑屬性多出口鑒別器屬性(MED)是一個(gè)可選的、非傳遞屬性。MED也稱為度量值(metric),被稱為AS間度量值。它可以影響B(tài)GP路徑選擇過(guò)程。MED屬性與本地優(yōu)先級(jí)屬性不同,MED屬性可以在自治系統(tǒng)之間傳送。也就是說(shuō)MED屬性可以被發(fā)送給EBGP的對(duì)等體。當(dāng)其他自治系統(tǒng)接收到MED屬性后,會(huì)將其傳播給IBGP對(duì)等體。但是,當(dāng)該路由再被通告給另一個(gè)自治系統(tǒng)時(shí),MED屬性值將會(huì)丟失。R1路由器將設(shè)置了MED屬性值的路由,通告給R2路由器;此時(shí),MED屬性值也被傳播到R2路由器上。接下來(lái),R2路由器將該路由通過(guò)IBGP網(wǎng)絡(luò),通告給R3路由器時(shí),仍然攜帶MED屬性值。但是,當(dāng)R3路由器再將其通告給其他自治系統(tǒng)時(shí),MED屬性值將不被傳播。8.8.5多出口鑒別器屬性8.8掌握BGP路徑屬性AS65000域通過(guò)設(shè)置通告給EBGP鄰居的MED屬性值,可以影響數(shù)據(jù)流進(jìn)入本地自治系統(tǒng)的路徑,即所有發(fā)往本地自治系統(tǒng)1.0.0.0/8網(wǎng)絡(luò)的數(shù)據(jù),都會(huì)從R2路由器進(jìn)入。需要說(shuō)明的是:通過(guò)設(shè)置路由的MED屬性值,只能影響鄰接AS將數(shù)據(jù)發(fā)往本地AS的入口,MED屬性值不能影響數(shù)據(jù)進(jìn)入AS65001的路徑。因?yàn)镸ED屬性值不會(huì)再被傳遞到AS65001以外自治系統(tǒng),而且BGP遵循逐跳路由選擇模式。在默認(rèn)情況下,BGP路由只比較來(lái)自相同自治系統(tǒng)路由MED值。雖然AS1與AS2都設(shè)置了路由的MED屬性值,但是AS65001中的BGP發(fā)言者,將會(huì)忽略路由的MED值,不將其作為路徑?jīng)Q策的依據(jù)。如果要使BGP比較來(lái)自不同自治系統(tǒng)中路由的MED值,必須在BGP路由進(jìn)程模式下,使用“bgpalways-compare-med”命令,改變BGP的默認(rèn)行為。8.8.5多出口鑒別器屬性8.9BGP高級(jí)配置當(dāng)使用neighbor命令為本地對(duì)等體指定對(duì)端IP地址后,本地BGP進(jìn)程查找路由表,選擇到達(dá)對(duì)端IP地址最優(yōu)出接口和源IP地址。在使用neighbor命令時(shí),對(duì)等體雙方配置到對(duì)端IP地址必須對(duì)應(yīng),或者說(shuō)互為鏡像,這樣才能成功建立鄰居關(guān)系。默認(rèn)情況下,BGP選擇本地的源地址都通過(guò)查找路由表并使用物理接口IP地址。但在一個(gè)自治系統(tǒng)內(nèi)部中存在大量BGP對(duì)等體,如果全部使用物理地址作為對(duì)端IP地址,將帶來(lái)更多配置工作,而且很容易因?yàn)樯僖粭l配置,導(dǎo)致鄰居關(guān)系不能建立。8.9.1配置EBGP多跳和源地址8.9BGP高級(jí)配置正常情況下,如果要實(shí)現(xiàn)BGP冗余備份,需要在路由器R1和R2上分別建立兩個(gè)BGP鄰居關(guān)系,也就是建立兩個(gè)TCP會(huì)話,兩個(gè)TCP會(huì)話各使用一條物理鏈路。通過(guò)這種方式建立連接,實(shí)現(xiàn)鏈路的冗余備份。但使用兩條物理鏈路建立連接,會(huì)存在一些弊端。首先,TCP連接是建立在物理接口之間,但是物理接口可能會(huì)由于某些故障失效。其次,R1和R2路由器之間存在兩個(gè)TCP會(huì)話,也就是存在兩個(gè)鄰居關(guān)系,這對(duì)于BGP來(lái)說(shuō)要多維護(hù)一個(gè)連接,會(huì)消耗系統(tǒng)資源。此外,雖然R1和R2路由器之間存在兩個(gè)會(huì)話,但是BGP在同一時(shí)刻只會(huì)使用一個(gè)BGP連接去發(fā)送數(shù)據(jù),因?yàn)锽GP要從兩個(gè)路徑中選出一條最佳路徑。被選為最優(yōu)的那條物理鏈路出現(xiàn)故障后,會(huì)造成路由的重新收斂。8.9.1配置EBGP多跳和源地址8.9BGP高級(jí)配置BGP支持路由聚合和CIDR。路由聚合可以減小IP路由表的大小,如果沒(méi)有路由聚合,Internet上路由表的規(guī)模將會(huì)呈倍數(shù)的增長(zhǎng)。此外,路由聚合可以用來(lái)減小BGP對(duì)等體之間通告路由的數(shù)目。在BGP路由進(jìn)程模式下,使用如下命令配置BGP路由聚合。Aggregate-addressnetworkmask[as-set][summary-only]network參數(shù)表示聚合后網(wǎng)絡(luò)地址,mask表示聚合后子網(wǎng)掩碼。使用as-set參數(shù)后,聚合路由中包括詳細(xì)路由AS路徑信息,即AS_SET。summary-only參數(shù)表示對(duì)多條路由聚合后,只通告聚合后路由。默認(rèn)情況下,既通告通告聚合后路由,也通告詳細(xì)路由。8.9.2配置BGP路由聚合8.9BGP高級(jí)配置BGP路由默認(rèn)優(yōu)先級(jí)為100。在BGP路由模式下,使用如下命令修改本地優(yōu)先級(jí)。bgpdefaultlocal-preferencepreference。該命令修改本地BGP發(fā)言者收到EBGP路由本地優(yōu)先級(jí),修改后本地優(yōu)先級(jí)值,將隨著路由被通告到IBGP對(duì)等體。該命令對(duì)所有收到路由本地優(yōu)先級(jí)修改,所以當(dāng)僅僅控制到達(dá)某條目標(biāo)網(wǎng)絡(luò)的出口路徑時(shí),這條命令配置將不能滿足要求。R1和R2路由器同時(shí)從不同AS,收到了到達(dá)同一目標(biāo)網(wǎng)絡(luò)的路由,但企業(yè)網(wǎng)絡(luò)想把去往1.0.0.0/8網(wǎng)絡(luò)數(shù)據(jù)流,通過(guò)R2路由器出口傳輸。8.9.3配置本地優(yōu)先級(jí)8.9BGP高級(jí)配置命令中metric參數(shù)是通告給EBGP對(duì)等體路由,設(shè)置默認(rèn)MED值,這個(gè)MED值與路由一同通告給EBGP對(duì)等體。通過(guò)控制路由MED值,對(duì)進(jìn)入本地自治系統(tǒng)數(shù)據(jù)流控制。所有進(jìn)入本地自治系統(tǒng)(AS1)數(shù)據(jù)流,都使用路由器R1的進(jìn)入路徑,造成R1外部鏈路負(fù)載過(guò)高,而R2外部路徑利用率極低,導(dǎo)致帶寬資源不能被合理地利用。為了解決這個(gè)問(wèn)題,實(shí)現(xiàn)到達(dá)本地網(wǎng)絡(luò)3.0.0.0/8和4.0.0.0/8數(shù)據(jù)流量,從R2路由器上進(jìn)入,合理利用帶寬資源?,F(xiàn)修改R1和R2路由器默認(rèn)MED值,使R1路由器通告給AS2路由器路由MED值為500;路由器R2通告給AS2路由MED值為400。8.9.4配置MED屬性值8.10優(yōu)化大型網(wǎng)絡(luò)中BGP在BGP路由中,具有相同策略和角色的對(duì)等體,可以將其加入到一個(gè)組中;然后,對(duì)于這個(gè)組進(jìn)行統(tǒng)一策略配置,這個(gè)組被稱為對(duì)等體組(peer-group)。對(duì)等體組極大地簡(jiǎn)化了配置BGP路由的工作量,而且本地路由器策略執(zhí)行的效率也大大增強(qiáng)。如果單獨(dú)地為50個(gè)對(duì)等體設(shè)置策略,那么,路由器也將對(duì)本地的策略數(shù)據(jù)庫(kù)訪問(wèn)50次。如果對(duì)一個(gè)對(duì)等體組設(shè)置策略,那么路由器僅僅訪問(wèn)本地策略數(shù)據(jù)庫(kù)1次。在BGP路由進(jìn)程模式下,使用如下命令創(chuàng)建對(duì)等體組。8.10.1對(duì)等體組8.10優(yōu)化大型網(wǎng)絡(luò)中BGP在BGP路由的水平分割原則中,BGP對(duì)等體不將從IBGP收到的路由更新,再通告給其他的IBGP對(duì)等體,這樣是為了避免潛在的環(huán)路。因此BGP的水平分割原則,必須在自治系統(tǒng)內(nèi)部建立全互聯(lián)(full-mesh)的IBGP鄰居關(guān)系,這樣才能確保所有的BGP發(fā)言者,都能收到來(lái)自外部的路由信息。但全互聯(lián)的IBGP拓?fù)洳痪哂袛U(kuò)展性,并且為了在一個(gè)擁有眾多BGP對(duì)等體的網(wǎng)絡(luò)中,建立全互聯(lián)IBGP鄰居關(guān)系,需要大量的手工配置工作。,為了在自治系統(tǒng)內(nèi)部建立全互聯(lián)的IBGP鄰居關(guān)系,需要在每個(gè)發(fā)言者上,配置到達(dá)其他對(duì)等體的地址,因此,需要建立IBGP會(huì)話數(shù)將是n(n-1)/2。如圖中自治系統(tǒng)內(nèi)部共有6個(gè)BGP發(fā)言者,所以一共建立了15條IBGP連接。8.10.2路由反射器8.10優(yōu)化大型網(wǎng)絡(luò)中BGP路由反射器不會(huì)將一條路由再通告給路由的始發(fā)者。如果由于某種原因,路由的始發(fā)者又收到該路由,它通過(guò)檢查始發(fā)者ID屬性中路由器ID值,可以將該路由忽略。路由反射器與其客戶所組成集合被稱為集群(cluster)。自治系統(tǒng)內(nèi)的每一個(gè)集群都用一個(gè)集群ID(clusterID)標(biāo)識(shí),集群ID就是路由反射器的路由器ID。其中,集群列表屬性(CLUSTER_LIST)也是一個(gè)可選的、非傳遞屬性,它記錄了路由所經(jīng)過(guò)的集群,并使用一個(gè)集群列表進(jìn)行表示。當(dāng)路由反射器將一條路由,發(fā)送給集群外的非反射器客戶時(shí),它將本集群的集群ID添加到集群列表中。如果CLUSTER_LIST為空,它會(huì)創(chuàng)建該列表,并將集群ID加入進(jìn)去。8.10.2路由反射器8.10優(yōu)化大型網(wǎng)絡(luò)中BGP在上述第三個(gè)規(guī)則中,雖然RR路由器將從EBGP對(duì)等體收到路由通告給client,但實(shí)際上這個(gè)過(guò)程不叫路由反射。只用當(dāng)RR路由器將通過(guò)IBGP收到路由發(fā)送給client時(shí),RR所作操作才被稱為反射。根據(jù)路由反射原則了解路由反射過(guò)程。R3路由器從R6路由器收到一條路由,R3路由器將其通告給路由器R7(client)、R1(非client)和R2(非client)。8.10.2路由反射器8.10優(yōu)化大型網(wǎng)絡(luò)中BGP在一個(gè)自治系統(tǒng)中,可以部署多個(gè)路由反射器,這樣可以更大限度的減少所需的IBGP會(huì)話數(shù)。路由反射器支持層次結(jié)構(gòu)的設(shè)計(jì),也就是說(shuō)一個(gè)路由反射器可以是另一個(gè)路由反射器的客戶。AS1內(nèi)存在兩個(gè)集群Cluster1和Cluster2。R1路由器為Cluster1的RR路由器,R2路由器為Cluster2的RR路由器。同時(shí),路由器R2又充當(dāng)R1的client的角色。這就是具有層次結(jié)構(gòu)的路由反射拓?fù)?。使用層次的路由反射結(jié)構(gòu),可以更大粒度的減少所需的IBGP會(huì)話數(shù),但是這種層次的設(shè)計(jì)也為路由的維護(hù)、跟蹤和故障診斷帶來(lái)了復(fù)雜性。雖然理論上路由反射對(duì)于層次數(shù)量沒(méi)有限制,但通常推薦只使用兩級(jí)的層次設(shè)計(jì)。8.10.2路由反射器8.10優(yōu)化大型網(wǎng)絡(luò)中BGP與路由反射器一樣,聯(lián)盟(Confederations)也用來(lái)減少大型自治系統(tǒng)中IBGP會(huì)話數(shù)目龐大問(wèn)題。路由反射器通過(guò)放寬BGP水平分割限制,來(lái)減少需要建立IBGP會(huì)話數(shù)。聯(lián)盟核心思想是將一個(gè)大自治系統(tǒng)劃分成若干個(gè)子自治系統(tǒng)。子自治系統(tǒng)與子自治系統(tǒng)之間通過(guò)聯(lián)盟內(nèi)EBGP互聯(lián),子自治系統(tǒng)內(nèi)部仍然是全互聯(lián)的IBGP拓?fù)?。AS1內(nèi)共有8個(gè)BGP發(fā)言者。如果要建立全互聯(lián)的IBGP會(huì)話,總共要建立28個(gè)IBGP鄰居關(guān)系。為了減少IBGP會(huì)話數(shù),在AS1域內(nèi)使用聯(lián)盟。其中,AS1被劃分為三個(gè)子自治系統(tǒng)(SubAS),AS65001、AS65002和AS65003。8.10.3聯(lián)盟【網(wǎng)絡(luò)實(shí)踐】:修改BGP路由MED值,優(yōu)選最佳路由某IT集團(tuán)公司在北京總部和其它區(qū)域分公司的,其在區(qū)域的分公司的網(wǎng)絡(luò)中路由器R1和R2上沒(méi)有進(jìn)行MED值設(shè)置時(shí),在R4路由器的BGP路由表上可以看到所有進(jìn)入AS1流量,都通過(guò)R1路由器的外部鏈路轉(zhuǎn)發(fā)。因?yàn)镽4路由器從R1和R2路由器上收到的路由有相同的本地優(yōu)先級(jí)、相同的AS路徑列表長(zhǎng)度等,所以在比較鄰居路由器的RouterID前,不能選出最佳路徑。因此希望網(wǎng)絡(luò)出口路由器R4通過(guò)比較分公司的接入路由器R1和R2的RouterID,將路由器R1選為最佳入口,因?yàn)镽1具有更小的RouterID(1.1.1.1<2.2.2.2)。【任務(wù)描述】【設(shè)計(jì)過(guò)程】省略好好學(xué)習(xí)天天向上單元8:使用BGP路由實(shí)現(xiàn)域間路由選擇(2)《高級(jí)路由技術(shù)》(理論篇)主講教師:XXX技術(shù)背景從技術(shù)角度講,Internet這樣遍布全世界龐大的網(wǎng)絡(luò),需要一種機(jī)制確保信息從世界一端可靠傳輸?shù)搅硪欢?,這個(gè)機(jī)制就是BGP(BorderGatewayProtocol,邊界網(wǎng)關(guān)協(xié)議)。在Internet中使用唯一進(jìn)行自治系統(tǒng)間路由協(xié)議就是BGP,BGP構(gòu)成整個(gè)Internet的核心網(wǎng)絡(luò),有人把BGP稱為“BGP是Internet的心臟”。學(xué)習(xí)目標(biāo)了解BGP協(xié)議的工作范圍了解BGP協(xié)議的工作原理掌握BGP協(xié)議的基本配置
建立IBGP、EBGP對(duì)等體,引入與傳遞路由BGP概述邊界網(wǎng)關(guān)協(xié)議(BGP)運(yùn)行于TCP上自治系統(tǒng)(AS)路由協(xié)議,是唯一能處理不相關(guān)路由域間多路連接協(xié)議。如:中國(guó)電信、中國(guó)聯(lián)通、中國(guó)移動(dòng)運(yùn)營(yíng)商,通過(guò)BGP協(xié)議來(lái)實(shí)現(xiàn)多線互聯(lián)。為了便于管理規(guī)模不斷擴(kuò)大的網(wǎng)絡(luò),將網(wǎng)絡(luò)劃分為不同的AS(AutonomousSystem自治系統(tǒng))不同AS通過(guò)AS號(hào)區(qū)分,AS號(hào)取值范圍1-65535,其中64512-65535是私有AS號(hào)IANA機(jī)構(gòu)負(fù)責(zé)AS號(hào)的分發(fā)中國(guó)電信163AS號(hào):4134中國(guó)電信CN2AS號(hào):4809中國(guó)網(wǎng)通AS號(hào):9929中國(guó)聯(lián)通AS號(hào):9800中國(guó)教育網(wǎng)骨干網(wǎng)AS號(hào):4538什么是AS?AS64512AS64514AS64513BGP特征BGP是外部路由協(xié)議,在AS之間傳遞路由信息。BGP是一種增強(qiáng)型、距離矢量路由協(xié)議??煽柯酚筛聶C(jī)制豐富Metric度量方法設(shè)計(jì)上避免環(huán)路發(fā)生為路由附帶豐富屬性,豐富路由過(guò)濾和路由策略。支持CIDR(無(wú)類別域間選路)。AS之間連接使用直連鏈路,或通過(guò)運(yùn)營(yíng)商,建立VPN邏輯連接AS之間可能是不同組織機(jī)構(gòu),使用IGP協(xié)議,傳遞路由信息將會(huì)有安全風(fēng)險(xiǎn)AS之間傳遞路由AS200AS100OSPFR1R2R3WANR4R5OSPF直接傳遞OSPFLSA存在暴露網(wǎng)絡(luò)結(jié)構(gòu)的風(fēng)險(xiǎn)在AS之間傳遞路由,使用BGP協(xié)議(邊界網(wǎng)關(guān)路由協(xié)議BorderGatewayProtocol)相較IGP協(xié)議,BGP協(xié)議有以下優(yōu)勢(shì):BGP基于TCP工作(端口號(hào)179),只要建立TCP連接,就可以建立BGP鄰居關(guān)系;BGP能夠承載上萬(wàn)條路由,而IGP僅能上千條;BGP路由器只傳遞路由,不會(huì)露AS內(nèi)拓?fù)湫畔?,更加安全;支持MPLS/VPN協(xié)議,傳遞客戶VPN路由AS之間傳遞路由使用BGPAS200AS100OSPFBGPpeerBGPpeerR1R2R3R4WANBGP是距離矢量路由協(xié)議,鄰居之間直接傳路由,每條BGP路由都攜帶多種屬性使用這些屬性配置路由策略,實(shí)現(xiàn)靈活路由選路,這是IGP協(xié)議無(wú)法做到BGP的特征AS200AS100OSPFBGPpeerBGPpeerR1R2R3R4WANBGP路由網(wǎng)絡(luò)號(hào):192.168.10.0/24路徑屬性1:AS-PATH路徑屬性2:Origin路徑屬性3:next-hop路徑屬性N:……BGP協(xié)議在企業(yè)中應(yīng)用場(chǎng)景大型企業(yè)內(nèi)部,存在多個(gè)分支,每個(gè)分支屬于一個(gè)AS,通過(guò)BGP在不同分支之間傳遞路由企業(yè)與運(yùn)營(yíng)商之間運(yùn)行BGP協(xié)議,企業(yè)與運(yùn)營(yíng)商之間互相傳遞路由BGP應(yīng)用場(chǎng)景AS100AS300AS200BGPpeerBGPpeerBGPpeerBGP路由術(shù)語(yǔ)自治系統(tǒng)(AS):同一個(gè)管理機(jī)構(gòu)管理、使用統(tǒng)一選路策略路由器集合。自治系統(tǒng)內(nèi)部路由協(xié)議:IGP自治系統(tǒng)之間路由協(xié)議:EGPAS65001AS65000BGPRIPv1/v2OSPFISISBGP角色Speaker發(fā)送BGP報(bào)文設(shè)備,稱為BGP發(fā)言者(Speaker),它接收或產(chǎn)生新報(bào)文信息,并發(fā)布(Advertise)給其它BGPSpeaker。Peer相互交換報(bào)文Speaker之間,互稱對(duì)等體(Peer)。若干相關(guān)對(duì)等體構(gòu)成對(duì)等體組(PeerGroup)。BGP報(bào)文交互中分為Speaker和Peer兩種角色對(duì)等體-Peer兩臺(tái)路由器交換BGP路由,建立TCP連接后,它們之間關(guān)系就是對(duì)等關(guān)系或鄰居關(guān)系。BGP鄰居分為:IBGP和EBGPAS65000NeighborsAS65500NeighborsIBGP與EBGPIBGP
運(yùn)行于AS內(nèi)部的路由協(xié)議,主要有:RIP,OSPF及ISIS。
IGP著重于發(fā)現(xiàn)和計(jì)算路由。EBGP
運(yùn)行于AS之間路由協(xié)議,通常都是指BGP。
BGP著重于控制路由傳播和選擇最優(yōu)路由。BGP協(xié)議報(bào)文以單播的形式發(fā)送,BGP共有5種,其中路由是承載在Update報(bào)文中BGP的協(xié)議報(bào)文LinkLayerHeaderIPTCPBGPProtocolPacketFrameChecksumBGP
ProtocolHeaderBGP
PacketIP協(xié)議號(hào)為6端口號(hào)為179報(bào)文類型作用發(fā)送規(guī)則Open用于建立鄰居關(guān)系,協(xié)商各項(xiàng)參數(shù)通過(guò)TCP建立BGP連接,發(fā)送open報(bào)文Update用于發(fā)送路由更新連接建立后,有路由更新時(shí),發(fā)送UPDATE報(bào)文Notification用于報(bào)告BGP錯(cuò)誤當(dāng)BGP運(yùn)行中發(fā)現(xiàn)錯(cuò)誤時(shí),發(fā)送NOTIFICATION通告Keepalive用于維持鄰居關(guān)系定時(shí)發(fā)送KEEPALIVE報(bào)文以保持BGP鄰居關(guān)系的有效性Route-refresh為保證網(wǎng)絡(luò)穩(wěn)定,觸發(fā)更新路由的機(jī)制當(dāng)路由策略發(fā)生變化時(shí),觸發(fā)請(qǐng)求鄰居重新通告路由BGP的有限狀態(tài)機(jī)Peer狀態(tài)名稱發(fā)送報(bào)文動(dòng)作Idle嘗試建立TCP連接開(kāi)始準(zhǔn)備TCP的連接并監(jiān)視遠(yuǎn)程peer啟動(dòng)TCP連接,啟用BGP時(shí),要準(zhǔn)備足夠的資源Connect發(fā)TCP包正在進(jìn)行TCP連接,等待完成中,認(rèn)證都是在TCP建立期間完成的。如果TCP連接不上則進(jìn)入Active狀態(tài),反復(fù)嘗試連接。Active發(fā)TCP包TCP連接沒(méi)建立成功,反復(fù)嘗試TCP連接。OpenSent發(fā)Open包TCP連接建立已經(jīng)成功,開(kāi)始發(fā)送Open包,Open包攜帶參數(shù)協(xié)商對(duì)等體的建立。OpenConfirm發(fā)Keepalive包參數(shù)、能力特性協(xié)商成功,自己開(kāi)始發(fā)送Keepalive包,等待對(duì)方的Keepalive包。Established發(fā)Update包已經(jīng)收到對(duì)方的Keepalive包,雙方能力特性一致,開(kāi)始使用Update通告路由信息。BGP的有限狀態(tài)機(jī)ActiveOpen-sentOpen-confirmEstablishedConnectConnect-RetrytimerexpiryTCPconnectionfailsConnect-RetrytimerexpiryStartOthersTCPconnectionfailsErrorErrorErrorKeepAlivetimerexpiryKeepAlivepacketreceived1.KeepAlivetimerexpiry2.Updatereceived3.KeepAlivereceivedCorrectOPENpacketreceivedTCPconnectionsetupTCPconnectionsetupOthersIdle運(yùn)行BGP的路由器被稱為BGPSpeaker或者BGP路由器兩臺(tái)BGP路由器之間建立的關(guān)系叫BGP對(duì)等體(Peer)也叫BGP鄰居,對(duì)等體之間交換BGP路由表BGP的Peer分為兩種:EBGP和IBGPBGP對(duì)等體AS200AS100OSPFBGPEBGPpeerBGPIBGPpeerR1BGPspeakerR2R3BGPspeakerR4BGPspeakerWANEBGPPeer:位于不同AS的路由器之間的BGP鄰居關(guān)系互為EBGPPeer的路由器彼此所屬的AS號(hào)不同EBGPPeer一般基于直連接口建立Neighbor命令所指定的鄰居IP地址要可達(dá),TCP連接要能夠正確建立EBGP的路由管理距離為20,因?yàn)锳S之間BGP比IGP更優(yōu)BGP對(duì)等體AS200AS100OSPFBGPEBGPpeerR1R2R3BGPspeakerR4BGPspeakerWANIBGPPeer:同屬一個(gè)AS的路由器之間建立的BGP鄰居關(guān)系互為IBGPPeer的BGP路由器屬于同一個(gè)ASIBGPPeer一般基于Loopback接口建立,Peer之間可以跨越路由器,只要TCP連接要能夠正確建立IBGP的路由管理距離為200,因此AS內(nèi)部IGP更優(yōu)BGP對(duì)等體AS200AS100OSPFBGPIBGPpeerR1BGPspeakerR2R3BGPspeakerR4WANBGP鄰居表:包含了此臺(tái)BGP路由器所有的鄰居,以及他們之間的狀態(tài);BGP默認(rèn)每隔60秒發(fā)送一次BGP/TCP存活消息,保持時(shí)間為180秒BGP的鄰居表BGPIBGPpeerR1BGPspeakerR2R3R1#shipbgpsummaryBGProuteridentifier1.1.1.1,localASnumber123BGPVRF(GlobalVRF)RouteDistinguisher:(none)BGPtableversionis10BGPAS-PATHentries0BGPCommunityentries0BGPPrefixentries(Maximum-prefix:4294967295)NeighborVASMsgRcvdMsgSentTblVerInQOutQUp/DownState/PfxRcd3.3.3.341232210000:00:100R1的BGP鄰居表:對(duì)端peer的更新地址BGP版本號(hào)對(duì)端AS路由更新或撤銷時(shí)TblVer數(shù)字增加,類似路由更新State是bgpsession的的狀態(tài),如果達(dá)到established就顯示收到的路由的數(shù)目,否則就是active之類的狀態(tài)每臺(tái)BGP路由器獨(dú)立維護(hù)一張BGP路由表,包含了本地導(dǎo)入以及從BGP
peer學(xué)習(xí)所有BGP路由;BGP路由表中可用、最優(yōu)的路由(標(biāo)記為*>)將會(huì)加載到全局IP路由表中;BGP路由表BGPIBGPpeerR1BGPspeakerR2R3R1#shipbgpBGPtableversionis5,localrouterIDis1.1.1.1Statuscodes:ssuppressed,ddamped,hhistory,*valid,>best,i-internal,SStale,b-backupentry,fFilterOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfWeightPath*>1.1.1.1/320.0.0.0032768i*>i3.3.3.3/323.3.3.301000i*i4.4.4.4/3210.1.34.401000400iR1的BGP路由表:此條BGP路由的路由屬性,后續(xù)課程詳細(xì)介紹statuscodes*代表此路由可用>代表此路由是最優(yōu)的,最優(yōu)的路由一定是可用的路由i代表此路由是通過(guò)IBGP學(xué)習(xí)的,如果空的代表從EBGP學(xué)習(xí)到或者本地引入的目標(biāo)網(wǎng)絡(luò)號(hào)BGP本身不會(huì)自動(dòng)產(chǎn)生路由,必須要將IGP的路由引入到BGP路由表中。引入的方式有2種:BGP路由的生成引入方式引入條件適用場(chǎng)景Network宣告必須是IP路由表的IGP路由條目,且必須存在一條命令僅能引入一條路由,適用于路由數(shù)量較少的場(chǎng)景Redistribute重分布IGP路由數(shù)量較多,且地址段不連續(xù)不便于聚合的場(chǎng)景,動(dòng)態(tài)從其他路由協(xié)議引入路由,并且可以結(jié)合route-map來(lái)配置更豐富的路由策略BGP使用update報(bào)文將路由條目發(fā)送給BGPpeerBGP傳遞路由規(guī)則:僅把BGP路由表中可用、且最優(yōu)(*>)路由,傳遞給BGPpeer從EBGPpeer獲得路由,發(fā)送給所有BGP
peer(包括EBGP和IBGP)從IBGP獲得路由,默認(rèn)會(huì)通告給它的EBGPpeer(如果BGP同步開(kāi)啟則需要再判定)BGP路由的傳遞EBGPpeerEBGP/IBGPpeer路由通告IBGPpeerEBGPpeer路由通告BGP作為一種D-V距離矢量路由協(xié)議,通過(guò)水平分割,防止AS內(nèi)部的環(huán)路從IBGP獲得的路由,不向它的IBGP
peer通告,以此來(lái)防止循環(huán)的發(fā)生IBGP在路由通告時(shí),也不會(huì)改變路由的下一跳,進(jìn)一步防止循環(huán)發(fā)生BGP在AS內(nèi)部的環(huán)路避免機(jī)制AS300AS100AS200EBGPpeerEBGPpeer路由更新IBGPpeerBGP同時(shí)還采用AS-Path屬性,來(lái)防止AS之間環(huán)路EBGP向?qū)Φ润w通告路由時(shí),附加上自己AS號(hào)存放在AS-path屬性字段,收到EBGP對(duì)等體Update報(bào)文時(shí),檢查AS-path,如果發(fā)現(xiàn)自己的AS號(hào),則丟棄該路由,EBGP是依靠路由經(jīng)過(guò)的AS路徑,來(lái)發(fā)現(xiàn)循環(huán)的BGP在AS之間的環(huán)路避免機(jī)制EBGPpeerEBGPpeerAS100R1A網(wǎng)絡(luò)R4AS400R3AS300R2AS200EBGPpeerEBGPpeerA網(wǎng)絡(luò)的路由AS-PATH:100A網(wǎng)絡(luò)的路由AS-PATH:100,300A網(wǎng)絡(luò)的路由AS-PATH:100,300,400A網(wǎng)絡(luò)的路由AS-PATH:100,300,400,200由于在AS內(nèi)部,可以跨越設(shè)備,建立IBGP對(duì)等體,因此會(huì)出現(xiàn)一些路徑上設(shè)備未運(yùn)行BGP。BGP路由黑洞EBGPpeerEBGPpeerIBGPpeer非BGProuter非BGProuterAS200AS100OSPFR1A網(wǎng)絡(luò)R2R3R4R5R6AS300這些設(shè)備由于未運(yùn)行BGP,不會(huì)收到BGP傳遞來(lái)路由信息當(dāng)有數(shù)據(jù)包經(jīng)過(guò)這些設(shè)備時(shí),因?yàn)闆](méi)有相關(guān)路由信息,數(shù)據(jù)包將會(huì)被丟棄BGP的路由黑洞非BGProuter非BGProuterAS200AS100OSPFR1R2R3R4R5R6AS300BGPUpdateBGPUpdateBGPUpdate數(shù)據(jù)包目的地A網(wǎng)絡(luò)A網(wǎng)絡(luò)數(shù)據(jù)包目的地A網(wǎng)絡(luò)R3、R4不知道A網(wǎng)絡(luò)的路由,因此數(shù)據(jù)包被丟棄。R3、R4成為了黑洞BGP協(xié)議為了防止路由黑洞問(wèn)題,引入了同步機(jī)制從IBGP對(duì)等體學(xué)習(xí)到的路由在成為最佳路由并向EBGP對(duì)等體通告之前必須被IGP學(xué)習(xí)到BGP同步默認(rèn)關(guān)閉,如果開(kāi)啟則不會(huì)產(chǎn)生路由黑洞問(wèn)題,但同時(shí)這些路由將無(wú)法正常使用避免路由黑洞問(wèn)題的方法——BGP同步非BGProuter非BGProuterAS200AS100OSPFR1R2R3R4R5R6AS300BGPUpdateBGPUpdateBGPUpdateA網(wǎng)絡(luò)R5如果開(kāi)啟BGP同步,那么雖然R5從IBGP鄰居R2收到A網(wǎng)絡(luò)的BGP路由,但因?yàn)镮GP路由表中無(wú)此路由,BGP路由表與IGP路由表不同步,因此R5不會(huì)把這條BGP路由發(fā)給EBGP鄰居R6要想既不產(chǎn)生路由黑洞問(wèn)題,又要使得這些路由可用,可采用以下方式:路由重分布:把BGP的路由重發(fā)布到AS內(nèi)的IGPIBGP全互聯(lián):在穿越路徑上IBGP啟用全連接,確保所有BGP路由過(guò)路設(shè)備都知道使用MPLS:使用MPLS的轉(zhuǎn)發(fā)機(jī)制解決穿越AS問(wèn)題解決路由黑洞問(wèn)題的方法EBGPpeerEBGPpeerIBGPpeer非BGProuter非BGProuterAS200AS100OSPFR1在R2與R5上將BGP路由重分布到OSPF中,讓R3、R4也能學(xué)習(xí)到這些路由,就不會(huì)有路由黑洞R2R3R4R5R6AS300R2、R3、R4、R5全部建立IBGP鄰居EBGPpeerEBGPpeerIBGPpeerAS200AS100OSPFR1R2R3R4R5R6AS300按照以下步驟配置BGP協(xié)議:第1步:設(shè)備基本參數(shù)配置,AS內(nèi)配置IGP確保內(nèi)部網(wǎng)絡(luò)連通性;第2步:?jiǎn)?dòng)BGP進(jìn)程第3步:建立BGP對(duì)等體第4步:通告BGP路由第5步:(可選)其他配置,路由策略、路由反射器等BGP配置步驟OSPFR1R2R3R4AS400AS123EBGPpeerIBGPpeer10.1.34.010.1.12.010.1.34.0Lo:4.4.4.4Lo:3.3.3.3Lo:1.1.1.1配置IGP路由解決peer對(duì)等體的源和目標(biāo)IP之間連通性,確保peer之間TCP連通性(179)第1步:設(shè)備基本參數(shù)配置OSPFR1R2R3R4AS400AS123EBGPpeerIBGPpeer10.1.34.010.1.12.010.1.23.0Lo:4.4.4.4Lo:3.3.3.3Lo:1.1.1.1interfaceGigabitEthernet0/0ipaddress10.1.12.1255.255.255.0routerospf1router-id1.1.1.1network10.1.12.10.0.0.0area0R1的基礎(chǔ)配置interfaceGigabitEthernet0/0ipaddress10.1.12.2255.255.255.0interfaceGigabitEthernet0/2ipaddress10.1.23.2255.255.255.0routerospf1router-id2.2.2.2network10.1.12.20.0.0.0area0network10.1.23.20.0.0.0area0R2的基礎(chǔ)配置interfaceGigabitEthernet0/5ipaddress10.1.23.3255.255.255.0routerospf1router-id3.3.3.3network10.1.23.30.0.0.0area0R3的基礎(chǔ)配置在BGP路由器上啟動(dòng)BGP進(jìn)程,一臺(tái)路由器上只能配置一個(gè)BGP實(shí)例僅執(zhí)行命令routerbgp不能在路由器上激活BGP,必須至少執(zhí)行一個(gè)子命令才能在路由器上激活BGP進(jìn)程手工設(shè)置BGPRouterID第2步:?jiǎn)?dòng)BGP進(jìn)程Router(config)#routerbgpas-numberRouter(config-router)#
bgprouter-idip-address指定BGP鄰居及激活BGP會(huì)話BGP鄰居都需手工指定,不能像IGP那樣通過(guò)協(xié)議自動(dòng)發(fā)現(xiàn)建立鄰居時(shí)的指定的PeerIP地址必須路由可達(dá),本端默認(rèn)使用報(bào)文出接口IP地址作為更新源本地的更新源IP地址必須與PeerIP地址相同,不相同,則BGP鄰居無(wú)法正常建立對(duì)端AS號(hào)決定了與鄰居建立的是EBGP會(huì)話還是IBGP會(huì)話第3步:建立BGP對(duì)等體Router(config-router)#neighbor
{peer-address|peer-group-name}remote-as
as-number在同指定BGP對(duì)等體建立BGP連接時(shí),可以啟用TCPMD5認(rèn)證,并設(shè)置密碼啟用身份驗(yàn)證后,將對(duì)通過(guò)對(duì)等體之間的TCP連接傳輸?shù)乃袛?shù)據(jù)等進(jìn)行驗(yàn)證認(rèn)證都是在TCP建立連接的時(shí)候完成的BGP的驗(yàn)證功能Router(config-router)#neighbor{peer-address|peer-group-name}password[|0|7]string通過(guò)宣告network的方式引入路由如果指定mask,則僅當(dāng)IP路由表中有與完全匹配的條目時(shí)才會(huì)引入成功如果不指定mask,只通告主類網(wǎng)絡(luò)號(hào),則僅當(dāng)IP路由表中至少有一個(gè)子網(wǎng),才會(huì)將該主類網(wǎng)絡(luò)作為一條BGP路由引入,但不會(huì)引入該主類網(wǎng)絡(luò)之下的其他子網(wǎng)通過(guò)重分布的方式引入路由第4步:通告BGP路由Router(config-router)#network
network-number[mask
mask][route-map
map-tag][backdoor]Router(config-router)#redistribute
protocol-type[route-map
map-tag][metric
metric-value]BGP基本配置案例OSPFR1R2R3R4AS400AS123EBGPpeerIBGPpeer10.1.34.010.1.12.010.1.23.0Lo:4.4.4.4Lo:3.3.3.3Lo:1.1.1.1routerbgp123bgprouter-id1.1.1.1neighbor10.1.23.3remote-as123network1.1.1.1mask255.255.255.255R1的BGP配置routerbgp123bgprouter-id3.3.3.3neighbor10.1.12.1remote-as123neighbor10.1.34.4remote-as400network3.3.3.3mask255.255.255.255R3的BGP配置routerbgp400bgprouter-id4.4.4.4neighbor10.1.34.3remote-as123network4.4.4.4mask255.255.255.255R4的BGP配置查看BGP的鄰居R1上查看BGP鄰居R3是IBGP鄰居,并且從對(duì)端收到2條路由查看BGP的狀態(tài)R1#shipbgpsumBGProuteridentifier1.1.1.1,localASnumber123BGPVRF(GlobalVRF)RouteDistinguisher:(none)BGPtableversionis32BGPAS-PATHentries0BGPCommunityentries3BGPPrefixentries(Maximum-prefix:4294967295)NeighborVASMsgRcvdMsgSentTblVerInQOutQUp/DownState/PfxRcd10.1.23.34123212020000:15:072Totalnumberofneighbors1router#showipbgpsummary查看BGP路由表R1上查看BGP的路由表1.1.1.1/32的路由是本地生成的,因此就是最優(yōu)的3.3.3.3/32是R3的路由,作為IBGP傳遞來(lái)的,滿足條件因此最優(yōu)4.4.4.4/32是R3從EBGP鄰居學(xué)習(xí)來(lái)的,但無(wú)“>”標(biāo)記,不是最優(yōu)的,因?yàn)槠湎乱惶豢蛇_(dá)查看BGP的狀態(tài)R1#shipbgpBGPtableversionis3,localrouterIDis1.1.1.1Statuscodes:ssuppressed,ddamped,hhistory,*valid,>best,i-internal,SStale,b-backupentry,fFilterOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfWeightPath*>1.1.1.1/320.0.0.0032768i*>i3.3.3.3/3210.1.23.301000i*i4.4.4.4/3210.1.34.401000400irouter#showipbgpBGP是AS-by-AS的路由協(xié)議,而不是router-by-router的路由協(xié)議在BGP中,next-hop并不意味著是下一臺(tái)路由器,而是到達(dá)下一個(gè)AS的IP地址EBGP中,默認(rèn)next-hop為發(fā)送更新的鄰居路由器的IP地址IBGP中,從EBGP傳來(lái)的next-hop屬性在IBGP中保持不變的被傳遞BGP的next-hop不可達(dá)問(wèn)題OSPFR1R2R3R4AS400AS123EBGPpeerIBGPpeer10.1.34.010.1.12.010.1.23.0Lo:4.4.4.4Lo:3.3.3.3Lo:1.1.1.1Route4.4.4.0NEXT_HOP=10.1.34.4Route4.4.4.0NEXT_HOP=10.1.34.4R1不知道如何去往10.1.34.4,這個(gè)地址未被通告到AS123的IGP里,因此路由不可達(dá),因此不是最優(yōu)有兩種辦法解決next-hop不可達(dá)的問(wèn)題第1種辦法就是把10.1.34.0這個(gè)網(wǎng)絡(luò)宣告到AS123的IGP路由中這樣4.4.4.0/24這條路由就會(huì)在R1的BGP路由表成為最優(yōu)路由但這種方法并不建議,因?yàn)闀?huì)使得AS之間的鏈路暴露在AS內(nèi)部,有一定安全風(fēng)險(xiǎn)BGP的next-hopR3(config)#routerospf1R3(config-router)#network10.1.34.30.0.0.0area0R1#shipbgpBGPtableversionis3,localrouterIDis1.1.1.1Statuscodes:ssuppressed,ddamped,hhistory,*valid,>best,i-internal,SStale,b-backupentry,fFilterOrigincodes:i-IGP,e-EGP,?-incompleteNetworkNextHopMetricLocPrfWeightPath*>1.1.1.1/320.0.0.0032768i*>i3.3.3.3/3210.1.23.301000i*>i4.4.4.4/3210.1.34.401000400i有兩種辦法解決next-hop不可達(dá)的問(wèn)題第2種辦法就是在R3上配置next-hop-self,使得向R1發(fā)送的路由的下一跳的屬性都改為R3自己這樣R1上4.4.4.0/24這條路由的next-hop就是R3的10.1.23.3,下一跳可達(dá),成為最優(yōu)路由BGP的next-hoprouterbgp123neighbor10.1.12.1remote-as123neighbor10.1.12.1next-hop-selfRouter(config-router)#neighbor{peer-address|peer-group-name}next-hop-selfR1#shipbgpBGPtableversionis3,localrouterIDis1.1.1.1Statuscodes:ssuppressed,ddamped,hhistory,*valid,>best,i-internal,SStale,b-backupentr
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 泌尿外科護(hù)士總結(jié)
- 部門預(yù)算的制定與監(jiān)督計(jì)劃
- 2024年物業(yè)服務(wù)合同:高端住宅小區(qū)物業(yè)服務(wù)
- 媒體廣告行業(yè)員工培訓(xùn)總結(jié)
- 手表店前臺(tái)工作總結(jié)
- 績(jī)效激勵(lì)政策的總結(jié)與優(yōu)化計(jì)劃
- 高考新課標(biāo)語(yǔ)文模擬試卷系列之38
- 2024年度兒童劇演員演繹與推廣合同3篇
- 江蘇省興化市高考考前沖刺試卷(二)(語(yǔ)文)
- 油氣地震課課程設(shè)計(jì)
- 分層作業(yè)的教學(xué)設(shè)計(jì)
- 蕭公權(quán)-《中國(guó)政治思想史》第一編第二和第三章內(nèi)容
- 蘇教版四年級(jí)上冊(cè)科學(xué)期末試題(含答案)
- 《鑄造用增碳劑》
- 一年級(jí)上心理健康教育《我是小學(xué)生了》課件PPT
- 水庫(kù)回水計(jì)算(實(shí)用)
- 山東第一醫(yī)科大學(xué)護(hù)理倫理學(xué)期末復(fù)習(xí)題
- 清華物理習(xí)題庫(kù)試題及答案光學(xué)
- 管理供應(yīng)商 供應(yīng)商績(jī)效評(píng)估
- 1000MW機(jī)組鍋爐過(guò)渡段T23水冷壁管檢修導(dǎo)則(征求意見(jiàn)稿)
- 國(guó)開(kāi)本科《商務(wù)英語(yǔ)4》機(jī)考題庫(kù)及答案
評(píng)論
0/150
提交評(píng)論