曾細(xì)堯
(??诮?jīng)濟(jì)學(xué)院工程技術(shù)學(xué)院 海南 ???570203)
Internet是由成千上萬(wàn)的網(wǎng)絡(luò)域或自治系統(tǒng)(Autonomous System,AS)構(gòu)成的,他們中的每一個(gè)都是處于同一管理控制下的網(wǎng)絡(luò)集合[1]。AS通過(guò)域間路由協(xié)議交換網(wǎng)絡(luò)可達(dá)性信息,構(gòu)造全球路由表以便數(shù)據(jù)分組在Internet上全球可達(dá)。Internet域間路由協(xié)議幾乎承載了Internet所有的活動(dòng),不論Internet的其它部分運(yùn)行得有多好,如果域間路由協(xié)議無(wú)法正常運(yùn)行,終端用戶感知的端到端性能都不可能達(dá)到最優(yōu)。
邊界網(wǎng)關(guān)協(xié)議(Border Gateway Protocol,BGP)[2]是目前唯一廣泛運(yùn)行于Internet的域間路由協(xié)議?;贐GP的域間路由系統(tǒng)中DFZ(Default-free-Zone)路由表的快速增長(zhǎng)是Internet目前面臨的關(guān)鍵挑戰(zhàn)之一,直接影響了Internet的性能。IAB關(guān)于路由和尋址的報(bào)告指出全球路由表的增長(zhǎng)呈現(xiàn)超線性增長(zhǎng),并將保持超線性增長(zhǎng)的趨勢(shì)[3]。因此原有的結(jié)構(gòu)已經(jīng)無(wú)法滿足不斷發(fā)展的Internet的需求。需要一種適應(yīng)Internet的快速增長(zhǎng),滿足不同網(wǎng)絡(luò)需求的新型路由結(jié)構(gòu)。為此提出了一種建立在分離核心網(wǎng)和邊界網(wǎng)基礎(chǔ)之上的域間路由尋址結(jié)構(gòu)IRAA(An Inter-domain Routing and Addressing Architecture)。IRAA 在數(shù)據(jù)包中加入特殊數(shù)據(jù)記錄可路由地址信息,當(dāng)包離開(kāi)核心網(wǎng)時(shí),部署的具有交換地址功能的路由器交換地址域中的信息,避免采用封裝和改變現(xiàn)有IPv4路由器。同時(shí),IRAA重用現(xiàn)有IPv4地址空間和擴(kuò)展現(xiàn)有協(xié)議,實(shí)現(xiàn)了核心域地址空間和邊界域地址空間之間的前向和反向轉(zhuǎn)換,避免引入一個(gè)全新的映射服務(wù)系統(tǒng)。
為了改善Internet擴(kuò)展性提出的域間路由尋址結(jié)構(gòu)IRAA的核心思想依然是分離供應(yīng)商網(wǎng)絡(luò)和客戶網(wǎng)絡(luò)的尋址和路由空間。在增長(zhǎng)速度相對(duì)緩慢,動(dòng)態(tài)變化也相對(duì)穩(wěn)定的傳送網(wǎng)絡(luò)組成的核心網(wǎng)中運(yùn)行域間路由協(xié)議,維持核心之間的可達(dá)性。在增長(zhǎng)速度快速,動(dòng)態(tài)變化劇烈的客戶網(wǎng)絡(luò)構(gòu)成的邊界網(wǎng)中運(yùn)行本地路由協(xié)議。在核心網(wǎng)和邊界網(wǎng)之間通過(guò)DNS實(shí)現(xiàn)Address和LRoc地址之間的映射服務(wù),以保證用戶數(shù)據(jù)包獲得全局可路由地后穿越核心網(wǎng)到達(dá)目的地。
IRAA中給構(gòu)成邊界網(wǎng)的每個(gè)客戶網(wǎng)絡(luò)的終端分配一個(gè)代表接口位置和終端身份名字的IPv4地址,稱(chēng)為EID(Endpoint Identifier)。EID是全球唯一的標(biāo)識(shí),代表終端的身份,作為會(huì)話標(biāo)識(shí),客戶網(wǎng)絡(luò)基于EID進(jìn)行本地路由。構(gòu)成核心網(wǎng)的傳送網(wǎng)絡(luò)分配具有拓?fù)湟饬x,全球唯一的可路由地址Rloc,在IRAA中稱(chēng)為RID(Routing Identifier)。RID代表網(wǎng)絡(luò)的位置標(biāo)識(shí),核心網(wǎng)依照RID路由。IRAA的結(jié)構(gòu)如圖1所示。
圖1 IRAA架構(gòu)
獨(dú)立的映射服務(wù)系統(tǒng)保存所有EID與RID之間的映射信息。與某個(gè)EID存在映射關(guān)系的RID與該EID所處的stub AS接入的transit AS相關(guān)。如果stub AS單宿主,那么位于該stub AS中的所有EID與該stub AS接入的這個(gè)transit AS的RID存在映射關(guān)系。如果stub AS是多宿主,那么該stub AS中的EID則與接入的多個(gè)transit AS的RID存在映射關(guān)系。每個(gè)多宿主transit AS可以獲取多個(gè)RID實(shí)現(xiàn)流量工程??梢?jiàn),EID與RID之間應(yīng)該是一對(duì)多的關(guān)系。
映射表中的表項(xiàng)表示為(EID,RID,Weight)。每個(gè)表項(xiàng)中的權(quán)重值weight表示擁有EID的stub AS對(duì)通過(guò)某個(gè)RID傳輸數(shù)據(jù)的偏好。這樣,當(dāng)stub AS和transit AS是單宿主時(shí),權(quán)重值weight=1。而當(dāng)stub AS是多宿主時(shí),根據(jù)對(duì)通過(guò)那個(gè)RID傳輸流量的偏好來(lái)設(shè)置權(quán)重的值。給定一個(gè)EID,當(dāng)映射表中存在多個(gè)與該地址向匹配的映射表項(xiàng)時(shí),根據(jù)weight決定選擇那個(gè)映射表項(xiàng)中的RID。
獨(dú)立的映射服務(wù)器負(fù)責(zé)映射表的管理,路由器不參與映射表項(xiàng)的管理。路由器在發(fā)送第一個(gè)數(shù)據(jù)報(bào)文時(shí)查詢映射表,獲得目的端點(diǎn)標(biāo)識(shí)EID相應(yīng)的路由表識(shí)RID即可。
映射表隔離邊界域地址空間與核心域地址空間,將邊界域中的路由信息轉(zhuǎn)移到了映射服務(wù)系統(tǒng)中。于是,域間路由表只需要存儲(chǔ)RID之間的可達(dá)性信息??梢允褂貌煌膶?shí)現(xiàn)建立域間路由表。
實(shí)際上,因?yàn)镮nternet中的transit AS數(shù)量相對(duì)較少,并且增長(zhǎng)緩慢,可以為每個(gè)transit AS分配幾個(gè)RID實(shí)現(xiàn)流量工程。在整個(gè)核心網(wǎng)中傳播RID的可達(dá)性信息,域間路由協(xié)議也沒(méi)有必要一定使用BGP,RID也不一定使用IP地址??梢允褂靡环N新型的巨量向量協(xié)議或是鏈路狀態(tài)協(xié)議在整個(gè)核心網(wǎng)中發(fā)布RID的可達(dá)性信息。每個(gè)transit AS中的域間路由表都保存關(guān)于所有RID的路由信息。在轉(zhuǎn)發(fā)包時(shí),依照RID查詢域間路由表獲得相應(yīng)的路由信息。
使用BGP作為域間路由協(xié)議建立域間路由表時(shí)RID必須是IP地址,因?yàn)锽GP協(xié)議基于IP地址。為了使得核心網(wǎng)路中的路由器依然保持根據(jù)IP地址轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文,IRAA依然使用現(xiàn)在的BGP協(xié)議建立域間路由表。BGP作為IRAA的域間路由協(xié)議在IRAA的核心網(wǎng)中傳播RID之間的可達(dá)性信息。核心網(wǎng)中的路由器接收到關(guān)于RID的路由信息后,將RID看作是IP地址前綴,正常地建立域間路由表。
圖2 數(shù)據(jù)報(bào)文格式
IRAA使用特殊負(fù)載在數(shù)據(jù)報(bào)文中攜帶額外的RID地址,數(shù)據(jù)報(bào)文格式如圖2所示。從網(wǎng)絡(luò)的角度來(lái)看加入特殊數(shù)據(jù)的報(bào)文依然是一個(gè)正常的IPv4數(shù)據(jù)包,因此核心網(wǎng)路由器轉(zhuǎn)發(fā)平臺(tái)不需要進(jìn)行任何變化。IRAA在transit AS中部署地址交換路由器ARR,如圖1所示。網(wǎng)絡(luò)中只有ARR具有識(shí)別特殊負(fù)載的能力,并執(zhí)行地址交換,使得數(shù)據(jù)報(bào)文IP頭部中的目的地地址轉(zhuǎn)換為可以在核心網(wǎng)中路由的RID地址。
如果數(shù)據(jù)報(bào)文的傳輸在stub AS內(nèi)部,不需要穿越核心網(wǎng),那么數(shù)據(jù)報(bào)文的轉(zhuǎn)發(fā)基于stub AS域內(nèi)路由協(xié)議建立的本地路由表。邊界網(wǎng)路由器如果發(fā)現(xiàn)數(shù)據(jù)報(bào)文中的兩個(gè)RID信息都是本地的RID,那么就依照本地路由表將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到目的主機(jī)。
近些年,國(guó)家對(duì)于耕地保護(hù)引起了高度重視,為更好促進(jìn)耕地管理,從簡(jiǎn)單的數(shù)量管理轉(zhuǎn)變?yōu)閿?shù)量和質(zhì)量并重管控。在全面進(jìn)行耕地質(zhì)量等級(jí)測(cè)量工作時(shí),詳細(xì)了解年度內(nèi)土地資源現(xiàn)狀改變與耕地質(zhì)量等級(jí)改變狀況,為土地管理提供服務(wù),給建立相應(yīng)的耕地保護(hù)制度帶來(lái)依據(jù),提高耕地管理質(zhì)量。
如果數(shù)據(jù)報(bào)文的傳輸需要穿越核心網(wǎng),那么數(shù)據(jù)報(bào)文就被stub AS中路由器按照默認(rèn)路由將數(shù)據(jù)轉(zhuǎn)發(fā)到相應(yīng)的transit AS的ARR?;谟蜷g路由表的數(shù)據(jù)報(bào)文傳輸過(guò)程如下:
1)發(fā)送數(shù)據(jù)報(bào)文的源主機(jī)查詢映射表系統(tǒng),獲取目的主機(jī)的RID映射信息,并根據(jù)權(quán)重值選擇一個(gè)RID作為目的主機(jī)路由標(biāo)識(shí)RIDdst。同時(shí)獲取自己的RID,也根據(jù)權(quán)重值選擇一個(gè)作為源主機(jī)路由標(biāo)識(shí)RIDsrc。
2)源主機(jī)發(fā)送 Source EID 地址是 EIDsrc,Destination RID 是 RIDdst,Source RIDsrc和Destination EID是EIDdts的數(shù)據(jù)報(bào)文;
3)數(shù)據(jù)報(bào)文中的RIDrsc屬于本地,RIDdst不屬于本地stub AS中,根據(jù)本地路由表中的默認(rèn)路由信息將報(bào)文路由到源 transit AS的ARRsrc。
4)ARR將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到核心網(wǎng),核心網(wǎng)根據(jù)域間路由表將數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)到擁有RIDdst的目的transit AS。
5)目的transit AS中的路由器發(fā)現(xiàn)RIDdst屬于自己,于是將包轉(zhuǎn)發(fā)到ARRdst。
6)ARRdst發(fā)現(xiàn)數(shù)據(jù)報(bào)文屬于本地stub AS,首先將Destination RID與Destination EID中的地址交換,其他保持不變。然后依照Destination EID將包轉(zhuǎn)發(fā)到目的stub AS。
7)目的Stub AS發(fā)現(xiàn)RIDrsc不屬于本地,于是依照按照IP數(shù)據(jù)報(bào)文中的目的地址將包轉(zhuǎn)發(fā)到目的終端主機(jī)。
因?yàn)槟康闹鳈C(jī)在接收到的數(shù)據(jù)報(bào)文中獲得了雙方的EID和RID信息,目的主機(jī)在發(fā)送應(yīng)答數(shù)據(jù)報(bào)文時(shí)就不需要再次查詢映射系統(tǒng),所以應(yīng)答數(shù)據(jù)報(bào)的傳輸過(guò)程重復(fù)2-8。
IRAA中域間路由器只需要知道RID之間的可達(dá)性。Transit AS的數(shù)量遠(yuǎn)少于stub AS,并且它的增長(zhǎng)趨勢(shì)更加緩慢。測(cè)試顯示transit AS僅占所有AS的20%,transit AS的增長(zhǎng)率是所有AS的1/5。雖然沒(méi)有transit AS需要根據(jù)自己的規(guī)模和流量工程的需要通告多個(gè)RID,但是RID的多少與它支持的stub AS數(shù)量無(wú)關(guān),并且與接入它的stub AS多宿主或是流量工程都無(wú)關(guān)。
如果一個(gè)transit AS是單宿主,只需要通告一個(gè)RID即可。如果transit AS多宿主,根據(jù)自己的需要平均通告了n個(gè)RID。根據(jù)RouteViews[4]數(shù)據(jù)分析結(jié)果,2008年3月,多宿主transit AS總數(shù)量是4277個(gè),多宿主比例是76.268,平均接入的上層transit AS數(shù)量是3.297個(gè),于是可知IRAA的路由表表項(xiàng)總數(shù)應(yīng)該是11,771=4277×0.76286×3.297+4277×(1-0.76286)條。 在 2008 年 3 月 Internet域間路由表表項(xiàng)已經(jīng)達(dá)到了253.750條,可見(jiàn)IRAA使得域間路由表表項(xiàng)縮減了一個(gè)數(shù)量級(jí)。
路由表的增長(zhǎng)給域間路由系統(tǒng)帶來(lái)很大的擴(kuò)展壓力。但是路由表的增長(zhǎng)并不是唯一的擴(kuò)展問(wèn)題,還有一個(gè)同樣重要的問(wèn)題就是系統(tǒng)的處理負(fù)載壓力。處理負(fù)載主要包括處理更新和維護(hù)路徑。
分離核心域和邊界域之后,到達(dá)邊界域中終端的路徑信息由另外的映射服務(wù)系統(tǒng)維護(hù),核心域中的路由器不需要參與邊界域中路徑信息的建立和維護(hù)。另一方面,分離后發(fā)生在邊界域中的動(dòng)態(tài)變化和stub AS的變化都不會(huì)影響到核心域中的路由器。假設(shè)transit AS和stub AS產(chǎn)生的更新消息分別是UTransit和UStub,基于BGP的域間路由系統(tǒng)中路由更新數(shù)量就是UTransit和UStub之和,而在IRAA中僅僅出現(xiàn)UTransit產(chǎn)生的更新消息。Internet中大部分的更新是由不穩(wěn)定的邊界域產(chǎn)生的,可見(jiàn)IRAA可以有效地減少需要處理的更新消息數(shù)量。
在IRAA中核心網(wǎng)絡(luò)之間只交換基于Locator的路由信息,基于Identifier的路由信息在邊界網(wǎng)絡(luò)內(nèi)部維護(hù)。采用這種方式可以大大減少DFZ中路由器的路由表大小,也就是緩解了路由可擴(kuò)展性壓力。另外在一個(gè)AS內(nèi)部的路由變化不會(huì)被傳播到整個(gè)Internet中,增強(qiáng)了路由穩(wěn)定性,也減少了DFZ中路由器處理的更新數(shù)量。重用現(xiàn)有IPv4地址空間和擴(kuò)展現(xiàn)有協(xié)議讓IRAA具有良好的向后兼容性,也就是可以增量部署。
[1]S.Halabi and D.McPherson,Internet Routing Architecture[M].2ed ed.Cisco Press,2000.
[2]Rekhter Y,Li T.A Border Gateway Protocol 4(BGP-4)[S].RFC 1771,Mar.1995.
[3]Meyer D.,Zhang L.,Fall K.Reprot from the IAB workshop on routing and addressing[EB/OL],RFC 4984,2007.
[4]The RouteViews Project[EB/OL],http://www.routeviews.org/.