本備忘錄狀態
ThisdocumentspecifiesanInte.netstandardstrackprotocolforthe
Internetcommunity,andrequestsdiscussionandsuggestionsfor
improvements.Pleaserefertothecurrenteditionofthe"Internet
OfficialProtocolStandards"(STD1)forthestandardizationstate
andstatusofthisprotocol.Distributionofthismemoisunlimited.
版權聲明
Copyright(C)TheInternetSociety(2000).AllRightsReserved.
摘要
BGP(邊界網關協議)是一種設計用于TCP/IP因特網的AS(自治系統)間的路
由協議。目前在因特網中,BGP部署被配置成在一個單一自治系統中的所有BGP報告
者必須全互連,并且任意外部的路由信息必須被重新傳輸到在此自治系統內的所有的其
他的路由器。這里出現了一個嚴厲的規模性的問題,[2,3]已經詳細記錄了這些問題,
并且有一些可選擇的建議。
本文檔敘述了使用和設計一種叫做“路由反射”的方法來緩和“全互連”IBGP的
需要。
目錄
1.簡介 2
2.設計標準 2
3.路由反射 3
4.術語和概念 4
5.操作 5
6.冗余的路由反射器 5
7.避免路由信息環回 5
8.實施方面的考慮 6
9.配置和執行方面的考慮 6
10.安全方面的考慮 7
1.簡介
目前在因特網中,BGP部署被配置成在一個單一自治系統中的所有BGP報告者必
須全互連,并且任意外部的路由信息必須被重新傳輸到在此自治系統內的所有的
其他的路由器。對于在一個自治系統中的n個BGP報告者而言,需要維護n*(n-1)/2
個獨立的IBGP對話。因為當前許多因特網網絡通常存在大量的IBGP報告者,每個報
告者間相互交換大容量的路由信息,所以“全互連”的要求明顯不好調節。
在[2,3]中詳細記錄了這個規模性問題,并有一些被用于緩解這個問題的建議。
本文檔闡述了另一種用于緩解“全互連”的可選方案叫做“路由反射”。這個方法允許
一個BGP報告者(叫做“路由反射器”)廣播IBGP學得的路由給某些IBGP對等方。
本文檔闡述了對通常理解的IBGP概念的一個改變,并且增加了兩個新的可選的過渡
BGP屬性來防止在路由更新中的環回。
本文檔是RF1966的一個修訂版,并且它包括了基于路由反射的部署經驗的編輯
修改、闡明和校正。
2.設計標準
路由反射被設計為滿足下列標準:
。簡單化
任何的改變必須既易于理解又易于配置。
。容易過渡
必須在不需改變拓撲或自治系統的情況下,能從一個全互連配置過渡到路由
反射。這是一項效果不好的對[3]中建議的技術的管理開支。
。兼容性
必須在不丟失任何BGP路由信息的情況下,可以使得不兼容RR的IBGP對等繼
續成為原始自治系統或域的一部分。
這些標準受到有許多外部連接的一個非常大和拓撲復雜的網絡的操作經驗的驅動。
3.路由反射
路由反射的基本概念非常簡單。讓我們考慮下面圖1中敘述的簡單例子。
+-------++-------+
||IBGP||
|RTR-A|--------|RTR-B|
||||
+-------++-------+
\/
IBGP\ASX/IBGP
\/
+-------+
||
|RTR-C|
||
+-------+
圖1: 全互連IBGP
在ASX自治系統中有三個IBGP報告者(路由器RTR-A,RTR-B,RTR-C)。根據
現存的BGP模型,如果A收到一個外部路由且它被選為最佳路徑,它必須廣播此路由
給B、C。B、C(作為IBGP報告者)將不再廣播此IBGP學得的路由給其它IBGP報告
者。
如果此規則被放寬,C被允許廣播IBGP學得的路由給IBGP對等,那么它將可以
重播(或反射)這條從A學得得路由給B,反之亦然。這就消除了在A、B間存在IBGP
對話得必要,如下圖2所示。
+-------++-------+
||||
|RTR-A||RTR-B|
||||
+-------++-------+
\/
IBGP\ASX/IBGP
\/
+-------+
||
|RTR-C|
||
+-------+
圖2: 路由反射IBGP
這個路由反射方案就是基于這個基本原理。
4.術語和概念
我們使用術語“路由反射”來敘述一個IBGP報告者廣播一條IBGP學得得路由給另一
個IBGP對等的過程。這樣的一個IBGP報告者被稱為一個“路由反射器“,并且這樣一條
路由被稱為一個被反射的路由。
一個路由反射器的內部對等可以被分為兩個組:
1) 客戶對等
2) 非客戶對等
一個路由反射器不僅反射這些組間的路由,還可以反射客戶對等間的路由。一個路由反
射器和它的客戶對等一起構成一個簇。非客戶對等必須全互連而客戶對等則不必。圖3畫出
的一個簡例概括了使用上述注釋的術語的基本路由反射器的構件。
/--------------
|Cluster|
+-------++-------+
||||||
|RTR-A||RTR-B|
||Client||Client||
+-------++-------+
|\/|
IBGP\/IBGP
|\/|
+-------+
||||
|RTR-C|
||RR||
+-------+
|/\|
-----/---\------/
IBGP/\IBGP
+-------++-------+
|RTR-D|IBGP|RTR-E|
|Non-|---------|Non-|
|Client||Client|
+-------++-------+
Figure3:路由反射器構件
5.操作
當一個路由反射器收到一條路由時,它基于它的路徑選擇規則來選擇最佳路徑。在
選擇了最佳路徑后,它必須根據它接收的最佳路徑所來自的對等的類型來進行下列操
作:
1) 從一個非客戶對等來的路由
反射到全部的客戶對等。
2) 從一個客戶對等來的路由
既反射到全部的非客戶對等,也反射到客戶對等。(從而客戶對等不需要全互
連)。
一個自治系統可以有許多個路由反射器。一個路由反射器將其他的路由反射器作為
任意其他的BGP報告者對待。一個路由反射器也可以被配置為其他路由反射器的一個
客戶組或非客戶組。
在一個簡單配置中,主干可以被分為許多個簇。每個路由反射器可以被配置作為其
他路由反射器的非客戶對等(那么全部路由反射器將是全互連)??蛻魞H和它們
同一簇的路由反射器維持IBGP對話。由于路由反射,全部的BGP報告者將收到被反
射的路由信息。
在一個自治系統中可能存在不理解路由反射器概念的BGP報告者(讓我們稱之為
傳統的BGP報告者)。路由反射器方案允許這些傳統的BGP報告者共存。傳統的BGP
報告者可以是非客戶組的成員也可以是客戶組的成員。這使得易于逐漸從當前IBGP模
式過渡到路由反射模式??梢酝ㄟ^將單一一個路由器配置為指定的路由反射器、并且配
置其他的路由反射器和它們的客戶為普通的IBGP對等來開始產生一個簇。另外的簇也
可以逐漸產生。
6.冗余的路由反射器
通常一個簇的客戶只有單一一個路由反射器。在次情況下,這個簇將由這個路由反
射器的ROUTER_ID來標識。但是,這意味著單點故障將全簇故障,因此同一簇中需
要
多個路由反射器。在同一簇中的全部路由反射器必須用一個4字節的CLUSTER_ID來
配置,從而一個路由反射器可以辨認出來自同一簇的其他路由反射器的路由。
7.避免路由信息環回
當一條路由被反射時,它可能因為不正確的配置導致路由的再傳播環回。路由反射
方法定義了下列屬性來檢測和避免路由信息環回:
ORIGINATOR_ID
ORIGINATOR_ID是一個新的、可選的、非過渡性的類型碼為9的BGP屬性。這
個屬性有4字節長,將由一個路由反射器在反射一條路由時產生。這個屬性將搭載本地
自治系統中的路由的原始方的ROUTER_ID。如果一個ORIGINATOR_ID已經存在,
BGP
報告者將不能產生一個ORIGINATOR_ID屬性??梢宰R別這個屬性的路由器將忽略所
接
收的一條路由的ROUTER_ID,不將它作為ORIGINATOR_ID。
CLUSTER_LIST
CLUSTER_LIST是一個新的、可選的、非過渡性的類型碼為10的BGP屬性。這
是一個CLUSTER_ID值的序列表,表示這條路由通過的反射路徑。它被如下編碼:
012345678901234567890123
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Attr.Flags|Attr.TypeCode|Length|value...
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
此處Length代表字節數。
當一個路由反射器反射一條路由時,它必須預先附加本地的CLUSTER_ID給
CLUSTER_LIST。如果CLUSTER_LIST是空的,路由反射器就必須產生一個新的
CLUSTER_LIST。使用這個屬性路由反射器就可以辨認出因為錯誤配置被環回到同一
簇
的路由信息。如果在CLUSTER_LIST中發現本地的CLUSTER_ID,將不再傳播此路由
信息。
8.實施方面的考慮
必須注意的是,要確保當在路由反射器和客戶及非客戶對等之間交換網絡路由信息
時,不是上述定義的BGP路徑屬性能通過配置來被修改。這些修改可能潛在的導致路由
環回。
此外,當一個路由反射器反射路由時,它將不能修改下列的路徑屬性:NEXT_HOP,
AS_PATH,LOCAL_PREF,MED。它們的修改可能潛在的導致路由環回。
9.配置和執行方面的考慮
BGP協議沒有為一個客戶提供用于將自己動態的標識為一個路由反射器的客戶的
方
法。要達到這個目的的最簡單的方法是手工配置。
路由反射方法可解決規模問題的一個關鍵是路由反射器總結了路由信息并且僅反
射
它的最佳路徑。
MED和IGP權值都可以影響BGP路由選擇。因為MED通常不可以比較而且IGP
權值因每個路由器的不同而不同。對于某個路由反射拓撲,路由反射方法進行路由選擇
的結果可能和完全IBGP網狀連接方法得到的不同。為了保證它們相同,需要保證路由
反射器從不強制基于由于它們的客戶的IGP權值不同而顯著不同的IGP權值、或是基
于
不可比較的MED來執行BGP路由選擇。前者可以通過配置簇內IGP權值而非簇間IGP
權值來得到。后者則可以通過:
?!≡谝粋€邊界路由器上設置一個路由的本地選擇權來反射MED值。
?!』蛘叽_保當此AS_PATH長度值被用作一個路由選擇標準時,來自不同的自治
系統的AS_PATH長度值不同。
?!』蛘咄ㄟ^基于這個路由反射器所用于決定最佳路徑的策略來配置團體。
有人會爭辯說最后一個要求太嚴了,在一些情況下不實際。有人會進一步爭辯說既
然不會有路由環回,那么就不必強迫路由反射的路由選擇結果和完全IBGP網狀連接方
法相同。
為了防止路由環回和保持一致路由的目的,在設計一個路由反射拓撲時必須仔細考
慮該網絡的拓撲。通常,當對于一個前綴存在條路徑時,此路由反射拓撲應該和這個網
絡拓撲相一致。一個常用的方法就是基于POP反射,每個POP在POP中維護它自己的
路由反射器所服務的客戶,并且全部路由反射器時全互連的。此外,為了優化POP內
路由,在每個POP中的反射器的客戶常常全互連,并且POP內IGP權值被配置優于
POP間IGP權值。
10.安全方面的考慮
這里對BGP屬性的擴展不改變現存的IBGP內在的基本安全結論。
11.鳴謝
TheauthorswouldliketothankDennisFerguson,JohnScudder,Paul
TrainaandTonyLiforthemanydiscussionsresultinginthiswork.
ThisideawasdevelopedfromanearlierdiscussionbetweenTonyLi
andDimitriHaskin.
Inaddition,theauthorswouldliketoacknowledgevaluablereview
andsuggestionsfromYakovRekhteronthisdocument,andhelpful
commentsfromTonyLi,RohitDube,andJohnScudderonSection9,and
fromBruceCole.
12.參考文獻
[1]Rekhter,Y.andT.Li,"ABorderGatewayProtocol4(BGP-4)",
RFC1771,March1995.
[2]Haskin,D.,"ABGP/IDRPRouteServeralternativetoafullmesh
routing",RFC1863,October1995.
[3]Traina,P.,"LimitedAutonomousSystemConfederationsforBGP",
RFC1965,June1996.
[4]Bates,T.andR.Chandra,"BGPRouteReflectionAnalternative
tofullmeshIBGP",RFC1966,June1996.
[5]Heffernan,A.,"ProtectionofBGPSessionsviatheTCPMD5
SignatureOption",RFC2385,August1998.
13.作者地址
TonyBates
CiscoSystems,Inc.
170WestTasmanDrive
SanJose,CA95134
EMail:tbates@cisco.com
RaviChandra
RedbackNetworksInc.
350HolgerWay.
SanJose,CA95134
EMail:rchandra@redback.com
EnkeChen
RedbackNetworksInc.
350HolgerWay.
SanJose,CA95134
EMail:enke@redback.com
附錄:與RFC1966的比較
Severalterminologiesrelatedtoroutereflectionareclarified,and
thereferencetoEBGProutes/peersareremoved.
Thehandlingofaroutinginformationloop(duetoroutereflection)
byareceiverisclarifiedandmademoreconsistent.
TheadditionofaCLUSTER_IDtotheCLUSTER_LISThasbeenchanged
from"append"to"prepend"toreflectthedeployedcode.
Thesectionon"ConfigurationandDeploymentConsiderations"hasbeen
expandedtoaddressseveraloperationalissues.
全部版權聲明
Copyright(C)TheInternetSociety(2000).AllRightsReserved.
Thisdocumentandtranslationsofitmaybecopiedandfurnishedto
others,andderivativeworksthatcommentonorotherwiseexplainit
orassistinitsimplementationmaybeprepared,copied,published
anddistributed,inwholeorinpart,withoutrestrictionofany
kind,providedthattheabovecopyrightnoticeandthisparagraphare
includedonallsuchcopiesandderivativeworks.However,this
documentitselfmaynotbemodifiedinanyway,suchasbyremoving
thecopyrightnoticeorreferencestotheInternetSocietyorother
Internetorganizations,exceptasneededforthepurposeof
developingInternetstandardsinwhichcasetheproceduresfor
copyrightsdefinedintheInternetStandardsprocessmustbe
followed,orasrequiredtotranslateitintolanguagesotherthan
English.
Thelimitedpermissionsgrantedaboveareperpetualandwillnotbe
revokedbytheInternetSocietyoritssuclearcase/" target="_blank" >ccessorsorassigns.
Thisdocumentandtheinformationcontainedhereinisprovidedonan
"ASIS"basisandTHEINTERNETSOCIETYANDTHEINTERNETENGINEERING
TASKFORCEDISCLAIMSALLWARRANTIES,EXPRESSORIMPLIED,INCLUDING
BUTNOTLIMITEDTOANYWARRANTYTHATTHEUSEOFTHEINFORMATION
HEREINWILLNOTINFRINGEANYRIGHTSORANYIMPLIEDWARRANTIESOF
MERCHANTABILITYORFITNESSFORAPARTICULARPURPOSE.
致謝
FundingfortheRFCEditorfunctioniscurrentlyprovidedbythe
InternetSociety