BGP邊界網(wǎng)關(guān)協(xié)議
更新時(shí)間:2007年09月19日 10:22:09 作者:
1. 介紹
BGP是自治系統(tǒng)間的路由協(xié)議。BGP交換的網(wǎng)絡(luò)可達(dá)性信息提供了足夠的信息來檢測路由回路并根據(jù)性能優(yōu)先和策略約束對路由進(jìn)行決策(要點(diǎn)見RFC 1104[2])。特別地,BGP交換包含全部AS path的網(wǎng)絡(luò)可達(dá)性信息,按照配置信息執(zhí)行路由策略。
隨著近年來互聯(lián)網(wǎng)的進(jìn)步和增長,它也不得不面對一些嚴(yán)重的規(guī)模問題,包括:
-B類網(wǎng)絡(luò)地址空間的耗盡。該問題的主要原因之一,是缺少適于 中型組織的中等大小的網(wǎng)絡(luò);C類網(wǎng)絡(luò),最多擁有254個(gè)主機(jī)地址,實(shí)在太少,而B類網(wǎng)絡(luò)允許最多65534個(gè)地址,卻又太大無法充分使用。
?。ヂ?lián)網(wǎng)路由器中路由表的增長使目前的軟件(和人們)無法有效管理。
?。?2位IP地址空間的耗竭。
很明顯,前兩個(gè)問題和最后一個(gè)問題可能分別在今后一兩年內(nèi)和三年內(nèi)變得急迫。無類別域間路由(CIDR)試圖解決這些問題,設(shè)計(jì)相應(yīng)機(jī)制來降低路由表和對新IP網(wǎng)絡(luò)分配需求的增長速度。它并沒有解決更具長期性的第三個(gè)問題,而是努力讓近期問題推遲使得互聯(lián)網(wǎng)仍能有效運(yùn)作,同時(shí)著手遠(yuǎn)期的解決方案。
BGP-4對BGP-3做了擴(kuò)展,支持路由信息的聚合及基于無類別域間路由體系(CIDR)[3]的路由減少。本備忘錄論述了BGP-4在互聯(lián)網(wǎng)中的應(yīng)用。
本文檔的所有討論基于如下假設(shè):互聯(lián)網(wǎng)是一些隨意連接的自治系統(tǒng)的集合。也就是說,互聯(lián)網(wǎng)可以建模成一張一般的網(wǎng)絡(luò)圖,圖上節(jié)點(diǎn)是AS,邊是每對AS間的連接。
自治系統(tǒng)的經(jīng)典定義是,一組路由器在統(tǒng)一管理之下,在AS內(nèi)使用內(nèi)部網(wǎng)關(guān)協(xié)議和統(tǒng)一度量來路由數(shù)據(jù)包,而通過外部網(wǎng)關(guān)協(xié)議將數(shù)據(jù)包路由到其他AS。該經(jīng)典定義尚在發(fā)展,一些AS在其內(nèi)部使用多種內(nèi)部網(wǎng)關(guān)協(xié)議和度量。在此,強(qiáng)調(diào)一下自治系統(tǒng)在本文檔中的含義,即使它采用多種IGP和度量,它的管理區(qū)別于其他 AS,其內(nèi)部路由是一致的,當(dāng)路由穿越它時(shí),它在圖上視作一個(gè)節(jié)點(diǎn)。
每個(gè)AS由一個(gè)管理機(jī)構(gòu)管理,至少在外部看來它代表著該系統(tǒng)的路由信息。
2. BGP拓?fù)淠P?BR>
當(dāng)我們說一個(gè)在兩個(gè)AS之間的連接時(shí),意味著兩件事:
物理連接:兩個(gè)AS之間存在一條共享的數(shù)據(jù)鏈路子網(wǎng),并且在該子網(wǎng)上,每個(gè)AS至少有一臺(tái)自己的邊界網(wǎng)關(guān)路由器。因此,每個(gè)AS的邊界網(wǎng)關(guān)路由器可以轉(zhuǎn)發(fā)數(shù)據(jù)包到其他AS的邊界網(wǎng)關(guān)路由器,無需借助于AS內(nèi)到AS間的路由。
BGP連接:在各個(gè)AS的BGP發(fā)言人之間有一個(gè)BGP會(huì)話進(jìn)程,通過會(huì)話溝通路由,經(jīng)過聲明的AS到達(dá)某目標(biāo)網(wǎng)絡(luò)。
本文檔中,我們對構(gòu)成BGP連接的BGP發(fā)言人加以額外限制:他們必須是自己直接共享數(shù)據(jù)鏈路子網(wǎng)。因此,相鄰AS間的BGP會(huì)話無需AS內(nèi)或AS間的路由。超出本文范圍的案例可能與該限制不符。
因此,在每個(gè)連接中,每個(gè)AS擁有一個(gè)以上的BGP發(fā)言人和邊界網(wǎng)關(guān)路由器,這些BGP發(fā)言人和邊界網(wǎng)關(guān)路由器分布在共享數(shù)據(jù)鏈路子網(wǎng)上。注意到, BGP發(fā)言人不一定是邊界網(wǎng)關(guān)路由器,反之亦然。一條連接上一個(gè)AS的BGP發(fā)言人聲明的路徑可以被同一個(gè)共享子網(wǎng)上其他AS的邊界網(wǎng)關(guān)路由器使用,也就是非直接的鄰居是允許的。
一個(gè)AS內(nèi)的流量,要么是源于該AS,要么是終于該AS(也就是說,IP數(shù)據(jù)包的源IP或目的IP在該AS內(nèi))。符合以上描述的流量稱為"本地流量",否則稱為"過渡流量"。BGP使用的主要目的是控制過渡流量。
按照某AS如何處理過渡流量,AS可以分為以下幾類:
末端AS:只連接到一個(gè)其他AS。自然地,末端AS只運(yùn)輸本地流量。
多宿主AS:連接到超過一個(gè)的其他AS,但不運(yùn)輸過渡流量。
過渡AS:連接到超過一個(gè)的其他AS,可以運(yùn)輸本地和過渡流量。
一個(gè)完整的AS path提供了有效和簡捷的方式來避免路由回路、消除伴隨距離向量算法的"計(jì)數(shù)到無窮"問題,因此,BGP沒有對AS之間的連接拓?fù)浼右匀魏蜗拗啤?BR>
3. 互聯(lián)網(wǎng)中的BGP
3.1 拓?fù)鋵W(xué)考慮
互聯(lián)網(wǎng)拓?fù)淇梢砸曌鬟^渡AS、多宿主AS和末端AS的任意互連。為了盡可能減少對目前互聯(lián)網(wǎng)結(jié)構(gòu)的影響,末端和多宿主AS不一定要使用BGP。這些AS 可以運(yùn)行其他的協(xié)議(比如,EGP)來與過渡AS交換網(wǎng)絡(luò)可達(dá)性信息。使用BGP的過渡AS將對這些信息做標(biāo)記,以表明其學(xué)習(xí)自BGP以外的方法。BGP 不一定運(yùn)行于末端或多宿主AS,這就不會(huì)對源于或終于末端AS或多宿主AS的數(shù)據(jù)包的AS間路由質(zhì)量產(chǎn)生負(fù)面影響。
然而,仍然建議在末端和多宿主AS上使用BGP。在這些情況下,BGP相比其他目前使用的協(xié)議(比如EGP),可以提供更優(yōu)的帶寬和性能。另外,這將減少默認(rèn)路由的使用,為多宿主AS的AS間路由提供更好選擇。
3.2 BGP的整體特性
整體水平上,BGP用來在多個(gè)自治系統(tǒng)間傳遞路由信息。其信息流如下圖示:
+-----------+ +------------+
BGP | BGP | BGP | BGP | BGP
-------------------+ +--------------------------+ +----------
| IGP | | IGP |
+------------+ +-----------+
<-AS A--> <--AS B->
這張圖表說明,在AS間只用BGP傳輸信息,而在AS內(nèi)BGP和IGP均可以傳輸信息。確保AS內(nèi)BGP和IGP間路由信息的兼容性,是一個(gè)重大問題,最后將在附錄A中詳細(xì)討論。
3.3 BGP鄰居關(guān)系
互聯(lián)網(wǎng)視作隨意連接的AS的集合。通過BGP直接連接的路由器就是BGP發(fā)言人。BGP發(fā)言人可以在同一AS內(nèi),也可以在不同AS內(nèi)。每個(gè)AS的BGP 發(fā)言人互相通信,遵照每個(gè)AS建立的策略,交換網(wǎng)絡(luò)可達(dá)性信息。對某BGP發(fā)言人,如果與其他BGP發(fā)言人通信而且那個(gè)BGP發(fā)言人在不同的AS,則那個(gè)其他 BGP發(fā)言人稱為外部對等體,而如果在相同的AS內(nèi),則稱為內(nèi)部對等體
對于外部對等體,對等體分別屬于不同的AS,但共享同一數(shù)據(jù)鏈路子網(wǎng)。這共同的子網(wǎng)用來在對等體之間運(yùn)輸BGP信息。如果BGP使用通過一個(gè)干預(yù)的AS,則將使AS path信息無效。自治系統(tǒng)號(hào)必須在BGP中使用,用來標(biāo)明BGP發(fā)言人所在的自治系統(tǒng)。
4. 路由聚合的需要
當(dāng)路由信息由各部分聚合時(shí),一致的BGP-4實(shí)現(xiàn)需要對其聲明。例如,一個(gè)在自治系統(tǒng)邊界的BGP發(fā)言人必須能產(chǎn)生某目標(biāo)IP集合的聚合路由(在BGP -4 術(shù)語中該目標(biāo)IP集合稱為網(wǎng)絡(luò)層可達(dá)性信息,NLRI),在它基礎(chǔ)上進(jìn)行管理(包括路由器自身代表的地址),即使當(dāng)這些地址不是同時(shí)全部可達(dá)的。
當(dāng)聚合的NLRI產(chǎn)生時(shí),一致實(shí)現(xiàn)應(yīng)能給予聲明。
當(dāng)NLRI解聚合時(shí),一致實(shí)現(xiàn)應(yīng)能給予聲明。
當(dāng)出現(xiàn)重疊路由時(shí),一致實(shí)現(xiàn)應(yīng)能支持如下選項(xiàng):
?。惭b聚合和詳細(xì)的路由
?。话惭b詳細(xì)路由
-安裝聚合路由
?。话惭b
一定的路由策略可能依賴于NLRI(比如,"研究"與"商業(yè)")。因此,一個(gè)運(yùn)行路由聚合的BGP發(fā)言人,可能的情況下,應(yīng)該能認(rèn)知聚合NLRI時(shí)路由策略的潛在實(shí)現(xiàn)。
5. BGP的策略生成
BGP通過各種路由參數(shù)選擇和約束,實(shí)現(xiàn)策略。策略并不直接編入?yún)f(xié)議。而是,策略通過BGP的配置信息來實(shí)現(xiàn)。
BGP實(shí)現(xiàn)策略的途徑有,影響從多條路徑中的選擇,控制路由信息的下步傳遞。策略由AS的管理者決定。
路由策略與政治、安全或經(jīng)濟(jì)考慮有關(guān)。
例如,如果一個(gè)AS不愿意將流量運(yùn)輸?shù)狡渌鸄S,它可以制定策略來禁止。如下是一些能夠改變BGP使用的路由策略的例子:
1. 一個(gè)多宿主AS可以拒絕成為其他AS的過渡AS。(它只告知那些目標(biāo)網(wǎng)絡(luò)在自己AS內(nèi)部的路由。)
2. 一個(gè)多宿主AS可以指定成為幾個(gè)相鄰AS的過渡AS,也就是說,一部分而不是全部AS,可以把該多宿主AS作為過渡AS。(它只把它的路由信息告知被允許的AS。)
3. 一個(gè)AS向外運(yùn)輸流量時(shí),可以決定是否偏愛特定的AS。
BGP應(yīng)用可以控制許多性能相關(guān)的標(biāo)準(zhǔn):
1. 一個(gè)AS可以最少化過渡AS的數(shù)目。(AS path越短,越可能被采用。)
2. 過渡AS的權(quán)重。如果一個(gè)AS決定,兩個(gè)以上的AS path可以用來到達(dá)目標(biāo)網(wǎng)絡(luò),那么,AS可以使用多種方法來決定采納哪個(gè)候選AS path。一個(gè)AS的權(quán)重值由以下幾個(gè)因素決定:徑向距離,鏈路速度,容量,擁塞的趨勢,和運(yùn)行質(zhì)量。這些性能值可以由BGP以外的方法決定。
3. 優(yōu)先考慮內(nèi)部路由,而不是外部路由。
為了一個(gè)AS的統(tǒng)一性,那些產(chǎn)自策略和/或正常路由選擇過程的等值路徑,必須以一致的方式解決。
BGP的基礎(chǔ),是這樣一個(gè)規(guī)則:一個(gè)AS只把自己使用的路由通知給相鄰的AS。該規(guī)則反映了目前互聯(lián)網(wǎng)常用的"一跳接一跳"的路由方式。
6. BGP的路徑選擇
BGP 發(fā)言人的一項(xiàng)主要任務(wù),是評(píng)價(jià)諸條從自身出發(fā)到那些用網(wǎng)絡(luò)前綴表達(dá)的目的地的路徑,從中選出最優(yōu),應(yīng)用合適的策略約束,然后將它通知給所有的BGP鄰居。關(guān)鍵問題是如何評(píng)價(jià)和比較這些不同的路徑。傳統(tǒng)的距離向量協(xié)議(比如RIP)中,每條路徑只有一個(gè)度量。因此,不同路徑的比較簡化為兩個(gè)值的比較。AS間路由的復(fù)雜性,源自人們在如何評(píng)價(jià)外部路由的問題上缺少共同認(rèn)可的度量。于是,每個(gè)AS擁有自己的一套對路徑的評(píng)價(jià)指標(biāo)。
BGP發(fā)言人構(gòu)建的路由數(shù)據(jù)庫,由所有可用的路徑和每條路徑可達(dá)的目標(biāo)集合(表達(dá)為網(wǎng)絡(luò)前綴)組成。為了達(dá)到前面討論的目的,考慮目標(biāo)網(wǎng)絡(luò)所對應(yīng)的可用路徑,是有用的。大多數(shù)情況下,我們期望找到唯一一條可用路徑。但是,當(dāng)不是這樣時(shí),所有可用的路徑應(yīng)當(dāng)保存,當(dāng)主要路徑缺失時(shí),保存能以最快的速度適應(yīng),(產(chǎn)生新的主要路徑)。任何時(shí)候,只有主要路徑才會(huì)被廣播。
路徑選擇過程可以形式化為,對所有可用路徑及相對應(yīng)的目標(biāo)IP,定義完整的優(yōu)先級(jí)。定義這種優(yōu)先級(jí)的一種方法,是定義一個(gè)函數(shù),將每條完整的AS path映射成一個(gè)非負(fù)整數(shù),用來表示該路徑的優(yōu)先級(jí)。路徑選擇于是簡化為,將該函數(shù)應(yīng)用到所有可用路徑,再選擇最高的優(yōu)先級(jí)。
在真實(shí)的BGP實(shí)現(xiàn)中,為路徑分配優(yōu)先級(jí)的標(biāo)準(zhǔn)在配置信息中說明。
為路徑分配優(yōu)先級(jí)的過程源于以下幾個(gè)信息:
1. 整條AS path顯示的信息
2. 由AS path和BGP以外信息(比如,配置信息中的路由策略約束)引申出來的混合信息。
為路徑分配優(yōu)先級(jí)的可能的標(biāo)準(zhǔn)為:
?。瑼S數(shù)目。AS越少,該條路徑越好。
?。呗钥紤]。BGP對基于策略路由的支持,源于對分布式路由信息的控制。一個(gè)BGP發(fā)言人可能知道幾條策略約束(包括自身AS的內(nèi)外),進(jìn)行合適的路徑選擇。不遵從策略要求的路徑不被考慮。
?。承〢S是否在路徑中存在。依靠BGP以外的信息,一個(gè)AS可以知道某些AS的一些性能特點(diǎn)(比如,帶寬,MTU,AS間徑向距離),然后選擇偏愛程度。
-路徑起源。由BGP學(xué)習(xí)而來的整條路徑(也就是說,路徑終點(diǎn)與路徑的上一個(gè)AS在BGP內(nèi)部)相比那些部分學(xué)習(xí)自EGP及其他方法的路徑,是更優(yōu)的。
-AS path子集。通往同一目的地,一個(gè)較長AS path的子集將受到偏愛。在該較短AS path中存在的任何問題都也是較長AS path的問題。
?。溌穭?dòng)態(tài)。穩(wěn)定的路徑比不穩(wěn)定的路徑更受歡迎。注意,這個(gè)標(biāo)準(zhǔn)應(yīng)被小心使用,避免出現(xiàn)路由抖動(dòng)。一般來說,任何依賴于動(dòng)態(tài)信息的標(biāo)準(zhǔn)都可能引發(fā)路由不穩(wěn)定,所以應(yīng)謹(jǐn)慎對待。
7. 支持路由策略的必備集合
BGP策略以配置信息的形式實(shí)現(xiàn)。該信息不直接編入?yún)f(xié)議。因此,BGP可以提供非常復(fù)雜的路由策略。但是,并不要求所有的BGP實(shí)現(xiàn)支持這些策略。
我們不試圖將路由策略標(biāo)準(zhǔn)化使其適用于每個(gè)BGP實(shí)現(xiàn),強(qiáng)烈鼓勵(lì)所有的實(shí)現(xiàn)支持如下的路由策略集:
1. BGP實(shí)現(xiàn)應(yīng)允許一個(gè)AS控制向相鄰AS廣播由BGP學(xué)習(xí)來的路由。實(shí)現(xiàn)還應(yīng)支持對地址前綴大小的控制。實(shí)現(xiàn)還應(yīng)支持對自治系統(tǒng)大小的控制,不管該自治系統(tǒng)是起源,還是鄰居。如果某路由對某外部對等體按上述控制聲明,則需注意該路由不能向那個(gè)對等體通告。特別地,本地系統(tǒng)必須明確向那個(gè)對等體通告,該路由現(xiàn)在不可用
3. BGP實(shí)現(xiàn)應(yīng)允許一個(gè)AS忽略某些在AS_PATH屬性中存在特定AS的路由。該功能的實(shí)現(xiàn),可以使用[2]中說明的技術(shù),設(shè)置這些AS的"weight"為"infinity"。路由選擇過程必須忽略那些"weight"為"infinity"的路由。
8. 與其他外部路由協(xié)議的關(guān)系
本部分建議的指導(dǎo)方針與[3]中陳述的指導(dǎo)方針一致。
一個(gè)AS應(yīng)通告它內(nèi)部目標(biāo)網(wǎng)絡(luò)的最小聚合及與實(shí)際使用的地址空間的關(guān)系。這可以被非BGP-4的AS的管理者用來決定從某條聚合路由可以解聚出多少路由。
一個(gè)攜帶ATOMIC_AGGREGATE路徑屬性的路由,不應(yīng)傳遞于BGP-3或EGP2,除非這種傳遞不出現(xiàn)路由NLRI的解聚。
8.1 與EGP2交換信息
本文檔對于BGP-4與EGP2間的路由信息交換,建議如下方針。
為過渡順利,一個(gè)BGP發(fā)言人EGP2和BGP-4都可以參與。因此,一個(gè)BGP發(fā)言人接收IP可達(dá)性信息,可能產(chǎn)自EGP2,也可能產(chǎn)自BGP-4。由 EGP2產(chǎn)生的信息,將ORIGIN路徑屬性設(shè)為1后,可插入BGP-4。同樣地,由BGP-4產(chǎn)生的信息也可以插入EGP2。但是,第二種情況,當(dāng)從 BGP-4接收來的IP前綴代表連續(xù)的A/B/C類網(wǎng)絡(luò)集合時(shí),應(yīng)清楚潛在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入時(shí),要求BGP發(fā)言人將相應(yīng)的網(wǎng)絡(luò)插入EGP2。本地系統(tǒng)將提供控制EGP2與BGP-4之間可達(dá)性信息交換的機(jī)制。特別地,當(dāng)把來自BGP-4的可達(dá)性信息插入EGP2 時(shí),一個(gè)一致實(shí)現(xiàn)要求支持所有如下選項(xiàng):
?。迦肽J(rèn)的(0.0.0.0),不傳遞其他NLRI
-允許受控的解聚,但只對特定路由;
?。试S傳遞非聚合的NLRI
?。试S只傳遞非聚合的NLRI
在一個(gè)參與BGP-4的BGP發(fā)言人和一個(gè)單純的EGP2發(fā)言人之間以EGP2交換路由信息的情況,只可能發(fā)現(xiàn)在域(自治系統(tǒng))邊界。
8.2 與BGP-3交換信息
本文檔對于BGP-4與BGP-3間的路由信息交換,建議如下方針。
為過渡順利,一個(gè)BGP發(fā)言人BGP-3和BGP-4都可以參與。因此,一個(gè)BGP發(fā)言人接收IP可達(dá)性信息,可能產(chǎn)自BGP-3,也可能產(chǎn)自BGP-4。
一個(gè)BGP發(fā)言人可能按如下方式將來自BGP-4的信息插入到BGP-3。
如果一條BGP-4路由的AS_PATH屬性帶有AS_SET路徑段,那么,BGP-3路由的AS_PATH屬性應(yīng)為將此AS_SET段視作 AS_SEQUENCE段,最后的AS_PATH為單純的一個(gè)AS_SEQUENCE。這個(gè)過程損失了set/sequence信息,但不影響預(yù)防路由回路,但可能影響策略,如果策略是建立在AS_PATH屬性的內(nèi)容或順序上的話。
把源自BGP-4的NLRI插入BGP-3,當(dāng)從BGP-4接收來的IP前綴代表連續(xù)的A/B/C類網(wǎng)絡(luò)集合時(shí),應(yīng)清楚潛在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入時(shí),要求BGP發(fā)言人將相應(yīng)的網(wǎng)絡(luò)插入BGP-3。本地系統(tǒng)將提供控制BGP-3與BGP-4之間可達(dá)性信息交換的機(jī)制。特別地,當(dāng)把來自BGP-4的可達(dá)性信息插入BGP-3時(shí),一個(gè)一致實(shí)現(xiàn)要求支持所有如下選項(xiàng):
?。迦肽J(rèn)的(0.0.0.0),不傳遞其他NLRI
-允許受控的解聚,但只對特定路由;
?。试S傳遞非聚合的NLRI
-允許只傳遞非聚合的NLRI
在一個(gè)參與BGP-4的BGP發(fā)言人和一個(gè)單純的BGP-3發(fā)言人之間以BGP-3交換路由信息的情況,只可能發(fā)現(xiàn)在自治系統(tǒng)邊界。在一個(gè)單獨(dú)的自治系統(tǒng)內(nèi)部,所有BGP發(fā)言人的會(huì)話必須要么是BGP-3,要么是BGP-4,不能是混合體。
9. 在虛擬交換線路上的運(yùn)作
BGP使用在虛擬交換子網(wǎng)(SVC)上,被要求產(chǎn)生盡可能少的流量。特別地,可能被要求消除由周期性KEEPALIVE消息所產(chǎn)生的流量。BGP包含了一個(gè)機(jī)制,在虛擬交換線路(SVC)服務(wù)運(yùn)作時(shí),避免SVCs始終開啟,允許它終止周期性KEEPALIVE消息的發(fā)送。
本部分論述了如何在沒有周期性KEEPALIVE消息的條件下,使用智能的SVC管理,使SVC使用最少。所提議的方案也適用于"永久"線路,"永久"線路支持類似鏈路質(zhì)量監(jiān)測的特性,或者可以顯示請求來決定鏈路連接的狀態(tài)。
9.1 建立BGP連接
通過在OPEN消息中設(shè)定Hold Time為0來實(shí)現(xiàn)
9.2 線路管理器特性
線路管理必須具備足夠的功能來彌補(bǔ)周期性KEEPALIVE消息的缺失:
?。仨毮軌蛟谑“l(fā)生的可預(yù)見的有限時(shí)間內(nèi),確定鏈路層的不可達(dá)性。
-關(guān)于確定不可達(dá)性,應(yīng)該:
-開啟一個(gè)配置死寂的計(jì)數(shù)器(與典型的保持計(jì)數(shù)器值相比)。
-試圖重建鏈路層連接。
?。绻兰庞?jì)數(shù)器終止,應(yīng)該:
-發(fā)送一個(gè)內(nèi)部線路DEAD指示給TCP。
-如果連接重建,應(yīng)該
-取消死寂計(jì)數(shù)器
-發(fā)送一個(gè)內(nèi)部線路UP指示給TCP。
9.3 TCP特性
TCP須做一點(diǎn)修改,來處理來自線路管理器的內(nèi)部通告:
-DEAD:清除發(fā)送隊(duì)列,取消TCP連接。
?。璘P:發(fā)送任何隊(duì)列數(shù)據(jù),或者允許向進(jìn)程傳遞TCP調(diào)用
9.4 混合特性
一些應(yīng)用可能無法保證BGP進(jìn)程和線路管理器統(tǒng)一工作;也就是說,當(dāng)一個(gè)停止或崩潰時(shí),另一個(gè)仍獨(dú)立存在。
如果這是事實(shí),在BGP進(jìn)程和線路管理器之間周期性的雙向握手就需要實(shí)現(xiàn)。如果BGP進(jìn)程發(fā)現(xiàn)線路管理器死亡,它就關(guān)閉所有相關(guān)的TCP連接。如果線路管理器發(fā)現(xiàn)BGP進(jìn)程死亡,它將關(guān)閉所有與BGP進(jìn)程相關(guān)的連接,拒絕新連接。
10. 結(jié)論
BGP協(xié)議為域間路由提供高度的控制和柔韌性,執(zhí)行策略約束,避免路由回路。在此說明的指導(dǎo)方針為BGP使用提供了一個(gè)起點(diǎn),隨著BGP增長,它將提供更多高級(jí)和可管理的路由方法。
附錄A. BGP與IGP的關(guān)系
本部分概述了BGP與IGP交換路由信息的方法。這些方法此處不提議作為標(biāo)準(zhǔn)BGP使用的一部分。這些方法僅是信息補(bǔ)充。應(yīng)用在引入IGP信息時(shí),可能需要考慮這些方法
BGP與某特定IGP的關(guān)系不在此部分討論。特定IGP的方法應(yīng)在其他文檔論述,在將來應(yīng)成為標(biāo)準(zhǔn)化用法。
概論
根據(jù)定義,所有過渡AS必須能運(yùn)輸那些源于或終于該AS的流量。這要求在BGP和那個(gè)特定AS使用的內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)之間具有一定的聯(lián)系和協(xié)調(diào)。一般來說,源于外部AS的流量將同時(shí)穿越內(nèi)部網(wǎng)關(guān)(只支持IGP)和邊界網(wǎng)關(guān)(支持IGP和BGP)。所有內(nèi)部網(wǎng)關(guān)都通過IGP從一個(gè)以上的邊界網(wǎng)關(guān)那兒接收有關(guān)外部路由的信息。
依靠在一個(gè)AS內(nèi)傳播BGP信息的機(jī)制,BGP和IGP之間的一致性須得到特別關(guān)注,因?yàn)闋顟B(tài)的改變可能以不同的速度在AS 內(nèi)傳播??赡艹霈F(xiàn)時(shí)間窗,兩個(gè)時(shí)刻分別為:在某邊界網(wǎng)關(guān)(A)從相同AS內(nèi)的另一臺(tái)邊界網(wǎng)關(guān)(B)獲取新的BGP路由信息;AS的IGP能夠路由過渡流量到邊界網(wǎng)關(guān)(B)。在這兩個(gè)時(shí)刻之間,錯(cuò)誤路由和"黑洞"均可能發(fā)生。
為了盡可能減輕這個(gè)路由問題,在AS的所有內(nèi)部網(wǎng)關(guān)準(zhǔn)備好將目標(biāo)為外部 IP 的流量發(fā)往正確出口邊界網(wǎng)關(guān)(B)之前,邊界網(wǎng)關(guān)(A)不應(yīng)該向外部對等體廣播那些通過邊界網(wǎng)關(guān)(B)運(yùn)往外部目標(biāo)網(wǎng)絡(luò)的路由。換句話說,內(nèi)部路由須會(huì)聚一個(gè)合適的出口網(wǎng)關(guān),然后才能廣播通過該出口網(wǎng)關(guān)前往外部對等體的路由。
A.2 實(shí)現(xiàn)穩(wěn)定關(guān)系的方法
下面的討論概述了幾個(gè)能實(shí)現(xiàn)在AS內(nèi)BGP和IGP之間穩(wěn)定關(guān)系的技術(shù)。
A.2.1 通過IGP傳遞BGP信息
BGP 提供自己的機(jī)制在AS內(nèi)傳遞BGP信息,同樣,只要IGP支持全部路由信息的洪泛(提供分散BGP信息的機(jī)制)和一條通路的會(huì)聚(使得機(jī)制有效原子化),就可以用來傳輸BGP信息。如果一個(gè)IGP用來傳遞BGP信息,前述的異步時(shí)間將不復(fù)存在,因?yàn)锳S內(nèi)部的BGP信息傳遞與IGP同步,IGP的會(huì)聚或多或少與新路由信息的到來同步。注意,IGP只運(yùn)輸BGP信息,不對其解析或處理。
A.2.2 標(biāo)記的內(nèi)部網(wǎng)關(guān)協(xié)議
當(dāng)向外的路由在 AS內(nèi)傳遞時(shí),一定的IGP可以用它們的出口點(diǎn)給它們做標(biāo)記。每個(gè)邊界網(wǎng)關(guān)應(yīng)使用同一的標(biāo)記聲明外部路由信息(通過BGP接收),不管這些路由信息是進(jìn)入 IGP還是傳遞到其他的內(nèi)部對等體(擁有相同AS號(hào)的對等體)。邊界網(wǎng)關(guān)產(chǎn)生的標(biāo)記必須唯一對應(yīng)那個(gè)特定的邊界網(wǎng)關(guān)——不同的邊界網(wǎng)關(guān)必須使用不同的標(biāo)記。
在一個(gè)AS內(nèi)的所有邊界網(wǎng)關(guān)必須遵守如下兩條規(guī)則:
1. 如果邊界網(wǎng)關(guān)A從內(nèi)部對等體接收到信息聲稱某些目標(biāo)網(wǎng)絡(luò)不可達(dá),則它必須向所有外部對等體傳遞該信息。
2. 如果邊界網(wǎng)關(guān)A從內(nèi)部對等體接收到關(guān)于某些可達(dá)目標(biāo)網(wǎng)絡(luò)X的信息,則它必須擁有到X的IGP路由,而且IGP和BGP的路由信息都有對應(yīng)標(biāo)記,否則無法將這些信息傳遞到任何外部對等體。
這些規(guī)則保證了除非IGP正確支持,否則不向外聲明路由信息。它也可以部分避免"黑洞"。
在AS內(nèi)標(biāo)記BGP和IGP的一種方法是使用出口邊界網(wǎng)關(guān)的IP地址。這種情況下,BGP的UPDATE消息的"gateway"域?qū)⒂米鳂?biāo)記。
A.2.3 封裝
封裝為運(yùn)輸AS間過渡流量提供了最簡單的機(jī)制(關(guān)于IGP和BGP的聯(lián)系)。用這種方法,過渡流量封裝在一個(gè)地址為出口網(wǎng)關(guān)的IP數(shù)據(jù)包內(nèi)。這種方法對IGP的唯一要求是能夠支持同一AS內(nèi)邊界網(wǎng)關(guān)間的路由。
前往某些外部目標(biāo)網(wǎng)絡(luò)X的出口網(wǎng)關(guān)A的地址,通過A向同一AS內(nèi)其他邊界網(wǎng)關(guān)發(fā)送的BGP OPEN消息中的BGP標(biāo)識(shí)符進(jìn)行聲明。為了路由流量到目標(biāo)X,AS內(nèi)的每個(gè)邊界網(wǎng)關(guān)都封裝流量到以網(wǎng)關(guān)A為地址的IP數(shù)據(jù)包。然后,網(wǎng)關(guān)A解封裝,將原始數(shù)據(jù)包發(fā)送到外部AS的對應(yīng)網(wǎng)關(guān)。
因?yàn)榉庋b不依靠IGP來運(yùn)輸外部路由信息,所以在BGP和IGP之間無需同步。
一些方法用來標(biāo)識(shí)包含封裝IP的數(shù)據(jù)包,如用IP協(xié)議類型碼,必須在使用前定義。
注意,如果一個(gè)封裝后的數(shù)據(jù)包的長度非常接近MTU,這個(gè)數(shù)據(jù)包將被那個(gè)執(zhí)行封裝的網(wǎng)關(guān)分片。
A.2.4 遍布的BGP
如果一個(gè)AS內(nèi)的所有路由器都是BGP發(fā)言人,那么就沒有必要聯(lián)系BGP和IGP。這種情況下,AS內(nèi)的所有路由器擁有BGP路由的全部信息。IGP只用來在AS中路由,不再有BGP路由被導(dǎo)入成IGP。
如果路由器按此方式工作,它們必須能夠完成對路由表的循環(huán)查找。第一次查找將使用一條BGP路由來建立出口路由器,第二次查找將決定前往出口路由器的IGP路徑。
這種情形下,IGP不攜帶任何外部信息,所有BGP發(fā)言人一旦獲得路由的新信息,該AS內(nèi)的路由器將很快會(huì)聚。因?yàn)椴淮嬖跒镮GP的會(huì)聚延遲,一個(gè)應(yīng)用能廣播這些路由,而沒有延遲。
A.2.5 其他情況
有些AS的IGP,可能既無法傳輸BGP信息,也無法標(biāo)記外部路由(比如,RIP)。另外,封裝可能不可行或不被接受。這些情況下,以下兩條規(guī)則須被遵守:
(1). 如果邊界網(wǎng)關(guān)A從內(nèi)部對等體接收到信息聲稱某些目標(biāo)網(wǎng)絡(luò)不可達(dá),則它必須向所有外部對等體傳遞該信息。
(2). 如果邊界網(wǎng)關(guān)A從內(nèi)部對等體接收到關(guān)于某些可達(dá)目標(biāo)網(wǎng)絡(luò)X的信息,則它必須擁有到X的IGP路由,而且有足夠的時(shí)間使IGP路由會(huì)聚,否則無法將這些信息傳遞到任何外部對等體。
以上規(guī)則只說明了傳遞BGP路由信息到其他AS的必要(但不充分)條件。與標(biāo)記的IGP相比,這些規(guī)則不能保證,在傳遞路由到其他AS之前,到出口網(wǎng)關(guān)的內(nèi)部路由存在。
如果IGP會(huì)聚時(shí)間比某小值X還小,IGP和BGP不同步造成的時(shí)間窗也將小于X,那么,路由不穩(wěn)定是異常短暫的,這個(gè)問題就可以忽略。至于這個(gè)X的合理取值,尚待研究,但至少應(yīng)小于1秒。
如果IGP會(huì)聚時(shí)間無法忽略,就需要不同的方法。適合這種情形的機(jī)制和技術(shù)尚待深入研究
BGP是自治系統(tǒng)間的路由協(xié)議。BGP交換的網(wǎng)絡(luò)可達(dá)性信息提供了足夠的信息來檢測路由回路并根據(jù)性能優(yōu)先和策略約束對路由進(jìn)行決策(要點(diǎn)見RFC 1104[2])。特別地,BGP交換包含全部AS path的網(wǎng)絡(luò)可達(dá)性信息,按照配置信息執(zhí)行路由策略。
隨著近年來互聯(lián)網(wǎng)的進(jìn)步和增長,它也不得不面對一些嚴(yán)重的規(guī)模問題,包括:
-B類網(wǎng)絡(luò)地址空間的耗盡。該問題的主要原因之一,是缺少適于 中型組織的中等大小的網(wǎng)絡(luò);C類網(wǎng)絡(luò),最多擁有254個(gè)主機(jī)地址,實(shí)在太少,而B類網(wǎng)絡(luò)允許最多65534個(gè)地址,卻又太大無法充分使用。
?。ヂ?lián)網(wǎng)路由器中路由表的增長使目前的軟件(和人們)無法有效管理。
?。?2位IP地址空間的耗竭。
很明顯,前兩個(gè)問題和最后一個(gè)問題可能分別在今后一兩年內(nèi)和三年內(nèi)變得急迫。無類別域間路由(CIDR)試圖解決這些問題,設(shè)計(jì)相應(yīng)機(jī)制來降低路由表和對新IP網(wǎng)絡(luò)分配需求的增長速度。它并沒有解決更具長期性的第三個(gè)問題,而是努力讓近期問題推遲使得互聯(lián)網(wǎng)仍能有效運(yùn)作,同時(shí)著手遠(yuǎn)期的解決方案。
BGP-4對BGP-3做了擴(kuò)展,支持路由信息的聚合及基于無類別域間路由體系(CIDR)[3]的路由減少。本備忘錄論述了BGP-4在互聯(lián)網(wǎng)中的應(yīng)用。
本文檔的所有討論基于如下假設(shè):互聯(lián)網(wǎng)是一些隨意連接的自治系統(tǒng)的集合。也就是說,互聯(lián)網(wǎng)可以建模成一張一般的網(wǎng)絡(luò)圖,圖上節(jié)點(diǎn)是AS,邊是每對AS間的連接。
自治系統(tǒng)的經(jīng)典定義是,一組路由器在統(tǒng)一管理之下,在AS內(nèi)使用內(nèi)部網(wǎng)關(guān)協(xié)議和統(tǒng)一度量來路由數(shù)據(jù)包,而通過外部網(wǎng)關(guān)協(xié)議將數(shù)據(jù)包路由到其他AS。該經(jīng)典定義尚在發(fā)展,一些AS在其內(nèi)部使用多種內(nèi)部網(wǎng)關(guān)協(xié)議和度量。在此,強(qiáng)調(diào)一下自治系統(tǒng)在本文檔中的含義,即使它采用多種IGP和度量,它的管理區(qū)別于其他 AS,其內(nèi)部路由是一致的,當(dāng)路由穿越它時(shí),它在圖上視作一個(gè)節(jié)點(diǎn)。
每個(gè)AS由一個(gè)管理機(jī)構(gòu)管理,至少在外部看來它代表著該系統(tǒng)的路由信息。
2. BGP拓?fù)淠P?BR>
當(dāng)我們說一個(gè)在兩個(gè)AS之間的連接時(shí),意味著兩件事:
物理連接:兩個(gè)AS之間存在一條共享的數(shù)據(jù)鏈路子網(wǎng),并且在該子網(wǎng)上,每個(gè)AS至少有一臺(tái)自己的邊界網(wǎng)關(guān)路由器。因此,每個(gè)AS的邊界網(wǎng)關(guān)路由器可以轉(zhuǎn)發(fā)數(shù)據(jù)包到其他AS的邊界網(wǎng)關(guān)路由器,無需借助于AS內(nèi)到AS間的路由。
BGP連接:在各個(gè)AS的BGP發(fā)言人之間有一個(gè)BGP會(huì)話進(jìn)程,通過會(huì)話溝通路由,經(jīng)過聲明的AS到達(dá)某目標(biāo)網(wǎng)絡(luò)。
本文檔中,我們對構(gòu)成BGP連接的BGP發(fā)言人加以額外限制:他們必須是自己直接共享數(shù)據(jù)鏈路子網(wǎng)。因此,相鄰AS間的BGP會(huì)話無需AS內(nèi)或AS間的路由。超出本文范圍的案例可能與該限制不符。
因此,在每個(gè)連接中,每個(gè)AS擁有一個(gè)以上的BGP發(fā)言人和邊界網(wǎng)關(guān)路由器,這些BGP發(fā)言人和邊界網(wǎng)關(guān)路由器分布在共享數(shù)據(jù)鏈路子網(wǎng)上。注意到, BGP發(fā)言人不一定是邊界網(wǎng)關(guān)路由器,反之亦然。一條連接上一個(gè)AS的BGP發(fā)言人聲明的路徑可以被同一個(gè)共享子網(wǎng)上其他AS的邊界網(wǎng)關(guān)路由器使用,也就是非直接的鄰居是允許的。
一個(gè)AS內(nèi)的流量,要么是源于該AS,要么是終于該AS(也就是說,IP數(shù)據(jù)包的源IP或目的IP在該AS內(nèi))。符合以上描述的流量稱為"本地流量",否則稱為"過渡流量"。BGP使用的主要目的是控制過渡流量。
按照某AS如何處理過渡流量,AS可以分為以下幾類:
末端AS:只連接到一個(gè)其他AS。自然地,末端AS只運(yùn)輸本地流量。
多宿主AS:連接到超過一個(gè)的其他AS,但不運(yùn)輸過渡流量。
過渡AS:連接到超過一個(gè)的其他AS,可以運(yùn)輸本地和過渡流量。
一個(gè)完整的AS path提供了有效和簡捷的方式來避免路由回路、消除伴隨距離向量算法的"計(jì)數(shù)到無窮"問題,因此,BGP沒有對AS之間的連接拓?fù)浼右匀魏蜗拗啤?BR>
3. 互聯(lián)網(wǎng)中的BGP
3.1 拓?fù)鋵W(xué)考慮
互聯(lián)網(wǎng)拓?fù)淇梢砸曌鬟^渡AS、多宿主AS和末端AS的任意互連。為了盡可能減少對目前互聯(lián)網(wǎng)結(jié)構(gòu)的影響,末端和多宿主AS不一定要使用BGP。這些AS 可以運(yùn)行其他的協(xié)議(比如,EGP)來與過渡AS交換網(wǎng)絡(luò)可達(dá)性信息。使用BGP的過渡AS將對這些信息做標(biāo)記,以表明其學(xué)習(xí)自BGP以外的方法。BGP 不一定運(yùn)行于末端或多宿主AS,這就不會(huì)對源于或終于末端AS或多宿主AS的數(shù)據(jù)包的AS間路由質(zhì)量產(chǎn)生負(fù)面影響。
然而,仍然建議在末端和多宿主AS上使用BGP。在這些情況下,BGP相比其他目前使用的協(xié)議(比如EGP),可以提供更優(yōu)的帶寬和性能。另外,這將減少默認(rèn)路由的使用,為多宿主AS的AS間路由提供更好選擇。
3.2 BGP的整體特性
整體水平上,BGP用來在多個(gè)自治系統(tǒng)間傳遞路由信息。其信息流如下圖示:
+-----------+ +------------+
BGP | BGP | BGP | BGP | BGP
-------------------+ +--------------------------+ +----------
| IGP | | IGP |
+------------+ +-----------+
<-AS A--> <--AS B->
這張圖表說明,在AS間只用BGP傳輸信息,而在AS內(nèi)BGP和IGP均可以傳輸信息。確保AS內(nèi)BGP和IGP間路由信息的兼容性,是一個(gè)重大問題,最后將在附錄A中詳細(xì)討論。
3.3 BGP鄰居關(guān)系
互聯(lián)網(wǎng)視作隨意連接的AS的集合。通過BGP直接連接的路由器就是BGP發(fā)言人。BGP發(fā)言人可以在同一AS內(nèi),也可以在不同AS內(nèi)。每個(gè)AS的BGP 發(fā)言人互相通信,遵照每個(gè)AS建立的策略,交換網(wǎng)絡(luò)可達(dá)性信息。對某BGP發(fā)言人,如果與其他BGP發(fā)言人通信而且那個(gè)BGP發(fā)言人在不同的AS,則那個(gè)其他 BGP發(fā)言人稱為外部對等體,而如果在相同的AS內(nèi),則稱為內(nèi)部對等體
[1] [2] [3] [4] 下一頁
文章錄入:csh 責(zé)任編輯:csh在一個(gè)AS內(nèi)可以有許多BGP發(fā)言人并被認(rèn)為是需要的。通常,如果一個(gè) AS與其他AS有多個(gè)連接,則需要多個(gè)BGP發(fā)言人。所有BGP發(fā)言人代表著相同AS,對外保持統(tǒng)一形象。這就要求他們之間保持一致的路由信息。這些路由器可以通過BGP或其他方法互相通信。在同一AS內(nèi)的所有BGP發(fā)言人的策略約束必須一致。一些技術(shù),如使用帶標(biāo)記的IGP(參見A.2.2),可以用來探測可能的矛盾。
對于外部對等體,對等體分別屬于不同的AS,但共享同一數(shù)據(jù)鏈路子網(wǎng)。這共同的子網(wǎng)用來在對等體之間運(yùn)輸BGP信息。如果BGP使用通過一個(gè)干預(yù)的AS,則將使AS path信息無效。自治系統(tǒng)號(hào)必須在BGP中使用,用來標(biāo)明BGP發(fā)言人所在的自治系統(tǒng)。
4. 路由聚合的需要
當(dāng)路由信息由各部分聚合時(shí),一致的BGP-4實(shí)現(xiàn)需要對其聲明。例如,一個(gè)在自治系統(tǒng)邊界的BGP發(fā)言人必須能產(chǎn)生某目標(biāo)IP集合的聚合路由(在BGP -4 術(shù)語中該目標(biāo)IP集合稱為網(wǎng)絡(luò)層可達(dá)性信息,NLRI),在它基礎(chǔ)上進(jìn)行管理(包括路由器自身代表的地址),即使當(dāng)這些地址不是同時(shí)全部可達(dá)的。
當(dāng)聚合的NLRI產(chǎn)生時(shí),一致實(shí)現(xiàn)應(yīng)能給予聲明。
當(dāng)NLRI解聚合時(shí),一致實(shí)現(xiàn)應(yīng)能給予聲明。
當(dāng)出現(xiàn)重疊路由時(shí),一致實(shí)現(xiàn)應(yīng)能支持如下選項(xiàng):
?。惭b聚合和詳細(xì)的路由
?。话惭b詳細(xì)路由
-安裝聚合路由
?。话惭b
一定的路由策略可能依賴于NLRI(比如,"研究"與"商業(yè)")。因此,一個(gè)運(yùn)行路由聚合的BGP發(fā)言人,可能的情況下,應(yīng)該能認(rèn)知聚合NLRI時(shí)路由策略的潛在實(shí)現(xiàn)。
5. BGP的策略生成
BGP通過各種路由參數(shù)選擇和約束,實(shí)現(xiàn)策略。策略并不直接編入?yún)f(xié)議。而是,策略通過BGP的配置信息來實(shí)現(xiàn)。
BGP實(shí)現(xiàn)策略的途徑有,影響從多條路徑中的選擇,控制路由信息的下步傳遞。策略由AS的管理者決定。
路由策略與政治、安全或經(jīng)濟(jì)考慮有關(guān)。
例如,如果一個(gè)AS不愿意將流量運(yùn)輸?shù)狡渌鸄S,它可以制定策略來禁止。如下是一些能夠改變BGP使用的路由策略的例子:
1. 一個(gè)多宿主AS可以拒絕成為其他AS的過渡AS。(它只告知那些目標(biāo)網(wǎng)絡(luò)在自己AS內(nèi)部的路由。)
2. 一個(gè)多宿主AS可以指定成為幾個(gè)相鄰AS的過渡AS,也就是說,一部分而不是全部AS,可以把該多宿主AS作為過渡AS。(它只把它的路由信息告知被允許的AS。)
3. 一個(gè)AS向外運(yùn)輸流量時(shí),可以決定是否偏愛特定的AS。
BGP應(yīng)用可以控制許多性能相關(guān)的標(biāo)準(zhǔn):
1. 一個(gè)AS可以最少化過渡AS的數(shù)目。(AS path越短,越可能被采用。)
2. 過渡AS的權(quán)重。如果一個(gè)AS決定,兩個(gè)以上的AS path可以用來到達(dá)目標(biāo)網(wǎng)絡(luò),那么,AS可以使用多種方法來決定采納哪個(gè)候選AS path。一個(gè)AS的權(quán)重值由以下幾個(gè)因素決定:徑向距離,鏈路速度,容量,擁塞的趨勢,和運(yùn)行質(zhì)量。這些性能值可以由BGP以外的方法決定。
3. 優(yōu)先考慮內(nèi)部路由,而不是外部路由。
為了一個(gè)AS的統(tǒng)一性,那些產(chǎn)自策略和/或正常路由選擇過程的等值路徑,必須以一致的方式解決。
BGP的基礎(chǔ),是這樣一個(gè)規(guī)則:一個(gè)AS只把自己使用的路由通知給相鄰的AS。該規(guī)則反映了目前互聯(lián)網(wǎng)常用的"一跳接一跳"的路由方式。
6. BGP的路徑選擇
BGP 發(fā)言人的一項(xiàng)主要任務(wù),是評(píng)價(jià)諸條從自身出發(fā)到那些用網(wǎng)絡(luò)前綴表達(dá)的目的地的路徑,從中選出最優(yōu),應(yīng)用合適的策略約束,然后將它通知給所有的BGP鄰居。關(guān)鍵問題是如何評(píng)價(jià)和比較這些不同的路徑。傳統(tǒng)的距離向量協(xié)議(比如RIP)中,每條路徑只有一個(gè)度量。因此,不同路徑的比較簡化為兩個(gè)值的比較。AS間路由的復(fù)雜性,源自人們在如何評(píng)價(jià)外部路由的問題上缺少共同認(rèn)可的度量。于是,每個(gè)AS擁有自己的一套對路徑的評(píng)價(jià)指標(biāo)。
BGP發(fā)言人構(gòu)建的路由數(shù)據(jù)庫,由所有可用的路徑和每條路徑可達(dá)的目標(biāo)集合(表達(dá)為網(wǎng)絡(luò)前綴)組成。為了達(dá)到前面討論的目的,考慮目標(biāo)網(wǎng)絡(luò)所對應(yīng)的可用路徑,是有用的。大多數(shù)情況下,我們期望找到唯一一條可用路徑。但是,當(dāng)不是這樣時(shí),所有可用的路徑應(yīng)當(dāng)保存,當(dāng)主要路徑缺失時(shí),保存能以最快的速度適應(yīng),(產(chǎn)生新的主要路徑)。任何時(shí)候,只有主要路徑才會(huì)被廣播。
路徑選擇過程可以形式化為,對所有可用路徑及相對應(yīng)的目標(biāo)IP,定義完整的優(yōu)先級(jí)。定義這種優(yōu)先級(jí)的一種方法,是定義一個(gè)函數(shù),將每條完整的AS path映射成一個(gè)非負(fù)整數(shù),用來表示該路徑的優(yōu)先級(jí)。路徑選擇于是簡化為,將該函數(shù)應(yīng)用到所有可用路徑,再選擇最高的優(yōu)先級(jí)。
在真實(shí)的BGP實(shí)現(xiàn)中,為路徑分配優(yōu)先級(jí)的標(biāo)準(zhǔn)在配置信息中說明。
為路徑分配優(yōu)先級(jí)的過程源于以下幾個(gè)信息:
1. 整條AS path顯示的信息
2. 由AS path和BGP以外信息(比如,配置信息中的路由策略約束)引申出來的混合信息。
為路徑分配優(yōu)先級(jí)的可能的標(biāo)準(zhǔn)為:
?。瑼S數(shù)目。AS越少,該條路徑越好。
?。呗钥紤]。BGP對基于策略路由的支持,源于對分布式路由信息的控制。一個(gè)BGP發(fā)言人可能知道幾條策略約束(包括自身AS的內(nèi)外),進(jìn)行合適的路徑選擇。不遵從策略要求的路徑不被考慮。
?。承〢S是否在路徑中存在。依靠BGP以外的信息,一個(gè)AS可以知道某些AS的一些性能特點(diǎn)(比如,帶寬,MTU,AS間徑向距離),然后選擇偏愛程度。
-路徑起源。由BGP學(xué)習(xí)而來的整條路徑(也就是說,路徑終點(diǎn)與路徑的上一個(gè)AS在BGP內(nèi)部)相比那些部分學(xué)習(xí)自EGP及其他方法的路徑,是更優(yōu)的。
-AS path子集。通往同一目的地,一個(gè)較長AS path的子集將受到偏愛。在該較短AS path中存在的任何問題都也是較長AS path的問題。
?。溌穭?dòng)態(tài)。穩(wěn)定的路徑比不穩(wěn)定的路徑更受歡迎。注意,這個(gè)標(biāo)準(zhǔn)應(yīng)被小心使用,避免出現(xiàn)路由抖動(dòng)。一般來說,任何依賴于動(dòng)態(tài)信息的標(biāo)準(zhǔn)都可能引發(fā)路由不穩(wěn)定,所以應(yīng)謹(jǐn)慎對待。
7. 支持路由策略的必備集合
BGP策略以配置信息的形式實(shí)現(xiàn)。該信息不直接編入?yún)f(xié)議。因此,BGP可以提供非常復(fù)雜的路由策略。但是,并不要求所有的BGP實(shí)現(xiàn)支持這些策略。
我們不試圖將路由策略標(biāo)準(zhǔn)化使其適用于每個(gè)BGP實(shí)現(xiàn),強(qiáng)烈鼓勵(lì)所有的實(shí)現(xiàn)支持如下的路由策略集:
1. BGP實(shí)現(xiàn)應(yīng)允許一個(gè)AS控制向相鄰AS廣播由BGP學(xué)習(xí)來的路由。實(shí)現(xiàn)還應(yīng)支持對地址前綴大小的控制。實(shí)現(xiàn)還應(yīng)支持對自治系統(tǒng)大小的控制,不管該自治系統(tǒng)是起源,還是鄰居。如果某路由對某外部對等體按上述控制聲明,則需注意該路由不能向那個(gè)對等體通告。特別地,本地系統(tǒng)必須明確向那個(gè)對等體通告,該路由現(xiàn)在不可用
上一頁 [1] [2] [3] [4] 下一頁
文章錄入:csh 責(zé)任編輯:csh2. BGP實(shí)現(xiàn)應(yīng)允許一個(gè)AS對某條路徑優(yōu)先考慮(當(dāng)存在多條可用路徑時(shí))。實(shí)現(xiàn)至少具備以下相同功能,允許管理者對來自鄰居的路由設(shè)置優(yōu)先級(jí)。優(yōu)先級(jí)的大小應(yīng)在0到2^(31)-1之間。
3. BGP實(shí)現(xiàn)應(yīng)允許一個(gè)AS忽略某些在AS_PATH屬性中存在特定AS的路由。該功能的實(shí)現(xiàn),可以使用[2]中說明的技術(shù),設(shè)置這些AS的"weight"為"infinity"。路由選擇過程必須忽略那些"weight"為"infinity"的路由。
8. 與其他外部路由協(xié)議的關(guān)系
本部分建議的指導(dǎo)方針與[3]中陳述的指導(dǎo)方針一致。
一個(gè)AS應(yīng)通告它內(nèi)部目標(biāo)網(wǎng)絡(luò)的最小聚合及與實(shí)際使用的地址空間的關(guān)系。這可以被非BGP-4的AS的管理者用來決定從某條聚合路由可以解聚出多少路由。
一個(gè)攜帶ATOMIC_AGGREGATE路徑屬性的路由,不應(yīng)傳遞于BGP-3或EGP2,除非這種傳遞不出現(xiàn)路由NLRI的解聚。
8.1 與EGP2交換信息
本文檔對于BGP-4與EGP2間的路由信息交換,建議如下方針。
為過渡順利,一個(gè)BGP發(fā)言人EGP2和BGP-4都可以參與。因此,一個(gè)BGP發(fā)言人接收IP可達(dá)性信息,可能產(chǎn)自EGP2,也可能產(chǎn)自BGP-4。由 EGP2產(chǎn)生的信息,將ORIGIN路徑屬性設(shè)為1后,可插入BGP-4。同樣地,由BGP-4產(chǎn)生的信息也可以插入EGP2。但是,第二種情況,當(dāng)從 BGP-4接收來的IP前綴代表連續(xù)的A/B/C類網(wǎng)絡(luò)集合時(shí),應(yīng)清楚潛在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入時(shí),要求BGP發(fā)言人將相應(yīng)的網(wǎng)絡(luò)插入EGP2。本地系統(tǒng)將提供控制EGP2與BGP-4之間可達(dá)性信息交換的機(jī)制。特別地,當(dāng)把來自BGP-4的可達(dá)性信息插入EGP2 時(shí),一個(gè)一致實(shí)現(xiàn)要求支持所有如下選項(xiàng):
?。迦肽J(rèn)的(0.0.0.0),不傳遞其他NLRI
-允許受控的解聚,但只對特定路由;
?。试S傳遞非聚合的NLRI
?。试S只傳遞非聚合的NLRI
在一個(gè)參與BGP-4的BGP發(fā)言人和一個(gè)單純的EGP2發(fā)言人之間以EGP2交換路由信息的情況,只可能發(fā)現(xiàn)在域(自治系統(tǒng))邊界。
8.2 與BGP-3交換信息
本文檔對于BGP-4與BGP-3間的路由信息交換,建議如下方針。
為過渡順利,一個(gè)BGP發(fā)言人BGP-3和BGP-4都可以參與。因此,一個(gè)BGP發(fā)言人接收IP可達(dá)性信息,可能產(chǎn)自BGP-3,也可能產(chǎn)自BGP-4。
一個(gè)BGP發(fā)言人可能按如下方式將來自BGP-4的信息插入到BGP-3。
如果一條BGP-4路由的AS_PATH屬性帶有AS_SET路徑段,那么,BGP-3路由的AS_PATH屬性應(yīng)為將此AS_SET段視作 AS_SEQUENCE段,最后的AS_PATH為單純的一個(gè)AS_SEQUENCE。這個(gè)過程損失了set/sequence信息,但不影響預(yù)防路由回路,但可能影響策略,如果策略是建立在AS_PATH屬性的內(nèi)容或順序上的話。
把源自BGP-4的NLRI插入BGP-3,當(dāng)從BGP-4接收來的IP前綴代表連續(xù)的A/B/C類網(wǎng)絡(luò)集合時(shí),應(yīng)清楚潛在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入時(shí),要求BGP發(fā)言人將相應(yīng)的網(wǎng)絡(luò)插入BGP-3。本地系統(tǒng)將提供控制BGP-3與BGP-4之間可達(dá)性信息交換的機(jī)制。特別地,當(dāng)把來自BGP-4的可達(dá)性信息插入BGP-3時(shí),一個(gè)一致實(shí)現(xiàn)要求支持所有如下選項(xiàng):
?。迦肽J(rèn)的(0.0.0.0),不傳遞其他NLRI
-允許受控的解聚,但只對特定路由;
?。试S傳遞非聚合的NLRI
-允許只傳遞非聚合的NLRI
在一個(gè)參與BGP-4的BGP發(fā)言人和一個(gè)單純的BGP-3發(fā)言人之間以BGP-3交換路由信息的情況,只可能發(fā)現(xiàn)在自治系統(tǒng)邊界。在一個(gè)單獨(dú)的自治系統(tǒng)內(nèi)部,所有BGP發(fā)言人的會(huì)話必須要么是BGP-3,要么是BGP-4,不能是混合體。
9. 在虛擬交換線路上的運(yùn)作
BGP使用在虛擬交換子網(wǎng)(SVC)上,被要求產(chǎn)生盡可能少的流量。特別地,可能被要求消除由周期性KEEPALIVE消息所產(chǎn)生的流量。BGP包含了一個(gè)機(jī)制,在虛擬交換線路(SVC)服務(wù)運(yùn)作時(shí),避免SVCs始終開啟,允許它終止周期性KEEPALIVE消息的發(fā)送。
本部分論述了如何在沒有周期性KEEPALIVE消息的條件下,使用智能的SVC管理,使SVC使用最少。所提議的方案也適用于"永久"線路,"永久"線路支持類似鏈路質(zhì)量監(jiān)測的特性,或者可以顯示請求來決定鏈路連接的狀態(tài)。
9.1 建立BGP連接
通過在OPEN消息中設(shè)定Hold Time為0來實(shí)現(xiàn)
9.2 線路管理器特性
線路管理必須具備足夠的功能來彌補(bǔ)周期性KEEPALIVE消息的缺失:
?。仨毮軌蛟谑“l(fā)生的可預(yù)見的有限時(shí)間內(nèi),確定鏈路層的不可達(dá)性。
-關(guān)于確定不可達(dá)性,應(yīng)該:
-開啟一個(gè)配置死寂的計(jì)數(shù)器(與典型的保持計(jì)數(shù)器值相比)。
-試圖重建鏈路層連接。
?。绻兰庞?jì)數(shù)器終止,應(yīng)該:
-發(fā)送一個(gè)內(nèi)部線路DEAD指示給TCP。
-如果連接重建,應(yīng)該
-取消死寂計(jì)數(shù)器
-發(fā)送一個(gè)內(nèi)部線路UP指示給TCP。
9.3 TCP特性
TCP須做一點(diǎn)修改,來處理來自線路管理器的內(nèi)部通告:
-DEAD:清除發(fā)送隊(duì)列,取消TCP連接。
?。璘P:發(fā)送任何隊(duì)列數(shù)據(jù),或者允許向進(jìn)程傳遞TCP調(diào)用
9.4 混合特性
一些應(yīng)用可能無法保證BGP進(jìn)程和線路管理器統(tǒng)一工作;也就是說,當(dāng)一個(gè)停止或崩潰時(shí),另一個(gè)仍獨(dú)立存在。
如果這是事實(shí),在BGP進(jìn)程和線路管理器之間周期性的雙向握手就需要實(shí)現(xiàn)。如果BGP進(jìn)程發(fā)現(xiàn)線路管理器死亡,它就關(guān)閉所有相關(guān)的TCP連接。如果線路管理器發(fā)現(xiàn)BGP進(jìn)程死亡,它將關(guān)閉所有與BGP進(jìn)程相關(guān)的連接,拒絕新連接。
10. 結(jié)論
BGP協(xié)議為域間路由提供高度的控制和柔韌性,執(zhí)行策略約束,避免路由回路。在此說明的指導(dǎo)方針為BGP使用提供了一個(gè)起點(diǎn),隨著BGP增長,它將提供更多高級(jí)和可管理的路由方法。
附錄A. BGP與IGP的關(guān)系
本部分概述了BGP與IGP交換路由信息的方法。這些方法此處不提議作為標(biāo)準(zhǔn)BGP使用的一部分。這些方法僅是信息補(bǔ)充。應(yīng)用在引入IGP信息時(shí),可能需要考慮這些方法
上一頁 [1] [2] [3] [4] 下一頁
文章錄入:csh 責(zé)任編輯:csh這是適用于一般IGP的概述信息。
BGP與某特定IGP的關(guān)系不在此部分討論。特定IGP的方法應(yīng)在其他文檔論述,在將來應(yīng)成為標(biāo)準(zhǔn)化用法。
概論
根據(jù)定義,所有過渡AS必須能運(yùn)輸那些源于或終于該AS的流量。這要求在BGP和那個(gè)特定AS使用的內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)之間具有一定的聯(lián)系和協(xié)調(diào)。一般來說,源于外部AS的流量將同時(shí)穿越內(nèi)部網(wǎng)關(guān)(只支持IGP)和邊界網(wǎng)關(guān)(支持IGP和BGP)。所有內(nèi)部網(wǎng)關(guān)都通過IGP從一個(gè)以上的邊界網(wǎng)關(guān)那兒接收有關(guān)外部路由的信息。
依靠在一個(gè)AS內(nèi)傳播BGP信息的機(jī)制,BGP和IGP之間的一致性須得到特別關(guān)注,因?yàn)闋顟B(tài)的改變可能以不同的速度在AS 內(nèi)傳播??赡艹霈F(xiàn)時(shí)間窗,兩個(gè)時(shí)刻分別為:在某邊界網(wǎng)關(guān)(A)從相同AS內(nèi)的另一臺(tái)邊界網(wǎng)關(guān)(B)獲取新的BGP路由信息;AS的IGP能夠路由過渡流量到邊界網(wǎng)關(guān)(B)。在這兩個(gè)時(shí)刻之間,錯(cuò)誤路由和"黑洞"均可能發(fā)生。
為了盡可能減輕這個(gè)路由問題,在AS的所有內(nèi)部網(wǎng)關(guān)準(zhǔn)備好將目標(biāo)為外部 IP 的流量發(fā)往正確出口邊界網(wǎng)關(guān)(B)之前,邊界網(wǎng)關(guān)(A)不應(yīng)該向外部對等體廣播那些通過邊界網(wǎng)關(guān)(B)運(yùn)往外部目標(biāo)網(wǎng)絡(luò)的路由。換句話說,內(nèi)部路由須會(huì)聚一個(gè)合適的出口網(wǎng)關(guān),然后才能廣播通過該出口網(wǎng)關(guān)前往外部對等體的路由。
A.2 實(shí)現(xiàn)穩(wěn)定關(guān)系的方法
下面的討論概述了幾個(gè)能實(shí)現(xiàn)在AS內(nèi)BGP和IGP之間穩(wěn)定關(guān)系的技術(shù)。
A.2.1 通過IGP傳遞BGP信息
BGP 提供自己的機(jī)制在AS內(nèi)傳遞BGP信息,同樣,只要IGP支持全部路由信息的洪泛(提供分散BGP信息的機(jī)制)和一條通路的會(huì)聚(使得機(jī)制有效原子化),就可以用來傳輸BGP信息。如果一個(gè)IGP用來傳遞BGP信息,前述的異步時(shí)間將不復(fù)存在,因?yàn)锳S內(nèi)部的BGP信息傳遞與IGP同步,IGP的會(huì)聚或多或少與新路由信息的到來同步。注意,IGP只運(yùn)輸BGP信息,不對其解析或處理。
A.2.2 標(biāo)記的內(nèi)部網(wǎng)關(guān)協(xié)議
當(dāng)向外的路由在 AS內(nèi)傳遞時(shí),一定的IGP可以用它們的出口點(diǎn)給它們做標(biāo)記。每個(gè)邊界網(wǎng)關(guān)應(yīng)使用同一的標(biāo)記聲明外部路由信息(通過BGP接收),不管這些路由信息是進(jìn)入 IGP還是傳遞到其他的內(nèi)部對等體(擁有相同AS號(hào)的對等體)。邊界網(wǎng)關(guān)產(chǎn)生的標(biāo)記必須唯一對應(yīng)那個(gè)特定的邊界網(wǎng)關(guān)——不同的邊界網(wǎng)關(guān)必須使用不同的標(biāo)記。
在一個(gè)AS內(nèi)的所有邊界網(wǎng)關(guān)必須遵守如下兩條規(guī)則:
1. 如果邊界網(wǎng)關(guān)A從內(nèi)部對等體接收到信息聲稱某些目標(biāo)網(wǎng)絡(luò)不可達(dá),則它必須向所有外部對等體傳遞該信息。
2. 如果邊界網(wǎng)關(guān)A從內(nèi)部對等體接收到關(guān)于某些可達(dá)目標(biāo)網(wǎng)絡(luò)X的信息,則它必須擁有到X的IGP路由,而且IGP和BGP的路由信息都有對應(yīng)標(biāo)記,否則無法將這些信息傳遞到任何外部對等體。
這些規(guī)則保證了除非IGP正確支持,否則不向外聲明路由信息。它也可以部分避免"黑洞"。
在AS內(nèi)標(biāo)記BGP和IGP的一種方法是使用出口邊界網(wǎng)關(guān)的IP地址。這種情況下,BGP的UPDATE消息的"gateway"域?qū)⒂米鳂?biāo)記。
A.2.3 封裝
封裝為運(yùn)輸AS間過渡流量提供了最簡單的機(jī)制(關(guān)于IGP和BGP的聯(lián)系)。用這種方法,過渡流量封裝在一個(gè)地址為出口網(wǎng)關(guān)的IP數(shù)據(jù)包內(nèi)。這種方法對IGP的唯一要求是能夠支持同一AS內(nèi)邊界網(wǎng)關(guān)間的路由。
前往某些外部目標(biāo)網(wǎng)絡(luò)X的出口網(wǎng)關(guān)A的地址,通過A向同一AS內(nèi)其他邊界網(wǎng)關(guān)發(fā)送的BGP OPEN消息中的BGP標(biāo)識(shí)符進(jìn)行聲明。為了路由流量到目標(biāo)X,AS內(nèi)的每個(gè)邊界網(wǎng)關(guān)都封裝流量到以網(wǎng)關(guān)A為地址的IP數(shù)據(jù)包。然后,網(wǎng)關(guān)A解封裝,將原始數(shù)據(jù)包發(fā)送到外部AS的對應(yīng)網(wǎng)關(guān)。
因?yàn)榉庋b不依靠IGP來運(yùn)輸外部路由信息,所以在BGP和IGP之間無需同步。
一些方法用來標(biāo)識(shí)包含封裝IP的數(shù)據(jù)包,如用IP協(xié)議類型碼,必須在使用前定義。
注意,如果一個(gè)封裝后的數(shù)據(jù)包的長度非常接近MTU,這個(gè)數(shù)據(jù)包將被那個(gè)執(zhí)行封裝的網(wǎng)關(guān)分片。
A.2.4 遍布的BGP
如果一個(gè)AS內(nèi)的所有路由器都是BGP發(fā)言人,那么就沒有必要聯(lián)系BGP和IGP。這種情況下,AS內(nèi)的所有路由器擁有BGP路由的全部信息。IGP只用來在AS中路由,不再有BGP路由被導(dǎo)入成IGP。
如果路由器按此方式工作,它們必須能夠完成對路由表的循環(huán)查找。第一次查找將使用一條BGP路由來建立出口路由器,第二次查找將決定前往出口路由器的IGP路徑。
這種情形下,IGP不攜帶任何外部信息,所有BGP發(fā)言人一旦獲得路由的新信息,該AS內(nèi)的路由器將很快會(huì)聚。因?yàn)椴淮嬖跒镮GP的會(huì)聚延遲,一個(gè)應(yīng)用能廣播這些路由,而沒有延遲。
A.2.5 其他情況
有些AS的IGP,可能既無法傳輸BGP信息,也無法標(biāo)記外部路由(比如,RIP)。另外,封裝可能不可行或不被接受。這些情況下,以下兩條規(guī)則須被遵守:
(1). 如果邊界網(wǎng)關(guān)A從內(nèi)部對等體接收到信息聲稱某些目標(biāo)網(wǎng)絡(luò)不可達(dá),則它必須向所有外部對等體傳遞該信息。
(2). 如果邊界網(wǎng)關(guān)A從內(nèi)部對等體接收到關(guān)于某些可達(dá)目標(biāo)網(wǎng)絡(luò)X的信息,則它必須擁有到X的IGP路由,而且有足夠的時(shí)間使IGP路由會(huì)聚,否則無法將這些信息傳遞到任何外部對等體。
以上規(guī)則只說明了傳遞BGP路由信息到其他AS的必要(但不充分)條件。與標(biāo)記的IGP相比,這些規(guī)則不能保證,在傳遞路由到其他AS之前,到出口網(wǎng)關(guān)的內(nèi)部路由存在。
如果IGP會(huì)聚時(shí)間比某小值X還小,IGP和BGP不同步造成的時(shí)間窗也將小于X,那么,路由不穩(wěn)定是異常短暫的,這個(gè)問題就可以忽略。至于這個(gè)X的合理取值,尚待研究,但至少應(yīng)小于1秒。
如果IGP會(huì)聚時(shí)間無法忽略,就需要不同的方法。適合這種情形的機(jī)制和技術(shù)尚待深入研究
上一頁 [1] [2] [3] [4]
文章錄入:csh 責(zé)任編輯:csh相關(guān)文章
用非常規(guī)手段有效刪除Windows怪文件正文分析錯(cuò)誤
用非常規(guī)手段有效刪除Windows怪文件正文分析錯(cuò)誤...2007-09-09如何在Windows XP中執(zhí)行最干凈啟動(dòng)正文分析錯(cuò)誤
如何在Windows XP中執(zhí)行最干凈啟動(dòng)正文分析錯(cuò)誤...2007-09-09凈化網(wǎng)絡(luò)殺機(jī) 手工絞殺未知病毒
凈化網(wǎng)絡(luò)殺機(jī) 手工絞殺未知病毒...2007-09-09