內(nèi)容參考說明案例3bgp_第1頁
內(nèi)容參考說明案例3bgp_第2頁
內(nèi)容參考說明案例3bgp_第3頁
內(nèi)容參考說明案例3bgp_第4頁
內(nèi)容參考說明案例3bgp_第5頁
已閱讀5頁,還剩202頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、BGP(邊界網(wǎng)關協(xié)議)(提示:由于內(nèi)容較多,閱讀時,建議開啟 文檔結構圖.)目錄概述2BGP AS3BGP 鄰居4BGP 更新源6BGP TTL7BGP AS_Path7表10BGPBGP Synchronization11Path Attributes13BGP RIB-Failure19BGP 最優(yōu)路徑選擇20BGP 基礎實驗23聚合75第 1 頁共 207 頁BGPBGP 默認. 92過濾94. 101BGPBGP 條件BGP Peer Group106BGP Commu. 117BGP Reflector(BGP 反射器)143BGP Confederation(BGP) . 161B

2、GP 后門. 179BGP Dampening189BGP 重分布進 IGP200概述在當前所使用的計算機中,一個,通常使用一個IP 網(wǎng)段來表示,要將所有連接起來,并且要通信,就需要將這些IP 網(wǎng)段連接起來,讓每個IP 網(wǎng)段都知道其它IP 網(wǎng)段的信息,就可以實現(xiàn)全網(wǎng)通信。將與連接起來的是器,只要中每一臺器都知道所有IP網(wǎng)段的信息,就可以為全網(wǎng)提供數(shù)據(jù)轉(zhuǎn)發(fā),如果某一臺器不能得知所有的IP 網(wǎng)段信息,也就表示這臺器所連接的不能與其它網(wǎng)段通信。為了幫助器獲得全網(wǎng)的IP 網(wǎng)段信息,因此路由協(xié)議工作在器與器之間,協(xié)議將中每一條(IP 網(wǎng)段)在器與器之間傳遞,最終讓中每一臺器都擁有全網(wǎng)完整的信息,從而實現(xiàn)

3、全網(wǎng)可達。從上可以看出,協(xié)議在器之間傳遞信息,是保證通信的基礎,如果協(xié)議傳遞了錯誤的器收到信息,或者沒有傳遞信息,將導致某些通信的中斷,所以協(xié)議從一臺更新后,必須毫不保留地傳遞給其它器,而當一個失效后,也必須告知其它器該網(wǎng)段不可達,需要將相應刪除。當全網(wǎng)每一臺器都擁有所有的信息,并且完全一致時,這種狀態(tài)被稱為收斂狀態(tài),一個只有在收斂狀態(tài)時,才能保證全網(wǎng)可達。而所使用的最龐大的互聯(lián)網(wǎng),是由數(shù)萬臺器連接起來的,如果每一臺器都擁有互聯(lián)網(wǎng)中的每一條信息,那么就意味著每一臺器都將擁有數(shù)十萬甚至數(shù)百萬條條目,這個數(shù)量是驚人的。但是由于協(xié)議的特征以及互聯(lián)網(wǎng)全器互換,最終使整個網(wǎng)通信的需求,就必須讓互聯(lián)網(wǎng)中每

4、一臺器將的信息與其它互聯(lián)網(wǎng)的達到收斂狀態(tài)。雖然這是鐵定的要求,但是請仔細想一下,這是萬萬不可能的,因為一個擁有數(shù)萬臺器組建起來的超大型,永遠不可能達到收斂狀態(tài),因為當某個斷開時,最先得知的器需要將這個信息告知給其它所有器,因為信息是一臺傳一臺傳過去的,所以一個斷開的信息要讓數(shù)萬臺器都知道,這需要很長的時間,并且可能在這個信息還沒有傳遍整個時,這個之前中斷的就恢復了正常,那么這時,最先知道的器又要重新向中通告該網(wǎng)段恢復正常的信息,如此一來,互聯(lián)網(wǎng)中不斷變化的第 2 頁共 207 頁,會讓所有器不停地傳遞路由信息,結果是導致中信息的不一致,也將導致龐大的更新影響所有器的性能。的信息, 器通告,因此

5、,互聯(lián)網(wǎng)中,一個的中斷與恢復,實在沒有必須通告給數(shù)以萬計的器。而必須向其它器通告,那么,一臺器的信息,既然沒有必須向中每一臺那么,它究竟該通告給哪些器呢?或者換句話說,它的更新通告的范圍究竟有多大呢?基于以上種種,所以一臺器的更新限制在一定的范圍內(nèi),也只有這樣,一個被劃分為更小范圍的,才能達到收斂狀態(tài)。所以現(xiàn)實情況是,我們的互聯(lián)網(wǎng)被劃分成了一個一個更小范圍的,而任何一臺器的的更新,被限制在這個特定的范圍內(nèi),而這個特定的范范圍,即autonomous system(AS) 。我們設計了互圍,就是你應該知道的被稱為自聯(lián)網(wǎng)中協(xié)議的更新只應該在一個AS 內(nèi)部傳遞,但是互聯(lián)網(wǎng)是需要全網(wǎng)通信的,所以必須讓

6、每一個AS 都能夠獲得其它AS 的信息才行,因此,協(xié)議被定義為兩種截然不同的種類,即只在一個AS 內(nèi)部更新的協(xié)議,稱為Interior Gateway Protocol (IGP) ,以及在AS 與AS 之間更新的協(xié)議,稱為Border Gateway Protocol (BGP)。需要的解釋,將互聯(lián)網(wǎng)劃分成多個 AS,目的并不僅僅是將協(xié)議的更新限制在特定的范圍內(nèi),還有一個重要的單獨定義各自的是,將互聯(lián)網(wǎng)劃分成若干個小范圍的后,那么這每一個小就可以策略與安全策略,并且這樣不需要干擾其它 AS,也不受其它 AS 干擾。比如中若干的ISP,這些 ISP 對的需要制定的策略,又需要讓這些策略保持私有

7、性而不與其它ISP 互相干擾,所以劃分AS,幫他們實現(xiàn)了這個目的。只能在一個AS 內(nèi)部傳遞更新的IGP協(xié)議有RIP,EIGRP,OSPF,IS-IS,可以在 AS 之間傳遞更新的的協(xié)議目前只有BGP。但是有個特別之處是,EIGRP 也使用了AS 的概念來工作,運行 EIGRP也會被劃分成多個AS,雖然默認情況下,EIGRP 不能在AS 與AS 之間更新信息,但是 EIGRP也可以實現(xiàn)AS 之間的更新。需要說明的是,EIGRP 概念中的AS 與BGP 的 AS 并無任何關聯(lián),它們之間沒有任何共同操作性,真正的AS 是指BGP 的AS,而EIGRP 不管有什么樣的AS 特征,它永遠被限制在BGP

8、的單一AS 之中。注:BGP 支持classless interdomain routing (CIDR)BGP AS對于BGP 的AS 號碼的分配,是由Internet Assigned Number Authority (IANA)機構來統(tǒng)一和分配的,IOS 中運行的BGP,目前最多支持 4 字節(jié)長度的AS 號碼,但并不表示所有AS 號碼都能任意配置,在 2009 年 1 月之前,只能使用最多 2 字節(jié)長度的AS 號碼,即 1-65535,在 2009 年 1 月之后,(IANA)決定使用 4 字節(jié)長度AS,范圍是 65536 -。當前,通常還是使用 2 字節(jié)長度的AS,也就是 1-655

9、35,所以不對 4 字節(jié)的AS 號碼做太多討論。因為BGP 是使用在互聯(lián)網(wǎng)之中的,互聯(lián)網(wǎng)由多個BGP AS 域組成,所以互聯(lián)網(wǎng)中不能出現(xiàn)AS 號碼相第 3 頁共 207 頁同的域,如果一臺器要接入互聯(lián)網(wǎng)并運行BGP,那么必須向 IANA 申請合法的AS 號碼。為了考慮到某些大型企業(yè)需要使用BGP 與ISP 對接,而又沒有足夠的AS 號碼用來分給企業(yè)用戶,所以將AS號碼劃分為AS 和私有AS,AS 的范圍是 1-64511,私有 AS 范圍是 64512-65534;AS 只能用于互聯(lián)網(wǎng),并且全球唯一,不可重復,而私有AS 可以在得不到合法AS 的企業(yè)使用,可以重復。很顯然,因為私有AS 可以被

10、多個企業(yè)重復使用,所以這些私有AS 不傳入互聯(lián)網(wǎng),ISP 在企業(yè)用戶邊緣,需要過濾掉帶有私有AS 號碼的條目。BGP 鄰居如果你在的PC 上從某個FTP 服務器去文件,那么你的PC 只要和FTP 服務器是通暢的即可,也就是說你的PC 只要ping 得通FTP 服務器就行,不管距離有多遠,因為不可能每個從FTP 服務器上文件的PC 都與之是直接連在一起的;PC 從FTP 服務器文件時,使用的是TCP 傳輸,當數(shù)據(jù)在中途出現(xiàn)丟包時,被丟棄的數(shù)據(jù)包能夠得到重新傳遞,從而保證的文件是完整的。由于BGP 運行在整個互聯(lián)網(wǎng),傳遞著數(shù)量龐大的信息,因此需要讓BGP器之間的傳遞具有高可靠性和高準確性,所以 B

11、GP器之間的數(shù)據(jù)傳輸使用了TCP 協(xié)議,端為 179,并且指的是會話的目標端為 179,而會話源端是隨機的。正因為BGP 使用了TCP 協(xié)議傳遞,所以兩臺運行 BGP 的器只要通信正常,也就是說只要 ping得通,而不管器之間的距離有多遠,都能夠形成BGP 鄰居,從而互換信息。一個配置了BGP 進程的器只能稱為BGP-Speaker,當和其它運行了 BGP 的器形成鄰居之后,就被稱為 BGP-Peer。如果一個中的多臺器都運行OSPF 之后,那么這些器會在相應網(wǎng)段去主動發(fā)現(xiàn)OSPF 鄰居,并主動和對方形成OSPF 鄰居。而一個主動去發(fā)現(xiàn)和尋找其它BGP 鄰居,BGP 的鄰居必須手工指定。器運行

12、BGP 后,并BGP 和其它協(xié)議之外的其它協(xié)議一樣,傳遞的是層協(xié)議,如IP 協(xié)議,除此之外,BGP 還能夠傳遞除IP層協(xié)議,能夠傳遞的協(xié)議如下:IP Version 4(IPv4),IP Version 6 (IPv6),Virtual Private Networks version 4 (v4),Connectionless Network Services (CLNS),Layer 2(L2).第 4 頁共 207 頁這些協(xié)議被稱為address family,配置時,需要進入相應的協(xié)議address family 模式,而Ipv4除外。所有命令在address family 中配置,生

13、效,并且都擁有的數(shù)據(jù)庫。正常的BGP配置模式被稱為NLRI 模式,而address family 模式稱為AFI 模式,像MPLS,只能在AFI 中配置,而不能在NLRI 模式中配置,在NLRI 模式中配置的參數(shù)只對Ipv4 單播生效。IOS 支持四個AFI 模式,為:IPv4, IPv6, CLNS,v4,并且 IPv4 和IPv6 還有單播和組播之分。思科器運行的BGP 為version 4,一臺器只能運行一個BGP 進程,并且整臺器只能屬于一個AS,但是一臺器可以承載多個address family,而一個支持多個address family 的BGP 和一個不支持的可以正常通信,但這也

14、僅限于Ipv4。一臺BGP器運行在一個單一的AS 內(nèi),在和其它BGP器建立鄰居時,如果對方器和屬于相同AS,則鄰居為internal BGP (iBGP),如果屬于不同AS,則鄰居為externalBGP (eBGP)。BGP 要求eBGP 鄰居必須直連,而iBGP 鄰居可以任意距離,但這些都是可以改變的。在BGP 形成鄰居后,最開始會交換所有信息,但是之后都采用增量更新,也就是只有在有變化時,并且只更新有變化的。BGP 建立鄰居后,會通過相互類似hello 包的數(shù)據(jù)來維持鄰居,這個數(shù)據(jù)包稱為Keepalive,默認每 60 秒一次,hold timer 為 180 秒,即到達 180 秒沒有

15、收到鄰居的Keepalive,便認為鄰居丟失,則斷開與鄰居的連接。BGP 之間建立鄰居,需要經(jīng)歷如下幾個過程:IdleBGP 進程被啟動或被重置,這個狀態(tài)是等待開始,比如等于指定一個 BGP peer,當收到 TCP連接請求后,便初始化另外一個,當器或peer 重置,都會回到idle 狀態(tài)。Connect檢測到有peer 要嘗試建立TCP 連接。Active嘗試和對方peer 建立TCP 連接,故障,則回到idle 狀態(tài)OpenSent TCP 連接已經(jīng)建立,BGP了一個OPEN 消息給對方peer,然后切換到OpenSent狀態(tài),如果失敗,則切換到Active 狀態(tài)。第 5 頁共 207 頁

16、OpenReceive 收到對方peer 的OPEN 消息,并等待keepalive 消息,如果收到keepalive,則轉(zhuǎn)到Established 狀態(tài),如果收到 notification,則回到 idle 狀態(tài),比如錯誤或配置改變,都會發(fā)送notification 而回到idle 狀態(tài)。Established 從對端peer 收到了keepalive,并開始交換數(shù)據(jù),收到 keepalive 后,hold timer都會被重置,如果收到notification,就回到idle 狀態(tài)。BGP 更新源BGP 并不能主動在中尋找鄰居,必須手工指定BGP 鄰居的地址,那么BGP將數(shù)據(jù)包發(fā)往指定的地

17、址來請求建立鄰居,與此同時,BGP 發(fā)出的請求數(shù)據(jù)包除了寫明目標IP 地址外,還要寫上的IP 地址,即BGP 源地址。器產(chǎn)生流量后從接口發(fā)出時,流量從哪個接口被發(fā)出,那么這些數(shù)據(jù)包的源IP 地址就是哪個接口的地址。因此當BGP 發(fā)出數(shù)據(jù)包尋找鄰居時,這些數(shù)據(jù)包從哪個接口被發(fā)出,那么BGP 源IP 地址就是哪個接口的地址。要兩臺BGP器要正常建立鄰居,必須雙方器都相互指定鄰居,相互數(shù)據(jù)包才行。當一臺BGP器收到建立鄰居的請求后,如果發(fā)現(xiàn)數(shù)據(jù)包的目標IP 不是的BGP 源地址,那么就拒絕該連接請求,只有當請求數(shù)據(jù)包的目標IP 與的BGP 源地址相同時,才可建立 BGP 鄰居。需要注意的是,這個條件

18、只在兩個鄰居之間,任意一個鄰居滿足條件即可,并不需要雙方都滿足,也就是說一方收到的數(shù)據(jù)包目標 IP 與的BGP源地址相同即可,另一方收到的數(shù)據(jù)包目標IP 與它的BGP 源地址不同也沒,只要單方面符合條件就行,但我們通常器上的接口地址。BGP 兩端的源與目標保持一致。BGP 的源地址是可以隨意更改的,但只能是如下圖第 6 頁共 207 頁在上圖中,R1 與R2 之間有兩條鏈路,當配置BGP 鄰居時,如果R1 指定鄰居地址為 , R2 指定鄰居地址為 ,那么在建立鄰居過程中,R1 將請求數(shù)據(jù)包從接口 F0/0 發(fā)出,數(shù)據(jù)包的目標IP 為 ,BGP 源

19、地址為F0/0 的接口地址 , 當R2 將請求數(shù)據(jù)包從接口F0/0 發(fā)出時,數(shù)據(jù)包的目標 IP 為 ,BGP 源地址為F0/0 的接口地址 ,由于 R1 發(fā)出的數(shù)據(jù)包目標IP 與R2 的BGP 源地址 完全相同,所以最終能夠正常建立BGP 鄰居。R1在檢測地址時,R2 的目標IP 與R1 的源也完全相同,通常我們都保證雙方一致。當R1 與R2 之間的直連接口F0/0 中斷后,如果雙方將數(shù)據(jù)包從S0/0 發(fā)出,那么R1 的源地址就是 ,R2 的源地址就是 ,由此可以看出,雙方發(fā)出的數(shù)

20、據(jù)包的目標IP 都與對源地址不符,所以無法建立BGP 鄰居。雖然在上面的環(huán)境中,雙方器之間都擁有多條鏈路,在中斷某條鏈路之間,仍然可以通信,但是這并不能保證BGP 鄰居的連接。為了使擁有多條鏈路的BGP 鄰居之間永遠保持連接,考慮到器的loopback 口在正常工作的情況下,像物理接口那樣出現(xiàn)中斷,所以建議在BGP 鄰居之間使用loopback 接口的地址來建立TCP 連接,當指定鄰居時,不再將鄰居的地址指定為對方物理接口地址,而改為指定對loopback 地址,這樣一來,既然物理接口中斷,只要還有通暢的鏈路,那么BGP 鄰居仍然可以保持連接。在將BGP 鄰居地址指定為對方loopback 地

21、址時,為了使數(shù)據(jù)包的目標 IP 與對BGP 源地址相同,所以鄰居也要將 BGP源地址更改為的loopback 接口地址,從而使得雙方正常建立BGP 連接。在上圖中,當 R1 指定鄰居地址為 ,BGP 源地址為 ,而 R2 指定鄰居地址為 ,BGP 源地址為 ,這樣一來,雙目標IP 都與對BGP 源地址相同,所以可以正常建立鄰居,并且在雙方鏈路中,任何一條鏈路斷開,都不影響鄰居的會話,BGP 的連接仍然保持而中斷,實現(xiàn)了連接的冗余性和性。BGP TTL一臺BGP同一自部,則鄰居器只屬于一個AS,在建立BGP 鄰居時,如果對方器和屬于相同AS

22、,即在內(nèi)部,則鄰居為internal BGP (iBGP),如果屬于不同AS,即鄰居在自外,所以是通過為external BGP (eBGP)??紤]到外部自的器對BGP 發(fā)起DOSBGP 要求外部BGP 鄰居,即 eBGP 鄰居必須與直連,而 iBGP 鄰居可以任意距離。這些BGP 數(shù)據(jù)包的TTL 值來實現(xiàn)的,將建立eBGP 鄰居時發(fā)出的數(shù)據(jù)包的TTL 值限制為 1,就限制了eBGP 鄰居必須直連,而由于iBGP 鄰居可以在任意位置,所以建立iBGP 鄰居時發(fā)出的數(shù)據(jù)包的TTL值為最大,即 255。對于建立eBGP 的數(shù)據(jù)包的TTL 值可以隨意修改,甚至改為 255 都行。BGP AS_Pat

23、hBGP 的一個很大的可能會從一個AS 發(fā)往另外一個AS,從而穿越多個AS。但是由于運行 BGP 的會是,從一個AS 被發(fā)出,可能在經(jīng)過轉(zhuǎn)發(fā)之后,又回到了最初的AS 之中,最終形成環(huán)路,所以出于防止環(huán)路的目的考慮,BGP 在將發(fā)往其它AS 時,也就是發(fā)給 eBGP 鄰居時,第 7 頁共 207 頁需要在中寫上的AS 號碼,下一個AS 收到的AS 號碼,這樣的寫在后,再發(fā)給其它AS 時,除了保留之前的AS中的AS 被稱為AS-path,如果 BGP 收到的路號碼之外,也要添加上由的AS_PATH 中包含的AS 號碼,就認為被發(fā)了回來,以此斷定出現(xiàn)了環(huán)路,最后就會丟棄收到的iBGP 時,是所以沒有

24、必要。BGP 只有在將發(fā)給eBGP 時,在AS-path 中添加的AS 號碼,而在發(fā)給添加AS 號碼的,因為iBGP 鄰居在同一個AS 中,即使要添加,AS 號碼全是一樣的,如下圖:在上圖中,當穿越各個AS 時,所有發(fā)給 eBGP 鄰居的,都會在 AS-path 中添加的AS,的AS 總是添加在AS-path 的最前面。例如一條從AS 10 被發(fā)往AS 20,則 AS-path 為“10”,當AS 20 將發(fā)往AS 30 時,添加上的AS 號碼 20 之后,AS-path 變成“20,10”,當AS 30將發(fā)往AS 50 時,最終 AS 50 收到的的AS-path 為“30,20,10”。當

25、 AS 30 將發(fā)給AS 40,后,發(fā)AS 40 再將發(fā)給AS 10 時,的AS-path 為“40,30,20,10”,由于AS 10 在收到現(xiàn)AS-path 中包含的AS 號碼 10,所以認為出現(xiàn)環(huán)路,便丟棄收到的所有。在IGP 協(xié)議中, 被劃分為路徑矢量防環(huán)特性。協(xié)議分成兩大類:距離矢量協(xié)議和鏈路狀態(tài)協(xié)議,而BGP協(xié)議(path-vector routing),路徑矢量算法結合了距離矢量特性與 AS-path第 8 頁共 207 頁因為BGP 在將防止環(huán)路,而在將發(fā)給eBGP 鄰居時,會將的AS 號碼添加到AS-path 中,所以可以以此來發(fā)給iBGP 時,是往AS-path 添加AS

26、號碼的,因此在iBGP 之間傳遞時,沒有防止環(huán)路的機制??紤]到為iBGP 之間的傳遞也加入防環(huán)機制,因而強制將BGP在AS 內(nèi)部只傳一跳,具體操作為:一臺BGP器從eBGP 鄰居收到,發(fā)給iBGP 鄰居之后,iBGP鄰居收到后就不能再傳給其它任何iBGP 鄰居,只能傳遞給eBGP 鄰居。此規(guī)則被多數(shù)人稱為BGP 的水平分割,就是一臺 BGP鄰居。如下圖:器從iBGP 鄰居收到的,不能傳遞給其它 iBGP 鄰居,只能傳給 eBGP在上圖中,當R1 從eBGP 鄰居R6 那里收到后,可以發(fā)給任何iBGP 鄰居,R3 和R4,當R3 從iBGP 鄰居R1 那里收到后,不可以轉(zhuǎn)發(fā)給任何iBGP 鄰居,

27、只可以轉(zhuǎn)發(fā)給eBGP 鄰居,所以R3 從R1 收到后,只能轉(zhuǎn)發(fā)給eBGP 鄰居R5。由于R3 和R4 從R1 收到后,都不可以轉(zhuǎn)發(fā)給iBGP 鄰居 R2,在上圖環(huán)境中,最終造成 R2 無法接收任何,要讓R2 收到,建議在R1 與R2之間再建立一條BGP 會話,所以如此一來,在同一個AS 中,要將居之間配置全互聯(lián),最終AS 20 內(nèi)的鄰居如下圖:全網(wǎng)傳遞,就需要在iBGP 鄰第 9 頁共 207 頁在AS 內(nèi)部,除了建立全互聯(lián)的 iBGP 鄰居外,還可以通過 BGP Reflector(BGP 反射器)和BGPConfederation(BGP)的方式來實現(xiàn)全網(wǎng)傳遞,將在后續(xù)。BGP表當器之間建

28、立BGP 鄰居之后,就可以相互交換BGP。一臺運行了BGP 協(xié)議的器,會將BGP 得到的與普通存放,所以BGP器會同時擁有兩張器,一張是存放普通的表,被稱為IGP表,就時我們使用命令show ip route 看到的表,IGP表的信息只能從IGP 協(xié)議和手工配置獲得,并且只能傳遞給IGP 協(xié)議;另外一張就是運行BGP之后創(chuàng)建的表,稱為BGP表,需要通過命令show ip bgp 才能查看,BGP表的信息只能傳遞給BGP 協(xié)議,如果兩臺BGP 鄰居的BGP表為空,就有任何傳遞。在初始狀態(tài)導入BGP表,下,BGP 的表為空,沒有任何,要讓 BGP 傳遞相應的,只能先將該之后才能在BGP 鄰居之間傳

29、遞。默認情況下,任何都自動進入BGP導入BGP表,BGP表的路由獲得有多種方式,可以從BGP 鄰居獲得,也可以手工將IGP表,還可以將其它重分布進BGP,只要BGP 的不是從鄰居學習到的而是手工導入的,那么這樣的被稱為BGP 本地。因為BGP 的鄰居類型分為兩種:eBGP 和iBGP,所以BGP的AD 值也有區(qū)分,如果BGP 的是從eBGP 學習到的,AD 值為 20,可以發(fā)現(xiàn),從eBGP 鄰居學習到的,將優(yōu)于任何IGP 協(xié)議;從iBGP 學習到的的AD 值為 200,同樣可以發(fā)現(xiàn),此類的優(yōu)先級低于任何 IGP 協(xié)議。BGP 除了以上兩種AD 值之外,如果BGP是從本地手工導入的,即BGP 本

30、地,則 BGP 本地的AD值為 200,與iBGP的AD 值相同,優(yōu)先級低于任何IGP 協(xié)議。第 10 頁共 207 頁如果某一條相同的同時從eBGP 和iBGP 以及本地學習到,那么究竟哪條會被選擇為最優(yōu)路徑呢?的AD 值并不一定會影響到路徑選擇,因為BGP 并在一開始,就通過比較AD值來選擇最優(yōu)路徑。BGP SynchronizationBGP 鄰居之間的通信與交流運行在TCP 的基礎上,在兩個節(jié)點之間,只要是通的,就能夠建立TCP 建立,的連通,可以是任何IGP協(xié)議,甚至是靜態(tài),總之,只要是通的,TCP 連接就一定能夠建立起來。只要讓兩臺器之間連通,保證TCP 能夠正常連接,就能夠保證B

31、GP 的通信。在一個AS 中,除了需要建立BGP 連接之外,同時還需要運行IGP 協(xié)議,其中運行BGP的目的是為了在大型中傳遞龐大的表或信息,而運行IGP 協(xié)議的目的可想而知,并不是為了傳遞龐大的信息,在AS 中運行IGP 的根本目的是為了讓BGP器之間能夠建立TCP 連接,從而為BGP 的通信服務。因此可以看出,BGP 就像是一輛運貨的卡車,BGP 的就是卡車要運的貨,而IGP 協(xié)議就是為了在站與站之間鋪平道路,如果沒有IGP 去讓道路連通,那么BGP 就無法在站與站之間運送貨物。因為BGP 在建立鄰居時,BGP 的源地址可以是任意地址,這些地址可以不是直連的,只要是能通信的,能建立TCP

32、連接即可。當BGP 在向鄰居流量時,只要將流量發(fā)往鄰居的對端地址,因為鄰居的地址并不一定是直連的,所以要找到去往鄰居地址的路徑,可能需要IGP表,因為去往鄰居的路IGP 為BGP 的通信與連接提供了保證。由此可見,BGP 要將數(shù)據(jù)發(fā)給鄰居,BGP 在徑時,采用的是遞歸,BGP去往鄰居的過程中,可能要多次IGP表,只要在 IGP 路由表中找到了去往鄰居地址的相應路徑或相應下一跳,那么就會將數(shù)據(jù)發(fā)給這個下一跳。第 11 頁共 207 頁在上圖的中,R1 與R4 建立eBGP 連接,R3 與R5 建立eBGP 連接,而 R1 與R3 建立iBGP 連接。在R1 與R3 建立iBGP 連接時,R1 通

33、過目標地址 找到鄰居R3,R1 的 BGP 源地址為 , 而R3 也通過目標地址 找到鄰居R1,R3 的BGP 源地址為 ,為了讓 和 能夠正常通信,從而建立TCP 連接,R1、R2、R3 之間啟用了IGP 協(xié)議OSPF,OSPF 的目的只是為了使 能夠與 通信,并不傳遞AS 中龐大的信息。當AS 10 中的R4 將網(wǎng)段 /24 通告給AS 20 中的R1 后,因為R1 與R3 之間是iBGP 鄰居,所以R1 將/24 傳遞給 R3,最終 R3

34、 將/24 傳遞給AS 30 中的R5。當R5表后得知,去往 /24 的數(shù)據(jù)包需將目的地為 /24 的流量發(fā)給R3 時,R3 在要發(fā)給iBGP 鄰居 才能夠到達,于是R3 便執(zhí)行遞歸,如何去往 ,正因為R1 與R3 之間的通信是靠OSPF 提供的,所以R3 得知去往 必須將數(shù)據(jù)包交給R2,即交給下一跳 ,因為R2 只運行了OSPF 為BGP 服務,所以R2 沒有BGP 的/24,當R2發(fā)現(xiàn)數(shù)據(jù)包的目標地址為 /24 后,只能將數(shù)據(jù)包全部丟棄,這就類似于黑

35、洞。從以上情況中可以看出,當BGP 從iBGP 收到時,因為鄰居之間可能了多臺IGP器,所以BGP 在將數(shù)據(jù)包發(fā)往目的地時,通常會發(fā)給一臺只運行了IGP 的器,而只運行IGP 的器并沒有BGP 的,因而最終導致數(shù)據(jù)包丟失,造成黑洞。要杜絕此類的發(fā)生,其實答案很明了,就是讓AS 中只運行IGP 的器同時也擁有BGP 的表即可。由于以上,在BGP傳遞中,有以下一條規(guī)則:當BGP 要將從iBGP 鄰居學習到的信息傳遞給其它鄰居之前(這第 12 頁共 207 頁個鄰居通常是eBGP 鄰居),這些給其它鄰居。必須在IGP表中也能學到,否則認為此無效而不能發(fā)此規(guī)則稱為iBGP 與IGP同步。在上圖環(huán)境中,

36、在R3 將從iBGP 鄰居R1 學習到的傳遞給eBGP 鄰居R5 之前,必須確定這條在的IGP表中也,否則不使用該。要查看在IGP表中是否,使用命令show ip route 即可。注意,只有從 iBGP 鄰居學習到的iBGP 與IGP同步規(guī)則的限制,如果是從eBGP鄰居學習到的,則不受此規(guī)則限制,并且此規(guī)則可以手工開啟或關閉。BGP 同步默認是開啟的,在IOS 12.2(8)T 以及之后的版本默認都是關閉的。Path Attributes在默認情況下,到達同一目的地,BGP 只走單條路徑,并在多條路徑之間執(zhí)行負載均衡。對于IGP協(xié)議,當有多條路徑可以到達同一目的地時,則根據(jù)最小metric

37、值來選擇最優(yōu)路徑,而BGP多條路徑到達同一目的地時,對于最優(yōu)路徑的選擇,BGP 并以metric 值大小為依據(jù),BGP 對于最優(yōu)路徑的選擇,需要靠比較條目中的Path Attributes,即路徑屬性,只有在比較多條的屬性之后,才能決定選擇哪條為最優(yōu)路徑。BGP 的每條都帶有路徑屬性,BGP 的路徑屬性可以劃分為以下四類:公認強制(Well-Known Mandatory)公認自選(Well-Known Discretionary)可選可傳遞(Optional Transitive)可選不可傳遞(Optional Nontransitive)對于各屬性的各特征如下:公認強制 (Well-Kno

38、wn Mandatory)第 13 頁共 207 頁對于任何一臺運行BGP 的器,都必須支持公認強制屬性,并且在將信息發(fā)給其它BGP 鄰居時,必須在中寫入公認強制屬性,這些屬性是被強制寫入中的,一條不帶公認強制屬性的BGP。被BGP器被視為無效而被丟棄,一個不支持公認強制屬性的 BGP,是不正常的,不合法的BGP必須攜帶的公認強制屬性有三個:Origin,Next_Hop,AS-path。公認自選 (Well-Known Discretionary)公認自選屬性并不像公認強制屬性那么嚴格,任何一臺運行 BGP 的器都必須支持公認自選屬性,必須理解和認識公認自選屬性,但是為寫入公認自選屬性并不是

39、必須的,是否要為寫入公認自選屬性可以決定,為寫上公認自選屬性之后,所有BGP器都能認識和理解,并且都會自動保留和傳遞該屬性。可選可傳遞 (Optional Transitive)并不是所有運行BGP 的器都能理解和支持可選可傳遞屬性,的可選可傳遞屬性是任意寫入的,其它BGP器并不一定能理解,也并不一定能保留和傳遞該屬性,但是當為設置了可選可傳遞屬性后,可以明確要求BGP器保留和傳遞該屬性??蛇x不可傳遞(Optional Nontransitive)只有特定的BGP器才理解和支持可選不可傳遞屬性,并且可選不可傳遞屬性理論上是不能手工設置的,即使手工設置了可選不可傳遞屬性,這些屬性也不能任意傳遞,

40、只可以傳遞到特定的 BGP器。以下是一些常用BGP 屬性的:1Origin(公認強制屬性):在BGP 的器之間建立BGP 鄰居之后,鄰居之間只能相互傳遞BGP表中的,在初始狀態(tài)下,表為空,沒有任何,要讓 BGP 傳遞相應的,只能先將該自動進入BGP導入BGP表,之后才能在BGP 鄰居之間傳遞。默認情況下,任何都在表,只能手工導入,對于是怎么進入BGP表的,這種被條目中,稱為 Origin 屬性,Origin 屬性就反映出了是如何進入BGP表的。要將導入BGP表,有三種方式,第 14 頁共 207 頁第一:因為器上默認會有IGP表,通過命令show ip route 可以查看到,這些IGP 表中

41、的可以被手工導入BGP,通過在BGP 進程模式下使用命令network,即可將IGP 表中的相應導入BGP進入BGP導入BGP 的表,并且需要指定掩碼,只有network 后面的網(wǎng)段和掩碼在IGP表中能找到時,表,并不能通過這種方式將一條不的Origin 屬性為IGP 屬性。的憑空導入BGP,通過命令 network 被第二:BGP 可以從EGP協(xié)議中獲得信息,而EGP 已經(jīng)被淘汰,被BGP 所取代,所以我們很難遇見EGP協(xié)議,從EGP協(xié)議獲得的的Origin 屬性為EGP。第三:BGP表除了從IGP 和EGP 獲得外,還可以將重分布進BGP表,而重分布的的Origin 屬性為Incomple

42、te。當BGP表中到達同一目的地多條路徑時,會通過比較的Origin 屬性來選擇最優(yōu)路徑,它們的優(yōu)先級為IGP 優(yōu)于EGP,EGP 優(yōu)于Incomplete,即IGP>EGP>Incomplete。2AS_Path(公認強制屬性):AS_Path 中包含了BGP器到達目的地所經(jīng)過的所有AS 的集合,AS_Path 中會包含了多個AS號碼,號碼的多少,邏輯上反映了到達目的地的遠近。AS_Path 還能細分為:AS_SEQUENCE(有序的AS 號碼,即AS 號碼在AS_Path 中是按一定順序排列的)AS_SET(無序的AS 號碼,即AS 號碼在AS_Path 中的排列是沒有順序的,

43、通常是將多條擁有不同AS_Path 的匯總后產(chǎn)生的)當BGP表中到達同一目的地多條路徑時,會優(yōu)選AS-Path 最短的路徑。3Next_Hop(公認強制屬性):也就是BGP 將數(shù)據(jù)包發(fā)往目的地的下一跳,BGP的下一跳,就是BGP 建立鄰居時的地址,也是BGP 之間建立TCP 連接所使用的地址。因為這個地址可以是器上任意接口的地址,是要能通信即可(其連通性由IGP 提供保證),所以BGP 在將數(shù)據(jù)包發(fā)往下一跳時,通常需要采用遞歸在IGP表中該下一跳地址。默認情況下,一臺BGP器將傳遞給eBGP 鄰居時,會將Next-hop 屬性改為的地址,也就是和對方建立鄰居所使用的地址,而在將傳遞給iBGP

44、鄰居時,改變Next-hop 屬性。第 15 頁共 207 頁對于將傳遞給BGP 鄰居時,是否改變Next-hop 屬性的功能,可以關閉或啟用。BGP表中由本地產(chǎn)生的而不是從BGP 鄰居學習來的,即本地發(fā)起的 Next-hop 屬性都為 。4Local_Pref(公認自選屬性):Local_Pref 稱地優(yōu)先級,其中的(Local)本地就是指本AS,或 AS 內(nèi)的意思,所以可以想象得出,Local_Pref 屬性的傳遞范圍,只在同一個AS 內(nèi)有效,一條同一AS 內(nèi)部傳遞,出了AS 后就會被還原成默認值。的Local_Pref 屬性只能在Local_Pref 屬性在BGP 鄰居之間

45、是自動傳遞的,只有在將發(fā)給iBGP 時傳遞,而在發(fā)給eBGP 時,是沒有 Local_Pref 值的,一條的Local_Pref 屬性在一個AS 內(nèi)的所有BGP器上是器上默認值完全相同的。Local_Pref 的默認值為 100,由此可以看出,一條為 100。在AS 內(nèi)的所有本地優(yōu)先級屬性是用于區(qū)分到同一目的地的各個越高。默認值為 100。優(yōu)先程度的。本地優(yōu)先級越高,優(yōu)先級當BGP表中到達同一目的地多條路徑時,會比較Local_Pref 值的大小,Local_Pref 值大的會被選為最優(yōu)路徑,如 110 與 100,那么 110 會被選為最優(yōu)路徑。Local_Pref 值可以被隨意修改,修改后

46、將在整個 AS 內(nèi)傳遞,所以推薦使用 Local_Pref 屬性來控制一個AS 的器去往目的地在其它AS 的路徑。如下圖:第 16 頁共 207 頁在上圖中,AS 10 中的BGP器R3 可以同時通過R1 與R2 去往目的地在AS 20 中的R4 上時,可以通過在AS 10 內(nèi)部修改的Local_Pref 值來影響選路,比如在R1 上將的Local_Pref 值改為 110,而器R2 上不作任何改動,最終R3 將選擇從R1 去往AS 20,因為R1 的Local_Pref值為 110,而R2 的Local_Pref 值為 100(默認),所以 R3 選擇R1 為最優(yōu)路徑。因為R1 和R2 在將

47、發(fā)給iBGP 鄰居R3 時會攜帶Local_Pref 屬性,所以R3 同時比較iBGP 鄰居R1 與iBGP 鄰居R2 時,才合適使用Local_Pref 屬性,因為下一跳都是iBGP 鄰居,如果下一跳不都是iBGP 鄰居,并不建議修改Local_Pref 屬性來影響選路。5MULTI_EXIT_DISC(MED,可選不可傳遞屬性):MED 就是BGP中的metric,是被設計用來影響在多個下一跳eBGP 鄰居時,如何選擇最優(yōu)路徑,因為在多個下一跳iBGP 時,是建議使用修改Local_Pref 屬性來影響選路的,而多個下一跳eBGP 時,則使用MED。MED 是 BGP的metric,所以多

48、條路徑中擁有最小MED 值的路徑會被優(yōu)先使用。MED 默認值為 0。第 17 頁共 207 頁Local_Pref 屬性只在同一個AS 內(nèi)部傳遞,而MED 只能在AS 之間傳遞,只有在將發(fā)給eBGP鄰居時,傳遞MED,在發(fā)給 iBGP 時,是傳遞MED 的。當一條被設置MED 值后傳遞給eBGP鄰居,在eBGP 鄰居收到后,如果將該繼續(xù)傳遞給iBGP 鄰居,那么這個值會被還原為默認值 0,也就是說同一個AS 內(nèi),所有發(fā)給iBGP 鄰居的都能夠擁有相同的選路結果。的MED 值0,這是為了讓所有AS 內(nèi)部器MED 值也是可以隨意修改的。在上圖中,當AS 20 中的器R4 要去往目的地為AS 10

49、的網(wǎng)段時,由于下一跳R1 與R2eBGP 鄰居,所以可以通過修改 MED 值來影響R4 對于下一跳的選擇。比如將 R2 的MED 改為 10,而 R1第 18 頁共 207 頁的MED 保持默認不變,那么最終R4 將選擇R1 去往AS 10 中的目的地,因為R1 的MED 值 0 小于R2的MED 值 10,所以被優(yōu)先使用。默認情況下,只有當去往目的地的多個下一跳eBGP 鄰居相同AS 時,比較MED 值,如果多個eBGP 鄰居為不同AS 時,是比較MED 的,若是要強制在多個不同的eBGP 鄰居之間比較MED值,需要在BGP 進程下輸入命令:bgp always-compare-med。6.

50、WeightWeight 屬性為Cisco 私有屬性,只有Cisco 的器才能認識和理解Weight。的Weight 屬性只在器本地起作用,BGP 將傳遞給鄰居時,并保留Weight。Weight 值的范圍為065535,默認為 0,如果是 BGP 本地,則 Weight 值為 32768??梢允止と我庑薷牡腤eight值,可以對進行修改,也可以對整個鄰居進行修改,但也只能對本地起作用,的Weight 值并傳遞給鄰居。當BGP表中到達同一目的地多條路徑時,會優(yōu)選Weight 值最大的路徑。在Cisco器中,比較最優(yōu)路徑的第一條規(guī)則就是比較 Weight 值,所以只要改動 Weight 值,就絕

51、能夠器的BGP 選路。Cisco其它屬性,在應用中繼續(xù)。BGP RIB-Failure在BGP 的表中,并非所有的都會被BGP 使用,默認情況下,BGP 到任何目的地,只選擇單一路徑。在BGP表中,只有最優(yōu)被BGP 使用,也只有最優(yōu)發(fā)給鄰居,請以實際為準。BGP給BGP 鄰居,要被標為最優(yōu)路需要說明的是,思科強調(diào)BGP 會將所有由必須達到以下兩個條件:下一跳可達如果是從iBGP 收到的,則必須滿足IGP 與iBGP 同步,除非該規(guī)則已被關閉。如果某BGP的狀態(tài)為RIB-Failure,則是不能被使用的,被定為 RIB-Failure 的有:第 19 頁共 207 頁該在IGP 中已經(jīng)擁有比BGP 更高優(yōu)先級的AD 值。內(nèi)存錯誤超出VRF 中的限制數(shù)。而BGP 建立鄰居的條件如下:雙方需要建立鄰居的IP 地址在上是互通的,可以建立TCP 會話。雙方指定的AS 號碼必須匹配雙方BGP 數(shù)據(jù)包必須可達(eBGP 默認TTL 為 1,需要注意)。對方BGP 數(shù)據(jù)包的目的IP 和的源IP 必須相同(單向滿足即可)BGP 最優(yōu)路徑選

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論