本備忘錄的狀態(tài)
本文檔講述了一種互聯(lián)網(wǎng)社區(qū)的互聯(lián)網(wǎng)標(biāo)準(zhǔn)跟蹤協(xié)議,它需要進(jìn)一步進(jìn)行討論和建議以得到改進(jìn)。請參考最新版的"Internet正式協(xié)議標(biāo)準(zhǔn)" (STD1)來獲得本協(xié)議的標(biāo)準(zhǔn)化程度和狀態(tài)。本備忘錄的發(fā)布不受任何限制。
網(wǎng)絡(luò)工作小組 Y. Rekhter
RFC: 1772 T.J. Watson 研究中心,IBM 公司
廢止: 1655 P. Gross
種類: Standards Track MCI
編者
1995 年三月
邊界網(wǎng)關(guān)協(xié)議在互聯(lián)網(wǎng)中的應(yīng)用
(RFC 1772 Application of the Border Gateway Protocol in the Internet)
本備忘錄的狀態(tài)
本文檔講述了一種互聯(lián)網(wǎng)社區(qū)的互聯(lián)網(wǎng)標(biāo)準(zhǔn)跟蹤協(xié)議,它需要進(jìn)一步進(jìn)行討論和建議以得到改進(jìn)。請參考最新版的"Internet正式協(xié)議標(biāo)準(zhǔn)" (STD1)來獲得本協(xié)議的標(biāo)準(zhǔn)化程度和狀態(tài)。本備忘錄的發(fā)布不受任何限制。
摘要
本文檔,以及隨同文檔,"邊界網(wǎng)關(guān)協(xié)議4(BGP-4)",定義了互聯(lián)網(wǎng)自治系統(tǒng)間的路由協(xié)議。"邊界網(wǎng)關(guān)協(xié)議4(BGP-4)"論述BGP協(xié)議,而本文檔描述互聯(lián)網(wǎng)中BGP的用途。
關(guān)于BGP的進(jìn)展信息可以通過BGP郵件列表(bgp@ans.net)得到。
致謝
本文檔最初于1990年6月出版作為RFC 1164,由Jeffrey C.Honig(Cornell University),Dave Katz(MERIT),Matt Mathis(PSC),Yakov Rekhter(IBM) 和Jessica Yu(MERIT)合作寫作。
下列同仁也對RFC 1164作了重要貢獻(xiàn)——Guy Almes(ANS,后至Rice University),Kirk Lougheed(cisco Systems),HansWerner Braun(SDSC,后至MERIT),Sue Hares(MERIT)。
衷心感謝Bob Braden(ISI)對本文檔早先版本的評論。
本文檔的更新版本由IETF BGP工作組的Phill Gross(MCI)和Yakov Rekhter(IBM)起草。
John Moy(Proteon)參與了第七部分"所支持路由協(xié)議的必備集合"的編寫。
Scott Brim(Cornell University)參與了第八部分"其它外部路由協(xié)議間關(guān)系"的主體編寫。
本文檔的介紹有些是逐字摘自文獻(xiàn)[3]。
感謝Dan Long(NEARNET)和Tony Li(cisco System)對本版本的評論和注解。
Yakov Rekhter的工作,部分由國家科學(xué)基金資助(批準(zhǔn)號:NCR-9219216)。
1. 介紹
本備忘錄論述了邊界網(wǎng)關(guān)協(xié)議(BGP)[1]在互聯(lián)網(wǎng)環(huán)境中的應(yīng)用。BGP是自治系統(tǒng)間的路由協(xié)議。BGP交換的網(wǎng)絡(luò)可達(dá)性信息提供了足夠的信息來檢測路由回路并根據(jù)性能優(yōu)先和策略約束對路由進(jì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個主機地址,實在太少,而B類網(wǎng)絡(luò)允許最多65534個地址,卻又太大無法充分使用。
-互聯(lián)網(wǎng)路由器中路由表的增長使目前的軟件(和人們)無法有效管理。
-32位IP地址空間的耗竭。
很明顯,前兩個問題和最后一個問題可能分別在今后一兩年內(nèi)和三年內(nèi)變得急迫。無類別域間路由(CIDR)試圖解決這些問題,設(shè)計相應(yīng)機制來降低路由表和對新IP網(wǎng)絡(luò)分配需求的增長速度。它并沒有解決更具長期性的第三個問題,而是努力讓近期問題推遲使得互聯(lián)網(wǎng)仍能有效運作,同時著手遠(yuǎn)期的解決方案。
BGP-4對BGP-3做了擴展,支持路由信息的聚合及基于無類別域間路由體系(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é)點是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é)議和度量。在此,強調(diào)一下自治系統(tǒng)在本文檔中的含義,即使它采用多種IGP和度量,它的管理區(qū)別于其他 AS,其內(nèi)部路由是一致的,當(dāng)路由穿越它時,它在圖上視作一個節(jié)點。
每個AS由一個管理機構(gòu)管理,至少在外部看來它代表著該系統(tǒng)的路由信息。
2. BGP拓?fù)淠P?br>
當(dāng)我們說一個在兩個AS之間的連接時,意味著兩件事:
物理連接:兩個AS之間存在一條共享的數(shù)據(jù)鏈路子網(wǎng),并且在該子網(wǎng)上,每個AS至少有一臺自己的邊界網(wǎng)關(guān)路由器。因此,每個AS的邊界網(wǎng)關(guān)路由器可以轉(zhuǎn)發(fā)數(shù)據(jù)包到其他AS的邊界網(wǎng)關(guān)路由器,無需借助于AS內(nèi)到AS間的路由。
BGP連接:在各個AS的BGP發(fā)言人之間有一個BGP會話進(jìn)程,通過會話溝通路由,經(jīng)過聲明的AS到達(dá)某目標(biāo)網(wǎng)絡(luò)。
本文檔中,我們對構(gòu)成BGP連接的BGP發(fā)言人加以額外限制:他們必須是自己直接共享數(shù)據(jù)鏈路子網(wǎng)。因此,相鄰AS間的BGP會話無需AS內(nèi)或AS間的路由。超出本文范圍的案例可能與該限制不符。
因此,在每個連接中,每個AS擁有一個以上的BGP發(fā)言人和邊界網(wǎng)關(guān)路由器,這些BGP發(fā)言人和邊界網(wǎng)關(guān)路由器分布在共享數(shù)據(jù)鏈路子網(wǎng)上。注意到,BGP發(fā)言人不一定是邊界網(wǎng)關(guān)路由器,反之亦然。一條連接上一個AS的BGP發(fā)言人聲明的路徑可以被同一個共享子網(wǎng)上其他AS的邊界網(wǎng)關(guān)路由器使用,也就是非直接的鄰居是允許的。
一個AS內(nèi)的流量,要么是源于該AS,要么是終于該AS(也就是說,IP數(shù)據(jù)包的源IP或目的IP在該AS內(nèi))。符合以上描述的流量稱為"本地流量",否則稱為"過渡流量"。BGP使用的主要目的是控制過渡流量。
按照某AS如何處理過渡流量,AS可以分為以下幾類:
末端AS:只連接到一個其他AS。自然地,末端AS只運輸本地流量。
多宿主AS:連接到超過一個的其他AS,但不運輸過渡流量。
過渡AS:連接到超過一個的其他AS,可以運輸本地和過渡流量。
一個完整的AS path提供了有效和簡捷的方式來避免路由回路、消除伴隨距離向量算法的"計數(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可以運行其他的協(xié)議(比如,EGP)來與過渡AS交換網(wǎng)絡(luò)可達(dá)性信息。使用BGP的過渡AS將對這些信息做標(biāo)記,以表明其學(xué)習(xí)自BGP以外的方法。BGP不一定運行于末端或多宿主AS,這就不會對源于或終于末端AS或多宿主AS的數(shù)據(jù)包的AS間路由質(zhì)量產(chǎn)生負(fù)面影響。
然而,仍然建議在末端和多宿主AS上使用BGP。在這些情況下,BGP相比其他目前使用的協(xié)議(比如EGP),可以提供更優(yōu)的帶寬和性能。另外,這將減少默認(rèn)路由的使用,為多宿主AS的AS間路由提供更好選擇。
3.2 BGP的整體特性
整體水平上,BGP用來在多個自治系統(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間路由信息的兼容性,是一個重大問題,最后將在附錄A中詳細(xì)討論。
3.3 BGP鄰居關(guān)系
互聯(lián)網(wǎng)視作隨意連接的AS的集合。通過BGP直接連接的路由器就是BGP發(fā)言人。BGP發(fā)言人可以在同一AS內(nèi),也可以在不同AS內(nèi)。每個AS的BGP發(fā)言人互相通信,遵照每個AS建立的策略,交換網(wǎng)絡(luò)可達(dá)性信息。對某BGP發(fā)言人,如果與其他BGP發(fā)言人通信而且那個BGP發(fā)言人在不同的AS,則那個其他 BGP發(fā)言人稱為外部對等體,而如果在相同的AS內(nèi),則稱為內(nèi)部對等體。
在一個AS內(nèi)可以有許多BGP發(fā)言人并被認(rèn)為是需要的。通常,如果一個 AS與其他AS有多個連接,則需要多個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)用來在對等體之間運輸BGP信息。如果BGP使用通過一個干預(yù)的AS,則將使AS path信息無效。自治系統(tǒng)號必須在BGP中使用,用來標(biāo)明BGP發(fā)言人所在的自治系統(tǒng)。
4. 路由聚合的需要
當(dāng)路由信息由各部分聚合時,一致的BGP-4實現(xiàn)需要對其聲明。例如,一個在自治系統(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)這些地址不是同時全部可達(dá)的。
當(dāng)聚合的NLRI產(chǎn)生時,一致實現(xiàn)應(yīng)能給予聲明。
當(dāng)NLRI解聚合時,一致實現(xiàn)應(yīng)能給予聲明。
當(dāng)出現(xiàn)重疊路由時,一致實現(xiàn)應(yīng)能支持如下選項:
-安裝聚合和詳細(xì)的路由
-只安裝詳細(xì)路由
-安裝聚合路由
-均不安裝
一定的路由策略可能依賴于NLRI(比如,"研究"與"商業(yè)")。因此,一個運行路由聚合的BGP發(fā)言人,可能的情況下,應(yīng)該能認(rèn)知聚合NLRI時路由策略的潛在實現(xiàn)。
5. BGP的策略生成
BGP通過各種路由參數(shù)選擇和約束,實現(xiàn)策略。策略并不直接編入協(xié)議。而是,策略通過BGP的配置信息來實現(xiàn)。
BGP實現(xiàn)策略的途徑有,影響從多條路徑中的選擇,控制路由信息的下步傳遞。策略由AS的管理者決定。
路由策略與政治、安全或經(jīng)濟考慮有關(guān)。例如,如果一個AS不愿意將流量運輸?shù)狡渌鸄S,它可以制定策略來禁止。如下是一些能夠改變BGP使用的路由策略的例子:
1. 一個多宿主AS可以拒絕成為其他AS的過渡AS。(它只告知那些目標(biāo)網(wǎng)絡(luò)在自己AS內(nèi)部的路由。)
2. 一個多宿主AS可以指定成為幾個相鄰AS的過渡AS,也就是說,一部分而不是全部AS,可以把該多宿主AS作為過渡AS。(它只把它的路由信息告知被允許的AS。)
3. 一個AS向外運輸流量時,可以決定是否偏愛特定的AS。
BGP應(yīng)用可以控制許多性能相關(guān)的標(biāo)準(zhǔn):
1. 一個AS可以最少化過渡AS的數(shù)目。(AS path越短,越可能被采用。)
2. 過渡AS的權(quán)重。如果一個AS決定,兩個以上的AS path可以用來到達(dá)目標(biāo)網(wǎng)絡(luò),那么,AS可以使用多種方法來決定采納哪個候選AS path。一個AS的權(quán)重值由以下幾個因素決定:徑向距離,鏈路速度,容量,擁塞的趨勢,和運行質(zhì)量。這些性能值可以由BGP以外的方法決定。
3. 優(yōu)先考慮內(nèi)部路由,而不是外部路由。
為了一個AS的統(tǒng)一性,那些產(chǎn)自策略和/或正常路由選擇過程的等值路徑,必須以一致的方式解決。
BGP的基礎(chǔ),是這樣一個規(guī)則:一個AS只把自己使用的路由通知給相鄰的AS。該規(guī)則反映了目前互聯(lián)網(wǎng)常用的"一跳接一跳"的路由方式。
6. BGP的路徑選擇
BGP 發(fā)言人的一項主要任務(wù),是評價諸條從自身出發(fā)到那些用網(wǎng)絡(luò)前綴表達(dá)的目的地的路徑,從中選出最優(yōu),應(yīng)用合適的策略約束,然后將它通知給所有的BGP鄰居。關(guān)鍵問題是如何評價和比較這些不同的路徑。傳統(tǒng)的距離向量協(xié)議(比如RIP)中,每條路徑只有一個度量。因此,不同路徑的比較簡化為兩個值的比較。AS間路由的復(fù)雜性,源自人們在如何評價外部路由的問題上缺少共同認(rèn)可的度量。于是,每個AS擁有自己的一套對路徑的評價指標(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)不是這樣時,所有可用的路徑應(yīng)當(dāng)保存,當(dāng)主要路徑缺失時,保存能以最快的速度適應(yīng),(產(chǎn)碌鬧饕肪叮?。任簡柋簼}揮兄饕肪恫嘔岜還悴ァ?br/>
路徑選擇過程可以形式化為,對所有可用路徑及相對應(yīng)的目標(biāo)IP,定義完整的優(yōu)先級。定義這種優(yōu)先級的一種方法,是定義一個函數(shù),將每條完整的AS path映射成一個非負(fù)整數(shù),用來表示該路徑的優(yōu)先級。路徑選擇于是簡化為,將該函數(shù)應(yīng)用到所有可用路徑,再選擇最高的優(yōu)先級。
在真實的BGP實現(xiàn)中,為路徑分配優(yōu)先級的標(biāo)準(zhǔn)在配置信息中說明。
為路徑分配優(yōu)先級的過程源于以下幾個信息:
1. 整條AS path顯示的信息
2. 由AS path和BGP以外信息(比如,配置信息中的路由策略約束)引申出來的混合信息。
為路徑分配優(yōu)先級的可能的標(biāo)準(zhǔn)為:
-AS數(shù)目。AS越少,該條路徑越好。
-策略考慮。BGP對基于策略路由的支持,源于對分布式路由信息的控制。一個BGP發(fā)言人可能知道幾條策略約束(包括自身AS的內(nèi)外),進(jìn)行合適的路徑選擇。不遵從策略要求的路徑不被考慮。
-某些AS是否在路徑中存在。依靠BGP以外的信息,一個AS可以知道某些AS的一些性能特點(比如,帶寬,MTU,AS間徑向距離),然后選擇偏愛程度。
-路徑起源。由BGP學(xué)習(xí)而來的整條路徑(也就是說,路徑終點與路徑的上一個AS在BGP內(nèi)部)相比那些部分學(xué)習(xí)自EGP及其他方法的路徑,是更優(yōu)的。
-AS path子集。通往同一目的地,一個較長AS path的子集將受到偏愛。在該較短AS path中存在的任何問題都也是較長AS path的問題。
-鏈路動態(tài)。穩(wěn)定的路徑比不穩(wěn)定的路徑更受歡迎。注意,這個標(biāo)準(zhǔn)應(yīng)被小心使用,避免出現(xiàn)路由抖動。一般來說,任何依賴于動態(tài)信息的標(biāo)準(zhǔn)都可能引發(fā)路由不穩(wěn)定,所以應(yīng)謹(jǐn)慎對待。
7. 支持路由策略的必備集合
BGP策略以配置信息的形式實現(xiàn)。該信息不直接編入協(xié)議。因此,BGP可以提供非常復(fù)雜的路由策略。但是,并不要求所有的BGP實現(xiàn)支持這些策略。
我們不試圖將路由策略標(biāo)準(zhǔn)化使其適用于每個BGP實現(xiàn),強烈鼓勵所有的實現(xiàn)支持如下的路由策略集:
1. BGP實現(xiàn)應(yīng)允許一個AS控制向相鄰AS廣播由BGP學(xué)習(xí)來的路由。實現(xiàn)還應(yīng)支持對地址前綴大小的控制。實現(xiàn)還應(yīng)支持對自治系統(tǒng)大小的控制,不管該自治系統(tǒng)是起源,還是鄰居。如果某路由對某外部對等體按上述控制聲明,則需注意該路由不能向那個對等體通告。特別地,本地系統(tǒng)必須明確向那個對等體通告,該路由現(xiàn)在不可用。
2. BGP實現(xiàn)應(yīng)允許一個AS對某條路徑優(yōu)先考慮(當(dāng)存在多條可用路徑時)。實現(xiàn)至少具備以下相同功能,允許管理者對來自鄰居的路由設(shè)置優(yōu)先級。優(yōu)先級的大小應(yīng)在0到2^(31)-1之間。
3. BGP實現(xiàn)應(yīng)允許一個AS忽略某些在AS_PATH屬性中存在特定AS的路由。該功能的實現(xiàn),可以使用[2]中說明的技術(shù),設(shè)置這些AS的"weight"為"infinity"。路由選擇過程必須忽略那些"weight"為"infinity"的路由。
8. 與其他外部路由協(xié)議的關(guān)系
本部分建議的指導(dǎo)方針與[3]中陳述的指導(dǎo)方針一致。
一個AS應(yīng)通告它內(nèi)部目標(biāo)網(wǎng)絡(luò)的最小聚合及與實際使用的地址空間的關(guān)系。這可以被非BGP-4的AS的管理者用來決定從某條聚合路由可以解聚出多少路由。
一個攜帶ATOMIC_AGGREGATE路徑屬性的路由,不應(yīng)傳遞于BGP-3或EGP2,除非這種傳遞不出現(xiàn)路由NLRI的解聚。
8.1 與EGP2交換信息
本文檔對于BGP-4與EGP2間的路由信息交換,建議如下方針。
為過渡順利,一個BGP發(fā)言人EGP2和BGP-4都可以參與。因此,一個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ò)集合時,應(yīng)清楚潛在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入時,要求BGP發(fā)言人將相應(yīng)的網(wǎng)絡(luò)插入EGP2。本地系統(tǒng)將提供控制EGP2與BGP-4之間可達(dá)性信息交換的機制。特別地,當(dāng)把來自BGP-4的可達(dá)性信息插入EGP2 時,一個一致實現(xiàn)要求支持所有如下選項:
-插入默認(rèn)的(0.0.0.0),不傳遞其他NLRI
-允許受控的解聚,但只對特定路由;
-允許傳遞非聚合的NLRI
-允許只傳遞非聚合的NLRI
在一個參與BGP-4的BGP發(fā)言人和一個單純的EGP2發(fā)言人之間以EGP2交換路由信息的情況,只可能發(fā)現(xiàn)在域(自治系統(tǒng))邊界。
8.2 與BGP-3交換信息
本文檔對于BGP-4與BGP-3間的路由信息交換,建議如下方針。
為過渡順利,一個BGP發(fā)言人BGP-3和BGP-4都可以參與。因此,一個BGP發(fā)言人接收IP可達(dá)性信息,可能產(chǎn)自BGP-3,也可能產(chǎn)自BGP-4。
一個BGP發(fā)言人可能按如下方式將來自BGP-4的信息插入到BGP-3。
如果一條BGP-4路由的AS_PATH屬性帶有AS_SET路徑段,那么,BGP-3路由的AS_PATH屬性應(yīng)為將此AS_SET段視作 AS_SEQUENCE段,最后的AS_PATH為單純的一個AS_SEQUENCE。這個過程損失了set/sequence信息,但不影響預(yù)防路由回路,但可能影響策略,如果策略是建立在AS_PATH屬性的內(nèi)容或順序上的話。
把源自BGP-4的NLRI插入BGP-3,當(dāng)從BGP-4接收來的IP前綴代表連續(xù)的A/B/C類網(wǎng)絡(luò)集合時,應(yīng)清楚潛在的解聚信息。由BGP-4接收的NLRI代表IP子集,插入時,要求BGP發(fā)言人將相應(yīng)的網(wǎng)絡(luò)插入BGP-3。本地系統(tǒng)將提供控制BGP-3與BGP-4之間可達(dá)性信息交換的機制。特別地,當(dāng)把來自BGP-4的可達(dá)性信息插入BGP-3時,一個一致實現(xiàn)要求支持所有如下選項:
-插入默認(rèn)的(0.0.0.0),不傳遞其他NLRI
-允許受控的解聚,但只對特定路由;
-允許傳遞非聚合的NLRI
-允許只傳遞非聚合的NLRI
在一個參與BGP-4的BGP發(fā)言人和一個單純的BGP-3發(fā)言人之間以BGP-3交換路由信息的情況,只可能發(fā)現(xiàn)在自治系統(tǒng)邊界。在一個單獨的自治系統(tǒng)內(nèi)部,所有BGP發(fā)言人的會話必須要么是BGP-3,要么是BGP-4,不能是混合體。
9. 在虛擬交換線路上的運作
BGP使用在虛擬交換子網(wǎng)(SVC)上,被要求產(chǎn)生盡可能少的流量。特別地,可能被要求消除由周期性KEEPALIVE消息所產(chǎn)生的流量。BGP包含了一個機制,在虛擬交換線路(SVC)服務(wù)運作時,避免SVCs始終開啟,允許它終止周期性KEEPALIVE消息的發(fā)送。
本部分論述了如何在沒有周期性KEEPALIVE消息的條件下,使用智能的SVC管理,使SVC使用最少。所提議的方案也適用于"永久"線路,"永久"線路支持類似鏈路質(zhì)量監(jiān)測的特性,或者可以顯示請求來決定鏈路連接的狀態(tài)。
9.1 建立BGP連接
通過在OPEN消息中設(shè)定Hold Time為0來實現(xiàn)
9.2 線路管理器特性
線路管理必須具備足夠的功能來彌補周期性KEEPALIVE消息的缺失:
-必須能夠在失敗發(fā)生的可預(yù)見的有限時間內(nèi),確定鏈路層的不可達(dá)性。
-關(guān)于確定不可達(dá)性,應(yīng)該:
-開啟一個配置死寂的計數(shù)器(與典型的保持計數(shù)器值相比)。
-試圖重建鏈路層連接。
-如果死寂計數(shù)器終止,應(yīng)該:
-發(fā)送一個內(nèi)部線路DEAD指示給TCP。
-如果連接重建,應(yīng)該
-取消死寂計數(shù)器
-發(fā)送一個內(nèi)部線路UP指示給TCP。
9.3 TCP特性
TCP須做一點修改,來處理來自線路管理器的內(nèi)部通告:
-DEAD:清除發(fā)送隊列,取消TCP連接。
-UP:發(fā)送任何隊列數(shù)據(jù),或者允許向進(jìn)程傳遞TCP調(diào)用
9.4 混合特性
一些應(yīng)用可能無法保證BGP進(jìn)程和線路管理器統(tǒng)一工作;也就是說,當(dāng)一個停止或崩潰時,另一個仍獨立存在。
如果這是事實,在BGP進(jìn)程和線路管理器之間周期性的雙向握手就需要實現(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使用提供了一個起點,隨著BGP增長,它將提供更多高級和可管理的路由方法。
附錄A. BGP與IGP的關(guān)系
本部分概述了BGP與IGP交換路由信息的方法。這些方法此處不提議作為標(biāo)準(zhǔn)BGP使用的一部分。這些方法僅是信息補充。應(yīng)用在引入IGP信息時,可能需要考慮這些方法。
這是適用于一般IGP的概述信息。
BGP與某特定IGP的關(guān)系不在此部分討論。特定IGP的方法應(yīng)在其他文檔論述,在將來應(yīng)成為標(biāo)準(zhǔn)化用法。
概論
根據(jù)定義,所有過渡AS必須能運輸那些源于或終于該AS的流量。這要求在BGP和那個特定AS使用的內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)之間具有一定的聯(lián)系和協(xié)調(diào)。一般來說,源于外部AS的流量將同時穿越內(nèi)部網(wǎng)關(guān)(只支持IGP)和邊界網(wǎng)關(guān)(支持IGP和BGP)。所有內(nèi)部網(wǎng)關(guān)都通過IGP從一個以上的邊界網(wǎng)關(guān)那兒接收有關(guān)外部路由的信息。
依靠在一個AS內(nèi)傳播BGP信息的機制,BGP和IGP之間的一致性須得到特別關(guān)注,因為狀態(tài)的改變可能以不同的速度在AS 內(nèi)傳播??赡艹霈F(xiàn)時間窗,兩個時刻分別為:在某邊界網(wǎng)關(guān)(A)從相同AS內(nèi)的另一臺邊界網(wǎng)關(guān)(B)獲取新的BGP路由信息;AS的IGP能夠路由過渡流量到邊界網(wǎng)關(guān)(B)。在這兩個時刻之間,錯誤路由和"黑洞"均可能發(fā)生。
為了盡可能減輕這個路由問題,在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)運往外部目標(biāo)網(wǎng)絡(luò)的路由。換句話說,內(nèi)部路由須會聚一個合適的出口網(wǎng)關(guān),然后才能廣播通過該出口網(wǎng)關(guān)前往外部對等體的路由。
A.2 實現(xiàn)穩(wěn)定關(guān)系的方法
下面的討論概述了幾個能實現(xiàn)在AS內(nèi)BGP和IGP之間穩(wěn)定關(guān)系的技術(shù)。
A.2.1 通過IGP傳遞BGP信息
BGP 提供自己的機制在AS內(nèi)傳遞BGP信息,同樣,只要IGP支持全部路由信息的洪泛(提供分散BGP信息的機制)和一條通路的會聚(使得機制有效原子化),就可以用來傳輸BGP信息。如果一個IGP用來傳遞BGP信息,前述的異步時間將不復(fù)存在,因為AS內(nèi)部的BGP信息傳遞與IGP同步,IGP的會聚或多或少與新路由信息的到來同步。注意,IGP只運輸BGP信息,不對其解析或處理。
A.2.2 標(biāo)記的內(nèi)部網(wǎng)關(guān)協(xié)議
當(dāng)向外的路由在 AS內(nèi)傳遞時,一定的IGP可以用它們的出口點給它們做標(biāo)記。每個邊界網(wǎng)關(guān)應(yīng)使用同一的標(biāo)記聲明外部路由信息(通過BGP接收),不管這些路由信息是進(jìn)入 IGP還是傳遞到其他的內(nèi)部對等體(擁有相同AS號的對等體)。邊界網(wǎng)關(guān)產(chǎn)生的標(biāo)記必須唯一對應(yīng)那個特定的邊界網(wǎng)關(guān)——不同的邊界網(wǎng)關(guān)必須使用不同的標(biāo)記。
在一個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 封裝
封裝為運輸AS間過渡流量提供了最簡單的機制(關(guān)于IGP和BGP的聯(lián)系)。用這種方法,過渡流量封裝在一個地址為出口網(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)識符進(jìn)行聲明。為了路由流量到目標(biāo)X,AS內(nèi)的每個邊界網(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)。
因為封裝不依靠IGP來運輸外部路由信息,所以在BGP和IGP之間無需同步。
一些方法用來標(biāo)識包含封裝IP的數(shù)據(jù)包,如用IP協(xié)議類型碼,必須在使用前定義。
注意,如果一個封裝后的數(shù)據(jù)包的長度非常接近MTU,這個數(shù)據(jù)包將被那個執(zhí)行封裝的網(wǎng)關(guān)分片。
A.2.4 遍布的BGP
如果一個AS內(nèi)的所有路由器都是BGP發(fā)言人,那么就沒有必要聯(lián)系BGP和IGP。庵智榭魷攏珹S內(nèi)的所有路由器擁有BGP路由的全部信息。IGP只用來在AS中路由,不再有BGP路由被導(dǎo)入成IGP。
如果路由器按此方式工作,它們必須能夠完成對路由表的循環(huán)查找。第一次查找將使用一條BGP路由來建立出口路由器,第二次查找將決定前往出口路由器的IGP路徑。
這種情形下,IGP不攜帶任何外部信息,所有BGP發(fā)言人一旦獲得路由的新信息,該AS內(nèi)的路由器將很快會聚。因為不存在為IGP的會聚延遲,一個應(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路由,而且有足夠的時間使IGP路由會聚,否則無法將這些信息傳遞到任何外部對等體。
以上規(guī)則只說明了傳遞BGP路由信息到其他AS的必要(但不充分)條件。與標(biāo)記的IGP相比,這些規(guī)則不能保證,在傳遞路由到其他AS之前,到出口網(wǎng)關(guān)的內(nèi)部路由存在。
如果IGP會聚時間比某小值X還小,IGP和BGP不同步造成的時間窗也將小于X,那么,路由不穩(wěn)定是異常短暫的,這個問題就可以忽略。至于這個X的合理取值,尚待研究,但至少應(yīng)小于1秒。
如果IGP會聚時間無法忽略,就需要不同的方法。適合這種情形的機制和技術(shù)尚待深入研究。
參考
[1] Rekhter Y., and T. Li, "A Border Gateway Protocol 4 (BGP-4), RFC 1771, T.J. Watson Research Center, IBM Corp., cisco Systems,March 1995.
[2] Braun, H-W., "Models of Policy Based Routing", RFC 1104,Merit/NSFNET, June 1989.
[3] Fuller, V., Li, T., Yu, J., and K. Varadhan, "Supernetting: an Address Assignment and Aggregation Strategy", RFC1519,BARRNet,cisco,MERIT,OARnet,September 1993.
安全考慮
本備忘錄不討論安全問題
作者地址
Yakov Rekhter
T.J. Watson Research Center IBM Corporation
P.O. Box 704, Office H3-D40
Yorktown Heights, NY 10598
Phone: +1 914 784 7361
EMail: yakov@watson.ibm.co
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。