《高級路由技術(shù)(理論篇)》 課件 單元8:使用BGP路由實現(xiàn)域間路由選擇_第1頁
《高級路由技術(shù)(理論篇)》 課件 單元8:使用BGP路由實現(xiàn)域間路由選擇_第2頁
《高級路由技術(shù)(理論篇)》 課件 單元8:使用BGP路由實現(xiàn)域間路由選擇_第3頁
《高級路由技術(shù)(理論篇)》 課件 單元8:使用BGP路由實現(xiàn)域間路由選擇_第4頁
《高級路由技術(shù)(理論篇)》 課件 單元8:使用BGP路由實現(xiàn)域間路由選擇_第5頁
已閱讀5頁,還剩86頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

單元8:使用BGP路由實現(xiàn)域間路由選擇《高級路由技術(shù)》(理論篇)主講教師:XXX技術(shù)背景從技術(shù)角度講,Internet這樣遍布全世界龐大的網(wǎng)絡(luò),需要一種機制確保信息從世界一端可靠傳輸?shù)搅硪欢?,這個機制就是BGP(BorderGatewayProtocol,邊界網(wǎng)關(guān)協(xié)議)。在Internet中使用唯一進(jìn)行自治系統(tǒng)間路由協(xié)議就是BGP,BGP構(gòu)成整個Internet的核心網(wǎng)絡(luò),有人把BGP稱為“BGP是Internet的心臟”。學(xué)習(xí)目標(biāo)認(rèn)識邊界網(wǎng)關(guān)BGP路由協(xié)議

掌握BGP域間路由技術(shù)原理了解BGP路由常見屬性配置BGP路由協(xié)議,實現(xiàn)域間路由選擇8.1認(rèn)識BGP域間路由 RIP、OSPF和IS-IS等都屬于內(nèi)部網(wǎng)關(guān)協(xié)議(InteriorGatewayProtocol,IGP)。在一個網(wǎng)絡(luò)內(nèi)部,或者一個自治系統(tǒng)(AutonomousSystem,AS)內(nèi)部提供路由。各個AS系統(tǒng)都有專門技術(shù)負(fù)責(zé)AS內(nèi)路由、網(wǎng)絡(luò)結(jié)構(gòu)及編址方案。一個ISP就是一個AS系統(tǒng),有時一個企業(yè)網(wǎng)絡(luò)也為一個單獨AS系統(tǒng)。整個Internet是不同AS系統(tǒng)集合,Internet中每個AS自治系統(tǒng)都有一個唯一自治系統(tǒng)編號,也就是AS號。8.1.1什么是自治系統(tǒng)AS8.1認(rèn)識BGP域間路由 常見RIP、OSPF路由屬于內(nèi)部網(wǎng)關(guān)協(xié)議(InteriorGatewayProtocol,IGP)。IGP設(shè)計在一個AS自治系統(tǒng)內(nèi)部(通常是園區(qū)網(wǎng)絡(luò))提供路由選擇,在園區(qū)網(wǎng)中提供穩(wěn)定、可擴展以及快速的收斂選路機制。與IGP相對應(yīng)另一種路由協(xié)議是外部網(wǎng)關(guān)協(xié)議(ExteriorGatewayProtocol,EGP)。與IGP不同,EGP的設(shè)計并不用于在自治系統(tǒng)內(nèi)部提供路由選擇功能,EGP用來連接不同自治系統(tǒng),實現(xiàn)不同的AS自治系統(tǒng)之間路由選擇。8.1.2區(qū)別IGP與EGP8.2熟悉BGP路由特征BGP也是一種矢量路由協(xié)議,BGP通告的也是鄰居路由表信息。但BGP不使用跳數(shù),使用一系列路徑屬性衡量路由優(yōu)劣,稱之為路徑矢量路由協(xié)議。在BGP路由計算中,最典型路徑屬性是AS列表,BGP路由器對外通告每一條路由,都包括一個列表:記錄這條路由經(jīng)過AS號。AS列表說明如果要到達(dá)目的地,途中經(jīng)過哪些AS。8.2.1BGP路徑矢量特征8.2熟悉BGP路由特征距離矢量路由協(xié)議RIP使用水平分割來、毒性逆轉(zhuǎn)、觸發(fā)更新等機制避免環(huán)路產(chǎn)生;OSPF使用SPF算法避免環(huán)路。BGP也需要防止路由環(huán)產(chǎn)生。BGP通過檢測收到路由AS列表。如果AS列表中包含自己AS號,丟棄這條更新,意味著這條路由之前已經(jīng)過本地AS,并被通告出去。如果接收將導(dǎo)致路由環(huán)路產(chǎn)生。8.2.2BGP環(huán)路檢測機制8.2熟悉BGP路由特征Internet采用逐跳路由選擇模式,BGP非常適用于當(dāng)前Internet的AS間路由選擇。BGP路由支持遵循逐跳路由選擇策略,也就是說,網(wǎng)絡(luò)管理人員不能左右鄰接AS,如何轉(zhuǎn)發(fā)數(shù)據(jù)流,但可以決定數(shù)據(jù)流如何前往指定AS。如圖AS65006經(jīng)過AS65004,到達(dá)AS65001中192.0.1.0/24目標(biāo)網(wǎng)絡(luò),可以采用多條路徑傳輸。雖然AS65006經(jīng)過AS65004到達(dá)AS65000有多條路徑選擇;但實際上,AS65006并不知道所有路徑,因為AS65004只將其最佳路徑:“65004—>65002—>65000”,通告給AS65006。8.2.3BGP逐跳路由選擇特征8.3了解BGP的鄰居關(guān)系RIP使用UDP作為傳輸協(xié)議,使用端口號為UDP520;OSPF的路由協(xié)議報文承載在IP報文,使用的IP協(xié)議號為89。而BGP使用TCP作為傳輸協(xié)議,其端口號為TCP179。這也是第一個以TCP作為傳輸協(xié)議的路由協(xié)議。BGP使用TCP作為傳輸協(xié)議,是因為TCP是面向連接協(xié)議,可以保障路由傳輸可靠性。由于TCP協(xié)議擁有確認(rèn)和重傳機制,這樣BGP路由信息傳輸中就無需支持確認(rèn)、重傳機制,簡化了BGP的實現(xiàn)。BGP利用TCP協(xié)議來實現(xiàn)路由會話的建立、流量控制、重傳和會話拆除;提供可靠、穩(wěn)定的AS域間路由選擇,相比OSPF這樣的IGP協(xié)議,BGP路由協(xié)議不是非常關(guān)注網(wǎng)絡(luò)的收斂速度。8.3.1熟悉BGP協(xié)議報文8.3了解BGP的鄰居關(guān)系在BGP中,把運行BGP的路由器稱BGP發(fā)言者(BGPSpeaker)。Internet中存在著成千上萬BGP發(fā)言者。每個BGP發(fā)言者無法與所有BGP發(fā)言者建立鄰居關(guān)系,通常都是本地AS內(nèi)的BGP發(fā)言者與鄰居AS發(fā)言者。在BGP中,BGP鄰居另個叫法為BGP對等體(BGPPeer)。BGP使用TCP建立對等體間會話。當(dāng)兩個BGP發(fā)言者之間建立起TCP連接后,雙方發(fā)送Open(打開)消息,標(biāo)識自己,建立鄰居關(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,運行于不同AS之間的BGP稱為外部BGP。為了防止AS之間產(chǎn)生環(huán)路,當(dāng)BGP設(shè)備接受EBGP對等體發(fā)來的路由時,會將路由信息AS_path列表中帶有本地AS號的路由丟棄。EBGP將路由信息從一個自治系統(tǒng)傳遞到另一個自治系統(tǒng),在不同的自治系統(tǒng)之間交換路由選擇信息。默認(rèn)情況下,BGP協(xié)議要求建立EBGP鄰居關(guān)系的兩個BGP發(fā)言者,必須在物理上直接相連。但也可以改變EBGP這種默認(rèn)行為,在非直連的兩個BGP發(fā)言者之間建立EBGP鄰居。當(dāng)需要在非直連的兩個BGP發(fā)言者之間建立EBGP鄰居時,稱為EBGP多跳(EBGP-Multihop)。8.3.3掌握EBGP鄰居關(guān)系8.3了解BGP的鄰居關(guān)系使用AS路徑列表,不能防止AS自治系統(tǒng)內(nèi)部的BGP路由環(huán)路,是因為當(dāng)一條BGP路由在AS自治系統(tǒng)內(nèi)部傳遞時,AS列表并不會產(chǎn)生變化。對于一個BGP發(fā)言者來說,只有當(dāng)它將路由通告給它的EBGP對等體時,才會將本地的AS號添加到AS路徑列表中。AS路徑列表中也不記錄在自治系統(tǒng)內(nèi)部處理過該路由信息的路由器。如圖中AS65001中BGP發(fā)言者,三臺路由器R1、R2、R3間建立IBGP鄰居關(guān)系。R1路由器從外部自治系統(tǒng)BGP發(fā)言者R4路由器上,收到BGP路由通告。然后,將此路由信息,通告給本地自治系統(tǒng)中的IBGP對等體R2和R3路由器。8.3.4掌握IBGP鄰居關(guān)系和水平分割8.4生成BGP路由表BGP路由不僅僅生成、更新一張路由表,BGP路由還維護(hù)著一張鄰居列表,列表中是記錄所有與本地建立了鄰居關(guān)系的BGP對等體。BGP路由將從鄰居路由器上接收到的所有BGP路由,都加入到BGP路由表中;然后,再進(jìn)行路徑的選擇。但是BGP最終只會把最優(yōu)路徑,加入到IP路由表中,通過IP路由表中的路由條目,指導(dǎo)接受到IP數(shù)據(jù)包轉(zhuǎn)發(fā)。當(dāng)本地BGP對等體,將BGP路由通告給鄰居時,仍然是將BGP路由表中的路由條目通告給鄰居。鄰居收到后,也會將路由加入到它的BGP路由表中。8.5掌握BGP基礎(chǔ)配置啟用BGP路由協(xié)議后,路由器將不會自動與任何對等體,需要建立鄰居關(guān)系并通告路由信息。由于BGP路由使用TCP會話來完成所有的操作,所以必須通過手工的方式,為BGP路由器指定它要與哪個對等體建立鄰居關(guān)系。在BGP路由協(xié)議工作過程中不存在任何自動發(fā)現(xiàn)、并自動建立鄰居關(guān)系的機制。在BGP路由進(jìn)程模式下,使用如下命令通過手工的方式指定對等體。8.5.1BGP基本配置8.5掌握BGP基礎(chǔ)配置默認(rèn)情況下,BGP路由協(xié)議按照BGP的路徑屬性,使用BGP路由下一跳(Next_hop)屬性規(guī)則,以及BGP發(fā)言者設(shè)置下一跳(Next_hop)屬性規(guī)則,對外通告BGP路由。但有時需要針對BGP的下一跳屬性進(jìn)行修改,簡化BGP路由選擇操作。AS1中存在一條指向1.0.0.0/8網(wǎng)絡(luò)路由,現(xiàn)在需要將這個網(wǎng)絡(luò)通告給AS2中的BGP路由器。8.5.2配置BGP下一跳屬性8.5掌握BGP基礎(chǔ)配置當(dāng)需要在本地的BGP發(fā)言者上,斷開與某個對等體的鄰居關(guān)系時,可以在BGP路由進(jìn)程模式下使用如下命令。neighborip-addressshutdown使用此命令斷開與某個BGP對等體的鄰居關(guān)系時,無需刪除與這個鄰居有關(guān)的配置。當(dāng)需要重新啟用與對等體的鄰居關(guān)系時,使用如下命令恢復(fù)。noneighborip-addressshutdown8.5.3關(guān)閉BGP鄰居8.6熟悉BGP路由消息類型BGPv4協(xié)議有5種消息報文:open(建立)、update(更新)、notification(通知)、keepalive(保持活躍)、route-refresh(路由刷新),承擔(dān)的功能描述如下。Open消息是TCP連接建立后發(fā)送的第一個報文,包含本地speaker信息以及與后面對等體之間建立TCP會話的信息,實現(xiàn)建立BGP對等體之間的連接關(guān)系。BGP用Open消息來建立BGP鄰居關(guān)系。當(dāng)BGP發(fā)言者之間的TCP連接建立起來后,雙方都要發(fā)送一個Open消息標(biāo)識自己。Open消息中所有信息都要被協(xié)商和接受。當(dāng)BGP發(fā)言者通過發(fā)送和接收Open消息,建立起B(yǎng)GP鄰居關(guān)系后,雙方就開始使用Update消息交換路由信息。Update消息中包含可達(dá)路由、需要刪除的路由和BGP路徑屬性值。8.7了解BGP路由狀態(tài)機當(dāng)路由器啟用了BGP路由后,首先進(jìn)入的就是空閑狀態(tài)(Idle)狀態(tài)。在Idle狀態(tài)下,BGP發(fā)言者不會接收BGP的會話請求,這時,BGP進(jìn)程不會擁有任何資源。只有在收到BGPStart事件(IE1)后,才會給BGP進(jìn)程分配資源。當(dāng)BGPStart事件發(fā)生后,BGP路由器開始初始化它的BGP資源,并嘗試和已配置BGP對等體建立TCP會話;同時,它也將偵聽來自對等體的TCP會話請求。如果由于TCP連接被關(guān)閉或者其他錯誤等,狀態(tài)機將保持在Idle狀態(tài)。如果沒有發(fā)生任何異常,狀態(tài)機將過渡到連接(Connect)狀態(tài)。通常BGP狀態(tài)機如果停留在Idle狀態(tài),可能有以下原因。在遠(yuǎn)端對等體上沒有正確的配置本地對等體的IP地址和自治系統(tǒng)號。在本地對等體上沒有正確的配置遠(yuǎn)端對等體的IP地址和自治系統(tǒng)號。本地或?qū)Χ藳]有到達(dá)對方的路由。訪問控制列表或防火墻阻斷了TCP的179端口,因為BGP需要使用它。8.7.1空閑狀態(tài)(Idle)8.7了解BGP路由狀態(tài)機在連接狀態(tài)(Connect)狀態(tài)下,BGP等待TCP連接的建立。如果TCP連接建立成功,狀態(tài)機過渡到打開發(fā)送(OpenSent)狀態(tài)。如果TCP連接沒有成功建立,狀態(tài)機將過渡到激活狀態(tài)(Active)。如果連接重試計時器超時,狀態(tài)機仍保持在Connect狀態(tài)。如果遇到其他事件(見表6-1),狀態(tài)機將返回到Idle狀態(tài)。8.7.2連接狀態(tài)(Connect)8.7了解BGP路由狀態(tài)機如果BGP發(fā)言者無法和對等體建立TCP連接,那么狀態(tài)機將進(jìn)入到Active狀態(tài)。此時,BGP發(fā)言者嘗試重新進(jìn)行TCP會話連接,并重置重連接計時器。如果在重連接過程中成功建立TCP連接。那么將發(fā)送一個Open消息,并過渡到OpenSent狀態(tài)。如果在重連接計時器超時后,還沒有建立TCP會話,狀態(tài)機將重啟重連接計時器,并返回Connect狀態(tài)。8.7.3激活狀態(tài)(Active)8.7了解BGP路由狀態(tài)機當(dāng)BGP對等體之間成功建立了TCP連接后,BGP發(fā)言者便發(fā)送一個Open消息,從而進(jìn)入OpenSent狀態(tài)。此時,本地對等體將等待遠(yuǎn)端發(fā)送Open消息。當(dāng)收到對端Open消息后,BGP對等體檢查消息中字段是否匹配。如果發(fā)現(xiàn)了錯誤,將會給遠(yuǎn)端對等體發(fā)送一個Notification消息,并返回到Idle狀態(tài)。如果此時TCP連接斷開,狀態(tài)機將返回Active狀態(tài)。如果在檢查Open消息時,檢測到錯誤,BGP將發(fā)送一個Keepalive報文,并且重置Keepalive計時器。在這個階段,雙方要協(xié)商保持時間,并且選擇雙方中較小的保持時間;之后,狀態(tài)機將過渡到OpenConfirm狀態(tài)。通常BGP不會在OpenSent狀態(tài)停留較長時間。當(dāng)本地對等體收到遠(yuǎn)端的OPEN消息后,將會很快發(fā)送一個Keepalive報文,并過渡到OpenConfirm狀態(tài)。8.7.4打開發(fā)送狀態(tài)(OpenSent)8.7了解BGP路由狀態(tài)機在打開確認(rèn)狀態(tài)(OpenConfirm)狀態(tài)下,本地對等體將等待從遠(yuǎn)端收到一個Keepalive報文。如果收到對端的Keepalive報文,過渡到最終已建立狀態(tài)(Established)。如果收到了一個Notification消息,將返回到Idle狀態(tài)。BGP對等體只會在打開確認(rèn)狀態(tài)(OpenConfirm)停留一定時間,來等待Keepalive報文。如果在保持計時器超市后,還沒有收到報文,將返回到Idle狀態(tài)。8.7.5打開確認(rèn)狀態(tài)(OpenConfirm)8.7了解BGP路由狀態(tài)機已建立狀態(tài)(Established)是BGP對等體協(xié)商的最終狀態(tài)。在這個狀態(tài)下,BGP對等體開始通過發(fā)送Update報文,交換路由信息。當(dāng)對等體收到Update或Keepalive報文后,保持計時器將被重置。如果收到Notification消息,則返回到Idle狀態(tài)。如果BGP對等體在Update消息中檢測到錯誤,它將發(fā)送一個Notification消息到對等體,并且返回Idle狀態(tài)。如果保持計時器超時,或者由于其他的一些事件,如BGPStop,狀態(tài)機也將返回到Idle狀態(tài)。8.7.6已建立狀態(tài)(Established)8.8掌握BGP路徑屬性起源屬性(ORIGIN)是公認(rèn)、強制屬性,指明這條路由信息來源。在BGP更新中,每條路由信息都包括這種屬性,而且接收它的BGP發(fā)言者,也必須識別和處理這種屬性。當(dāng)BGP發(fā)言者擁有到達(dá)相同目的網(wǎng)絡(luò)的路由時,起源屬性作為一個決定路徑優(yōu)劣因素。這里的起源,是指始發(fā)BGP發(fā)言者,將這條路由通告到BGP中的方式。R1路由器擁有一條直連路由1.0.0.0/8,R2路由器擁有一條直連路由2.0.0.0/8。R1路由器使用network將直連路由通告到BGP中,R2路由器通過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號加入到AS路徑列表中。但是R1路由器從本地來看,1.0.0.0/8的路徑屬性為空。R2路由器收到此路由通告后,看到AS的路徑列表為“1”,表明該條路由始于AS1。R2再將路由通告給它的IBGP鄰居R3路由器時,不會修改AS路徑列表,所以R3路由器看到的路徑列表仍然為“1”。R3路由器把這條路由再通告給EBGP鄰居R4路由器時,就會附加上本地的AS號。此時,R4路由器看到這條路由的路徑列表就為“2,1”,表明該路由始于AS1,并在傳輸路徑中經(jīng)過了AS2。對于路由器R4來說,如果要到達(dá)網(wǎng)絡(luò)1.0.0.0/8,需要先后經(jīng)過AS2和AS1二個自治域。8.8.2AS路徑屬性8.8掌握BGP路徑屬性下一跳屬性(NEXT_HOP)也是一個公認(rèn)又強制屬性,所有的BGP路由攜帶該屬性,所有BGP發(fā)言者都必須識別和處理該屬性。下一跳屬性指出要到達(dá)目標(biāo)網(wǎng)絡(luò),需要將數(shù)據(jù)發(fā)送到的下一個接口的地址或者路由器。在IP路由表中,所有路由都有下一跳,告訴路由器應(yīng)將收到IP數(shù)據(jù)包發(fā)送到哪里。在BGP路由表中,下一跳也一樣,告訴路由器去往某自治系統(tǒng)中的網(wǎng)絡(luò)時,應(yīng)該將數(shù)據(jù)包送往何處。但在BGP中,對于EBGP路由和IBGP路由下一跳,存在一些差別。8.8.3下一跳屬性8.8掌握BGP路徑屬性R2路由器通過EBGP網(wǎng)絡(luò),從R1路由器上接收到1.0.0.0/8的路由更新,路由的下一跳屬性為200.1.1.1,即R1路由器發(fā)送路由更新的地址。當(dāng)R2路由器再將該路由通告給IBGP中的鄰居路由器R3時,根據(jù)BGP路由的規(guī)定,R2路由器不對此路由的下一跳進(jìn)行修改。也就是說,當(dāng)R3路由器接收到這條路由后,看到的下一條屬性仍然為200.1.1.1,而不是R2發(fā)送路由更新的地址10.1.1.1。這就是指EBGP通告下一跳屬性,會被傳遞到IBGP中。需要注意的是:BGP是一個以自治系統(tǒng)為跳數(shù)路由協(xié)議,所有EBGP通告下一跳會傳輸?shù)洁従覣S中。8.8.3下一跳屬性8.8掌握BGP路徑屬性本地優(yōu)先級屬性(LOCAL_PREF)是一個公認(rèn)的、自由決定屬性,也就是說每個BGP發(fā)言者都必須能夠識別該屬性,但是BGP更新中可以不攜帶該屬性。本地優(yōu)先級屬性也是BGP協(xié)議進(jìn)行路徑?jīng)Q策屬性,優(yōu)先級越高(數(shù)值越大)的路徑,被選為最佳路徑可能性越大。如果BGP發(fā)言者收到多條到達(dá)同一目標(biāo)網(wǎng)絡(luò)路徑,它將比較這些路徑本地優(yōu)先級,選擇本地優(yōu)先級最高作為最佳路徑,本地優(yōu)先級默認(rèn)值為100。需要注意的是:本地優(yōu)先級屬性只在AS內(nèi)部傳播,也就是IBGP對等體之間。它不會被通告給EBGP對等體,這也是“本地”一詞的意義。本地優(yōu)先級屬性用來指導(dǎo)本地AS中的路由器,如果數(shù)據(jù)流要離開本地AS,需要通過首選路徑是哪條。8.8.4本地優(yōu)先級屬性8.8掌握BGP路徑屬性多出口鑒別器屬性(MED)是一個可選的、非傳遞屬性。MED也稱為度量值(metric),被稱為AS間度量值。它可以影響B(tài)GP路徑選擇過程。MED屬性與本地優(yōu)先級屬性不同,MED屬性可以在自治系統(tǒng)之間傳送。也就是說MED屬性可以被發(fā)送給EBGP的對等體。當(dāng)其他自治系統(tǒng)接收到MED屬性后,會將其傳播給IBGP對等體。但是,當(dāng)該路由再被通告給另一個自治系統(tǒng)時,MED屬性值將會丟失。R1路由器將設(shè)置了MED屬性值的路由,通告給R2路由器;此時,MED屬性值也被傳播到R2路由器上。接下來,R2路由器將該路由通過IBGP網(wǎng)絡(luò),通告給R3路由器時,仍然攜帶MED屬性值。但是,當(dāng)R3路由器再將其通告給其他自治系統(tǒng)時,MED屬性值將不被傳播。8.8.5多出口鑒別器屬性8.8掌握BGP路徑屬性AS65000域通過設(shè)置通告給EBGP鄰居的MED屬性值,可以影響數(shù)據(jù)流進(jìn)入本地自治系統(tǒng)的路徑,即所有發(fā)往本地自治系統(tǒng)1.0.0.0/8網(wǎng)絡(luò)的數(shù)據(jù),都會從R2路由器進(jìn)入。需要說明的是:通過設(shè)置路由的MED屬性值,只能影響鄰接AS將數(shù)據(jù)發(fā)往本地AS的入口,MED屬性值不能影響數(shù)據(jù)進(jìn)入AS65001的路徑。因為MED屬性值不會再被傳遞到AS65001以外自治系統(tǒng),而且BGP遵循逐跳路由選擇模式。在默認(rèn)情況下,BGP路由只比較來自相同自治系統(tǒng)路由MED值。雖然AS1與AS2都設(shè)置了路由的MED屬性值,但是AS65001中的BGP發(fā)言者,將會忽略路由的MED值,不將其作為路徑?jīng)Q策的依據(jù)。如果要使BGP比較來自不同自治系統(tǒng)中路由的MED值,必須在BGP路由進(jìn)程模式下,使用“bgpalways-compare-med”命令,改變BGP的默認(rèn)行為。8.8.5多出口鑒別器屬性8.9BGP高級配置當(dāng)使用neighbor命令為本地對等體指定對端IP地址后,本地BGP進(jìn)程查找路由表,選擇到達(dá)對端IP地址最優(yōu)出接口和源IP地址。在使用neighbor命令時,對等體雙方配置到對端IP地址必須對應(yīng),或者說互為鏡像,這樣才能成功建立鄰居關(guān)系。默認(rèn)情況下,BGP選擇本地的源地址都通過查找路由表并使用物理接口IP地址。但在一個自治系統(tǒng)內(nèi)部中存在大量BGP對等體,如果全部使用物理地址作為對端IP地址,將帶來更多配置工作,而且很容易因為少一條配置,導(dǎo)致鄰居關(guān)系不能建立。8.9.1配置EBGP多跳和源地址8.9BGP高級配置正常情況下,如果要實現(xiàn)BGP冗余備份,需要在路由器R1和R2上分別建立兩個BGP鄰居關(guān)系,也就是建立兩個TCP會話,兩個TCP會話各使用一條物理鏈路。通過這種方式建立連接,實現(xiàn)鏈路的冗余備份。但使用兩條物理鏈路建立連接,會存在一些弊端。首先,TCP連接是建立在物理接口之間,但是物理接口可能會由于某些故障失效。其次,R1和R2路由器之間存在兩個TCP會話,也就是存在兩個鄰居關(guān)系,這對于BGP來說要多維護(hù)一個連接,會消耗系統(tǒng)資源。此外,雖然R1和R2路由器之間存在兩個會話,但是BGP在同一時刻只會使用一個BGP連接去發(fā)送數(shù)據(jù),因為BGP要從兩個路徑中選出一條最佳路徑。被選為最優(yōu)的那條物理鏈路出現(xiàn)故障后,會造成路由的重新收斂。8.9.1配置EBGP多跳和源地址8.9BGP高級配置BGP支持路由聚合和CIDR。路由聚合可以減小IP路由表的大小,如果沒有路由聚合,Internet上路由表的規(guī)模將會呈倍數(shù)的增長。此外,路由聚合可以用來減小BGP對等體之間通告路由的數(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ù)表示對多條路由聚合后,只通告聚合后路由。默認(rèn)情況下,既通告通告聚合后路由,也通告詳細(xì)路由。8.9.2配置BGP路由聚合8.9BGP高級配置BGP路由默認(rèn)優(yōu)先級為100。在BGP路由模式下,使用如下命令修改本地優(yōu)先級。bgpdefaultlocal-preferencepreference。該命令修改本地BGP發(fā)言者收到EBGP路由本地優(yōu)先級,修改后本地優(yōu)先級值,將隨著路由被通告到IBGP對等體。該命令對所有收到路由本地優(yōu)先級修改,所以當(dāng)僅僅控制到達(dá)某條目標(biāo)網(wǎng)絡(luò)的出口路徑時,這條命令配置將不能滿足要求。R1和R2路由器同時從不同AS,收到了到達(dá)同一目標(biāo)網(wǎng)絡(luò)的路由,但企業(yè)網(wǎng)絡(luò)想把去往1.0.0.0/8網(wǎng)絡(luò)數(shù)據(jù)流,通過R2路由器出口傳輸。8.9.3配置本地優(yōu)先級8.9BGP高級配置命令中metric參數(shù)是通告給EBGP對等體路由,設(shè)置默認(rèn)MED值,這個MED值與路由一同通告給EBGP對等體。通過控制路由MED值,對進(jìn)入本地自治系統(tǒng)數(shù)據(jù)流控制。所有進(jìn)入本地自治系統(tǒng)(AS1)數(shù)據(jù)流,都使用路由器R1的進(jìn)入路徑,造成R1外部鏈路負(fù)載過高,而R2外部路徑利用率極低,導(dǎo)致帶寬資源不能被合理地利用。為了解決這個問題,實現(xiàn)到達(dá)本地網(wǎng)絡(luò)3.0.0.0/8和4.0.0.0/8數(shù)據(jù)流量,從R2路由器上進(jìn)入,合理利用帶寬資源。現(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路由中,具有相同策略和角色的對等體,可以將其加入到一個組中;然后,對于這個組進(jìn)行統(tǒng)一策略配置,這個組被稱為對等體組(peer-group)。對等體組極大地簡化了配置BGP路由的工作量,而且本地路由器策略執(zhí)行的效率也大大增強。如果單獨地為50個對等體設(shè)置策略,那么,路由器也將對本地的策略數(shù)據(jù)庫訪問50次。如果對一個對等體組設(shè)置策略,那么路由器僅僅訪問本地策略數(shù)據(jù)庫1次。在BGP路由進(jìn)程模式下,使用如下命令創(chuàng)建對等體組。8.10.1對等體組8.10優(yōu)化大型網(wǎng)絡(luò)中BGP在BGP路由的水平分割原則中,BGP對等體不將從IBGP收到的路由更新,再通告給其他的IBGP對等體,這樣是為了避免潛在的環(huán)路。因此BGP的水平分割原則,必須在自治系統(tǒng)內(nèi)部建立全互聯(lián)(full-mesh)的IBGP鄰居關(guān)系,這樣才能確保所有的BGP發(fā)言者,都能收到來自外部的路由信息。但全互聯(lián)的IBGP拓?fù)洳痪哂袛U展性,并且為了在一個擁有眾多BGP對等體的網(wǎng)絡(luò)中,建立全互聯(lián)IBGP鄰居關(guān)系,需要大量的手工配置工作。,為了在自治系統(tǒng)內(nèi)部建立全互聯(lián)的IBGP鄰居關(guān)系,需要在每個發(fā)言者上,配置到達(dá)其他對等體的地址,因此,需要建立IBGP會話數(shù)將是n(n-1)/2。如圖中自治系統(tǒng)內(nèi)部共有6個BGP發(fā)言者,所以一共建立了15條IBGP連接。8.10.2路由反射器8.10優(yōu)化大型網(wǎng)絡(luò)中BGP路由反射器不會將一條路由再通告給路由的始發(fā)者。如果由于某種原因,路由的始發(fā)者又收到該路由,它通過檢查始發(fā)者ID屬性中路由器ID值,可以將該路由忽略。路由反射器與其客戶所組成集合被稱為集群(cluster)。自治系統(tǒng)內(nèi)的每一個集群都用一個集群ID(clusterID)標(biāo)識,集群ID就是路由反射器的路由器ID。其中,集群列表屬性(CLUSTER_LIST)也是一個可選的、非傳遞屬性,它記錄了路由所經(jīng)過的集群,并使用一個集群列表進(jìn)行表示。當(dāng)路由反射器將一條路由,發(fā)送給集群外的非反射器客戶時,它將本集群的集群ID添加到集群列表中。如果CLUSTER_LIST為空,它會創(chuàng)建該列表,并將集群ID加入進(jìn)去。8.10.2路由反射器8.10優(yōu)化大型網(wǎng)絡(luò)中BGP在上述第三個規(guī)則中,雖然RR路由器將從EBGP對等體收到路由通告給client,但實際上這個過程不叫路由反射。只用當(dāng)RR路由器將通過IBGP收到路由發(fā)送給client時,RR所作操作才被稱為反射。根據(jù)路由反射原則了解路由反射過程。R3路由器從R6路由器收到一條路由,R3路由器將其通告給路由器R7(client)、R1(非client)和R2(非client)。8.10.2路由反射器8.10優(yōu)化大型網(wǎng)絡(luò)中BGP在一個自治系統(tǒng)中,可以部署多個路由反射器,這樣可以更大限度的減少所需的IBGP會話數(shù)。路由反射器支持層次結(jié)構(gòu)的設(shè)計,也就是說一個路由反射器可以是另一個路由反射器的客戶。AS1內(nèi)存在兩個集群Cluster1和Cluster2。R1路由器為Cluster1的RR路由器,R2路由器為Cluster2的RR路由器。同時,路由器R2又充當(dāng)R1的client的角色。這就是具有層次結(jié)構(gòu)的路由反射拓?fù)洹J褂脤哟蔚穆酚煞瓷浣Y(jié)構(gòu),可以更大粒度的減少所需的IBGP會話數(shù),但是這種層次的設(shè)計也為路由的維護(hù)、跟蹤和故障診斷帶來了復(fù)雜性。雖然理論上路由反射對于層次數(shù)量沒有限制,但通常推薦只使用兩級的層次設(shè)計。8.10.2路由反射器8.10優(yōu)化大型網(wǎng)絡(luò)中BGP與路由反射器一樣,聯(lián)盟(Confederations)也用來減少大型自治系統(tǒng)中IBGP會話數(shù)目龐大問題。路由反射器通過放寬BGP水平分割限制,來減少需要建立IBGP會話數(shù)。聯(lián)盟核心思想是將一個大自治系統(tǒng)劃分成若干個子自治系統(tǒng)。子自治系統(tǒng)與子自治系統(tǒng)之間通過聯(lián)盟內(nèi)EBGP互聯(lián),子自治系統(tǒng)內(nèi)部仍然是全互聯(lián)的IBGP拓?fù)洹S1內(nèi)共有8個BGP發(fā)言者。如果要建立全互聯(lián)的IBGP會話,總共要建立28個IBGP鄰居關(guān)系。為了減少IBGP會話數(shù),在AS1域內(nèi)使用聯(lián)盟。其中,AS1被劃分為三個子自治系統(tǒng)(SubAS),AS65001、AS65002和AS65003。8.10.3聯(lián)盟【網(wǎng)絡(luò)實踐】:修改BGP路由MED值,優(yōu)選最佳路由某IT集團公司在北京總部和其它區(qū)域分公司的,其在區(qū)域的分公司的網(wǎng)絡(luò)中路由器R1和R2上沒有進(jìn)行MED值設(shè)置時,在R4路由器的BGP路由表上可以看到所有進(jìn)入AS1流量,都通過R1路由器的外部鏈路轉(zhuǎn)發(fā)。因為R4路由器從R1和R2路由器上收到的路由有相同的本地優(yōu)先級、相同的AS路徑列表長度等,所以在比較鄰居路由器的RouterID前,不能選出最佳路徑。因此希望網(wǎng)絡(luò)出口路由器R4通過比較分公司的接入路由器R1和R2的RouterID,將路由器R1選為最佳入口,因為R1具有更小的RouterID(1.1.1.1<2.2.2.2)?!救蝿?wù)描述】【設(shè)計過程】省略好好學(xué)習(xí)天天向上單元8:使用BGP路由實現(xiàn)域間路由選擇(2)《高級路由技術(shù)》(理論篇)主講教師:XXX技術(shù)背景從技術(shù)角度講,Internet這樣遍布全世界龐大的網(wǎng)絡(luò),需要一種機制確保信息從世界一端可靠傳輸?shù)搅硪欢?,這個機制就是BGP(BorderGatewayProtocol,邊界網(wǎng)關(guān)協(xié)議)。在Internet中使用唯一進(jìn)行自治系統(tǒng)間路由協(xié)議就是BGP,BGP構(gòu)成整個Internet的核心網(wǎng)絡(luò),有人把BGP稱為“BGP是Internet的心臟”。學(xué)習(xí)目標(biāo)了解BGP協(xié)議的工作范圍了解BGP協(xié)議的工作原理掌握BGP協(xié)議的基本配置

建立IBGP、EBGP對等體,引入與傳遞路由BGP概述邊界網(wǎng)關(guān)協(xié)議(BGP)運行于TCP上自治系統(tǒng)(AS)路由協(xié)議,是唯一能處理不相關(guān)路由域間多路連接協(xié)議。如:中國電信、中國聯(lián)通、中國移動運營商,通過BGP協(xié)議來實現(xiàn)多線互聯(lián)。為了便于管理規(guī)模不斷擴大的網(wǎng)絡(luò),將網(wǎng)絡(luò)劃分為不同的AS(AutonomousSystem自治系統(tǒng))不同AS通過AS號區(qū)分,AS號取值范圍1-65535,其中64512-65535是私有AS號IANA機構(gòu)負(fù)責(zé)AS號的分發(fā)中國電信163AS號:4134中國電信CN2AS號:4809中國網(wǎng)通AS號:9929中國聯(lián)通AS號:9800中國教育網(wǎng)骨干網(wǎng)AS號:4538什么是AS?AS64512AS64514AS64513BGP特征BGP是外部路由協(xié)議,在AS之間傳遞路由信息。BGP是一種增強型、距離矢量路由協(xié)議??煽柯酚筛聶C制豐富Metric度量方法設(shè)計上避免環(huán)路發(fā)生為路由附帶豐富屬性,豐富路由過濾和路由策略。支持CIDR(無類別域間選路)。AS之間連接使用直連鏈路,或通過運營商,建立VPN邏輯連接AS之間可能是不同組織機構(gòu),使用IGP協(xié)議,傳遞路由信息將會有安全風(fēng)險AS之間傳遞路由AS200AS100OSPFR1R2R3WANR4R5OSPF直接傳遞OSPFLSA存在暴露網(wǎng)絡(luò)結(jié)構(gòu)的風(fēng)險在AS之間傳遞路由,使用BGP協(xié)議(邊界網(wǎng)關(guān)路由協(xié)議BorderGatewayProtocol)相較IGP協(xié)議,BGP協(xié)議有以下優(yōu)勢:BGP基于TCP工作(端口號179),只要建立TCP連接,就可以建立BGP鄰居關(guān)系;BGP能夠承載上萬條路由,而IGP僅能上千條;BGP路由器只傳遞路由,不會露AS內(nèi)拓?fù)湫畔ⅲ影踩?;支持MPLS/VPN協(xié)議,傳遞客戶VPN路由AS之間傳遞路由使用BGPAS200AS100OSPFBGPpeerBGPpeerR1R2R3R4WANBGP是距離矢量路由協(xié)議,鄰居之間直接傳路由,每條BGP路由都攜帶多種屬性使用這些屬性配置路由策略,實現(xiàn)靈活路由選路,這是IGP協(xié)議無法做到BGP的特征AS200AS100OSPFBGPpeerBGPpeerR1R2R3R4WANBGP路由網(wǎng)絡(luò)號:192.168.10.0/24路徑屬性1:AS-PATH路徑屬性2:Origin路徑屬性3:next-hop路徑屬性N:……BGP協(xié)議在企業(yè)中應(yīng)用場景大型企業(yè)內(nèi)部,存在多個分支,每個分支屬于一個AS,通過BGP在不同分支之間傳遞路由企業(yè)與運營商之間運行BGP協(xié)議,企業(yè)與運營商之間互相傳遞路由BGP應(yīng)用場景AS100AS300AS200BGPpeerBGPpeerBGPpeerBGP路由術(shù)語自治系統(tǒng)(AS):同一個管理機構(gòu)管理、使用統(tǒng)一選路策略路由器集合。自治系統(tǒng)內(nèi)部路由協(xié)議:IGP自治系統(tǒng)之間路由協(xié)議:EGPAS65001AS65000BGPRIPv1/v2OSPFISISBGP角色Speaker發(fā)送BGP報文設(shè)備,稱為BGP發(fā)言者(Speaker),它接收或產(chǎn)生新報文信息,并發(fā)布(Advertise)給其它BGPSpeaker。Peer相互交換報文Speaker之間,互稱對等體(Peer)。若干相關(guān)對等體構(gòu)成對等體組(PeerGroup)。BGP報文交互中分為Speaker和Peer兩種角色對等體-Peer兩臺路由器交換BGP路由,建立TCP連接后,它們之間關(guān)系就是對等關(guān)系或鄰居關(guān)系。BGP鄰居分為:IBGP和EBGPAS65000NeighborsAS65500NeighborsIBGP與EBGPIBGP

運行于AS內(nèi)部的路由協(xié)議,主要有:RIP,OSPF及ISIS。

IGP著重于發(fā)現(xiàn)和計算路由。EBGP

運行于AS之間路由協(xié)議,通常都是指BGP。

BGP著重于控制路由傳播和選擇最優(yōu)路由。BGP協(xié)議報文以單播的形式發(fā)送,BGP共有5種,其中路由是承載在Update報文中BGP的協(xié)議報文LinkLayerHeaderIPTCPBGPProtocolPacketFrameChecksumBGP

ProtocolHeaderBGP

PacketIP協(xié)議號為6端口號為179報文類型作用發(fā)送規(guī)則Open用于建立鄰居關(guān)系,協(xié)商各項參數(shù)通過TCP建立BGP連接,發(fā)送open報文Update用于發(fā)送路由更新連接建立后,有路由更新時,發(fā)送UPDATE報文Notification用于報告BGP錯誤當(dāng)BGP運行中發(fā)現(xiàn)錯誤時,發(fā)送NOTIFICATION通告Keepalive用于維持鄰居關(guān)系定時發(fā)送KEEPALIVE報文以保持BGP鄰居關(guān)系的有效性Route-refresh為保證網(wǎng)絡(luò)穩(wěn)定,觸發(fā)更新路由的機制當(dāng)路由策略發(fā)生變化時,觸發(fā)請求鄰居重新通告路由BGP的有限狀態(tài)機Peer狀態(tài)名稱發(fā)送報文動作Idle嘗試建立TCP連接開始準(zhǔn)備TCP的連接并監(jiān)視遠(yuǎn)程peer啟動TCP連接,啟用BGP時,要準(zhǔn)備足夠的資源Connect發(fā)TCP包正在進(jìn)行TCP連接,等待完成中,認(rèn)證都是在TCP建立期間完成的。如果TCP連接不上則進(jìn)入Active狀態(tài),反復(fù)嘗試連接。Active發(fā)TCP包TCP連接沒建立成功,反復(fù)嘗試TCP連接。OpenSent發(fā)Open包TCP連接建立已經(jīng)成功,開始發(fā)送Open包,Open包攜帶參數(shù)協(xié)商對等體的建立。OpenConfirm發(fā)Keepalive包參數(shù)、能力特性協(xié)商成功,自己開始發(fā)送Keepalive包,等待對方的Keepalive包。Established發(fā)Update包已經(jīng)收到對方的Keepalive包,雙方能力特性一致,開始使用Update通告路由信息。BGP的有限狀態(tài)機ActiveOpen-sentOpen-confirmEstablishedConnectConnect-RetrytimerexpiryTCPconnectionfailsConnect-RetrytimerexpiryStartOthersTCPconnectionfailsErrorErrorErrorKeepAlivetimerexpiryKeepAlivepacketreceived1.KeepAlivetimerexpiry2.Updatereceived3.KeepAlivereceivedCorrectOPENpacketreceivedTCPconnectionsetupTCPconnectionsetupOthersIdle運行BGP的路由器被稱為BGPSpeaker或者BGP路由器兩臺BGP路由器之間建立的關(guān)系叫BGP對等體(Peer)也叫BGP鄰居,對等體之間交換BGP路由表BGP的Peer分為兩種:EBGP和IBGPBGP對等體AS200AS100OSPFBGPEBGPpeerBGPIBGPpeerR1BGPspeakerR2R3BGPspeakerR4BGPspeakerWANEBGPPeer:位于不同AS的路由器之間的BGP鄰居關(guān)系互為EBGPPeer的路由器彼此所屬的AS號不同EBGPPeer一般基于直連接口建立Neighbor命令所指定的鄰居IP地址要可達(dá),TCP連接要能夠正確建立EBGP的路由管理距離為20,因為AS之間BGP比IGP更優(yōu)BGP對等體AS200AS100OSPFBGPEBGPpeerR1R2R3BGPspeakerR4BGPspeakerWANIBGPPeer:同屬一個AS的路由器之間建立的BGP鄰居關(guān)系互為IBGPPeer的BGP路由器屬于同一個ASIBGPPeer一般基于Loopback接口建立,Peer之間可以跨越路由器,只要TCP連接要能夠正確建立IBGP的路由管理距離為200,因此AS內(nèi)部IGP更優(yōu)BGP對等體AS200AS100OSPFBGPIBGPpeerR1BGPspeakerR2R3BGPspeakerR4WANBGP鄰居表:包含了此臺BGP路由器所有的鄰居,以及他們之間的狀態(tài);BGP默認(rèn)每隔60秒發(fā)送一次BGP/TCP存活消息,保持時間為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鄰居表:對端peer的更新地址BGP版本號對端AS路由更新或撤銷時TblVer數(shù)字增加,類似路由更新State是bgpsession的的狀態(tài),如果達(dá)到established就顯示收到的路由的數(shù)目,否則就是active之類的狀態(tài)每臺BGP路由器獨立維護(hù)一張BGP路由表,包含了本地導(dǎo)入以及從BGP

peer學(xué)習(xí)所有BGP路由;BGP路由表中可用、最優(yōu)的路由(標(biāo)記為*>)將會加載到全局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代表此路由是通過IBGP學(xué)習(xí)的,如果空的代表從EBGP學(xué)習(xí)到或者本地引入的目標(biāo)網(wǎng)絡(luò)號BGP本身不會自動產(chǎn)生路由,必須要將IGP的路由引入到BGP路由表中。引入的方式有2種:BGP路由的生成引入方式引入條件適用場景Network宣告必須是IP路由表的IGP路由條目,且必須存在一條命令僅能引入一條路由,適用于路由數(shù)量較少的場景Redistribute重分布IGP路由數(shù)量較多,且地址段不連續(xù)不便于聚合的場景,動態(tài)從其他路由協(xié)議引入路由,并且可以結(jié)合route-map來配置更豐富的路由策略BGP使用update報文將路由條目發(fā)送給BGPpeerBGP傳遞路由規(guī)則:僅把BGP路由表中可用、且最優(yōu)(*>)路由,傳遞給BGPpeer從EBGPpeer獲得路由,發(fā)送給所有BGP

peer(包括EBGP和IBGP)從IBGP獲得路由,默認(rèn)會通告給它的EBGPpeer(如果BGP同步開啟則需要再判定)BGP路由的傳遞EBGPpeerEBGP/IBGPpeer路由通告IBGPpeerEBGPpeer路由通告BGP作為一種D-V距離矢量路由協(xié)議,通過水平分割,防止AS內(nèi)部的環(huán)路從IBGP獲得的路由,不向它的IBGP

peer通告,以此來防止循環(huán)的發(fā)生IBGP在路由通告時,也不會改變路由的下一跳,進(jìn)一步防止循環(huán)發(fā)生BGP在AS內(nèi)部的環(huán)路避免機制AS300AS100AS200EBGPpeerEBGPpeer路由更新IBGPpeerBGP同時還采用AS-Path屬性,來防止AS之間環(huán)路EBGP向?qū)Φ润w通告路由時,附加上自己AS號存放在AS-path屬性字段,收到EBGP對等體Update報文時,檢查AS-path,如果發(fā)現(xiàn)自己的AS號,則丟棄該路由,EBGP是依靠路由經(jīng)過的AS路徑,來發(fā)現(xiàn)循環(huán)的BGP在AS之間的環(huán)路避免機制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對等體,因此會出現(xiàn)一些路徑上設(shè)備未運行BGP。BGP路由黑洞EBGPpeerEBGPpeerIBGPpeer非BGProuter非BGProuterAS200AS100OSPFR1A網(wǎng)絡(luò)R2R3R4R5R6AS300這些設(shè)備由于未運行BGP,不會收到BGP傳遞來路由信息當(dāng)有數(shù)據(jù)包經(jīng)過這些設(shè)備時,因為沒有相關(guān)路由信息,數(shù)據(jù)包將會被丟棄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é)議為了防止路由黑洞問題,引入了同步機制從IBGP對等體學(xué)習(xí)到的路由在成為最佳路由并向EBGP對等體通告之前必須被IGP學(xué)習(xí)到BGP同步默認(rèn)關(guān)閉,如果開啟則不會產(chǎn)生路由黑洞問題,但同時這些路由將無法正常使用避免路由黑洞問題的方法——BGP同步非BGProuter非BGProuterAS200AS100OSPFR1R2R3R4R5R6AS300BGPUpdateBGPUpdateBGPUpdateA網(wǎng)絡(luò)R5如果開啟BGP同步,那么雖然R5從IBGP鄰居R2收到A網(wǎng)絡(luò)的BGP路由,但因為IGP路由表中無此路由,BGP路由表與IGP路由表不同步,因此R5不會把這條BGP路由發(fā)給EBGP鄰居R6要想既不產(chǎn)生路由黑洞問題,又要使得這些路由可用,可采用以下方式:路由重分布:把BGP的路由重發(fā)布到AS內(nèi)的IGPIBGP全互聯(lián):在穿越路徑上IBGP啟用全連接,確保所有BGP路由過路設(shè)備都知道使用MPLS:使用MPLS的轉(zhuǎn)發(fā)機制解決穿越AS問題解決路由黑洞問題的方法EBGPpeerEBGPpeerIBGPpeer非BGProuter非BGProuterAS200AS100OSPFR1在R2與R5上將BGP路由重分布到OSPF中,讓R3、R4也能學(xué)習(xí)到這些路由,就不會有路由黑洞R2R3R4R5R6AS300R2、R3、R4、R5全部建立IBGP鄰居EBGPpeerEBGPpeerIBGPpeerAS200AS100OSPFR1R2R3R4R5R6AS300按照以下步驟配置BGP協(xié)議:第1步:設(shè)備基本參數(shù)配置,AS內(nèi)配置IGP確保內(nèi)部網(wǎng)絡(luò)連通性;第2步:啟動BGP進(jìn)程第3步:建立BGP對等體第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對等體的源和目標(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路由器上啟動BGP進(jìn)程,一臺路由器上只能配置一個BGP實例僅執(zhí)行命令routerbgp不能在路由器上激活BGP,必須至少執(zhí)行一個子命令才能在路由器上激活BGP進(jìn)程手工設(shè)置BGPRouterID第2步:啟動BGP進(jìn)程Router(config)#routerbgpas-numberRouter(config-router)#

bgprouter-idip-address指定BGP鄰居及激活BGP會話BGP鄰居都需手工指定,不能像IGP那樣通過協(xié)議自動發(fā)現(xiàn)建立鄰居時的指定的PeerIP地址必須路由可達(dá),本端默認(rèn)使用報文出接口IP地址作為更新源本地的更新源IP地址必須與PeerIP地址相同,不相同,則BGP鄰居無法正常建立對端AS號決定了與鄰居建立的是EBGP會話還是IBGP會話第3步:建立BGP對等體Router(config-router)#neighbor

{peer-address|peer-group-name}remote-as

as-number在同指定BGP對等體建立BGP連接時,可以啟用TCPMD5認(rèn)證,并設(shè)置密碼啟用身份驗證后,將對通過對等體之間的TCP連接傳輸?shù)乃袛?shù)據(jù)等進(jìn)行驗證認(rèn)證都是在TCP建立連接的時候完成的BGP的驗證功能Router(config-router)#neighbor{peer-address|peer-group-name}password[|0|7]string通過宣告network的方式引入路由如果指定mask,則僅當(dāng)IP路由表中有與完全匹配的條目時才會引入成功如果不指定mask,只通告主類網(wǎng)絡(luò)號,則僅當(dāng)IP路由表中至少有一個子網(wǎng),才會將該主類網(wǎng)絡(luò)作為一條BGP路由引入,但不會引入該主類網(wǎng)絡(luò)之下的其他子網(wǎng)通過重分布的方式引入路由第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鄰居,并且從對端收到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傳遞來的,滿足條件因此最優(yōu)4.4.4.4/32是R3從EBGP鄰居學(xué)習(xí)來的,但無“>”標(biāo)記,不是最優(yōu)的,因為其下一跳不可達(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并不意味著是下一臺路由器,而是到達(dá)下一個AS的IP地址EBGP中,默認(rèn)next-hop為發(fā)送更新的鄰居路由器的IP地址IBGP中,從EBGP傳來的next-hop屬性在IBGP中保持不變的被傳遞BGP的next-hop不可達(dá)問題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,這個地址未被通告到AS123的IGP里,因此路由不可達(dá),因此不是最優(yōu)有兩種辦法解決next-hop不可達(dá)的問題第1種辦法就是把10.1.34.0這個網(wǎng)絡(luò)宣告到AS123的IGP路由中這樣4.4.4.0/24這條路由就會在R1的BGP路由表成為最優(yōu)路由但這種方法并不建議,因為會使得AS之間的鏈路暴露在AS內(nèi)部,有一定安全風(fēng)險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á)的問題第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. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論