欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用策略流實(shí)現(xiàn)不同因特網(wǎng)協(xié)議數(shù)據(jù)包轉(zhuǎn)發(fā)的方法和設(shè)備的制作方法

文檔序號(hào):7878782閱讀:240來(lái)源:國(guó)知局
專利名稱:用策略流實(shí)現(xiàn)不同因特網(wǎng)協(xié)議數(shù)據(jù)包轉(zhuǎn)發(fā)的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種數(shù)字通信設(shè)備,特別涉及一種數(shù)據(jù)包轉(zhuǎn)發(fā)的方法和設(shè)備,其采用策略流方式在同一物理管道中同時(shí)支持IPv4和IPv6轉(zhuǎn)發(fā)。
背景技術(shù)
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,現(xiàn)有的IPv4網(wǎng)絡(luò)的許多缺陷逐漸暴露出來(lái),其中最突出的是IP地址空間將被耗盡和主干路由表不斷增長(zhǎng)的問(wèn)題。按照目前互聯(lián)網(wǎng)的發(fā)展速度,IPv4地址將在2005至2010年間分配完畢。為了徹底解決目前IPv4遇到的問(wèn)題并對(duì)未來(lái)的應(yīng)用提供更好的支持,Intemet工程組(IETF)的IPng工作組(IPng Working Group)提出了修改IP協(xié)議的建議。新的建議是IP的第6個(gè)版本,因此也稱為IPv6。IPv6具有長(zhǎng)達(dá)128位的地址空間,可以徹底解決IPv4地址資源不足的問(wèn)題。除此之外,IPv6還采用分級(jí)地址模式、高效IP包頭、服務(wù)質(zhì)量、主機(jī)地址自動(dòng)配置、認(rèn)證和加密等多項(xiàng)技術(shù)。
此外,第三代移動(dòng)通信3GPP和3GPP2已經(jīng)把IPv6規(guī)定為未來(lái)的移動(dòng)網(wǎng)絡(luò)核心技術(shù)。由于移動(dòng)通信用戶的增長(zhǎng)要比固定網(wǎng)用戶快得多,特別是各種具有聯(lián)網(wǎng)功能的移動(dòng)終端的迅猛發(fā)展,使得在推進(jìn)IPv6的過(guò)程中,移動(dòng)網(wǎng)起著先導(dǎo)作用,固定網(wǎng)會(huì)隨后跟進(jìn)。
有關(guān)專家預(yù)測(cè),到2010年,和IPv6相關(guān)的產(chǎn)業(yè)規(guī)模將至少達(dá)到200億美元。由于IPv6技術(shù)具有巨大的市場(chǎng)前景,全球各個(gè)國(guó)家展開了對(duì)IPv6的研究,并取得一定的進(jìn)展。在日本、歐洲和美國(guó),各大公司分別推出了基于IPv6的路由器,并開始了試驗(yàn)網(wǎng)絡(luò)的搭建。而在中國(guó)由于互聯(lián)網(wǎng)用戶增長(zhǎng)迅速,中國(guó)政府也意識(shí)到了IPv6的重要性,在863計(jì)劃和國(guó)家計(jì)委的項(xiàng)目中也對(duì)IPv6的研發(fā)和部署進(jìn)行了大力支持。
如何完成從現(xiàn)有的IPv4到IPv6的轉(zhuǎn)換是IPv6發(fā)展需要解決的第一個(gè)問(wèn)題?,F(xiàn)有的幾乎每個(gè)網(wǎng)絡(luò)及其連接設(shè)備都支持IPv4,因此要想一夜間就完成從IPv4到IPv6的轉(zhuǎn)換是不切實(shí)際的。IPv6必須能夠支持和處理IPv4體系的遺留問(wèn)題。因此,在可預(yù)見(jiàn)的將來(lái),能否實(shí)現(xiàn)IPv4向IPv6的平滑的過(guò)渡將是決定IPv6能否大規(guī)模商用的最緊要的問(wèn)題。而解決這一問(wèn)題的關(guān)鍵就在于如何在網(wǎng)絡(luò)設(shè)備上實(shí)現(xiàn)在同一個(gè)物理管道中進(jìn)行IPv4和IPv6轉(zhuǎn)發(fā)的共存。
下面描述本發(fā)明涉及內(nèi)容的原有解決方案及不足。
首先描述基于數(shù)據(jù)包的IP轉(zhuǎn)發(fā)的問(wèn)題和不足。
在現(xiàn)有的網(wǎng)絡(luò)設(shè)備中,絕大多數(shù)采用了基于包的IP轉(zhuǎn)發(fā)。傳統(tǒng)的路由查找是基于目的IP地址的最長(zhǎng)匹配查找,即在路由中找到一個(gè)和目的IP地址前綴最長(zhǎng)的匹配條目。例如在路由表(表1)中有以下三條條目表1路由表

如果有一個(gè)數(shù)據(jù)包,它的前12個(gè)bit為01010110111,則它將會(huì)匹配P1,從Ethemet 1/1中發(fā)出。而如果它的前12個(gè)bit為0101101011,則它會(huì)匹配前綴P3,從FDDI 3/1中發(fā)出。在最常用的最長(zhǎng)前綴匹配方案中,主要是基于Radix Trie表的查找方案,這種算法實(shí)現(xiàn)起來(lái)較為簡(jiǎn)單,但效率較低,在最差的情況下,需要32或128次內(nèi)存訪問(wèn)(分別對(duì)應(yīng)于IPv4或IPv6)。而某些改進(jìn)的算法中,查找的效率大為提高,但仍然需要O(log2W)次,其中W為IP地址的bit位數(shù)。也即如果在IPv4情況下需要5次,而在IPV6情況下需要8次。
這種基于最長(zhǎng)匹配的的查找方式,無(wú)法采用同一張表來(lái)IPv4/IPv6共存的環(huán)境,必須采用多張路由表來(lái)分別支持IPv4和IPv6的查找。這樣就導(dǎo)致了查找效率的低下和設(shè)備開發(fā)的困難。此外,最長(zhǎng)匹配方式無(wú)法針對(duì)用戶的每個(gè)流進(jìn)行處理,導(dǎo)致運(yùn)營(yíng)商難以提供增值業(yè)務(wù)和保證用戶流的QoS。
接下來(lái)描述MPLS轉(zhuǎn)發(fā)的問(wèn)題和不足。
MPLS技術(shù)是目前流行的IP交換技術(shù),它目前也被用來(lái)解決IPv4、IPv6轉(zhuǎn)發(fā)和服務(wù)質(zhì)量問(wèn)題。所謂MPLS,即多協(xié)議標(biāo)記交換。標(biāo)記交換,指的是底層的轉(zhuǎn)發(fā)機(jī)制采用了簡(jiǎn)單的標(biāo)記交換,而標(biāo)記將作為交換的標(biāo)識(shí)。當(dāng)標(biāo)記交換以ATM或FR(幀中繼)作為其鏈路層協(xié)議時(shí),標(biāo)記也相應(yīng)采用VPI/VCI或DLCI。當(dāng)標(biāo)記交換的鏈路層是FDDI、Ethernet或PPP時(shí),因?yàn)樗鼈冊(cè)械母袷街型耆痪哂袠?biāo)記信息,必須加上額外的封裝,標(biāo)記交換采用的是Shim的格式。
MPLS采用拓?fù)潋?qū)動(dòng)的二層轉(zhuǎn)發(fā)技術(shù)。但是采用MPLS轉(zhuǎn)發(fā)時(shí),它同樣需要在邊緣節(jié)點(diǎn)完成轉(zhuǎn)發(fā)等效類(FEC,F(xiàn)orwarding Equal Class)到標(biāo)記(Label)的映射,而在核心節(jié)點(diǎn)則執(zhí)行基于標(biāo)記的快速轉(zhuǎn)發(fā)。因此,這意味著在網(wǎng)絡(luò)邊緣的節(jié)點(diǎn)同樣需要對(duì)每一個(gè)數(shù)據(jù)包進(jìn)行最長(zhǎng)匹配查找和復(fù)雜的策略處理(如VPN、NAT和PPPOE)。此外,為了支持節(jié)點(diǎn)間的信令交互,它引入了復(fù)雜的信令協(xié)議,如LDP(CR-LDP)或RSVP-TE,就導(dǎo)致了設(shè)備的軟件復(fù)雜度增高,并且由于目前MPLS的兩大標(biāo)準(zhǔn)分別為不同廠家所支持,這也導(dǎo)致了網(wǎng)絡(luò)互操作性的困難。
雖然,MPLS方案和傳統(tǒng)的IP轉(zhuǎn)發(fā)相比在中間節(jié)點(diǎn)提高了轉(zhuǎn)發(fā)的效率,但仍然存在以下不足1、MPLS在邊緣節(jié)點(diǎn)對(duì)數(shù)據(jù)包的復(fù)雜處理,和基于包的IP轉(zhuǎn)發(fā)相同,它仍然需要在LER上進(jìn)行最長(zhǎng)匹配查找,完成從FEC到Label的映射,因此同樣導(dǎo)致的邊緣設(shè)備的開發(fā)周期長(zhǎng)和設(shè)備復(fù)雜。
2、MPLS的實(shí)現(xiàn)需要引入復(fù)雜的MPLS信令,大大增加設(shè)備的開發(fā)成本和維護(hù)費(fèi)用。與MPLS相關(guān)的IETF RFC和草案多達(dá)80余個(gè),設(shè)備開發(fā)商實(shí)現(xiàn)起來(lái)極為復(fù)雜,而運(yùn)營(yíng)商也難以進(jìn)行維護(hù)。
3、由于MPLS的標(biāo)準(zhǔn)中支持兩種信令協(xié)議,LDP(CR-LDP)和RSVP,而這兩大標(biāo)志分別為不同的廠商所支持。所以使用MPLS協(xié)議,會(huì)導(dǎo)致網(wǎng)絡(luò)設(shè)備的互通性存在問(wèn)題。
4、MPLS中對(duì)服務(wù)質(zhì)量的保證采用區(qū)分服務(wù)時(shí),無(wú)法針對(duì)每一個(gè)流保證服務(wù)質(zhì)量。
5、MPLS無(wú)法支持網(wǎng)絡(luò)地址/協(xié)議轉(zhuǎn)換(NAT-PT),因此無(wú)法實(shí)現(xiàn)IPv4和IPv6網(wǎng)絡(luò)之間的直接互聯(lián)。

發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種采用策略流方式在同一物理管道中同時(shí)支持IPv4和IPv6轉(zhuǎn)發(fā)的方法和裝置,其能夠避免復(fù)雜查找,提高轉(zhuǎn)發(fā)效率。
根據(jù)本發(fā)明,提供了一種在網(wǎng)絡(luò)設(shè)備中以策略流方式實(shí)現(xiàn)數(shù)據(jù)包轉(zhuǎn)發(fā)的方法,所述網(wǎng)絡(luò)設(shè)備至少包括轉(zhuǎn)發(fā)平面和控制平面。該方法包括以下步驟(a)接收數(shù)據(jù)流中的數(shù)據(jù)包,該數(shù)據(jù)流中包括至少一個(gè)數(shù)據(jù)包;(b)在轉(zhuǎn)發(fā)平面判斷目的IP地址的類型;(c)在轉(zhuǎn)發(fā)平面根據(jù)不同的目的IP的數(shù)據(jù)流類型,提取相應(yīng)的數(shù)據(jù)包的多元屬性組,計(jì)算出標(biāo)識(shí)該數(shù)據(jù)流的本地唯一的策略流標(biāo)識(shí)ID;(d)轉(zhuǎn)發(fā)平面根據(jù)本地策略流ID精確查找策略流轉(zhuǎn)發(fā)表目,如果發(fā)現(xiàn)有相匹配的策略流轉(zhuǎn)發(fā)表目則進(jìn)行步驟(e),否則轉(zhuǎn)到步驟(f);(e)如果發(fā)現(xiàn)有相匹配的策略流轉(zhuǎn)發(fā)表目,則在轉(zhuǎn)發(fā)平面按照所述策略流轉(zhuǎn)發(fā)表目對(duì)該數(shù)據(jù)包進(jìn)行相關(guān)內(nèi)容修改和轉(zhuǎn)發(fā)操作,并轉(zhuǎn)到步驟(i);(f)如果未發(fā)現(xiàn)有相匹配的策略流轉(zhuǎn)發(fā)表目,則說(shuō)明這個(gè)數(shù)據(jù)包是數(shù)據(jù)流的第一個(gè)包或者是策略流轉(zhuǎn)發(fā)表目已經(jīng)老化,轉(zhuǎn)發(fā)平面將該數(shù)據(jù)包送到控制平面進(jìn)行處理;(g)控制平面在本地根據(jù)該數(shù)據(jù)包的目的IP地址的類型、入端口與應(yīng)用相關(guān)的配置以及該目的IP地址所對(duì)應(yīng)的下一跳的出端口與應(yīng)用相關(guān)的配置中至少一個(gè),與轉(zhuǎn)發(fā)平面共同來(lái)對(duì)數(shù)據(jù)包進(jìn)行相應(yīng)的處理,并綜合控制平面中和各種應(yīng)用相關(guān)的表目信息生成相應(yīng)的唯一的一條本地策略流轉(zhuǎn)發(fā)表目;(h)控制平面將該策略流轉(zhuǎn)發(fā)表目分發(fā)到所述轉(zhuǎn)發(fā)平面,供后面的數(shù)據(jù)包使用;(i)處理下一個(gè)數(shù)據(jù)包。
在本發(fā)明中,當(dāng)未發(fā)現(xiàn)有相匹配的策略流轉(zhuǎn)發(fā)表目時(shí),控制平面并不需要和其它網(wǎng)絡(luò)設(shè)備進(jìn)行交互信令。此外,當(dāng)控制平面生成新的策略流轉(zhuǎn)發(fā)表目時(shí),也不需要將該表目通告給其它網(wǎng)絡(luò)設(shè)備。
根據(jù)本發(fā)明,還提供了一種以策略流方式轉(zhuǎn)發(fā)數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中包括至少一轉(zhuǎn)發(fā)平面和一控制平面,其中每個(gè)轉(zhuǎn)發(fā)平面接收數(shù)據(jù)流中的數(shù)據(jù)包,該數(shù)據(jù)流中包括至少一個(gè)數(shù)據(jù)包,該數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備包括本地策略流轉(zhuǎn)發(fā)表目存儲(chǔ)部分,用于存儲(chǔ)本地策略流轉(zhuǎn)發(fā)表目,其中,所述轉(zhuǎn)發(fā)平面包括目的IP地址類型判斷部分,用于判斷目的IP地址的數(shù)據(jù)流類型;本地策略流ID計(jì)算單元,用于根據(jù)不同的目的IP的類型,選擇相應(yīng)的數(shù)據(jù)包的多元屬性組,來(lái)計(jì)算出標(biāo)識(shí)該數(shù)據(jù)流的本地策略流標(biāo)識(shí)ID;查找單元,用于根據(jù)本地策略流ID精確查找所述本地策略流轉(zhuǎn)發(fā)表目存儲(chǔ)部分中存儲(chǔ)的本地策略流轉(zhuǎn)發(fā)表目,看是否有與該數(shù)據(jù)包的本地策略流ID相匹配的策略流轉(zhuǎn)發(fā)表目;修改和轉(zhuǎn)發(fā)單元,如果在查找單元發(fā)現(xiàn)匹配的策略流轉(zhuǎn)發(fā)表目,則按照所述策略流轉(zhuǎn)發(fā)表目對(duì)該數(shù)據(jù)包進(jìn)行相關(guān)內(nèi)容修改和轉(zhuǎn)發(fā)操作;如在查找單元未發(fā)現(xiàn)匹配的策略流轉(zhuǎn)發(fā)表目,則將該數(shù)據(jù)包送到控制平面,所述控制平面包括策略處理單元,根據(jù)目的IP地址的類型、入端口的配置以及該目的IP地址所對(duì)應(yīng)的下一跳的出端口的配置中至少一個(gè),對(duì)數(shù)據(jù)包進(jìn)行相應(yīng)的處理;策略流轉(zhuǎn)發(fā)表目生成單元,根據(jù)對(duì)數(shù)據(jù)包進(jìn)行的處理生成相應(yīng)的策略流轉(zhuǎn)發(fā)表目,并將該策略流轉(zhuǎn)發(fā)表目分發(fā)到所述策略流轉(zhuǎn)發(fā)表目存儲(chǔ)單元,供后面的數(shù)據(jù)包使用。
本發(fā)明不同于傳統(tǒng)的逐包(Packet-based)轉(zhuǎn)發(fā)的方式,而采用了基于數(shù)據(jù)流(Stream-based)處理的IP包轉(zhuǎn)發(fā)的思想,并且通過(guò)設(shè)置不同的策略類型實(shí)現(xiàn)了在同一個(gè)物理管道中同時(shí)進(jìn)行IPv4和IPv6數(shù)據(jù)的轉(zhuǎn)發(fā)。本發(fā)明避免了復(fù)雜的IPv4和IPv6的逐包查找,大大提高了轉(zhuǎn)發(fā)效率,并且避免了引入其他額外的信令,不會(huì)影響互聯(lián)網(wǎng)的互聯(lián)互通性。此外,本發(fā)明采用同一張表支持多種應(yīng)用,針對(duì)每一個(gè)流進(jìn)行處理,使得運(yùn)營(yíng)商針對(duì)用戶的每一個(gè)流提供業(yè)務(wù)和服務(wù)質(zhì)量成為可能。


圖1至圖4是從IPv4向IPv6演進(jìn)的過(guò)程中不同階段網(wǎng)絡(luò)示意圖;圖5是支持IPv4和IPv6轉(zhuǎn)發(fā)策略流表數(shù)據(jù)結(jié)構(gòu)圖6顯示出本發(fā)明的應(yīng)用的邏輯視圖;圖7顯示出本發(fā)明的應(yīng)用的線卡結(jié)構(gòu);圖8是數(shù)據(jù)包處理的基本流程;圖9顯示了采用網(wǎng)絡(luò)處理器的線卡;圖10是網(wǎng)絡(luò)處理器的內(nèi)部結(jié)構(gòu)框圖;圖11顯示了包處理流程;圖12示意性展示了調(diào)度處理的原理;圖13顯示了采用VOQ的N端口輸入隊(duì)列的交換模型;圖14是采用Crossbar交換技術(shù)的系統(tǒng)結(jié)構(gòu);圖15是隊(duì)列管理器的內(nèi)部結(jié)構(gòu);圖16顯示了Crossbar Chip的結(jié)構(gòu)方框圖;圖17展示了MSR設(shè)備機(jī)箱前視圖;圖18給出了本發(fā)明的應(yīng)用設(shè)備的邏輯結(jié)構(gòu)19是帶遠(yuǎn)程監(jiān)控功能的電源整流系統(tǒng)的原理框圖;圖20示意性顯示了嵌入式以太網(wǎng)體系的結(jié)構(gòu)21是采用雙交換結(jié)構(gòu)的R8002設(shè)備交換系統(tǒng)原理圖;圖22給出了本發(fā)明的應(yīng)用設(shè)備的通用線卡結(jié)構(gòu)圖;圖23給出了POS通用線卡結(jié)構(gòu)圖;
圖24給出了本發(fā)明的應(yīng)用設(shè)備的軟件分層結(jié)構(gòu);圖25是本發(fā)明的應(yīng)用設(shè)備的系統(tǒng)適配層示意圖;圖26是本發(fā)明的應(yīng)用設(shè)備的系統(tǒng)適配層示意圖;圖27是接口映射關(guān)系圖;圖28是示出了本發(fā)明的以策略流方式轉(zhuǎn)發(fā)數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備的方框圖;圖29是本發(fā)明的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備的轉(zhuǎn)發(fā)平面中的策略流ID計(jì)算單元的方框圖;圖30是本發(fā)明的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備的轉(zhuǎn)發(fā)平面中的修改和轉(zhuǎn)發(fā)單元的方框圖;圖31是圖30中的分類轉(zhuǎn)發(fā)單元的方框圖;圖32是圖28中的策略處理單元的方框圖;圖33是本發(fā)明的數(shù)據(jù)轉(zhuǎn)發(fā)方法的流程圖;圖34是當(dāng)目的IP為IPv4地址時(shí),確定應(yīng)對(duì)該數(shù)據(jù)包所在的數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作的方法的流程圖;以及圖35是當(dāng)目的IP為IPv4兼容的IPv6地址時(shí),確定應(yīng)對(duì)該數(shù)據(jù)包所在的數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作的方法的流程圖。
具體實(shí)施例方式
首先介紹IPv4和IPv6共存情況下的三種技術(shù)方案和四種典型網(wǎng)絡(luò)拓?fù)?,然后介紹一種能夠滿足以上三種技術(shù)方案和四種網(wǎng)絡(luò)拓?fù)涞腎Pv4和IPv6轉(zhuǎn)發(fā)的算法,最后介紹如何用策略流方式實(shí)現(xiàn)該算法。
IEFT關(guān)于IPv4和IPv6如何共存提出了三種技術(shù)方案IPv4/IPv6雙棧方式、隧道方式和網(wǎng)絡(luò)地址/協(xié)議轉(zhuǎn)換方式。它們具體說(shuō)明如下IPv4/IPv6雙棧方式雙協(xié)議棧的解決方案實(shí)際上就是在一個(gè)路由器設(shè)備中維護(hù)IPv6和IPv4兩套路由協(xié)議棧,使網(wǎng)絡(luò)中的主機(jī)可以分別支持IPv6和IPv4協(xié)議,也可以同時(shí)支持這兩種協(xié)議,路由器既能與IPv4主機(jī)也能與IPv6主機(jī)通信,分別支持獨(dú)立的IPv6和IPv4路由協(xié)議,IPv4和IPv6路由信息按照各自的路由協(xié)議進(jìn)行計(jì)算,維護(hù)不同的路由表。IPv6數(shù)據(jù)報(bào)(包括與IPv4地址兼容的IPv6數(shù)據(jù)報(bào))按照IPv6路由協(xié)議得到的路由表轉(zhuǎn)發(fā),IPv4數(shù)據(jù)報(bào)按照IPv4路由協(xié)議得到的路由表轉(zhuǎn)發(fā)。
網(wǎng)絡(luò)地址/協(xié)議轉(zhuǎn)換方式該方案通常用于純IPv4節(jié)點(diǎn)與IPv6節(jié)點(diǎn)之間的通信,對(duì)于純IPv6節(jié)點(diǎn)與雙棧節(jié)點(diǎn)中的IPv4協(xié)議通信不建議采用此方案。地址/協(xié)議轉(zhuǎn)換采用了直接明了的轉(zhuǎn)化方式,不用修改上層協(xié)議即能互相通信。該方案的中心設(shè)備,又稱為NAT-PT網(wǎng)關(guān),能夠?qū)崿F(xiàn)IPv4和IPv6協(xié)議棧的互相轉(zhuǎn)換,包括網(wǎng)絡(luò)層協(xié)議、傳輸層協(xié)議以及一些應(yīng)用層協(xié)議之間的互相轉(zhuǎn)換。
隧道方式所謂隧道技術(shù)就是利用現(xiàn)有網(wǎng)絡(luò)設(shè)施中運(yùn)行的IPv4協(xié)議為載體建立IPv6的通信機(jī)制,隧道兩頭的節(jié)點(diǎn)間數(shù)據(jù)報(bào)的傳送通過(guò)IPv4機(jī)制進(jìn)行,隧道被看成一個(gè)直接連接的通道,隧道技術(shù)是IPv4向IPv6過(guò)渡的初期最易于采用的技術(shù)。隧道可以在路由器與路由器之間,路由器與主機(jī)之間以及主機(jī)與主機(jī)之間建立,隧道可以手工配置建立也可以自動(dòng)建立。隧道策略的思路簡(jiǎn)要說(shuō)來(lái)就是,路由器將IPv6的數(shù)據(jù)分組封裝入IPv4,IPv4分組的源地址和目的地址分別對(duì)應(yīng)隧道入口和出口的IPv4地址,在隧道的出口處,再將IPv6分組取出轉(zhuǎn)發(fā)給目的站點(diǎn)。隧道技術(shù)只要求在隧道的入口和出口處進(jìn)行修改,對(duì)其他部分沒(méi)有要求,因而比較容易實(shí)現(xiàn)。
以上為三種解決IPv4和IPv6共存的技術(shù)方案,而下面這是采用這三種方式的四種典型網(wǎng)絡(luò)拓?fù)洹?br> 如圖1,為IPv4向IPv6演進(jìn)的過(guò)程中,網(wǎng)絡(luò)的骨干節(jié)點(diǎn)已經(jīng)成為IPv6節(jié)點(diǎn),而邊緣網(wǎng)絡(luò)仍為IPv4的網(wǎng)絡(luò)。此時(shí),圖中IPv4網(wǎng)絡(luò)互相訪問(wèn)時(shí)需要通過(guò)中間的IPv6網(wǎng)絡(luò),此時(shí)將采用IPv4 in IPv6的隧道方式,而通常隧道的終端節(jié)點(diǎn)地址為為手工配置的隧道地址。
如圖2,為IPv4向IPv6演進(jìn)的過(guò)程中,兩個(gè)IPv6的孤島需要通過(guò)IPv4的網(wǎng)絡(luò)進(jìn)行互相訪問(wèn)。此時(shí)需要采用IPv4 In IPv6的隧道方式,其中根據(jù)目的IPv6地址的類型不同,又可以分為自動(dòng)配置隧道和手工配置隧道。即如果目的IPv6地址為IPv4兼容的IPv6地址,則為自動(dòng)配置隧道,否則為手工配置隧道。
如圖3,為IPv4向IPv6演進(jìn)過(guò)程中的最后階段,此時(shí)所有的網(wǎng)絡(luò)均為IPv6網(wǎng)絡(luò),因此整個(gè)網(wǎng)絡(luò)只需要采用純IPv6轉(zhuǎn)發(fā)即可。
如圖4,為IPv4向IPv6過(guò)程中,IPv4和IPv6網(wǎng)絡(luò)之間的直接互相訪問(wèn)。此時(shí),必須采用網(wǎng)絡(luò)地址/協(xié)議轉(zhuǎn)換方式,來(lái)實(shí)現(xiàn)兩者的互通。
接下來(lái),首先介紹本發(fā)明提供的一種IPv4/IPv6節(jié)點(diǎn)均可以使用的在同一個(gè)物理管道中實(shí)現(xiàn)的IPv4和IPv6兼容的轉(zhuǎn)發(fā)的算法IPFA(Ipv4 and IPv6compatible Forwarding Algorithm or IPFA)。該算法將用來(lái)決定網(wǎng)絡(luò)設(shè)備何時(shí)采用IPv4轉(zhuǎn)發(fā),何時(shí)采用IPv6轉(zhuǎn)發(fā),何時(shí)采用自動(dòng)隧道、何時(shí)采用手工配置隧道,以及何時(shí)采用地址轉(zhuǎn)換方式(NAT-PT)。該算法主要是基于以下考慮網(wǎng)絡(luò)設(shè)備對(duì)數(shù)據(jù)包的處理方式將取決于數(shù)據(jù)包的目的IP地址類型、入端口的配置以及查找該目的IP地址所對(duì)應(yīng)的下一跳(Next Hop)所在的出端口(OutputPort)。該算法可以有效地支持以上提到的三種方式和四種拓?fù)洹?br> 該算法描述如下1.如果目的IP地址為IPv4地址1)首先判斷入端口是否使能了NAT-PT且目的IPv4地址是否為地址池內(nèi)地址,如果沒(méi)有則轉(zhuǎn)向步驟2),否則轉(zhuǎn)向步驟4);2)進(jìn)行IPv4相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,判斷下一跳的接口類型,如果為IPv4,則完成IPv4轉(zhuǎn)發(fā),否則進(jìn)行步驟3);3)如果下一跳對(duì)應(yīng)的接口為IPv6,進(jìn)行IPv4 in IPv6的隧道操作,其中目的地址可以為該IPv4地址對(duì)應(yīng)的IPv4兼容的IPv6地址也可以為手工配置的隧道地址;4)進(jìn)行NAT-PT操作,將IPv4包轉(zhuǎn)換為IPv6的包;2.如果目的地址為IPv4兼容的IPv6地址1)首先判斷入端口是否使能了NAT-PT而且目的地址是否為地址池內(nèi)地址,如果沒(méi)有則轉(zhuǎn)向步驟2),否則轉(zhuǎn)向步驟5)2)進(jìn)行IPv6相關(guān)的轉(zhuǎn)發(fā)消息查找轉(zhuǎn)發(fā)表,判斷下一跳的出接口類型,如果為IPv6,則進(jìn)行IPv6轉(zhuǎn)發(fā),否則進(jìn)行步驟3)3)如果下一跳的類型為IPv4,則首先判斷出端口是否使能了NAT-PT,如果有NAT-PT操作的標(biāo)識(shí)則進(jìn)行步驟5),否則進(jìn)行步驟4)4)進(jìn)行IPv6 in IPv4操作,其中目的地址為原有IPv6目的地址的低32位。
5)進(jìn)行NAT-PT操作,其中轉(zhuǎn)換后源地址為NAT地址池內(nèi)的地址,轉(zhuǎn)換后的目的IP地址為原有IPv6目的地址的低32位。
3.如果目的地址為IPv6地址1)根據(jù)IPv6相關(guān)的轉(zhuǎn)發(fā)消息表查找轉(zhuǎn)發(fā)表,并判斷下一跳所對(duì)應(yīng)的接口類型。如果為IPv6,則進(jìn)行IPv6轉(zhuǎn)發(fā)。
2)否則為IPv4,則需要進(jìn)行IPv6 in IPv4的隧道操作,其中IPv4的目的地址為配置的隧道的IPv4地址。
接下來(lái),描述本發(fā)明用策略流實(shí)現(xiàn)IPFA的方法和設(shè)備。
策略流轉(zhuǎn)發(fā)采用了完全基于流處理的思路而不是基于數(shù)據(jù)包處理的思想,主要作法是對(duì)于同一個(gè)數(shù)據(jù)流中的不同數(shù)據(jù)包,網(wǎng)絡(luò)設(shè)備對(duì)它的行為(Action)應(yīng)該是完全相同的。此外,對(duì)于轉(zhuǎn)發(fā)平面來(lái)說(shuō),它并不需要知道自己對(duì)數(shù)據(jù)包應(yīng)該采用何種查找算法(單播、組播、IPv4或Ipv6),相反,它只需要知道它的出端口和下一跳信息,以及該采用何種策略對(duì)數(shù)據(jù)包進(jìn)行修改。因此,策略流轉(zhuǎn)發(fā)在轉(zhuǎn)發(fā)平面中采用了統(tǒng)一的轉(zhuǎn)發(fā)表目和單一高效的查找算法(Exact Match),這樣就簡(jiǎn)化了轉(zhuǎn)發(fā)平面的處理,提高了查找效率。
具體來(lái)說(shuō),所謂策略流交換,它并非針對(duì)某一個(gè)具體的IP數(shù)據(jù)包進(jìn)行查找交換,而是采用了對(duì)特定的IP數(shù)據(jù)流進(jìn)行轉(zhuǎn)發(fā)處理的思想。策略流交換采用了根據(jù)特定的多元組來(lái)唯一確定一個(gè)流(Stream)。針對(duì)特定的Stream,網(wǎng)絡(luò)設(shè)備只需要將該流的第一個(gè)包送控制平面進(jìn)行處理,為該數(shù)據(jù)流分配唯一的流ID(Stream ID),而該流隨后的包只需要轉(zhuǎn)發(fā)平面進(jìn)行簡(jiǎn)單的轉(zhuǎn)發(fā)操作即可。因此,策略流轉(zhuǎn)發(fā)只需要對(duì)該數(shù)據(jù)流的第一個(gè)數(shù)據(jù)包進(jìn)行復(fù)雜的查表查找,并由用戶定制對(duì)它的特定業(yè)務(wù)操作??刂破矫嬖谕瓿刹檎液投ㄖ仆陿I(yè)務(wù)類型后,生成策略流轉(zhuǎn)發(fā)表目(Policy Stream Forwarding Table),并由路由引擎將該表目分發(fā)(Distribute)到轉(zhuǎn)發(fā)平面。表目包含有下一跳的出接口信息和標(biāo)明業(yè)務(wù)種類的策略類型字段。而數(shù)據(jù)包轉(zhuǎn)發(fā)時(shí)將根據(jù)這一業(yè)務(wù)操作的策略類型對(duì)該Stream做統(tǒng)一的處理。由于對(duì)于轉(zhuǎn)發(fā)平面來(lái)說(shuō),它將不關(guān)心查找的策略,而只是關(guān)心該數(shù)據(jù)流是否能夠被轉(zhuǎn)發(fā)和應(yīng)該被轉(zhuǎn)發(fā)到那個(gè)出接口,這樣就大大簡(jiǎn)化的轉(zhuǎn)發(fā)平面的處理過(guò)程。
本發(fā)明所采用的策略流轉(zhuǎn)發(fā)算法與MPLS的主要區(qū)別如下表2表2-策略流轉(zhuǎn)發(fā)算法與MPLS的主要區(qū)別


本發(fā)明采用的策略流表(PSFB)的基本數(shù)據(jù)結(jié)構(gòu)Source IPv4 Address(4字節(jié))數(shù)據(jù)流的源IPv4地址。
Destination IPv4 Address(4字節(jié))數(shù)據(jù)流的目的IPv4地址Source IPv6 Address(16字節(jié))數(shù)據(jù)流的源IPv6地址Destination IPv6 Address(16字節(jié))數(shù)據(jù)流的目的IPv6地址Protocol Type(2字節(jié))協(xié)議類型Source Protocol Port(2字節(jié))源協(xié)議端口,由協(xié)議類型來(lái)決定為何種協(xié)議的端口Destination Protocol Port(2字節(jié))目的協(xié)議端口,由協(xié)議類型來(lái)決定為何種協(xié)議的端口Flow Label(2字節(jié))IPv6中的包頭字段,表示同一個(gè)源地址中的不同流流,該字段為可選用字段,為0是表示忽略其使用。
Stream ID(4字節(jié))表示一個(gè)流的唯一的IDAlias Port(2字節(jié))偽端口,轉(zhuǎn)換后的協(xié)議端口,用于網(wǎng)絡(luò)地址轉(zhuǎn)換Alias IPv4 Address(4字節(jié))偽IP地址,轉(zhuǎn)換后的IPv4地址,用于網(wǎng)絡(luò)地址轉(zhuǎn)換Alias IPv6 Address(16字節(jié))偽IPv6地址,轉(zhuǎn)換后的IPv6地址,用于網(wǎng)絡(luò)地址轉(zhuǎn)換Tunnel ID(2字節(jié))隧道ID,用于IPv6 to IPv4或IPv4 to IPv6隧道Policy Type(2字節(jié))策略類型,表明對(duì)數(shù)據(jù)流流該進(jìn)行的何種業(yè)務(wù)操作類型,可由網(wǎng)管靈活配置或用戶進(jìn)行業(yè)務(wù)定制。
QoS(2字節(jié))服務(wù)質(zhì)量,表明對(duì)該流的服務(wù)質(zhì)量參數(shù)。
Expired Timer(1字節(jié))超時(shí)定時(shí)器,判斷該流轉(zhuǎn)發(fā)表目是否超時(shí)。
TCP Flag(1字節(jié))TCP標(biāo)志位,用來(lái)判斷TCP流是否結(jié)束。
Ouput Port Index(2字節(jié))出端口索引,用來(lái)指定該數(shù)據(jù)包的發(fā)送出端口Next Hop IPv4 Address(4字節(jié))下一跳IPv4地址Next Hop IPv6 Address(16字節(jié))下一跳IPv6地址Tunnel end IPv4 Address(4字節(jié))隧道終點(diǎn)IPv4地址,和偽IPv4地址復(fù)用。
Tunnel end IPv6 Address(16字節(jié))隧道終點(diǎn)IPv6地址,和偽IPv6地址復(fù)用。
注以上數(shù)據(jù)結(jié)構(gòu)僅是本發(fā)明的基本數(shù)據(jù)結(jié)構(gòu),用戶可以根據(jù)實(shí)際的應(yīng)用對(duì)該數(shù)據(jù)結(jié)構(gòu)進(jìn)行擴(kuò)展。
下面參考

本發(fā)明基于策略流實(shí)現(xiàn)IPv4和IPv6雙棧數(shù)據(jù)包轉(zhuǎn)發(fā)的方法和設(shè)備。
首先參考圖28-32描述本發(fā)明的以策略流方式轉(zhuǎn)發(fā)數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備。圖28是示出了本發(fā)明的以策略流方式轉(zhuǎn)發(fā)數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備的方框圖。如圖28所示,該數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備包括至少一轉(zhuǎn)發(fā)平面和一控制平面,其中每個(gè)轉(zhuǎn)發(fā)平面接收數(shù)據(jù)流中的數(shù)據(jù)包,該數(shù)據(jù)流中包括至少一個(gè)數(shù)據(jù)包,該數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備還包括PSFB表目存儲(chǔ)單元,用于存儲(chǔ)PSFB表目。
轉(zhuǎn)發(fā)平面包括目的IP地址類型判斷單元,用于判斷目的IP地址的類型;策略流ID計(jì)算單元,用于根據(jù)不同的目的IP的類型,選擇相應(yīng)的數(shù)據(jù)包的多元屬性組,來(lái)計(jì)算出標(biāo)識(shí)該數(shù)據(jù)流的策略流ID;查找單元,用于根據(jù)策略流ID精確查找PSFB表目存儲(chǔ)單元中存儲(chǔ)的PSFB表目,看是否有與該數(shù)據(jù)包的策略流ID相匹配的PSFB表目;修改和轉(zhuǎn)發(fā)單元,如果在查找單元發(fā)現(xiàn)匹配的PSFB表目,則按照PSFB表目對(duì)該數(shù)據(jù)包進(jìn)行相關(guān)內(nèi)容修改和轉(zhuǎn)發(fā)操作;如在查找單元未發(fā)現(xiàn)匹配的PSFB表目,則將該數(shù)據(jù)包送到控制平面。
控制平面包括策略處理單元,根據(jù)目的IP地址的類型、入端口的配置以及該目的IP地址所對(duì)應(yīng)的下一跳的出端口的配置中至少一個(gè),對(duì)數(shù)據(jù)包進(jìn)行相應(yīng)的處理;PSFB表目生成單元,根據(jù)對(duì)數(shù)據(jù)包進(jìn)行的處理生成相應(yīng)的PSFB表目,并將該P(yáng)SFB表目分發(fā)到PSFB表目存儲(chǔ)單元,供后面的數(shù)據(jù)包使用。
本發(fā)明的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備所處理的數(shù)據(jù)包的目的IP地址的類型可以是IPv4地址、IPv4兼容的IPv6地址或非IPv4兼容的IPv6地址。
圖29是本發(fā)明的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備的轉(zhuǎn)發(fā)平面中的策略流ID計(jì)算單元的方框圖。如圖29所示,策略流ID計(jì)算單元包括第一計(jì)算部分,用于在目的IP地址為IPv4地址時(shí),根據(jù)由源IPv4地址、目的IPv4地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型組成的五元屬性組計(jì)算策略流ID;IPv6流標(biāo)記Flow_Label檢測(cè)單元,用于在目的IP地址為IPv4兼容的IPv6地址或非IPv4兼容的IPv6地址時(shí),判斷數(shù)據(jù)包頭中的IPv6流標(biāo)記Flow_Label是否為0;第二計(jì)算部分,用于在判斷出IPv6流標(biāo)記Flow_Label為0時(shí),根據(jù)由源IPv6地址、目的IPv6地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型組成的五元屬性組計(jì)算策略流ID;以及第三計(jì)算部分,用于在判斷出IPv6流標(biāo)記Flow_Label為0時(shí),根據(jù)由源IPv6地址、IPv6流標(biāo)記Flow_Label組成的二元屬性組計(jì)算策略流ID。
在PSFB表目存儲(chǔ)單元中存儲(chǔ)的PSFB表目中記錄有表明應(yīng)該對(duì)數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作類型的策略類型、用來(lái)指定該數(shù)據(jù)包的發(fā)送出端口的出端口索引以及下一跳IP地址。
圖30是本發(fā)明的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備的轉(zhuǎn)發(fā)平面中的修改和轉(zhuǎn)發(fā)單元的方框圖。如圖30所示,修改和轉(zhuǎn)發(fā)單元包括策略類型獲取單元,用于從與數(shù)據(jù)包匹配的PSFB表目中獲取對(duì)應(yīng)于該數(shù)據(jù)流的策略類型;以及分類轉(zhuǎn)發(fā)單元,根據(jù)對(duì)應(yīng)于該數(shù)據(jù)流的策略類型對(duì)數(shù)據(jù)包根據(jù)進(jìn)行相應(yīng)的轉(zhuǎn)發(fā)操作,根據(jù)PSFB表目中的出端口索引表項(xiàng)和下一跳IP地址所指向的鄰接表表項(xiàng)得出出端口和對(duì)應(yīng)的鏈路層信息,將該數(shù)據(jù)包從出端口發(fā)出。
圖31是圖30中的分類轉(zhuǎn)發(fā)單元的方框圖。如圖31所示,分類轉(zhuǎn)發(fā)單元包括IPv4轉(zhuǎn)發(fā)操作單元,當(dāng)策略類型為純IPv4轉(zhuǎn)發(fā)IPv4_FORWARD時(shí),執(zhí)行IPv4的轉(zhuǎn)發(fā)操作,修改TTL,并重新計(jì)算校驗(yàn)和;IPv6轉(zhuǎn)發(fā)操作單元,當(dāng)策略類型為純IPv6轉(zhuǎn)發(fā)IPv6_FORWARD時(shí),執(zhí)行IPv6的轉(zhuǎn)發(fā)操作,修改TTL;NAT-PT操作單元,當(dāng)策略類型為網(wǎng)絡(luò)地址轉(zhuǎn)換NAT_PT時(shí),執(zhí)行NAT-PT操作,根據(jù)PSFB表目中的偽IP地址和偽端口,對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行修改;IPv4 to IPv6自動(dòng)隧道操作單元,當(dāng)策略類型為IPv4 in IPv6的自動(dòng)隧道模式IPv4_IN_IPv6_AUTO時(shí),執(zhí)行IPv4 to IPv6的自動(dòng)隧道操作,根據(jù)PSFB表目中的隧道ID(Tunnel ID)封裝數(shù)據(jù)包,隧道的目的IPv6地址為目的IPv4地址對(duì)應(yīng)的IPv6兼容地址;IPv4 to IPv6手工隧道操作單元,當(dāng)策略類型為IPv4 in IPv6的手工隧道模式IPv4_IN_IPv6_MANU時(shí),執(zhí)行IPv4 to IPv6的手工隧道操作,根據(jù)PSFB表目中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv6地址為PSFB表目中的地址;IPv6 to IPv4自動(dòng)隧道操作單元,當(dāng)策略類型為IPv6 in IPv4的自動(dòng)隧道模式IPv6_IN_IPv4_AUTO時(shí),執(zhí)行IPv6 to IPv4的自動(dòng)隧道操作,根據(jù)PSFB表目中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址;以及IPv6 to IPv4手工隧道操作單元,當(dāng)策略類型為IPv6 in IPv4的手動(dòng)隧道模式IPv6_IN_IPv4_MANU時(shí),執(zhí)行IPv6 to IPv4的隧道操作,根據(jù)PSFB表目中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址。
圖32是圖28中的策略處理單元的方框圖。如圖32所示,策略處理單元包括策略類型確定單元,用于確定應(yīng)對(duì)該數(shù)據(jù)包所在的數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作的策略類型;以及策略類型信息返回單元,用于將有關(guān)策略類型的信息發(fā)送回轉(zhuǎn)發(fā)平面,從而由轉(zhuǎn)發(fā)平面的分類轉(zhuǎn)發(fā)單元中對(duì)應(yīng)于該策略類型的操作單元對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)操作。而策略類型確定單元包括第一判斷部分,用于判斷入端口是否使能了NAT-PT;第二判斷部分,用于判斷目的IPv4地址是否為地址池內(nèi)地址;轉(zhuǎn)發(fā)信息查找單元,用于查找轉(zhuǎn)發(fā)表,判斷下一跳的接口類型。
其中,當(dāng)目的IP地址為IPv4地址時(shí),首先由第一判斷部分判斷入端口是否使能了NAT-PT,并由第二判斷部分判斷目的IPv4地址是否為地址池內(nèi)地址,如果至少一項(xiàng)判斷結(jié)果為是,則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,將IPv4包轉(zhuǎn)換為IPv6的包;如果判斷結(jié)果都為否,則由轉(zhuǎn)發(fā)信息查找單元進(jìn)行IPv4相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,判斷下一跳的接口類型,如果下一跳的接口類型為IPv4,則確定應(yīng)在轉(zhuǎn)發(fā)平面完成IPv4轉(zhuǎn)發(fā),如果下一跳對(duì)應(yīng)的接口為IPv6,則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行IPv4 in IPv6的隧道操作,其中目的地址可以為該IPv4地址對(duì)應(yīng)的IPv4兼容的IPv6地址也可以為手工配置的隧道地址。
當(dāng)目的IP地址為IPv4兼容的IPv6地址時(shí),首先由第一判斷部分判斷入端口是否使能了NAT-PT,并由第二判斷部分判斷目的IPv4地址是否為地址池內(nèi)地址,如果至少一項(xiàng)判斷結(jié)果為是,則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,其中轉(zhuǎn)換后的目的IP地址為原有IPv6目的地址的低32位;如果判斷結(jié)果都為否,則由轉(zhuǎn)發(fā)信息查找單元進(jìn)行IPv6相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,判斷下一跳的出接口類型,如果為IPv6,則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行IPv6轉(zhuǎn)發(fā),如果下一跳的類型為IPv4,則首先由第一判斷部分判斷出端口是否使能了NAT-PT,如果有則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,其中源地址為地址池內(nèi)的地址,而目的地址為原有IPv6目的地址的低32位進(jìn)行步驟(gb4),否則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行IPv6 in IPv4操作,其中目的地址為原有IPv6目的地址的低32位。
當(dāng)目的IP地址為非IPv4兼容的IPv6地址時(shí),由轉(zhuǎn)發(fā)信息查找單元根據(jù)IPv6相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,并判斷下一跳所對(duì)應(yīng)的接口類型,如果為IPv6,則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行IPv6轉(zhuǎn)發(fā);否則為IPv4,則應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行IPv6 in IPv4的隧道操作,其中IPv4的目的地址為配置的隧道的IPv4地址。
PSFB表目生成單元包括第一表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行IPv4轉(zhuǎn)發(fā)時(shí),策略類型為IPv4_FORWARD,生成的PSFB表目的內(nèi)容包括策略類型、流ID、出端口索引、下一跳IPv6地址;第二表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行IPv6轉(zhuǎn)發(fā)時(shí),策略類型為IPv6_FORWARD,生成的PSFB表目的內(nèi)容包括策略類型、流ID、出端口索引、下一跳IPv6地址;第三表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行網(wǎng)絡(luò)地址/協(xié)議地址轉(zhuǎn)換時(shí),策略類型為NAT_PT,生成的PSFB表目的內(nèi)容包括策略類型、流ID、Alias IPv6 Address、Source IPv4 Address、Destination IPv4 Address、Source Port、Destination Port、Alias Port、Protocol Type等,出端口索引和下一跳IPv6地址等;第四表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行自動(dòng)的IPv4 in IPv6隧道操作時(shí),策略類型為IPv4_IN_IPv6_AUTO,生成的PSFB表目的內(nèi)容包括策略類型、流ID、出端口索引、下一跳IPv6地址、隧道ID;第五表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行手工配置的IPv4 in IPv6隧道操作時(shí),策略類型為IPv4_IN_IPv6_MANU,生成的PSFB表目的內(nèi)容包括策略類型、流ID、出端口索引、下一跳IPv6地址、隧道ID以及隧道的終點(diǎn)地址;第六表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行IPv6 in IPv4自動(dòng)隧道操作時(shí),策略類型為IPv6_IN_IPv4_AUTO,生成的PSFB表目的內(nèi)容包括策略類型、流ID、出端口索引和隧道ID;第七表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行IPv6 in IPv4手工隧道操作時(shí),策略類型為IPv6_IN_IPv4_MANU,生成的PSFB表目的內(nèi)容包括策略類型、流ID、出端口索引和隧道ID。
下面參考附圖33-35描述本發(fā)明在網(wǎng)絡(luò)設(shè)備中以策略流方式實(shí)現(xiàn)數(shù)據(jù)包轉(zhuǎn)發(fā)的方法,該網(wǎng)絡(luò)設(shè)備至少包括轉(zhuǎn)發(fā)平面和控制平面。
圖33是本發(fā)明的數(shù)據(jù)轉(zhuǎn)發(fā)方法的流程圖。如圖33所示,在步驟S1,接收數(shù)據(jù)流中的數(shù)據(jù)包,該數(shù)據(jù)流中包括至少一個(gè)數(shù)據(jù)包。然后在步驟S2,轉(zhuǎn)發(fā)平面判斷目的IP地址的類型。本發(fā)明中目的IP地址的類型可以是IPv4地址、IPv4兼容的IPv6地址或非IPv4兼容的IPv6地址。在步驟S3,轉(zhuǎn)發(fā)平面根據(jù)不同的目的IP的類型,選擇相應(yīng)的數(shù)據(jù)包的多元屬性組,來(lái)計(jì)算出標(biāo)識(shí)該數(shù)據(jù)流的策略流ID。其中當(dāng)目的IP地址為IPv4地址時(shí),多元屬性組包括源IPv4地址、目的IPv4地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型;當(dāng)目的IP地址為IPv4兼容的IPv6地址或非IPv4兼容的IPv6地址時(shí),判斷數(shù)據(jù)包頭中的IPv6流標(biāo)記Flow_Label是否為0,如果數(shù)據(jù)包頭中的IPv6流標(biāo)記Flow_Label為0,則多元屬性組包括源IPv6地址、目的IPv6地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型,如果數(shù)據(jù)包頭中的IPv6流標(biāo)記Flow_Label不為0,則多元屬性組包括源IPv6地址、IPv6流標(biāo)記Flow_Label。
在步驟S3,轉(zhuǎn)發(fā)平面根據(jù)策略流ID精確查找PSFB表目。如果發(fā)現(xiàn)匹配則進(jìn)入步驟S8,在轉(zhuǎn)發(fā)平面按照PSFB表目對(duì)該數(shù)據(jù)包進(jìn)行相關(guān)內(nèi)容修改和轉(zhuǎn)發(fā)操作,然后轉(zhuǎn)到步驟S9處理下一個(gè)數(shù)據(jù)包;如果在步驟S3沒(méi)有發(fā)現(xiàn)匹配的PSFB表目則說(shuō)明這是數(shù)據(jù)流的第一個(gè)包或者是PSFB表目已經(jīng)老化,則轉(zhuǎn)到步驟S5,轉(zhuǎn)發(fā)平面將把該數(shù)據(jù)包送到控制平面。
前面已指出,PSFB表目中記錄有表明應(yīng)該對(duì)數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作類型的策略類型、用來(lái)指定該數(shù)據(jù)包的發(fā)送出端口的出端口索引以及下一跳IP地址。步驟S5的操作具體說(shuō)來(lái),包括從PSFB表目中獲知該數(shù)據(jù)流的策略類型,并進(jìn)行相應(yīng)的轉(zhuǎn)發(fā)操作,根據(jù)PSFB表目中的出端口索引表項(xiàng)和下一跳IP地址所指向的鄰接表表項(xiàng)得出出端口和對(duì)應(yīng)的鏈路層信息,將該數(shù)據(jù)包從出端口發(fā)出。
更具體地說(shuō),當(dāng)目的IP地址為IPv4地址時(shí),如果策略類型為純IPv4轉(zhuǎn)發(fā)IPv4_FORWARD,則執(zhí)行IPv4的轉(zhuǎn)發(fā)操作,修改TTL,并重新計(jì)算校驗(yàn)和;如果策略類型為IPv4 in IPv6的自動(dòng)隧道模式IPv4_IN_IPv6_AUTO,則執(zhí)行IPv4 to IPv6的自動(dòng)隧道操作,根據(jù)PSFB表目中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv6地址為目的IPv4地址對(duì)應(yīng)的IPv6兼容地址;如果策略類型為IPv4 in IPv6的手工隧道模式IPv4_IN_IPv6_MANU,則執(zhí)行IPv4 toIPv6的手工隧道操作,根據(jù)PSFB表目中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv6地址為PSFB表目中的地址;如果策略類型為網(wǎng)絡(luò)地址轉(zhuǎn)換NAT PT,則執(zhí)行NAT-PT操作,根據(jù)PSFB表目中的偽IP地址和偽端口,對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行修改。
當(dāng)目的IP地址為IPv4兼容的IPv6地址時(shí),如果策略類型為純IPv6轉(zhuǎn)發(fā)IPv6_FORWARD,則執(zhí)行IPv6的轉(zhuǎn)發(fā)操作,修改TTL;如果策略類型為IPv6in IPv4的自動(dòng)隧道模式IPv6_IN_IPv4_AUTO,則執(zhí)行IPv6 to IPv4的自動(dòng)隧道操作,根據(jù)PSFB表目中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址;如果策略類型為網(wǎng)絡(luò)地址轉(zhuǎn)換NAT_PT,則執(zhí)行NAT-PT操作,根據(jù)PSFB表目中的偽IP地址和偽端口,對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行修改。
當(dāng)目的IP地址為非IPv4兼容的IPv6地址時(shí),如果策略類型為純IPv6轉(zhuǎn)發(fā)IPv6_FORWARD,則執(zhí)行IPv6的轉(zhuǎn)發(fā)操作,修改TTL;如果策略類型為IPv6 in IPv4的手動(dòng)隧道模式IPv6_IN_IPv4_MANU,則執(zhí)行IPv6 to IPv4的隧道操作,根據(jù)PSFB表目中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址。
在步驟S6,控制平面根據(jù)目的IP地址的類型、入端口的配置以及該目的IP地址所對(duì)應(yīng)的下一跳的出端口的配置中至少一個(gè),與轉(zhuǎn)發(fā)平面合作來(lái)對(duì)數(shù)據(jù)包進(jìn)行相應(yīng)的處理,并生成相應(yīng)的PSFB表目。具體說(shuō)來(lái)確定應(yīng)對(duì)該數(shù)據(jù)包所在的數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作的策略類型,并將有關(guān)策略類型的信息發(fā)送回轉(zhuǎn)發(fā)平面,以便由轉(zhuǎn)發(fā)平面根據(jù)所確定的策略類型處理數(shù)據(jù)包。下文中將具體描述有關(guān)確定應(yīng)對(duì)該數(shù)據(jù)包所在的數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作及生成相應(yīng)的PSFB表目的操作的具體方式。
然后在步驟S7,控制平面將該P(yáng)SFB表目分發(fā)到轉(zhuǎn)發(fā)平面,供后面的數(shù)據(jù)包使用。最后進(jìn)入步驟S9,處理下一個(gè)數(shù)據(jù)包。
下面分別描述當(dāng)當(dāng)目的IP地址為IPv4地址、IPv4兼容的IPv6地址、非IPv4兼容的IPv6地址時(shí),確定應(yīng)對(duì)該數(shù)據(jù)包所在的數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作的具體方法。
圖34是當(dāng)目的IP為IPv4地址時(shí),確定應(yīng)對(duì)該數(shù)據(jù)包所在的數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作的方法的流程圖。如圖34所示,當(dāng)目的IP地址為IPv4地址時(shí),在步驟S611,首先判斷入端口是否使能了NAT-PT且目的IPv4地址是否為地址池內(nèi)地址,如果沒(méi)有則轉(zhuǎn)向步驟S612,否則轉(zhuǎn)向步驟S613,在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,將IPv4包轉(zhuǎn)換為IPv6的包。在步驟S612,進(jìn)行IPv4相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,判斷下一跳的接口類型,如果為IPv4,則在步驟S614,轉(zhuǎn)發(fā)平面完成IPv4轉(zhuǎn)發(fā),如果下一跳對(duì)應(yīng)的接口為IPv6,則進(jìn)入步驟S615,在轉(zhuǎn)發(fā)平面進(jìn)行IPv4 in IPv6的隧道操作,其中目的地址可以為該IPv4地址對(duì)應(yīng)的IPv4兼容的IPv6地址也可以為手工配置的隧道地址。
圖35是當(dāng)目的IP為IPv4兼容的IPv6地址時(shí),確定應(yīng)對(duì)該數(shù)據(jù)包所在的數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作的方法的流程圖。如圖35所示,當(dāng)目的IP地址為IPv4兼容的IPv6地址時(shí),在步驟S621,首先判斷入端口是否使能了NAT-PT而且目的地址是否為地址池內(nèi)地址,如果沒(méi)有則轉(zhuǎn)向步驟S622,否則轉(zhuǎn)向步驟S626,在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,其中轉(zhuǎn)換后的目的IP地址為原有IPv6目的地址的低32位。在步驟S622,進(jìn)行IPv6相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,判斷下一跳的出接口類型,如果為IPv6,則轉(zhuǎn)向S624,轉(zhuǎn)發(fā)平面進(jìn)行IPv6轉(zhuǎn)發(fā)。如果下一跳的類型為IPv4,則轉(zhuǎn)向步驟S623,首先判斷出端口是否使能了NAT-PT。如果是,則轉(zhuǎn)向步驟S626,在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,其中源地址為地址池內(nèi)的地址,而目的地址為原有IPv6目的地址的低32位;否則轉(zhuǎn)向步驟S625,在轉(zhuǎn)發(fā)平面進(jìn)行IPv6 in IPv4操作,其中目的地址為原有IPv6目的地址的低32位。
當(dāng)目的IP地址為非IPv4兼容的IPv6地址時(shí),根據(jù)IPv6相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,并判斷下一跳所對(duì)應(yīng)的接口類型,如果為IPv6,則在轉(zhuǎn)發(fā)平面進(jìn)行IPv6轉(zhuǎn)發(fā)。否則為IPv4,則需要在轉(zhuǎn)發(fā)平面進(jìn)行IPv6 in IPv4的隧道操作,其中IPv4的目的地址為配置的隧道的IPv4地址。
下面說(shuō)明根據(jù)對(duì)數(shù)據(jù)包所進(jìn)行的不同的處理,相應(yīng)地生成PSFB表目的具體方式。
●如果對(duì)數(shù)據(jù)包進(jìn)行IPv4轉(zhuǎn)發(fā)時(shí),策略類型為IPv4_FORWARD,生成的PSFB表目的內(nèi)容包括策略類型、策略流ID、出端口索引、下一跳IPv6地址。
●如果對(duì)數(shù)據(jù)包進(jìn)行IPv6轉(zhuǎn)發(fā)時(shí),策略類型為IPv6_FORWARD,生成的PSFB表目的內(nèi)容包括策略類型、策略流ID、出端口索引、下一跳IPv6地址。
●如果對(duì)數(shù)據(jù)包進(jìn)行NAT/PT轉(zhuǎn)換,則策略類型為NAT_PT,生成的PSFB表目的內(nèi)容包括策略類型、策略流ID、Alias IPv6 Address、Source IPv4Address、Destination IPv4 Address、Source Port、Destination Port、Alias Port、Protocol Type等,出端口索引和下一跳IPv6地址等。
●如果對(duì)數(shù)據(jù)包進(jìn)行自動(dòng)的IPv4 in IPv6隧道操作,則策略類型為IPv4_IN_IPv6_AUTO,生成的PSFB表目的內(nèi)容包括策略類型、策略流ID、出端口索引、下一跳IPv6地址、隧道ID。
●如果對(duì)數(shù)據(jù)包進(jìn)行手工配置的IPv4 in IPv6隧道操作,則策略類型為IPv4_IN_IPv6_MANU,生成的PSFB表目的內(nèi)容包括策略類型、策略流ID、出端口索引、下一跳IPv6地址、隧道ID以及隧道的終點(diǎn)地址。
●如果對(duì)數(shù)據(jù)包進(jìn)行IPv6 in IPv4自動(dòng)隧道操作,則策略類型為IPv6_IN_IPv4_AUTO,生成的PSFB表目的內(nèi)容包括策略類型、策略流ID、出端口索引和隧道ID。
●如果對(duì)數(shù)據(jù)包進(jìn)行IPv6 in IPv4手工隧道操作,則策略類型為IPv6_IN_IPv4_MANU,生成的PSFB表目的內(nèi)容包括策略類型、策略流ID、出端口索引和隧道ID。
此外,PSFB表目中記錄有表明該P(yáng)SFB表目是否超時(shí)的超時(shí)標(biāo)識(shí),每當(dāng)該P(yáng)SFB表目被匹配的數(shù)據(jù)包使用一次即刷新該超時(shí)標(biāo)識(shí),控制平面每隔一定時(shí)間去檢查該標(biāo)識(shí),如果該標(biāo)識(shí)在一定時(shí)間內(nèi)沒(méi)有被刷新,說(shuō)明該P(yáng)SFB表目已經(jīng)老化,則刪除該P(yáng)SFB表目。
下面分別描述目的IP地址為IPv4地址、IPv4兼容的IPv6地址、非IPv4地址兼容的IPv6地址的情況下具體的處理。
1.如果目的IP地址為IPv4地址(1)數(shù)據(jù)包進(jìn)入網(wǎng)絡(luò)節(jié)點(diǎn)后,轉(zhuǎn)發(fā)平面首先根據(jù)<源IPv4地址、目的IPv4地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型>計(jì)算出對(duì)應(yīng)的Stream ID。
其中,由五元組計(jì)算出策略流ID的算法可以有多種,只需要能夠?qū)崿F(xiàn)元組和流ID一一映射和便于硬件或微碼實(shí)現(xiàn)即可。以下是其中一種算法說(shuō)明具體計(jì)算方法如下設(shè)所有可用的策略流ID空間的大小為P。
將五元組源IPv4地址、目的IPv4地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型按照上述順序以二進(jìn)制方式從低位到高位進(jìn)行排列,并計(jì)算排列出二進(jìn)制組合所對(duì)應(yīng)的CRC32校驗(yàn)和。假定該校驗(yàn)和為M。則由M對(duì)P取模(即M取模P),就可以得到一個(gè)策略流ID L。
(2)轉(zhuǎn)發(fā)平面根據(jù)(1)所得出的流ID按照精確查找(Exact Match)去查找流轉(zhuǎn)發(fā)表(PSFB)。如果發(fā)現(xiàn)匹配則進(jìn)行(3),否則則說(shuō)明該表目沒(méi)有生成或已經(jīng)老化,需要送控制平面進(jìn)行處理,進(jìn)行(9)。
(3)如果發(fā)現(xiàn)匹配,則開始判斷策略類型,如果策略類型為純IPv4轉(zhuǎn)發(fā)IPv4_FORWARD,則轉(zhuǎn)向(4),如果為IPv4 in IPv6的自動(dòng)隧道模式IPv4_IN_IPv6_AUTO,則轉(zhuǎn)向(5),如果是IPv4 in IPv6的手工隧道模式IPv4_IN_IPv6_MANU,則轉(zhuǎn)向(6),如果為網(wǎng)絡(luò)地址轉(zhuǎn)換NAT_PT,則轉(zhuǎn)向(7)。
(4)執(zhí)行IPv4的轉(zhuǎn)發(fā)操作,修改TTL,并重新計(jì)算校驗(yàn)和,轉(zhuǎn)向(8)。
(5)執(zhí)行IPv4 to IPv6的自動(dòng)隧道操作,根據(jù)PSFB中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv6地址為目的IPv4地址對(duì)應(yīng)的IPv6兼容地址,轉(zhuǎn)向(8)。
(6)執(zhí)行IPv4 to IPv6的手工隧道操作,根據(jù)PSFB中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv6地址為PSFB表目中的地址,轉(zhuǎn)向(8)。
(7)執(zhí)行NAT-PT操作,根據(jù)PSFB中的偽IP地址和偽端口,對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行修改,并繼續(xù)執(zhí)行(8)。
(8)然后根據(jù)PSFB中的Output Port Index表項(xiàng)和下一跳IP地址所指向的鄰接表(Adjacency Table)表項(xiàng)得出出端口(Output Port)和對(duì)應(yīng)的鏈路層消息(如MAC地址),將該數(shù)據(jù)包從出端口發(fā)出,并將超時(shí)標(biāo)志位Expired Flag位重新置位,并轉(zhuǎn)向(12)(9)如果沒(méi)有表目匹配,則說(shuō)明這是數(shù)據(jù)流的第一個(gè)包或者是PSFB流轉(zhuǎn)發(fā)表目已經(jīng)老化,轉(zhuǎn)發(fā)平面需要通過(guò)數(shù)據(jù)交互消息(PEM)則對(duì)數(shù)據(jù)流的第一個(gè)數(shù)據(jù)包送到控制平面。
(10)控制平面按照上文中所描述的IPv4和IPv6的處理算法IPFA的第一部分對(duì)數(shù)據(jù)包進(jìn)行處理,并根據(jù)不同的處理方式,生成不同的表目,具體如下如果是IPv4轉(zhuǎn)發(fā),則策略類型為IPv4_FORWARD,生成的PSFB表的內(nèi)容包括流ID、出端口索引、下一跳IPv4地址;如果是NAT-PT,則策略類型為NAT_PT,生成的PSFB表的內(nèi)容包括流ID、Alias IPv6 Address、Source IPv4 Address、Destination IPv4 Address、SourcePort、Destination Port、Alias Port、Protocol Type等,出端口索引和下一跳IPv6地址等;如果是自動(dòng)的IPv4 in IPv6 Tunnel,則策略類型為IPv4_IN_IPv6_AUTO,生成的表目包括流ID、出端口索引、下一跳IPv6地址、隧道ID。
如果是手工配置的IPv4 in IPv6 Tunnel,則策略類型為IPv4_IN_IPv6_MANU,生成的表目包括流ID、出端口索引、下一跳IPv6地址、隧道ID以及隧道的終點(diǎn)地址。
(11)控制平面通過(guò)流表目添加消息將該表目分發(fā)到轉(zhuǎn)發(fā)平面。
(12)結(jié)束操作,處理下一個(gè)數(shù)據(jù)包。
2.如果目的IP地址為IPv4兼容的IPv6地址(1)數(shù)據(jù)包進(jìn)入網(wǎng)絡(luò)節(jié)點(diǎn)后,轉(zhuǎn)發(fā)平面首先判斷IPv6包頭中的IPv6流標(biāo)記Flow_Label是否為0,如果為0則根據(jù)<源IPv6地址、目的IPv6地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型>計(jì)算出對(duì)應(yīng)的Stream ID;否則,則根據(jù)<源IPv6地址、IPv6流標(biāo)記Flow_Label>計(jì)算出相應(yīng)的Stream ID。
其中,由元組計(jì)算出策略流ID的算法可以有多種,只需要能夠?qū)崿F(xiàn)元組和流ID一一映射和便于硬件或微碼實(shí)現(xiàn)即可。以下是其中一種算法說(shuō)明具體計(jì)算方法如下設(shè)所有可用的策略流ID空間的大小為P。
將五元組源IPv6地址、目的IPv6地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型或者二元組源IPv6地址、IPv6流標(biāo)記Flow_Label按照上述順序從低位到高位以二進(jìn)制方式進(jìn)行排列,并計(jì)算排列出的二進(jìn)制組合所對(duì)應(yīng)的CRC32的校驗(yàn)和。假定該校驗(yàn)和為M。則由M對(duì)P取模(即M取模P),就可以得到一個(gè)策略流ID L。
(2)轉(zhuǎn)發(fā)平面根據(jù)(1)所得出的流ID按照精確查找(Exact Match)去查找流轉(zhuǎn)發(fā)表(PSFB)。如果發(fā)現(xiàn)匹配則進(jìn)行(3),否則則說(shuō)明該表目沒(méi)有生成或已經(jīng)老化,需要送控制平面進(jìn)行處理,進(jìn)行(8)。
(3)如果發(fā)現(xiàn)匹配,則開始判斷策略類型,如果策略類型為純IPv6轉(zhuǎn)發(fā)IPv6_FORWARD,則轉(zhuǎn)向(4),如果為IPv6 in IPv4的自動(dòng)隧道模式IPv6_IN_IPv4_AUTO,則轉(zhuǎn)向(5),如果為網(wǎng)絡(luò)地址轉(zhuǎn)換NAT_PT,則轉(zhuǎn)向(6)。
(4)執(zhí)行IPv6的轉(zhuǎn)發(fā)操作,修改TTL,轉(zhuǎn)向(7)。
(5)執(zhí)行IPv6 to IPv4的自動(dòng)隧道操作,根據(jù)PSFB中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址,轉(zhuǎn)向(7)。
(6)執(zhí)行NAT-PT操作,根據(jù)PSFB中的偽IP地址和偽端口,對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行修改,繼續(xù)(7)。
(7)然后根據(jù)PSFB中的Output Port Index表項(xiàng)和下一跳IP地址所指向的鄰接表(Adjacency Table)表項(xiàng)得出出端口(Output Port)和對(duì)應(yīng)的鏈路層消息(如MAC地址),將該數(shù)據(jù)包從出端口發(fā)出,并將超時(shí)標(biāo)志位Expired Flag位重新置位,并轉(zhuǎn)向(11)(8)如果沒(méi)有表目匹配,則說(shuō)明這是數(shù)據(jù)流的第一個(gè)包或者是PSFB表目已經(jīng)老化,轉(zhuǎn)發(fā)平面需要通過(guò)數(shù)據(jù)交互消息(PEM)則對(duì)數(shù)據(jù)流的第一個(gè)數(shù)據(jù)包送到控制平面。
(9)控制平面按照上文中所描述的IPv4和IPv6的處理算法IPFA的第二部分對(duì)數(shù)據(jù)包進(jìn)行處理,并根據(jù)不同的處理方式,生成不同的表目,具體如下如果是IPv6轉(zhuǎn)發(fā),則策略類型為IPv6_FORWARD,生成的PSFB表的內(nèi)容包括流ID、出端口索引、下一跳IPv6地址;如果是NAT-PT,則策略類型為NAT_PT,生成的PSFB表的內(nèi)容包括流ID、Alias IPv6 Address、Source IPv4 Address、Destination IPv4 Address、SourcePort、Destination Port、Alias Port、Protocol Type等,出端口索引和下一跳IPv6地址等;如果是IPv6 in IPv4自動(dòng)Tunnel,則策略類型為IPv6_IN_IPv4_AUTO,生成的表目包括流ID、出端口索引和隧道ID。
(10)控制平面通過(guò)流表目添加消息將該表目分發(fā)到轉(zhuǎn)發(fā)平面。
(11)結(jié)束操作,處理下一個(gè)數(shù)據(jù)包。
3.如果目的IP地址非IPv4地址兼容的IPv6地址(1)數(shù)據(jù)包進(jìn)入網(wǎng)絡(luò)節(jié)點(diǎn)后,轉(zhuǎn)發(fā)平面首先判斷包頭中的IPv6流標(biāo)記Flow_Label是否為0,如果為0則根據(jù)<源IPv6地址、目的IPv6地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型>計(jì)算出對(duì)應(yīng)的Stream ID;否則,則根據(jù)<源IPv6地址、IPv6流標(biāo)記Flow_Label>計(jì)算出相應(yīng)的Stream ID。
其中,由元組計(jì)算出策略流ID的算法可以有多種,只需要能夠?qū)崿F(xiàn)元組和流ID一一映射和便于硬件或微碼實(shí)現(xiàn)即可。以下是其中一種算法說(shuō)明具體計(jì)算方法如下設(shè)所有可用的策略流ID空間的大小為P。
將五元組源IPv6地址、目的IPv6地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型或者二元組源IPv6地址、IPv6流標(biāo)記Flow_Label按照從低位到高位進(jìn)行排列,并計(jì)算出排列出的二進(jìn)制組合所對(duì)應(yīng)的的CRC32的校驗(yàn)和。設(shè)該校驗(yàn)和為M。則由M對(duì)P取模,就可以得到一個(gè)策略流ID L。
(2)轉(zhuǎn)發(fā)平面根據(jù)(1)所得出的流ID按照精確查找(Exact Match)去查找流轉(zhuǎn)發(fā)表(PSFB)。如果發(fā)現(xiàn)匹配則進(jìn)行(3),否則則說(shuō)明該表目沒(méi)有生成或已經(jīng)老化,需要送控制平面進(jìn)行處理,進(jìn)行(7)。
(3)如果發(fā)現(xiàn)匹配,則開始判斷策略類型,如果策略類型為純IPv6轉(zhuǎn)發(fā)IPv6_FORWARD,則轉(zhuǎn)向(4),如果為IPv6 in IPv4的手動(dòng)隧道模式IPv6_IN_IPv4_MANU,則轉(zhuǎn)向(5)。
(4)執(zhí)行IPv6的轉(zhuǎn)發(fā)操作,修改TTL,轉(zhuǎn)向(6)。
(5)執(zhí)行IPv6 to IPv4的隧道操作,根據(jù)PSFB中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址,繼續(xù)(6)。
(6)然后根據(jù)PSFB中的Output Port Index表項(xiàng)和下一跳IP地址所指向的鄰接表(Adjacency Table)表項(xiàng)得出出端口(Output Port)和對(duì)應(yīng)的鏈路層消息(如MAC地址),將該數(shù)據(jù)包從出端口發(fā)出,并將超時(shí)標(biāo)志位Expired Flag位重新置位,并轉(zhuǎn)向(10)(7)如果沒(méi)有表目匹配,則說(shuō)明這是數(shù)據(jù)流的第一個(gè)包或者是PSFB表目已經(jīng)老化,轉(zhuǎn)發(fā)平面需要通過(guò)數(shù)據(jù)交互消息(PEM)則對(duì)數(shù)據(jù)流的第一個(gè)數(shù)據(jù)包送到控制平面。
(8)控制平面按照上文中所描述的IPv4和IPv6的處理算法IPFA的第三部分對(duì)數(shù)據(jù)包進(jìn)行處理,并根據(jù)不同的處理方式,生成不同的表目,具體如下如果是IPv6轉(zhuǎn)發(fā),則策略類型為IPv6_FORWARD,生成的PSFB表的內(nèi)容包括流ID、出端口索引、下一跳IPv6地址;如果是IPv6 in IPv4手工Tunnel,則策略類型為IPv6_IN_IPv4_MANU,生成的表目包括流ID、出端口索引和隧道ID。
(9)控制平面通過(guò)流表目添加消息將該表目分發(fā)到轉(zhuǎn)發(fā)平面。
(10)結(jié)束操作,處理下一個(gè)數(shù)據(jù)包。
本發(fā)明中關(guān)于策略流中表目的添加、刪除、老化和維護(hù),以及控制平面和轉(zhuǎn)發(fā)平面通信的方式參照專利“用策略流方式提高路由表查找速度的方法”。
下面描述本發(fā)明的上述設(shè)備的應(yīng)用實(shí)例,即在武漢烽火網(wǎng)絡(luò)公司的R8002上的具體應(yīng)用。
武漢烽火網(wǎng)絡(luò)公司研制的R8002是定位于城域網(wǎng)匯聚層和主干層的IPv4和IPv6兼容的路由交換設(shè)備,它支持多種接口種類和具有靈活的業(yè)務(wù)生成能力。當(dāng)R8002定位于城域網(wǎng)匯聚層的網(wǎng)絡(luò)設(shè)備時(shí),它主要完成對(duì)城域網(wǎng)中接入層上聯(lián)鏈路的匯接(Metro Aggregation),在用戶側(cè)能夠接入Fast Ethernet、Gigabit Ethernet和低速ATM等信號(hào),并提供智能業(yè)務(wù)生成(Service Creation)功能,為運(yùn)營(yíng)商提供各種增值功能,而在網(wǎng)絡(luò)層通過(guò)GE或POS和城域網(wǎng)主干層設(shè)備相連。此外,R8002也可以通過(guò)POS接口和SDH本地環(huán)連接,或者通過(guò)GE組成環(huán)形或星形網(wǎng)絡(luò),組成城域網(wǎng)的主干,并通過(guò)OC-48 POS和主干網(wǎng)設(shè)備相連。
從組網(wǎng)的需求來(lái)看,R8002上需要實(shí)現(xiàn)RIP、RIPv6和OSPF、OSPFv6等域內(nèi)協(xié)議和BGP一4、BGP4+等域間協(xié)議,在鏈路層支持PPP、Ethernet、LAPS和HDLC等協(xié)議。從應(yīng)用的角度來(lái)說(shuō),R8002能夠提供實(shí)現(xiàn)單播、組播和MPLS轉(zhuǎn)發(fā),并提供NAT、Firewall、VPN、Virtual Router和移動(dòng)IP等應(yīng)用。此外,考慮到目前國(guó)內(nèi)接入層的組網(wǎng)方式,R8002上該能夠提供二層應(yīng)用(VLAN)的支持。作為提供給運(yùn)營(yíng)商的增值功能,R8002目前可以提供基于端口和PPPoE Session的帶寬限制和QoS保證。從對(duì)用戶的管理角度來(lái)說(shuō),R8002目前可以提供基于PPPoE的認(rèn)證方式,并能通過(guò)Radius來(lái)實(shí)現(xiàn)對(duì)用戶流量的計(jì)費(fèi)。此外,還支持VLAN+IP+MAC的三級(jí)綁定和Web認(rèn)證。
R8002的機(jī)架采用工業(yè)標(biāo)準(zhǔn)的19英寸機(jī)箱,盤位間距25.4mm,總共16個(gè)槽位,其中主控CPU和交換盤占用7號(hào)和8號(hào)槽位,為1+1的備份,而剩余14個(gè)槽位提供給線卡使用,線卡為9U。
圖6顯示出本發(fā)明的應(yīng)用的邏輯視圖。圖中,黑色箭頭代表高速數(shù)據(jù)總線,綠色箭頭代表高速控制總線。其中,高速的數(shù)據(jù)總線提供的大容量的數(shù)據(jù)通道,而控制總線中提供了管理消息的通道,并提供了監(jiān)控硬件狀態(tài)的Health#、Present#和Alarm#等信號(hào)。整個(gè)系統(tǒng)采用3∶1的風(fēng)扇備份和1∶1的電源備份,提供了硬件的高可用性冗余支持。
此外,R8002采用了控制和轉(zhuǎn)發(fā)分離的體系結(jié)構(gòu),其中控制和管理功能運(yùn)行在主控CPU上,它上面運(yùn)行了故障檢測(cè)模塊(FDM)、容錯(cuò)模塊(FTM)以及和每個(gè)協(xié)議相關(guān)的協(xié)議相關(guān)單元(PSE),實(shí)現(xiàn)主用和備用之間的故障檢測(cè)和恢復(fù)。而線卡采用了基于網(wǎng)絡(luò)處理器轉(zhuǎn)發(fā)的體系架構(gòu),如圖7,在每個(gè)線卡的核心為一個(gè)高性能的網(wǎng)絡(luò)處理器,它在SRAM和SDRAM中維護(hù)有全局的轉(zhuǎn)發(fā)消息庫(kù)(FIB),因此在主備切換過(guò)程中,只要有流量進(jìn)入,仍能進(jìn)行正常的轉(zhuǎn)發(fā)。
當(dāng)采用策略流轉(zhuǎn)發(fā)時(shí),每個(gè)數(shù)據(jù)流的第一個(gè)數(shù)據(jù)包將被網(wǎng)絡(luò)處理器送到線路接口卡的RISC處理器上,由它完成路由表的查找和其它業(yè)務(wù)操作(如移動(dòng)IP)。然后,它將生成一條PSFB表目,并將它下載到SRAM和SDRAM中。由于采用了精確查找,而PSFB的表目的存儲(chǔ)采用了兩級(jí)存儲(chǔ)的方式,首先在SRAM上存有對(duì)應(yīng)每一個(gè)Stream ID的索引,而由這一索引指向SDRAM中的實(shí)際表項(xiàng),而這一表項(xiàng)的索引采用了Hash的算法。目前情況下,每條流轉(zhuǎn)發(fā)表目為128Bytes,在R8002上,每個(gè)接口卡支持64K個(gè)Stream,因此PSFB所占用的SDRAM空間為128*64K=8M空間,本發(fā)明使用的空間是從SDRAM起始地址0x3ff0000開始的8MBytes空間。而SRAM由于只需要存放相關(guān)表目的索引,因此只需要64K*4=256KBytes空間,本發(fā)明使用的SRAM中的起始地址為0xcl20000。而由于每個(gè)流都是單向的,因此每個(gè)流僅存在于各個(gè)線卡中,所以整個(gè)系統(tǒng)可以支持64K*14=896K個(gè)Stream。如果考慮到每個(gè)用戶上網(wǎng)時(shí)平均有20個(gè)Stream,則R8002共可以支持45K,即45,000個(gè)用戶同時(shí)在線。
以下為典型的R8002中對(duì)IPv6數(shù)據(jù)包的處理流程(1)數(shù)據(jù)包通過(guò)物理層芯片和成幀器進(jìn)入R8002后,網(wǎng)絡(luò)處理器中的微碼首先判斷包頭中的IPv6流標(biāo)記Flow_Label是否為O,如果為0則根據(jù)<源IPv6地址、目的IPv6地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型>計(jì)算出對(duì)應(yīng)的Stream ID;否則,則根據(jù)<源IPv6地址、IPv6流標(biāo)記Flow_Label>計(jì)算出相應(yīng)的Stream ID。
(2)微碼根據(jù)(1)所得出的流ID按照精確查找(Exact Match)去查找流轉(zhuǎn)發(fā)表(PSFB)。如果發(fā)現(xiàn)匹配則進(jìn)行(3),否則進(jìn)行(5)。
(3)如果發(fā)現(xiàn)匹配,則開始判斷策略類型,如果策略類型為IPv6_FORWARD,則轉(zhuǎn)向(4),如果為IPv6_IN_IPv4_MANU,則轉(zhuǎn)向(5)。
(4)微碼執(zhí)行IPv6的轉(zhuǎn)發(fā)操作,修改TTL,轉(zhuǎn)向(6)。
(5)微碼執(zhí)行IPv6 to IPv4的隧道操作,根據(jù)PSFB中的Tunnel ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址,轉(zhuǎn)向(6)。
(6)微碼根據(jù)PSFB中的Output Port Index表項(xiàng)和下一跳IP地址所指向的鄰接表(Adjacency Table)表項(xiàng)得出出端口(Output Port)和對(duì)應(yīng)的鏈路層消息(如MAC地址),將該數(shù)據(jù)包從出端口發(fā)出,并將Expired Flag位重新置位,并轉(zhuǎn)向(10)(7)如果沒(méi)有表目匹配,則說(shuō)明這是數(shù)據(jù)流的第一個(gè)包或者是PSFB表目已經(jīng)老化,微碼需要內(nèi)部高速總線將數(shù)據(jù)流的第一個(gè)數(shù)據(jù)包送到主控RSP的RISC上進(jìn)行處理。
(8)運(yùn)行在RISC處理器上的控制平面按照IPv4和IPv6的處理算法IPFA的第三部分對(duì)數(shù)據(jù)包進(jìn)行處理,并根據(jù)不同的處理方式,生成不同的表目,具體如下如果是IPv6轉(zhuǎn)發(fā),則策略類型為IPv6_FORWARD,PSFB表的內(nèi)容包括流ID、出端口索引、下一跳IPv6地址;如果是IPv6 in IPv4手工Tunnel,則策略類型為IPv6_IN_IPv4_MANU,表目包括流ID、出端口索引和隧道ID。
(9)控制平面通過(guò)高速內(nèi)部總線將該表目分發(fā)到轉(zhuǎn)發(fā)平面。
(10)結(jié)束操作,處理下一個(gè)數(shù)據(jù)包。
總之,由于采用了基于策略流的IPv4和IPv6兼容的轉(zhuǎn)發(fā)算法,烽火網(wǎng)絡(luò)公司的R8002具有以下特點(diǎn)1.支持在同一個(gè)物理管道中的IPv4和IPv6的轉(zhuǎn)發(fā),使得IPv4向IPv6的平滑過(guò)渡成為可能。
2.與MPLS技術(shù)不同,在不改變?cè)O(shè)備硬件結(jié)構(gòu)和不引入其他網(wǎng)絡(luò)間信令的前提下,只是通過(guò)改變?cè)O(shè)備內(nèi)部的邏輯流程,提高了轉(zhuǎn)發(fā)性能,并支持多種應(yīng)用。
3.和傳統(tǒng)的基于包IP轉(zhuǎn)發(fā)不同,采用了基于流處理而不是基于每個(gè)數(shù)據(jù)包處理的思想,對(duì)一個(gè)數(shù)據(jù)流只需要做一次復(fù)雜處理即可,避免了復(fù)雜的最長(zhǎng)匹配查找,大大提高了轉(zhuǎn)發(fā)性能。
4.采用同一張策略流轉(zhuǎn)發(fā)表同時(shí)支持IPv4和IPv6共存的多種方式,避免了采用多張表的復(fù)雜數(shù)據(jù)結(jié)構(gòu)。
5.采用多元組來(lái)標(biāo)識(shí)一個(gè)IP業(yè)務(wù)流,在轉(zhuǎn)發(fā)平面采用統(tǒng)一的策略流轉(zhuǎn)發(fā)表PSFB,并提供豐富的可擴(kuò)展的表項(xiàng),可以根據(jù)業(yè)務(wù)操作類型來(lái)決定對(duì)數(shù)據(jù)包的處理,可以用來(lái)增長(zhǎng)用戶的各種需要應(yīng)用,并為用戶提供定制業(yè)務(wù)的接口,使得用戶定制業(yè)務(wù)成為可能,并使得運(yùn)營(yíng)商可以根據(jù)用戶每一個(gè)流提供不同的業(yè)務(wù)和服務(wù)質(zhì)量。
一、R8002的硬件體系設(shè)計(jì)方案武漢烽火網(wǎng)絡(luò)公司基于RPR的城域網(wǎng)多業(yè)務(wù)環(huán)R8002設(shè)備是新一代的多業(yè)務(wù)光交換和傳輸平臺(tái),它對(duì)交換和傳輸進(jìn)行簡(jiǎn)化,同時(shí)也對(duì)交換和傳輸這兩項(xiàng)技術(shù)進(jìn)行了有機(jī)的集成,使之成為一個(gè)整體,R8002設(shè)備采用最新的ITU-T建議X.87,并基于網(wǎng)絡(luò)處理器、大容量Switch-Fabric、高性能協(xié)議處理引擎、自主知識(shí)產(chǎn)權(quán)的FPGA和ASIC、光波分復(fù)用等先進(jìn)技術(shù),在同一個(gè)平臺(tái)上實(shí)現(xiàn)了多種業(yè)務(wù)的融合,提高了城域和區(qū)域網(wǎng)絡(luò)中的帶寬效率,極大地降低了電信運(yùn)營(yíng)成本,可以獲得最巨大的營(yíng)收潛力,使運(yùn)營(yíng)商能夠以最大的網(wǎng)絡(luò)架構(gòu)靈活性對(duì)其基礎(chǔ)設(shè)施進(jìn)行低成本、高效率地升級(jí),為電信運(yùn)營(yíng)商提供豐富的服務(wù)組合。
R8002設(shè)備可提供以太網(wǎng)、千兆以太網(wǎng)、DVB、ATM、POS、X.85和X.86支路業(yè)務(wù),同時(shí)還能以動(dòng)態(tài)數(shù)據(jù)分組環(huán)的方式工作,像路由器一樣在環(huán)上轉(zhuǎn)發(fā)包括IP包在內(nèi)的分組業(yè)務(wù),在環(huán)上運(yùn)行的業(yè)務(wù)可提供單播、組播和廣播模式。采用R8002的組網(wǎng)方式使網(wǎng)絡(luò)費(fèi)用和維護(hù)工作量大大減少。
1.基于網(wǎng)絡(luò)處理器(NP)的分布式轉(zhuǎn)發(fā)網(wǎng)絡(luò)處理器是一種專為Gbps或Tbps速度下進(jìn)行分組過(guò)濾和轉(zhuǎn)發(fā)處理而優(yōu)化的可編程的專用硬件ASIC。轉(zhuǎn)發(fā)引擎能夠以線速對(duì)協(xié)議進(jìn)行分類和分析,減少了系統(tǒng)的復(fù)雜性,極大的提高了系統(tǒng)的性能。網(wǎng)絡(luò)處理器完成的高級(jí)功能包括分組分類、區(qū)分優(yōu)先級(jí)、調(diào)整、流量整形、轉(zhuǎn)換、業(yè)務(wù)調(diào)度、加密/解密、轉(zhuǎn)發(fā)、排序和路由、網(wǎng)絡(luò)互聯(lián)、收集統(tǒng)計(jì)信息等。網(wǎng)絡(luò)處理器也支持DiffServ服務(wù)、QOS、MPLS等。對(duì)于較低層次的功能,網(wǎng)絡(luò)處理器可以對(duì)分組頭部和負(fù)荷進(jìn)行分析和分類;在事先定義的表中作基于內(nèi)容的查找;把分組指派到適當(dāng)?shù)妮敵龆丝诨蜿?duì)列;調(diào)整分組域以支持VLAN和QOS。
轉(zhuǎn)發(fā)引擎的實(shí)現(xiàn)可以有兩種方式一種是轉(zhuǎn)發(fā)引擎和線路接口分開,通過(guò)交換機(jī)構(gòu)互聯(lián),這種設(shè)計(jì)的優(yōu)點(diǎn)是可以充分利用轉(zhuǎn)發(fā)引擎,提高轉(zhuǎn)發(fā)引擎的利用效率,缺點(diǎn)是增大了交換結(jié)構(gòu)的負(fù)荷而且負(fù)載平衡算法比較復(fù)雜;另一種方式為每塊線路接口單元配備一個(gè)轉(zhuǎn)發(fā)引擎,這樣作的好處是降低了交換結(jié)構(gòu)的負(fù)荷而且不需要?jiǎng)討B(tài)負(fù)載平衡。因此在實(shí)際設(shè)計(jì)中我們采用第二種設(shè)計(jì)方案,即基于NP的分布式分組轉(zhuǎn)發(fā)。
為了提高R8002設(shè)備查表效率,采用了二個(gè)關(guān)鍵技術(shù)分布式路由表和硬件查找。在每一個(gè)轉(zhuǎn)發(fā)引擎中都有一份和全局路由表相同條目的局部轉(zhuǎn)發(fā)表,轉(zhuǎn)發(fā)引擎獨(dú)立的查找本地轉(zhuǎn)發(fā)表確定分組的發(fā)送路徑。為了實(shí)現(xiàn)局部轉(zhuǎn)發(fā)表與全局路由表的同步和一些管理功能,轉(zhuǎn)發(fā)引擎中還有通用CPU和本地存儲(chǔ)器。
烽火網(wǎng)絡(luò)R8002設(shè)備高度可編程的網(wǎng)絡(luò)處理器提供了靈活的智能業(yè)務(wù)生成能力和豐富的安全功能,可以實(shí)現(xiàn)AAA功能、地址轉(zhuǎn)換(NAT)和分配功能、服務(wù)質(zhì)量保證QOS和帶寬控制功能、PBR、WEB認(rèn)證、PPPoE、基于ACL的安全機(jī)制、虛擬專用網(wǎng)VPN功能等等,并可以根據(jù)不同的策略流為用戶提供Diffsev服務(wù)。
NP是線卡的核心部份,它首先從MAC層接收到數(shù)據(jù)包,然后通過(guò)解析器,取出包頭中的關(guān)鍵碼信息,并根據(jù)該關(guān)鍵碼在轉(zhuǎn)發(fā)表中按照特定算法(如Hash算法)來(lái)查找到相關(guān)的轉(zhuǎn)發(fā)表目,再由該表目改寫包頭,重作校驗(yàn),設(shè)置優(yōu)先級(jí),最后轉(zhuǎn)發(fā)數(shù)據(jù)包到交換核心。
圖8是數(shù)據(jù)包處理的基本流程。首先轉(zhuǎn)發(fā)引擎解析出數(shù)據(jù)包目的MAC地址,并由此判斷是否需要進(jìn)行第三層交換;若目的MAC地址不是轉(zhuǎn)發(fā)引擎所對(duì)應(yīng)的端口MAC地址,則說(shuō)明需要進(jìn)行第二層的交換處理(橋接),此時(shí),目的MAC目標(biāo)就是數(shù)據(jù)包的最終目的地址。如果目的MAC地址是此端口的MAC地址,則判斷它的目的IP地址是否為路由器的IP地址,如果是,則認(rèn)為這是一個(gè)管理信息包(如主從CPU之間的通信包),并將它通過(guò)交換核心發(fā)往主CPU。若IP地址不是路由器的IP地址,那么就使用特定算法(如Hash算法)在SDRAM中找出此IP地址對(duì)應(yīng)的MAC地址,并在轉(zhuǎn)發(fā)表中查找到對(duì)應(yīng)的出端口,在修改包中源MAC地址、目標(biāo)MAC地址以及TTL計(jì)數(shù)器,重新計(jì)算IP包頭的校驗(yàn)和后,被發(fā)送到交換核心。若轉(zhuǎn)發(fā)表中無(wú)這個(gè)IP地址,則由主CPU查找其全局路由表,如果找到此地址,則由主CPU完成后續(xù)處理,并將根據(jù)新的路由信息將轉(zhuǎn)發(fā)表更新。若主CPU找不到此地址,則將其傳到缺省路由器或把它丟棄。(在邊緣路由器中,如果主CPU仍找不到IP地址對(duì)應(yīng)的表目,就會(huì)把它傳到缺省路由器,而在核心路由器中,由于主CPU中有整個(gè)網(wǎng)絡(luò)的全局路由表,如果仍然找不到,將認(rèn)為IP地址有誤,并把它拋棄。)
R8002設(shè)備中的NP是采用CMOS技術(shù)的高度集成的可編程轉(zhuǎn)發(fā)引擎,支持2.5Gbps的線路接口,以后可以升級(jí)到10Gbps的接口速率。NP通過(guò)高帶寬的數(shù)據(jù)總線與MAC/Framer連接,可以靈活的組成多種不同接口類型的線卡,例如FE、GE、POS、Ethernet over SDH、R8002等,可以滿足光傳輸網(wǎng)、WAN、MAN、3G等應(yīng)用。一個(gè)NP在線卡上的典型應(yīng)用如圖9NP是基于可編程的微引擎結(jié)構(gòu),采用了流水線技術(shù),可以將轉(zhuǎn)發(fā)引擎(Forwarding Engine)的功能分為五大部份包解析、關(guān)鍵碼查找、包頭修改、包排隊(duì)和調(diào)度,并采用單獨(dú)的引擎來(lái)實(shí)現(xiàn)這五大功能。在包處理的過(guò)程中,這些引擎將按照固定的順序?qū)ΠM(jìn)行單獨(dú)處理。這條每個(gè)數(shù)據(jù)包必須經(jīng)過(guò)的過(guò)程就是包流水線。由于采用了流水線作業(yè),每個(gè)引擎在完成自己的任務(wù)后,就可以將該包發(fā)送到流水線上的下一個(gè)引擎,而可以開始處理新的數(shù)據(jù)包。這就意味著每個(gè)引擎不需要等待NP完成對(duì)一個(gè)包的完整處理,就可以處理下一個(gè)新的數(shù)據(jù)包,從而大大提高了執(zhí)行效率。圖10是網(wǎng)絡(luò)處理器的內(nèi)部結(jié)構(gòu)框圖。
NP中有兩條內(nèi)部流水線,分別是Incoming包流水線和Outcoming包流水線。Incoming流水線是每個(gè)從MAC層到交換核心的包必須遍歷的。而Outcoming流水線則是從交換核心到MAC層的逆向的全過(guò)程。下面將以Incoming包流水線為例,說(shuō)明NP的工作流程。
入流水線工作流程當(dāng)一個(gè)包從Incoming Stream Interface進(jìn)入NP并發(fā)送到交換核心的過(guò)程中,它必須按固定順序經(jīng)過(guò)以下引擎輸入流調(diào)度器、接收流解析器、查找和更新引擎、接收編輯器和輸入隊(duì)列管理器,如圖11其中,三個(gè)引擎是可編程的AFP,它們通過(guò)執(zhí)行引擎上存儲(chǔ)的微代碼指令來(lái)實(shí)現(xiàn)功能。這三個(gè)引擎是接收解析器、查找和更新引擎、接收編輯器。每個(gè)引擎可以通過(guò)NP的CPU接口下載微代碼,從而可以根據(jù)以后的需要擴(kuò)展功能。而另外兩個(gè)不能編程的引擎是高度集成的專用的狀態(tài)機(jī)。這樣就在具有靈活性的同時(shí),又保證了執(zhí)行的高效率。
入流水線功能描述如下·調(diào)度當(dāng)一個(gè)包到達(dá)Input Stream Interface時(shí),調(diào)度器將把它存儲(chǔ)到對(duì)應(yīng)于32個(gè)Stream的32個(gè)內(nèi)部FIFO中的一個(gè)。然后,調(diào)度器將對(duì)數(shù)據(jù)流進(jìn)行判決。調(diào)度器首先要對(duì)各個(gè)物理端口進(jìn)行加權(quán),然后基于輪轉(zhuǎn)法(Round Robin)進(jìn)行調(diào)度。所謂輪轉(zhuǎn)法,就是讓每個(gè)進(jìn)程在就緒隊(duì)列中的等待時(shí)間和享受服務(wù)的時(shí)間成正比。輪轉(zhuǎn)法的基本概念是將CPU的時(shí)間分成固定的時(shí)間片。如果一個(gè)進(jìn)程在被調(diào)度選中之后用完了系統(tǒng)規(guī)定的時(shí)間片,但仍未完成任務(wù),它將自己釋放占有的CPU資源而排到就緒隊(duì)列的末尾,等待下一次調(diào)度。同時(shí)進(jìn)程調(diào)度程序又去調(diào)度當(dāng)前就緒隊(duì)列中的第一個(gè)進(jìn)程或作業(yè)。其原理如圖12所示此外,調(diào)度器還要將包分段。其中,第一個(gè)段叫做SOP(Start of Packet)。在SOP段中,含有整個(gè)包分段情況的完整信息,并包含全部關(guān)鍵碼信息。因此流水線下一個(gè)引擎(查找和更新引擎)可以只需通過(guò)處理SOP就能正確地處理包。
·解析解析器主要是執(zhí)行包的解析和提取功能。由于SOP中已經(jīng)包含有全部包的關(guān)鍵碼信息,所以解析器只需通過(guò)對(duì)SOP的處理就可以完成包的解析過(guò)程。這樣,包處理的效率就大大提高。NP的核心是解析器和查找&更新引擎,它們實(shí)現(xiàn)了轉(zhuǎn)發(fā)引擎的主要功能。解析器的主要功能在于向查找和更新引擎提供查找的關(guān)鍵碼。由于它是可編程的AFP,所以可以通過(guò)從CPU下載的微代碼來(lái)決定關(guān)鍵碼是IP目的地址、MAC地址還是UCP/TCP端口號(hào),甚至是更高層信息。當(dāng)?shù)玫竭@些信息后,并根據(jù)需要再加上一些其它信息(如MPLS標(biāo)簽)后,解析器將生成轉(zhuǎn)發(fā)頭(Forwarding header),并把它發(fā)向查找和更新引擎。
·查找和更新查找和更新引擎作為轉(zhuǎn)發(fā)引擎的核心,它的查找算法和執(zhí)行效率決定了轉(zhuǎn)發(fā)引擎的包轉(zhuǎn)發(fā)率。查找引擎首先從解析引擎中獲得轉(zhuǎn)發(fā)頭,然后執(zhí)行查找算法,并在外部的SDRAM中的轉(zhuǎn)發(fā)表中查找到所需表目。如果查找引擎找到關(guān)鍵碼相關(guān)的表目,它將把該表目發(fā)往接收編輯引擎進(jìn)行下一步處理。
由于轉(zhuǎn)發(fā)表在外部的SDRAM中是基于Hash的存儲(chǔ)方式,因此,在查找過(guò)程中,查找引擎首先將關(guān)鍵碼處理為一個(gè)獨(dú)特的Hash,并用該Hash按照最長(zhǎng)前綴匹配在轉(zhuǎn)發(fā)表中進(jìn)行查找。如果該條目存在,查找引擎將把它的Data payload域傳送到編輯引擎。
從結(jié)構(gòu)上看,NP的查找引擎由兩部份組成,并按主-從模式運(yùn)行。主引擎部份是基于微代碼的AFP,而從引擎部份是一系列的有限狀態(tài)機(jī),其中每一個(gè)狀態(tài)機(jī)執(zhí)行某一個(gè)特定的查找操作。由于主引擎是基于微代碼的,所以具有相當(dāng)?shù)撵`活性,并可以根據(jù)需要隨時(shí)加以擴(kuò)展。而固定的從引擎則可以快速完成固定的查找操作。
查找引擎同樣支持DML(Data Manipulation Layer)頭的產(chǎn)生和添加,這樣可以就很方便地進(jìn)行流分類、服務(wù)分類和排隊(duì)。
此外,根據(jù)點(diǎn)擊次數(shù)和老化計(jì)數(shù),更新引擎還將把SDRAM中的轉(zhuǎn)發(fā)表項(xiàng)進(jìn)行更新。這樣,使得外部轉(zhuǎn)發(fā)表中的表項(xiàng)始終和全局的路由表保持一致,并有較高的查找效率。
·編輯編輯引擎從查找引擎中得到相關(guān)信息,并據(jù)此對(duì)數(shù)據(jù)包的相關(guān)域進(jìn)行修改。首先,它要將TTL(Time to live)域減一,并且重新生成IP包的校驗(yàn)和,完成對(duì)TCP/UDP包頭校驗(yàn)和的更新和對(duì)源和目的MAC地址進(jìn)行改寫,其中,將目的MAC地址更新為轉(zhuǎn)發(fā)表目中下一Hop的MAC地址,而將源MAC地址更新為轉(zhuǎn)發(fā)引擎所對(duì)應(yīng)的路由器端口的MAC地址。此外,編輯器還要插入或刪除VLAN標(biāo)志,并產(chǎn)生單播或組播頭。
·隊(duì)列管理輸入隊(duì)列管理器是Incoming流水線的最后一步。輸入管理器完成的功能就是從編輯引擎處接收到包,按照調(diào)度策略將它們隊(duì)列化,并發(fā)往交換核心。輸入管理器通過(guò)輸入包內(nèi)存接口和Fabric接口這兩個(gè)外部接口來(lái)管理輸入的數(shù)據(jù)包。其中,輸入包內(nèi)存接口是一個(gè)SDRAM接口,它最多可以支持128Mbytes和264個(gè)邏輯輸入隊(duì)列。
當(dāng)隊(duì)列器接收到一個(gè)數(shù)據(jù)包時(shí),首先根據(jù)包頭前的本地接收隊(duì)列頭(LQRHeader)進(jìn)行判斷。在LQR頭中,存有出Crossbar的端口ID,優(yōu)先級(jí)ID和組播信息。它是由解析器、查找引擎和編輯引擎共同作用后所生成的。在作出判斷后,隊(duì)列器將把包存儲(chǔ)到264個(gè)輸入隊(duì)列中的一個(gè)。只要264個(gè)隊(duì)列有隊(duì)列不空,隊(duì)列器根據(jù)輪轉(zhuǎn)法算法對(duì)隊(duì)列進(jìn)行調(diào)度,反復(fù)將隊(duì)列中的等待發(fā)送的包發(fā)往交換核心。這樣,就完成了從NP到交換核心的轉(zhuǎn)發(fā)。
2.大容量交換核心Switch-Fabric交換結(jié)構(gòu)是R8002設(shè)備中的關(guān)鍵部分,是解決高速報(bào)文轉(zhuǎn)發(fā)的關(guān)鍵節(jié)點(diǎn),它的性能直接決定了整機(jī)的性能。R8002設(shè)備的交換結(jié)構(gòu)采用交叉開關(guān)的方式來(lái)實(shí)現(xiàn)。交叉開關(guān)能夠達(dá)到很高的速率,擴(kuò)展性好,易于系統(tǒng)的擴(kuò)展和升級(jí),但是需要設(shè)計(jì)完善的調(diào)度算法并用高速硬件實(shí)現(xiàn)調(diào)度器。隨著人們對(duì)交叉開關(guān)調(diào)度算法研究的深入,已經(jīng)設(shè)計(jì)并實(shí)現(xiàn)了許多性能良好、實(shí)現(xiàn)簡(jiǎn)單的調(diào)度算法,因此,在R8002設(shè)備中我們采用了高性能的交叉開關(guān)作為交換結(jié)構(gòu),下面我們將重點(diǎn)討論交叉開關(guān)的設(shè)計(jì)與實(shí)現(xiàn)。
使用交叉開關(guān)主要基于如下的考慮首先,交叉開關(guān)可以在網(wǎng)絡(luò)接口卡之間建立點(diǎn)到點(diǎn)的連接,這就意味著網(wǎng)絡(luò)接口卡之間可以高速傳遞數(shù)據(jù)。目前,在商用產(chǎn)品中,芯片到芯片的線路速度已經(jīng)可以達(dá)到3.6Gb/s,在實(shí)驗(yàn)室中已經(jīng)可以達(dá)到4~10Gb/s。其次,交叉開關(guān)可以同時(shí)提供多路傳送,只要源和目的地不沖突,就可以同時(shí)傳送,這樣可以極大地增加帶寬。
在使用交叉開關(guān)時(shí),需要把報(bào)文變成定長(zhǎng)的分組。在使用定長(zhǎng)的分組時(shí),可以根據(jù)分組的大小劃分時(shí)間片,根據(jù)時(shí)間片一步一步地處理。如果使用變長(zhǎng)的分組,那么分組通過(guò)交叉開關(guān)的時(shí)間就是隨機(jī)的,調(diào)度器就必須知道所有輸入和輸出的狀態(tài),這使調(diào)度器的設(shè)計(jì)相當(dāng)復(fù)雜,而且很難做到公平調(diào)度。
在使用交叉開關(guān)時(shí),需要解決以下幾個(gè)主要問(wèn)題。
阻塞問(wèn)題當(dāng)使用交叉開關(guān)作為交換結(jié)構(gòu)時(shí),可能會(huì)遇到以下3種阻塞。
第1種是線路頭部阻塞。如果輸入端口等待交換的分組都使用同一個(gè)隊(duì)列排隊(duì),就會(huì)出現(xiàn)線路頭部阻塞問(wèn)題。舉例來(lái)說(shuō),如果隊(duì)列頭部的分組要去的端口正忙,那么此分組只能在隊(duì)列中等待。這時(shí)即使它后面的分組要去的端口是空閑的,也沒(méi)有機(jī)會(huì)發(fā)送。這種阻塞會(huì)極大地降低交叉開關(guān)的流量。采用虛擬輸出隊(duì)列(virtual output queuing,簡(jiǎn)稱VOQ)的機(jī)制可以解決線路頭部阻塞問(wèn)題。思路是假設(shè)系統(tǒng)中有n個(gè)輸入端口和n個(gè)輸出端口,那么每個(gè)輸入端口都有n個(gè)隊(duì)列分別對(duì)應(yīng)每個(gè)輸出端口。這樣,若一個(gè)輸出端口發(fā)生阻塞對(duì)其他的輸出端口不會(huì)產(chǎn)生影響。當(dāng)然,在實(shí)際輸出時(shí),每個(gè)端口只對(duì)應(yīng)于交叉開關(guān)中的一條線,因此稱之為虛擬輸出隊(duì)列。
第2種是輸入阻塞。由于虛擬輸出隊(duì)列對(duì)應(yīng)的交叉開關(guān)的線只有1條,因此,每次只能交換一個(gè)分組。當(dāng)虛擬輸出隊(duì)列中有多個(gè)分組時(shí),得不到交換機(jī)會(huì)的隊(duì)列頭部分組就處于輸入阻塞狀態(tài)。輸入阻塞不影響交叉開關(guān)的流量,只會(huì)增大被阻塞的分組的延遲。
第3種是輸出阻塞。如果兩個(gè)輸入端口的分組都要去同一個(gè)輸出端口,就會(huì)發(fā)生輸出阻塞。這種阻塞和輸入阻塞一樣,不會(huì)影響交叉開關(guān)的流量,只增大被阻塞的分組的延遲。為了解決輸入阻塞和輸出阻塞,提出了兩種解決方案第一,帶優(yōu)先級(jí)的虛擬輸出隊(duì)列。給每個(gè)輸出隊(duì)列劃分4個(gè)優(yōu)先級(jí),相應(yīng)的輸出隊(duì)列也就變成4條,高優(yōu)先級(jí)的分組優(yōu)先發(fā)送。這種方案并不能完全解決輸入阻塞問(wèn)題,比如優(yōu)先級(jí)相同的分組之間還是有阻塞,但是它可以保證高優(yōu)先級(jí)的分組的延遲比較小;第二,加快交叉開關(guān)的交換速度(Speedup)。如果交叉開關(guān)的交換速度是端口速度的兩倍,那么,相對(duì)于端口來(lái)說(shuō),交叉開關(guān)能夠一次交換兩個(gè)分組。從理論上說(shuō),如果有n個(gè)輸入端口和n個(gè)輸出端口,那么交叉開關(guān)的速度必須是端口速度的n倍才能保證沒(méi)有輸出阻塞。在實(shí)際使用中,只要交叉開關(guān)的速度是端口速度的兩倍,就可以基本保證不出現(xiàn)輸出阻塞。
調(diào)度算法交叉開關(guān)的另一個(gè)重要問(wèn)題就是調(diào)度算法,調(diào)度算法可以分成輸入排隊(duì)的調(diào)度算法和輸出排隊(duì)的調(diào)度算法。調(diào)度算法設(shè)計(jì)的基本要求是(1)效率高。高效率的調(diào)度算法應(yīng)該能夠同時(shí)匹配盡可能多的輸入隊(duì)列。一般來(lái)說(shuō),使用硬件很難快速計(jì)算出最佳匹配,因此,一般在設(shè)計(jì)調(diào)度算法時(shí)總是盡力尋找次優(yōu)的算法。
(2)穩(wěn)定性。無(wú)論輸入隊(duì)列的情況如何,調(diào)度算法都應(yīng)該迅速找到可行的調(diào)度。
(3)不會(huì)出現(xiàn)某些隊(duì)列永遠(yuǎn)得不到響應(yīng)的情況。
(4)快速。調(diào)度算法必須快速執(zhí)行,否則將會(huì)抵消交叉開關(guān)帶來(lái)的帶寬的增加。
(5)易于實(shí)現(xiàn)。調(diào)度算法應(yīng)該易于用硬件實(shí)現(xiàn)。實(shí)現(xiàn)的復(fù)雜性包括調(diào)度器維護(hù)的狀態(tài)的數(shù)量,基于這些狀態(tài)作出決策的邏輯的復(fù)雜度和修改狀態(tài)時(shí)的通信開銷。
烽火網(wǎng)絡(luò)R8002設(shè)備采用80Gbps的大容量智能交換矩陣(Crossbar),結(jié)合隊(duì)列管理引擎共同構(gòu)造了一個(gè)高性能的路由、交換系統(tǒng),支持完善的可編程QOS算法和單播與組播業(yè)務(wù),提供業(yè)務(wù)優(yōu)先級(jí)分類,采用VOQ隊(duì)列和Speedup因子優(yōu)化交換結(jié)構(gòu)的性能。交換系統(tǒng)支持冗余保護(hù)功能,支持端口的熱插拔操作,采用多個(gè)Crossbar結(jié)構(gòu)可以方便的倍增系統(tǒng)交換容量,便于系統(tǒng)的升級(jí)。
廣義上的交換結(jié)構(gòu)由三部分構(gòu)成線路接口卡上的隊(duì)列管理器、高帶寬的交換式背板、Crossbar交換核心。圖14是采用Crossbar交換技術(shù)的系統(tǒng)結(jié)構(gòu)線卡上的隊(duì)列管理器主要完成VOQ隊(duì)列的管理、業(yè)務(wù)優(yōu)先級(jí)的調(diào)度、組播和單播帶寬的分配、串/并轉(zhuǎn)換功能,它把網(wǎng)絡(luò)處理器送來(lái)的并行數(shù)據(jù)按照一定的數(shù)據(jù)格式進(jìn)行封裝,然后把并行數(shù)據(jù)流轉(zhuǎn)換成高速的串行數(shù)據(jù)流,通過(guò)背板傳送到交換線卡。反之,它接收從交換線卡來(lái)的串行數(shù)據(jù),按照開銷比特的指示進(jìn)行數(shù)據(jù)解封裝,然后把高速的串行數(shù)據(jù)轉(zhuǎn)換為低速的并行數(shù)據(jù)。圖15是隊(duì)列管理器的內(nèi)部結(jié)構(gòu)。
交換式背板是線路接口卡與交換線卡進(jìn)行連接的物理通道。交換芯片組通過(guò)時(shí)鐘同步過(guò)程確定背板上數(shù)據(jù)通道的可用性,并且隨時(shí)檢測(cè)通道的信號(hào)質(zhì)量。從線卡到中央交換結(jié)構(gòu)的連接是簡(jiǎn)單的點(diǎn)到點(diǎn)的連接,這意味著可以采用高速連接。每個(gè)線路使用單獨(dú)的收發(fā)器,因而可以對(duì)信號(hào)反射進(jìn)行控制,從而允許信號(hào)有更短的建立時(shí)間。短的點(diǎn)到點(diǎn)的連接有利于控制時(shí)鐘Skew、信號(hào)完整性和減少電磁干擾。而且,目前在高速串行線路中廣泛采用差分技術(shù),既提高了線路在高速傳輸時(shí)的抗干擾能力,又較低了功耗,極大的減小了EMI/EMC。
Crossbar交換核心是整個(gè)Switch-Fabric中的關(guān)鍵部分(見(jiàn)圖16)。R8002設(shè)備中的交換線卡采用自路由的同步串行分組交換技術(shù)。首先,在接收線卡上,從交換芯片發(fā)來(lái)的數(shù)據(jù)被重新定時(shí),這消除了任何占空比的變化或數(shù)據(jù)相關(guān)性的影響,交換芯片必須提供重定時(shí)時(shí)鐘去同步多有的線卡,可以采用把交換芯片作為重定時(shí)時(shí)鐘源的方法。時(shí)鐘頻率信息嵌入在串行數(shù)據(jù)流中發(fā)送給所有線卡上的收發(fā)器。交換芯片的字時(shí)鐘被時(shí)鐘倍頻單元(CMU)倍頻去產(chǎn)生主比特時(shí)鐘BCLK,比特時(shí)鐘用于串行化發(fā)送給收發(fā)器的數(shù)據(jù)。收發(fā)器利用一個(gè)時(shí)鐘恢復(fù)單元(CRU)去恢復(fù)比特時(shí)鐘的頻率和相位信息,然后利用恢復(fù)的時(shí)鐘向交換芯片發(fā)送串行數(shù)據(jù)。在交換芯片處,只需要利用數(shù)據(jù)恢復(fù)單元(DRU)去恢復(fù)相位信息,因?yàn)榻粨Q芯片恢復(fù)的串行數(shù)據(jù)與它發(fā)送給線卡的串行數(shù)據(jù)是同頻率的,可以設(shè)計(jì)DRU去吸收因溫度或電源等因素變化而產(chǎn)生的相位變化。交換芯片和收發(fā)器之間一旦長(zhǎng)時(shí)間的建立了比特時(shí)序,在每次交換芯片重配置后不再需要額外的相位采樣時(shí)間。同步方式的另一個(gè)優(yōu)點(diǎn)是除了比特同步,在交換芯片和收發(fā)器之間還會(huì)執(zhí)行字同步和信元同步,然后命令字和信息就可以在它們之間傳送。
傳統(tǒng)的串行交叉結(jié)構(gòu)只有單個(gè)控制端口,從而成為路由變長(zhǎng)分組的瓶頸。在異步交換的方案中,交換芯片不能接收和產(chǎn)生數(shù)據(jù),因?yàn)樗鼉H僅為串行數(shù)據(jù)流提供通道服務(wù)。與之不同,字同步的串行交換背板可以在收發(fā)器和交換芯片之間傳送完整的數(shù)據(jù)或者命令字。利用交換芯片的內(nèi)部簡(jiǎn)單的Round-Robin仲裁單元,背板可以實(shí)現(xiàn)自路由。
除了硬件的設(shè)計(jì)外,交換單元的調(diào)度算法也是實(shí)現(xiàn)高吞吐率的一個(gè)關(guān)鍵方面,在執(zhí)行完字同步后,在發(fā)送數(shù)據(jù)時(shí),交換芯片與收發(fā)器之間進(jìn)行連接請(qǐng)求——仲裁——確認(rèn)的傳輸機(jī)制,在線卡上進(jìn)行隊(duì)列的調(diào)度,在交換芯片上進(jìn)行輪轉(zhuǎn)優(yōu)先權(quán)的仲裁算法,并采用基于信用的調(diào)度算法,解決交換線卡的數(shù)據(jù)阻塞問(wèn)題,最終實(shí)現(xiàn)高效率的交換單元。
3.高性能路由處理引擎R8002設(shè)備采用高性能的嵌入式微處理器作為路由處理引擎,支持豐富的協(xié)議種類,收集網(wǎng)絡(luò)拓?fù)湫畔⑸扇致酚杀?。此外,它支持通用的SNMP網(wǎng)絡(luò)管理協(xié)議,支持TELNET用于對(duì)路由器的管理和配置,另外還支持MIBII信息數(shù)據(jù)庫(kù)。R8002設(shè)備的系統(tǒng)維護(hù)和管理功能也由微處理器完成。
二、R8002設(shè)備的系統(tǒng)結(jié)構(gòu)R8002設(shè)備采用標(biāo)準(zhǔn)的19英寸機(jī)架,可以方便的安裝在電信機(jī)房?jī)?nèi),采用前面插卡的背板和機(jī)架系統(tǒng)。圖17中總共有14個(gè)槽位,其中系統(tǒng)盤占用兩個(gè)槽位7和8,提供冗余保護(hù);其他12個(gè)槽位支持各種線卡的混插,方便用戶根據(jù)需要選配不同的線卡,線卡可以提供FE、GE、POS、MSR/RPR、CWDM接口。
為滿足電信級(jí)高可靠性的要求,硬件系統(tǒng)具備高可靠性,支持線卡的熱插拔,并配合軟件完成主/備部件的熱倒換,系統(tǒng)維護(hù)時(shí)不會(huì)中斷業(yè)務(wù)。電源和冷卻系統(tǒng)都具備N+1冗余保護(hù)功能,并可以納入網(wǎng)管進(jìn)行管理。硬件系統(tǒng)提供完善的系統(tǒng)狀態(tài)檢測(cè)和故障定位能力,為系統(tǒng)維護(hù)提供了快捷有效的手段。
R8002設(shè)備在軟件上采用了系統(tǒng)適配層和操作系統(tǒng)適配層的方式解決了物理資源到邏輯資源的映射,它從邏輯上可以分為以下部分1.控制平面提供路由和信令功能,和其他網(wǎng)絡(luò)設(shè)備交互并處理協(xié)議包,同管理平面一起為數(shù)據(jù)平面生成轉(zhuǎn)發(fā)時(shí)依照的各種表目和策略,處理異?;蚱渌x項(xiàng)包。
2.數(shù)據(jù)平面完成per-packet處理,實(shí)現(xiàn)對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)包的layer 2到layer 7的處理,提供多種轉(zhuǎn)發(fā)方式(layer 2、IP、MPLS等)和安全策略處理(PBR、ACL和VPN),完成對(duì)統(tǒng)計(jì)變量的計(jì)數(shù)。
3.管理平面完成對(duì)協(xié)議和系統(tǒng)的的配置和管理,,管理方式主要包括命令行(CLI),串口圖形界面,SNMP網(wǎng)管工作站和基于WEB的圖形管理界面。它主要完成的功能有對(duì)路由器的配置管理,性能的查看,告警和日志的記錄,用戶安全的認(rèn)證,數(shù)據(jù)庫(kù)信息的維護(hù)和管理。
4.操作系統(tǒng)適配層為上層的控制平面和管理平面提供統(tǒng)一的接口,屏蔽操作系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié);提供通用的系統(tǒng)調(diào)用,如單鏈表、多鏈表和哈希表的添加、刪除和建立;提供對(duì)系統(tǒng)內(nèi)存和緩存區(qū)的管理調(diào)用。
5.系統(tǒng)適配層完成控制平面到數(shù)據(jù)平面的適配,對(duì)控制平面屏蔽系統(tǒng)硬件結(jié)構(gòu)細(xì)節(jié),提供通用的上層API接口。完成數(shù)據(jù)平面和控制平面信息的交互,包括轉(zhuǎn)發(fā)表目、協(xié)議包和網(wǎng)管數(shù)據(jù)等。
其中,R8002設(shè)備軟件的核心部分為多處理器通信協(xié)議(MPCP)。它完成數(shù)據(jù)平面和控制平面、管理平面的適配,使得整個(gè)路由器能夠?qū)ν馐且粋€(gè)完整的有機(jī)體。為協(xié)議包和網(wǎng)管數(shù)據(jù)提供數(shù)據(jù)通道,并實(shí)現(xiàn)線卡和主控處理器上關(guān)鍵數(shù)據(jù)結(jié)構(gòu)的同步。
綜上所述,R8002設(shè)備邏輯結(jié)構(gòu)如圖18 機(jī)械結(jié)構(gòu)技術(shù)路線1、子架結(jié)構(gòu)及電路板與連接器的基本要求符合如下標(biāo)準(zhǔn)IEC STANDARD Publication 297 Dimensions of mechanical structure of482.6mm(19inch)seriesIEEE(1101.1,1101.10,1101.11)Equipment Practice Eurocard packagingIEC-61076-4-101 Specification for 2mm Connector Systems2、機(jī)箱結(jié)構(gòu)機(jī)械結(jié)構(gòu)采用AutoCAD、Pro/E等軟件設(shè)計(jì),采用理論計(jì)算、軟件仿真、儀表測(cè)試等方法進(jìn)行散熱系統(tǒng)分析,確保散熱系統(tǒng)滿足電路設(shè)計(jì)的要求,保證整個(gè)系統(tǒng)長(zhǎng)期穩(wěn)定可靠的運(yùn)行。
R8002設(shè)備機(jī)箱的基本特性如下Size19英寸(482.6mm)工業(yè)標(biāo)準(zhǔn)機(jī)架寬度(包含安裝用的凸沿),13U(578mm)高度(不包含交流整流單元),585mm深度(從前部安裝凸沿開始計(jì)算)用戶可選配的19英寸寬度,3U高度的110/220V交流自適應(yīng)整流電源Mounting使用標(biāo)準(zhǔn)的EIA RS-310-C 19英寸機(jī)架安裝凸沿Slot14個(gè)具備熱插拔能力的9U(400mm)插槽Power Supplies3~4個(gè)可熱插拔、N+1冗余交流整流電源(110/220V AC自適應(yīng)),從機(jī)架前面操作。機(jī)箱后部可選的-48V DC輸入插座。
Fans可熱插拔風(fēng)扇模塊。
Air Flow兩側(cè)和前面進(jìn)風(fēng),后部出風(fēng)。
ESD Grounding兩個(gè)ESD接地點(diǎn),前、后各一個(gè)。
MetalAluminum alloy,T5052-H32Metal PlatingChemical film per MIL-C-5541,clear 電源部分和散熱系統(tǒng)機(jī)箱的上方有個(gè)1U高度的風(fēng)扇單元,為整個(gè)系統(tǒng)散熱。風(fēng)扇單元總共有7個(gè)風(fēng)扇組成,構(gòu)成一個(gè)整體的風(fēng)扇單元,風(fēng)扇單元上安放風(fēng)扇控制電路和熱插拔控制電路,系統(tǒng)可以隨時(shí)監(jiān)控機(jī)箱內(nèi)部的溫度、各風(fēng)扇的轉(zhuǎn)速、風(fēng)扇狀態(tài)等信息,如果被監(jiān)控量超過(guò)設(shè)定的域值,則系統(tǒng)自動(dòng)啟動(dòng)告警和故障保護(hù)機(jī)制。在系統(tǒng)風(fēng)道入口處安裝防塵濾網(wǎng),防止灰塵吸附在電路板上。
機(jī)箱提供-48V DC和110/220V AC兩種外部電源輸入方式。如果整個(gè)系統(tǒng)需要使用交流輸入,則需要在整個(gè)子架(包括風(fēng)扇單元)的下方選配一個(gè)3U高度的19英寸通信電源,這個(gè)19”的電源整流部分提供寬范圍的交流輸入能力,可以自動(dòng)適應(yīng)110V和220V交流輸入,輸出48VDC,總輸出功率約1200W。此電源整流部分提供完善的電源保護(hù)和監(jiān)控功能,具備冗余和熱插拔能力,并可以通過(guò)RS-232接口由系統(tǒng)板進(jìn)行管理。所有線卡采用分散式供電方法,電源部分具有過(guò)壓、欠壓、過(guò)流、防雷等完善的保護(hù)機(jī)制。
圖19是帶遠(yuǎn)程監(jiān)控功能的電源整流系統(tǒng)的原理框圖 嵌入式以太網(wǎng)控制總線R8002設(shè)備借鑒PICMG協(xié)會(huì)發(fā)布的關(guān)于系統(tǒng)結(jié)構(gòu)相關(guān)規(guī)范的思想,結(jié)合R8002設(shè)備的體系需求,設(shè)計(jì)了嵌入式以太網(wǎng)控制總線,支持10/100M Base-Tx自適應(yīng),以后可以升級(jí)到Gigabit Ethernet的速率。采用星型拓?fù)涞囊蕴W(wǎng)結(jié)構(gòu)極大的提升了系統(tǒng)的性能,簡(jiǎn)化了系統(tǒng)的控制結(jié)構(gòu),增強(qiáng)了系統(tǒng)控制能力,使系統(tǒng)結(jié)構(gòu)更加靈活。
為了增強(qiáng)系統(tǒng)的高可靠性,R8002系統(tǒng)采用兩個(gè)以太網(wǎng)交換板提供冗余保護(hù)。R8002設(shè)備嵌入式以太網(wǎng)作為兩個(gè)系統(tǒng)盤之間的“握手協(xié)議”的信道,MPCP多處理器通信協(xié)議和HA軟件協(xié)議信息都在以太網(wǎng)通道上傳送信息。此外,以太網(wǎng)還作為轉(zhuǎn)發(fā)表更新和軟件在線升級(jí)的通道。
同步80Gbps交換結(jié)構(gòu)(Switch-Fabric)交換結(jié)構(gòu)是整個(gè)設(shè)備的分組數(shù)據(jù)交換中心。R8002設(shè)備的交換結(jié)構(gòu)由線路接口卡上的隊(duì)列管理器、背板、Crossbar芯片組三個(gè)環(huán)節(jié)構(gòu)成。線卡上的的隊(duì)列管理器進(jìn)行分組的一級(jí)調(diào)度,維護(hù)VOQ隊(duì)列,利用SeDes把網(wǎng)絡(luò)處理器的并行總線轉(zhuǎn)換成串行的2.6Gbps的多個(gè)高速串行總線,多個(gè)串行通道具有冗余保護(hù)、加速因子、負(fù)載均衡的功能。在背板上采用帶狀線設(shè)計(jì),支持2.6Gbps的高速差分信號(hào)傳輸。Crossbar是一個(gè)80Gbps交換容量的同步交換矩陣結(jié)構(gòu),執(zhí)行二級(jí)輪轉(zhuǎn)優(yōu)先權(quán)調(diào)度算法,同時(shí)監(jiān)控高速鏈路的狀態(tài)。R8002設(shè)備共有兩個(gè)交換盤,提供冗余保護(hù),能夠在HA軟件的控制下進(jìn)行快速自動(dòng)保護(hù)倒換,提高了系統(tǒng)的高可靠性。
圖21是采用雙交換結(jié)構(gòu)的R8002設(shè)備交換系統(tǒng)原理圖 故障保護(hù)和系統(tǒng)冗余對(duì)于高可靠性的千兆路由器,要求系統(tǒng)具備99.999%的可靠性。要達(dá)到這個(gè)要求,必須采用相應(yīng)的故障保護(hù)和部件冗余技術(shù)以及HA軟件。Crossbar芯片組中的Transceiver具有多個(gè)高速串行端口,實(shí)現(xiàn)主/備冗余功能,可以通過(guò)簡(jiǎn)單的配置切換工作信道,提高可靠性。而且,系統(tǒng)主控盤、Switch-Fabric、以太網(wǎng)交換節(jié)點(diǎn)都采用了1∶1熱備份的方法,兩個(gè)CPU之間通過(guò)Heartbeat協(xié)議進(jìn)行通信,監(jiān)控彼此的狀態(tài);兩個(gè)CPU的狀態(tài)保持完全同步,當(dāng)主CPU出現(xiàn)故障時(shí),備份CPU將立即接管系統(tǒng)的控制權(quán),實(shí)現(xiàn)自動(dòng)保護(hù)倒換。此外,系統(tǒng)的供電部分、散熱風(fēng)扇和用戶線卡都要采用冗余備份的方法。系統(tǒng)主控CPU負(fù)責(zé)監(jiān)控和維護(hù)整個(gè)系統(tǒng)并收集各部分的狀態(tài)信息,一旦系統(tǒng)某個(gè)部分出現(xiàn)故障,CPU會(huì)馬上監(jiān)測(cè)到,并立即啟用冗余的部件接替失效部件的工作,同時(shí)CPU將向系統(tǒng)管理員報(bào)告故障信息。采用故障保護(hù)措施之后,整個(gè)系統(tǒng)的可靠性有顯著的提高,在不中斷正常業(yè)務(wù)的條件下任何失效部件都可以方便的在線(on-line)更換。
系統(tǒng)的監(jiān)控和維護(hù)系統(tǒng)的所有狀態(tài)信息都可以通過(guò)網(wǎng)管的GUI界面進(jìn)行查看。在每個(gè)線卡上設(shè)置幾個(gè)關(guān)鍵的狀態(tài)指示LED。在主控CPU的面板上通過(guò)狀態(tài)指示LED表明系統(tǒng)的工作狀態(tài)。如果需要,可以再另外添加部分指示信號(hào)。系統(tǒng)板可以對(duì)風(fēng)扇單元和交流輸入電源部分進(jìn)行監(jiān)控,還可以監(jiān)測(cè)系統(tǒng)溫度。通過(guò)自定義的系統(tǒng)維護(hù)總線與網(wǎng)管系統(tǒng)的結(jié)合,R8002設(shè)備可以快捷的反映系統(tǒng)的運(yùn)行狀態(tài),供用戶本地或遠(yuǎn)程監(jiān)控。
三、R8002設(shè)備線卡結(jié)構(gòu)武漢烽火網(wǎng)絡(luò)公司基于RPR的城域網(wǎng)多業(yè)務(wù)環(huán)R8002設(shè)備是新一代的多業(yè)務(wù)光交換和傳輸平臺(tái),它對(duì)交換和傳輸這兩項(xiàng)技術(shù)進(jìn)行了有機(jī)的集成,使之成為一個(gè)整體。R8002設(shè)備第一步首先提供以下功能的電路板①16 Port 10/100M Base-TX/FX②2 Port Gigbit Ethernet③2 port MSR/RPR(最高速率STM-16/OC-48或STM-4/OC12)④系統(tǒng)主控盤,80Gbps交換容量的Switch-FabricR8002設(shè)備的線卡采用統(tǒng)一的結(jié)構(gòu),除CWDM線卡外,其他線卡都采用了網(wǎng)絡(luò)處理器和隊(duì)列管理器的公共技術(shù),不同之處主要位于網(wǎng)絡(luò)處理器前端。圖是R8002設(shè)備通用線卡的結(jié)構(gòu)如圖22所示。
在OSI7層網(wǎng)絡(luò)模型中,PHY位于物理層,它負(fù)責(zé)和某一特定介質(zhì)類型之間的物理、電氣接口,保證物理比特的正確傳輸。
介質(zhì)存取控制(MAC)子層對(duì)數(shù)據(jù)流進(jìn)行成幀處理,保證幀的無(wú)差錯(cuò)傳輸,同時(shí)具有介質(zhì)分配、沖突處理和尋址的功能。
網(wǎng)絡(luò)處理器完成對(duì)數(shù)據(jù)分組的解析,分類、區(qū)分優(yōu)先級(jí)、調(diào)整、流量整形、轉(zhuǎn)換、業(yè)務(wù)調(diào)度、轉(zhuǎn)發(fā)、排序等功能。
適配FPGA主要完成網(wǎng)絡(luò)處理器接口到隊(duì)列管理器的接口適配。
隊(duì)列管理器維護(hù)虛擬輸出隊(duì)列(VOQ),進(jìn)行業(yè)務(wù)優(yōu)先級(jí)調(diào)度,根據(jù)算法進(jìn)行帶寬分配,采用SerDes接口通過(guò)背板與Switch-Fabric互聯(lián)。
對(duì)于POS線卡,線卡結(jié)構(gòu)略有改變?nèi)缦?如圖23)收發(fā)器完成線路編/解碼,進(jìn)行光/電信號(hào)的轉(zhuǎn)換。成幀器完成IP到Sonet/SDH幀的映射。
四、軟件的總體結(jié)構(gòu)R8002的軟件從邏輯上可以分為以下五個(gè)部分(圖24-軟件分層結(jié)構(gòu))
1.控制平面提供路由和信令功能,和其他網(wǎng)絡(luò)設(shè)備交互并處理協(xié)議包,同管理平面一起為數(shù)據(jù)平面生成轉(zhuǎn)發(fā)時(shí)依照的各種表目和策略,處理異?;蚱渌x項(xiàng)包。
2.數(shù)據(jù)平面完成per-packet處理,實(shí)現(xiàn)對(duì)轉(zhuǎn)發(fā)數(shù)據(jù)包的layer 2到layer7的處理,提供多種轉(zhuǎn)發(fā)(layer 2、IP、MPLS和PPPoE)方式和安全(NAT和VPN)策略處理。完成對(duì)統(tǒng)計(jì)變量的計(jì)數(shù)。
3.管理平面完成對(duì)協(xié)議和系統(tǒng)的的配置和管理,,管理方式主要包括命令行(CLI),串口圖形界面,SNMP網(wǎng)管工作站和基于WEB的圖形管理界面。它主要完成的功能有對(duì)路由器的配置管理,性能的查看,告警和日志的記錄,用戶安全的認(rèn)證,數(shù)據(jù)庫(kù)信息的維護(hù)和管理。
4.操作系統(tǒng)適配層為上層的控制平面和管理平面提供統(tǒng)一的接口,屏蔽操作系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié);提供通用的系統(tǒng)調(diào)用,如單鏈表、多鏈表和哈希表的添加、刪除和建立;提供對(duì)系統(tǒng)內(nèi)存和緩存區(qū)的管理調(diào)用。
5.系統(tǒng)適配層完成控制平面到數(shù)據(jù)平面的適配,對(duì)控制平面屏蔽系統(tǒng)硬件結(jié)構(gòu)細(xì)節(jié),提供通用的上層API接口。完成數(shù)據(jù)平面和控制平面信息的交互,包括轉(zhuǎn)發(fā)表目、協(xié)議包和網(wǎng)管數(shù)據(jù)等。
五、系統(tǒng)通用適配層(UAL)系統(tǒng)適配層示意見(jiàn)圖25。
R8002上的系統(tǒng)適配層分為三部分(1)為協(xié)議提供的通用上層API接口。
(2)主控卡和線路卡的多處理器通信協(xié)議。
(3)網(wǎng)絡(luò)處理器私有的和自己開發(fā)的API接口。
(4)系統(tǒng)適配層在協(xié)議棧中的位置R8002的UAL模塊的目標(biāo)是作為聯(lián)系物理層和上層的紐帶(如圖26所示),對(duì)上層屏蔽物理層的操作,向上層提供提取和設(shè)置物理層各項(xiàng)特性的統(tǒng)一的函數(shù)調(diào)用,并且向物理層提供統(tǒng)一的收包函數(shù)以及物理層向上層的狀態(tài)通知函數(shù)調(diào)用。
通用適配層位于物理層之上,為所有上層代碼對(duì)物理層的調(diào)用提供通用的調(diào)用函數(shù),作用是屏蔽不同的物理層對(duì)上層代碼的影響,實(shí)現(xiàn)上層代碼的平臺(tái)無(wú)關(guān)性和可移植性。
(5)適配層中的接口映射關(guān)系接口映射關(guān)系是整個(gè)R8002代碼中中很重要的關(guān)系。其關(guān)系如圖27所示(6)系統(tǒng)適配層接口設(shè)計(jì)說(shuō)明(6.1)底層API接口定義系統(tǒng)適配層通用(UAL)API接口包括以下內(nèi)容路由表修改、NAT表修改、發(fā)送和接收數(shù)據(jù)包、MPLS轉(zhuǎn)發(fā)表目修改、二層橋接表修改、網(wǎng)管信息、接口管理和QoS管理。
本發(fā)明可以用于所有支持IPv4、IPv6和IPv4/IPv6的網(wǎng)絡(luò)設(shè)備和芯片,包括并不局限于以下設(shè)備路由器、交換機(jī)、移動(dòng)終端、智能終端、RNC、NODE B、GGSN、SGSN、PDSN、信息家電、二三層交換芯片和網(wǎng)絡(luò)處理器等。
本發(fā)明的使用范圍主要在基于Ipv4/v6的路由器類設(shè)備、三層以太網(wǎng)交換機(jī)類設(shè)備、寬帶綜合接入類設(shè)備、具有三層交換、路由功能的多業(yè)務(wù)傳送平臺(tái)(MSTP)類設(shè)備和由彈性分組環(huán)(RPR)作為MAC(介質(zhì)訪問(wèn)控制)所實(shí)現(xiàn)的城域網(wǎng)雙纖環(huán)類設(shè)備和無(wú)線領(lǐng)域所屬的Ipv4/V6設(shè)備,也包括由此相關(guān)的轉(zhuǎn)發(fā)引擎(Network Processor)和三層以太網(wǎng)交換芯片所實(shí)現(xiàn)的第一次查找、隨后多次轉(zhuǎn)發(fā)(按IPv6流標(biāo)記Flow_Label生成的標(biāo)識(shí)ID)的功能。
本發(fā)明不同于傳統(tǒng)的逐包(Packet-based)轉(zhuǎn)發(fā)的方式,而采用了基于數(shù)據(jù)流(Stream-based)處理的IP包轉(zhuǎn)發(fā)的思想,并且通過(guò)設(shè)置不同的策略類型實(shí)現(xiàn)了在同一個(gè)物理管道中同時(shí)進(jìn)行IPv4和IPv6數(shù)據(jù)的轉(zhuǎn)發(fā)。這種方法可以既支持IPv4和IPv6環(huán)境下的雙棧方式、隧道方式和地址轉(zhuǎn)換方式,也可以用于單純的IPv4或IPv6的轉(zhuǎn)發(fā)。由于采用了策略流方式,本方法避免了采用不同的表結(jié)構(gòu)和復(fù)雜的IPv4和IPv6的逐包查找,而是采用同一張表來(lái)支持多種應(yīng)用,通過(guò)策略流表中的策略類型來(lái)決定采用何種具體的操作,大大簡(jiǎn)化的設(shè)備開發(fā)的周期,提高了轉(zhuǎn)發(fā)效率(在IPv6情況下可以比普通方式提高5倍以上),有效的實(shí)現(xiàn)了在同一個(gè)物理管道中的IPv4和IPv6轉(zhuǎn)發(fā)的共存。此外,本方法不需引入任何額外的信令,在不改變IETF和IEEE任何標(biāo)準(zhǔn)建議的前提下,實(shí)現(xiàn)了轉(zhuǎn)發(fā)性能的提高,同時(shí)不會(huì)影響互聯(lián)網(wǎng)的互聯(lián)互通性。最后,本發(fā)明可以針對(duì)用戶的每一個(gè)的流進(jìn)行處理,使得運(yùn)營(yíng)商提供增值服務(wù)和保證服務(wù)質(zhì)量成為可能。本發(fā)明可以用于IPv4向IPv6過(guò)渡環(huán)境下的IPv4/IPv6雙棧節(jié)點(diǎn)和純IPv4或IPv6節(jié)點(diǎn)。
盡管參考本發(fā)明的優(yōu)選實(shí)施例具體展示和描述了本發(fā)明,但是本領(lǐng)域一般技術(shù)人員應(yīng)該明白,在不脫離所附權(quán)利要求限定的本發(fā)明的精神和范圍的情況下,可以對(duì)其進(jìn)行形式和細(xì)節(jié)上的各種修改。
權(quán)利要求
1.一種在網(wǎng)絡(luò)設(shè)備中以策略流方式實(shí)現(xiàn)數(shù)據(jù)包轉(zhuǎn)發(fā)的方法,所述網(wǎng)絡(luò)設(shè)備至少包括轉(zhuǎn)發(fā)平面和控制平面,該方法包括以下步驟(a)接收數(shù)據(jù)流中的數(shù)據(jù)包,該數(shù)據(jù)流中包括至少一個(gè)數(shù)據(jù)包;(b)在轉(zhuǎn)發(fā)平面判斷目的IP地址的類型;(c)在轉(zhuǎn)發(fā)平面根據(jù)不同的目的IP的數(shù)據(jù)流類型,提取相應(yīng)的數(shù)據(jù)包的多元屬性組,計(jì)算出標(biāo)識(shí)該數(shù)據(jù)流的本地唯一的策略流標(biāo)識(shí)ID;(d)轉(zhuǎn)發(fā)平面根據(jù)本地策略流標(biāo)識(shí)ID精確查找策略流轉(zhuǎn)發(fā)表目,如果發(fā)現(xiàn)有相匹配的策略流轉(zhuǎn)發(fā)表目則進(jìn)行步驟(e),否則轉(zhuǎn)到步驟(f);(e)如果發(fā)現(xiàn)有相匹配的策略流轉(zhuǎn)發(fā)表目,則在轉(zhuǎn)發(fā)平面按照所述策略流轉(zhuǎn)發(fā)表目對(duì)該數(shù)據(jù)包進(jìn)行相關(guān)內(nèi)容修改和轉(zhuǎn)發(fā)操作,并轉(zhuǎn)到步驟(i);(f)如果未發(fā)現(xiàn)有相匹配的策略流轉(zhuǎn)發(fā)表目,則說(shuō)明這個(gè)數(shù)據(jù)包是數(shù)據(jù)流的第一個(gè)包或者是策略流轉(zhuǎn)發(fā)表目已經(jīng)老化,轉(zhuǎn)發(fā)平面將該數(shù)據(jù)包送到控制平面進(jìn)行處理;(g)控制平面在本地根據(jù)該數(shù)據(jù)包的目的IP地址的類型、入端口與應(yīng)用相關(guān)的配置以及該目的IP地址所對(duì)應(yīng)的下一跳的出端口與應(yīng)用相關(guān)的配置中至少一個(gè),對(duì)數(shù)據(jù)包進(jìn)行相應(yīng)的處理,并綜合控制平面中和各種應(yīng)用相關(guān)的表目信息生成相應(yīng)的唯一的一條本地策略流轉(zhuǎn)發(fā)表目;(h)控制平面將該策略流轉(zhuǎn)發(fā)表目分發(fā)到所述轉(zhuǎn)發(fā)平面,供后面的數(shù)據(jù)包使用;(i)處理下一個(gè)數(shù)據(jù)包。
2.如權(quán)利要求1所述的方法,其中目的IP地址的類型可以是IPv4地址、IPv4兼容的IPv6地址或非IPv4兼容的IPv6地址。
3.如權(quán)利要求2所述的方法,其中當(dāng)目的IP地址為IPv4地址時(shí),所述多元屬性組至少包括源IPv4地址、目的IPv4地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型;當(dāng)目的IP地址為IPv4兼容的IPv6地址或非IPv4兼容的IPv6地址時(shí),判斷數(shù)據(jù)包頭中的IPv6流標(biāo)記Flow_Label是否為0,如果所述數(shù)據(jù)包頭中的IPv6流標(biāo)記Flow_Label為0,則所述多元屬性組至少包括源IPv6地址、目的IPv6地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型,如果所述數(shù)據(jù)包頭中的IPv6流標(biāo)記Flow_Label不為0,則所述多元屬性組至少包括源IPv6地址、IPv6流標(biāo)記Flow_Label。
4.如權(quán)利要求1所述的方法,其中所述策略流轉(zhuǎn)發(fā)表目中記錄有表明應(yīng)該對(duì)數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作類型的策略類型、用來(lái)指定該數(shù)據(jù)包的發(fā)送出端口的出端口索引以及下一跳IP地址,所述步驟(e)包括(e1)從所述本地策略流轉(zhuǎn)發(fā)表目中獲知該數(shù)據(jù)流的策略類型;(e2)進(jìn)行相應(yīng)的轉(zhuǎn)發(fā)操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的出端口索引表項(xiàng)和下一跳IP地址所指向的鄰接表表項(xiàng)得出出端口和對(duì)應(yīng)的鏈路層信息,將該數(shù)據(jù)包從出端口發(fā)出。
5.如權(quán)利要求4所述的方法,其中目的IP地址的類型可以是IPv4地址、IPv4兼容的IPv6地址或非IPv4兼容的IPv6地址,并且其中步驟(e2)包括當(dāng)目的IP地址為IPv4地址時(shí),如果策略類型為純IPv4轉(zhuǎn)發(fā)IPv4_FORWARD,則執(zhí)行IPv4的轉(zhuǎn)發(fā)操作,修改TTL,并重新計(jì)算校驗(yàn)和;如果策略類型為IPv4 in IPv6的自動(dòng)隧道模式IPv4_IN_IPv6_AUTO,則執(zhí)行IPv4 to IPv6的自動(dòng)隧道操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的隧道ID封裝數(shù)據(jù)包,隧道的目的IPv6地址為目的IPv4地址對(duì)應(yīng)的IPv6兼容地址;如果策略類型為IPv4 in IPv6的手工隧道模式IPv4_IN_IPv6_MANU,則執(zhí)行IPv4 toIPv6的手工隧道操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的隧道ID封裝數(shù)據(jù)包,隧道的目的IPv6地址為本地策略流轉(zhuǎn)發(fā)表目中的地址;如果策略類型為網(wǎng)絡(luò)地址轉(zhuǎn)換NAT_PT,則執(zhí)行NAT-PT操作,根據(jù)策略流轉(zhuǎn)發(fā)表目中的偽IP地址和偽端口,對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行修改;當(dāng)目的IP地址為IPv4兼容的IPv6地址時(shí),如果策略類型為純IPv6轉(zhuǎn)發(fā)IPv6_FORWARD,則執(zhí)行IPv6的轉(zhuǎn)發(fā)操作,修改TTL;如果策略類型為IPv6 in IPv4的自動(dòng)隧道模式IPv6_IN_IPv4_AUTO,則執(zhí)行IPv6 to IPv4的自動(dòng)隧道操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的隧道ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址;如果策略類型為網(wǎng)絡(luò)地址轉(zhuǎn)換NAT_PT,則執(zhí)行NAT-PT操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的偽IP地址和偽端口,對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行修改;當(dāng)目的IP地址為非IPv4兼容的IPv6地址時(shí),如果策略類型為純IPv6轉(zhuǎn)發(fā)IPv6_FORWARD,則執(zhí)行IPv6的轉(zhuǎn)發(fā)操作,修改TTL;如果策略類型為IPv6 in IPv4的手動(dòng)隧道模式IPv6_IN_IPv4_MANU,則執(zhí)行IPv6 to IPv4的隧道操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的隧道ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址。
6.如權(quán)利要求2所述的方法,其中所述步驟(g)中對(duì)數(shù)據(jù)包進(jìn)行相應(yīng)的處理包括(g1)確定應(yīng)對(duì)該數(shù)據(jù)包所在的數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作的策略類型;以及(g2)將有關(guān)策略類型的信息發(fā)送回轉(zhuǎn)發(fā)平面,以便由轉(zhuǎn)發(fā)平面根據(jù)所確定的策略類型處理數(shù)據(jù)包。
7.如權(quán)利要求6所述的方法,其中,(A)當(dāng)目的IP地址為IPv4地址時(shí),(ga1)首先判斷入端口是否使能了NAT-PT且目的IPv4地址是否為地址池內(nèi)的地址,如果沒(méi)有則轉(zhuǎn)向步驟(ga2),否則轉(zhuǎn)向步驟(ga4);(ga2)進(jìn)行IPv4相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,判斷下一跳的接口類型,如果為IPv4,則在轉(zhuǎn)發(fā)平面完成IPv4轉(zhuǎn)發(fā),否則進(jìn)行步驟(ga3);(ga3)如果下一跳對(duì)應(yīng)的接口為IPv6,在轉(zhuǎn)發(fā)平面進(jìn)行IPv4 in IPv6的隧道操作,其中目的地址可以為該IPv4地址對(duì)應(yīng)的IPv4兼容的IPv6地址也可以為手工配置的隧道地址;(ga4)在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,將IPv4包轉(zhuǎn)換為IPv6的包;(B)當(dāng)目的IP地址為IPv4兼容的IPv6地址時(shí),(gb1)首先判斷入端口是否使能了NAT-PT而且目的地址是否為地址池內(nèi)的地址,如果沒(méi)有則轉(zhuǎn)向步驟(gb2),否則轉(zhuǎn)向步驟(gb5);(gb2)進(jìn)行IPv6相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,判斷下一跳的出接口類型,如果為IPv6,則在轉(zhuǎn)發(fā)平面進(jìn)行IPv6轉(zhuǎn)發(fā),否則進(jìn)行步驟(gb3);(gb3)如果下一跳的類型為IPv4,則首先判斷出端口是否使能了NAT-PT,如果有NAT-PT操作的標(biāo)識(shí)則進(jìn)行步驟(gb5),否則進(jìn)行步驟(gb4);(gb4)在轉(zhuǎn)發(fā)平面進(jìn)行IPv6 in IPv4操作,其中源地址為NAT地址池內(nèi)的地址,而轉(zhuǎn)換后的目的IP地址為原有IPv6目的地址的低32位;(gb5)在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,其中轉(zhuǎn)換后的目的IP地址為原有IPv6目的地址的低32位;(C)當(dāng)目的IP地址為非IPv4兼容的IPv6地址時(shí),(gc1)根據(jù)IPv6相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,并判斷下一跳所對(duì)應(yīng)的接口類型,如果為IPv6,則在轉(zhuǎn)發(fā)平面進(jìn)行IPv6轉(zhuǎn)發(fā);(gc2)否則為IPv4,則需要在轉(zhuǎn)發(fā)平面進(jìn)行IPv6 in IPv4的隧道操作,其中IPv4的目的地址為配置的隧道的IPv4地址。
8.如權(quán)利要求7所述的方法,其中,如果對(duì)數(shù)據(jù)包進(jìn)行IPv4轉(zhuǎn)發(fā)時(shí),策略類型為IPv4_FORWARD,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容至少包括策略類型、策略流ID、出端口索引、下一跳IPv6地址;如果對(duì)數(shù)據(jù)包進(jìn)行IPv6轉(zhuǎn)發(fā)時(shí),策略類型為IPv6_FORWARD,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容至少包括策略類型、策略流ID、出端口索引、下一跳IPv6地址;如果對(duì)數(shù)據(jù)包進(jìn)行網(wǎng)絡(luò)地址/協(xié)議地址轉(zhuǎn)換,則策略類型為NAT_PT,生成的策略流轉(zhuǎn)發(fā)表目的內(nèi)容至少包括策略類型、策略流ID、Alias IPv6Address、Source IPv4 Address、Destination IPv4 Address、Source Port、Destination Port、Alias Port、Protocol Type等,出端口索引和下一跳IPv6地址等;如果對(duì)數(shù)據(jù)包進(jìn)行自動(dòng)的IPv4 in IPv6隧道操作,則策略類型為IPv4_IN_IPv6_AUTO,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容包括策略類型、策略流ID、出端口索引、下一跳IPv6地址、隧道ID;如果對(duì)數(shù)據(jù)包進(jìn)行手工配置的IPv4 in IPv6隧道操作,則策略類型為IPv4_IN_IPv6_MANU,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容包括策略類型、策略流ID、出端口索引、下一跳IPv6地址、隧道ID以及隧道的終點(diǎn)地址;如果對(duì)數(shù)據(jù)包進(jìn)行IPv6 in IPv4自動(dòng)隧道操作,則策略類型為IPv6_IN_IPv4_AUTO,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容包括策略類型、策略流ID、出端口索引和隧道ID;如果對(duì)數(shù)據(jù)包進(jìn)行IPv6 in IPv4手工隧道操作,則策略類型為IPv6_IN_IPv4_MANU,生成的策略流轉(zhuǎn)發(fā)表目的內(nèi)容包括策略類型、策略流ID、出端口索引和隧道ID。
9.如權(quán)利要求1所述的方法,其中所述策略流轉(zhuǎn)發(fā)表目中記錄有表明該策略流轉(zhuǎn)發(fā)表目是否超時(shí)的超時(shí)標(biāo)識(shí),每當(dāng)該策略流轉(zhuǎn)發(fā)表目被匹配的數(shù)據(jù)包使用一次即刷新該超時(shí)標(biāo)識(shí),所述控制平面每隔一定時(shí)間去檢查該標(biāo)識(shí),如果該標(biāo)識(shí)在一定時(shí)間內(nèi)沒(méi)有被刷新,說(shuō)明該策略流轉(zhuǎn)發(fā)表目已經(jīng)老化,則刪除該策略流轉(zhuǎn)發(fā)表目。
10.如權(quán)利要求1所述的方法,其中所述策略流轉(zhuǎn)發(fā)表目中記錄有Source IPv4 Address(4字節(jié))數(shù)據(jù)流的源IPv4地址;Destination IPv4 Address(4字節(jié))數(shù)據(jù)流的目的IPv4地址;Source IPv6 Address(16字節(jié))數(shù)據(jù)流的源IPv6地址;Destination IPv6 Address;(16字節(jié))數(shù)據(jù)流的目的IPv6地址;Protocol Type(2字節(jié))協(xié)議類型;Source Protocol Port(2字節(jié))源協(xié)議端口,由協(xié)議類型來(lái)決定為何種協(xié)議的端口;Destination Protocol Port(2字節(jié))目的協(xié)議端口,由協(xié)議類型來(lái)決定為何種協(xié)議的端口;Flow Label(2字節(jié))IPv6中的流標(biāo)記Flow_Label;Stream ID(4字節(jié))表示一個(gè)流的唯一的ID;Alias Port(2字節(jié))偽端口,轉(zhuǎn)換后的協(xié)議端口,用于網(wǎng)絡(luò)地址轉(zhuǎn)換;Alias IPv4 Address(4字節(jié))偽IP地址,轉(zhuǎn)換后的IPv4地址,用于網(wǎng)絡(luò)地址轉(zhuǎn)換;Alias IPv6 Address(16字節(jié))偽IPv6地址,轉(zhuǎn)換后的IPv6地址,用于網(wǎng)絡(luò)地址轉(zhuǎn)換;Tunnel ID(2字節(jié))隧道ID,用于IPv6 to IPv4或IPv4 to IPv6隧道;Policy Type(2字節(jié))策略類型,表明對(duì)數(shù)據(jù)流該進(jìn)行的何種業(yè)務(wù)操作類型,可由網(wǎng)管靈活配置或用戶進(jìn)行業(yè)務(wù)定制;QoS(2字節(jié))服務(wù)質(zhì)量,表明對(duì)該數(shù)據(jù)流的服務(wù)質(zhì)量參數(shù);Expired Timer(1字節(jié))超時(shí)定時(shí)器,判斷該數(shù)據(jù)流轉(zhuǎn)發(fā)表目是否超時(shí);TCP Flag(1字節(jié))TCP標(biāo)志位,用來(lái)判斷TCP流是否結(jié)束;Output Port Index(2字節(jié))出端口索引,用來(lái)指定該數(shù)據(jù)包的發(fā)送出端口;Next Hop IPv4 Address(4字節(jié))下一跳IPv4地址;Next Hop IPv6 Address(16字節(jié))下一跳IPv6地址;Tunnel end IPv4 Address(4字節(jié))隧道終點(diǎn)IPv4地址,和偽IPv4地址復(fù)用;以及Tunnel end IPv6 Addddress(16字節(jié))隧道終點(diǎn)IPv6地址,和偽IPv6地址復(fù)用。
11.一種以策略流方式轉(zhuǎn)發(fā)數(shù)據(jù)的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中包括至少一轉(zhuǎn)發(fā)平面和一控制平面,其中每個(gè)轉(zhuǎn)發(fā)平面接收數(shù)據(jù)流中的數(shù)據(jù)包,該數(shù)據(jù)流中包括至少一個(gè)數(shù)據(jù)包,該數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備包括本地策略流轉(zhuǎn)發(fā)表目存儲(chǔ)部分,用于存儲(chǔ)本地策略流轉(zhuǎn)發(fā)表目,其中,所述轉(zhuǎn)發(fā)平面包括目的IP地址類型判斷部分,用于判斷目的IP地址的數(shù)據(jù)流類型;本地策略流ID計(jì)算單元,用于根據(jù)不同的目的IP的類型,選擇相應(yīng)的數(shù)據(jù)包的多元屬性組,來(lái)計(jì)算出標(biāo)識(shí)該數(shù)據(jù)流的本地策略流標(biāo)識(shí)ID;查找單元,用于根據(jù)本地策略流ID精確查找所述本地策略流轉(zhuǎn)發(fā)表目存儲(chǔ)部分中存儲(chǔ)的本地策略流轉(zhuǎn)發(fā)表目,看是否有與該數(shù)據(jù)包的本地策略流ID相匹配的策略流轉(zhuǎn)發(fā)表目;修改和轉(zhuǎn)發(fā)單元,如果在查找單元發(fā)現(xiàn)匹配的策略流轉(zhuǎn)發(fā)表目,則按照所述策略流轉(zhuǎn)發(fā)表目對(duì)該數(shù)據(jù)包進(jìn)行相關(guān)內(nèi)容修改和轉(zhuǎn)發(fā)操作;如在查找單元未發(fā)現(xiàn)匹配的策略流轉(zhuǎn)發(fā)表目,則將該數(shù)據(jù)包送到控制平面,所述控制平面包括策略處理單元,根據(jù)目的IP地址的類型、入端口的配置以及該目的IP地址所對(duì)應(yīng)的下一跳的出端口的配置中至少一個(gè),對(duì)數(shù)據(jù)包進(jìn)行相應(yīng)的處理;策略流轉(zhuǎn)發(fā)表目生成單元,根據(jù)對(duì)數(shù)據(jù)包進(jìn)行的處理生成相應(yīng)的策略流轉(zhuǎn)發(fā)表目,并將該策略流轉(zhuǎn)發(fā)表目分發(fā)到所述策略流轉(zhuǎn)發(fā)表目存儲(chǔ)單元,供后面的數(shù)據(jù)包使用。
12.如權(quán)利要求11所述的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中目的IP地址的類型可以是IPv4地址、IPv4兼容的IPv6地址或非IPv4兼容的IPv6地址。
13.如權(quán)利要求12所述的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中所述策略流ID計(jì)算單元包括第一計(jì)算部分,用于在目的IP地址為IPv4地址時(shí),根據(jù)由至少源IPv4地址、目的IPv4地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型組成的五元屬性組計(jì)算所述策略流ID;IPv6流標(biāo)記Flow_Label檢測(cè)單元,用于在目的IP地址為IPv4兼容的IPv6地址或非IPv4兼容的IPv6地址時(shí),判斷數(shù)據(jù)包頭中的IPv6流標(biāo)記Flow_Label是否為0;第二計(jì)算部分,用于在判斷出所述IPv6流標(biāo)記Flow_Label為0時(shí),根據(jù)由至少源IPv6地址、目的IPv6地址、源協(xié)議端口、目的協(xié)議端口、協(xié)議類型組成的五元屬性組計(jì)算所述策略流ID;以及第三計(jì)算部分,用于在判斷出所述IPv6流標(biāo)記Flow_Label為0時(shí),根據(jù)由至少源IPv6地址、IPv6流標(biāo)記Flow_Label組成的二元屬性組計(jì)算所述策略流ID。
14.如權(quán)利要求11所述的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中所述策略流轉(zhuǎn)發(fā)表目存儲(chǔ)單元中存儲(chǔ)的策略流轉(zhuǎn)發(fā)表目中記錄有表明對(duì)數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作類型的策略類型、用來(lái)指定該數(shù)據(jù)包的發(fā)送出端口的出端口索引以及下一跳IP地址,并且所述修改和轉(zhuǎn)發(fā)單元包括策略類型獲取部分,用于從與所述數(shù)據(jù)包匹配的策略流轉(zhuǎn)發(fā)表目中獲取對(duì)應(yīng)于該數(shù)據(jù)流的策略類型;以及分類轉(zhuǎn)發(fā)單元,根據(jù)對(duì)應(yīng)于該數(shù)據(jù)流的策略類型對(duì)數(shù)據(jù)包根據(jù)進(jìn)行相應(yīng)的轉(zhuǎn)發(fā)操作,根據(jù)策略流轉(zhuǎn)發(fā)表目中的出端口索引表項(xiàng)和下一跳IP地址所指向的鄰接表表項(xiàng)得出出端口和對(duì)應(yīng)的鏈路層信息,將該數(shù)據(jù)包從出端口發(fā)出。
15.如權(quán)利要求14所述的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中目的IP地址的類型可以是IPv4地址、IPv4兼容的IPv6地址或非IPv4兼容的IPv6地址,并且所述分類轉(zhuǎn)發(fā)單元包括IPv4轉(zhuǎn)發(fā)操作單元,當(dāng)策略類型為純IPv4轉(zhuǎn)發(fā)IPv4_FORWARD時(shí),執(zhí)行IPv4的轉(zhuǎn)發(fā)操作,修改TTL,并重新計(jì)算校驗(yàn)和;IPv6轉(zhuǎn)發(fā)操作單元,當(dāng)策略類型為純IPv6轉(zhuǎn)發(fā)IPv6_FORWARD時(shí),執(zhí)行IPv6的轉(zhuǎn)發(fā)操作,修改TTL;NAT-PT操作單元,當(dāng)策略類型為網(wǎng)絡(luò)地址轉(zhuǎn)換NAT_PT時(shí),執(zhí)行NAT-PT操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的偽IP地址和偽端口,對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行修改;IPv4 to IPv6自動(dòng)隧道操作單元,當(dāng)策略類型為IPv4 in IPv6的自動(dòng)隧道模式IPv4_IN_IPv6_AUTO時(shí),執(zhí)行IPv4 to IPv6的自動(dòng)隧道操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的隧道ID封裝數(shù)據(jù)包,隧道的目的IPv6地址為目的IPv4地址對(duì)應(yīng)的IPv6兼容地址;IPv4 to IPv6手工隧道操作單元,當(dāng)策略類型為IPv4 in IPv6的手工隧道模式IPv4_IN_IPv6_MANU時(shí),執(zhí)行IPv4 to IPv6的手工隧道操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的隧道ID封裝數(shù)據(jù)包,隧道的目的IPv6地址為策略流轉(zhuǎn)發(fā)表目中的地址;IPv6 to IPv4自動(dòng)隧道操作單元,當(dāng)策略類型為IPv6 in IPv4的自動(dòng)隧道模式IPv6_IN_IPv4_AUTO時(shí),執(zhí)行IPv6 to IPv4的自動(dòng)隧道操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的隧道ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址;以及IPv6 to IPv4手工隧道操作單元,當(dāng)策略類型為IPv6 in IPv4的手動(dòng)隧道模式IPv6_IN_IPv4_MANU時(shí),執(zhí)行IPv6 to IPv4的隧道操作,根據(jù)本地策略流轉(zhuǎn)發(fā)表目中的隧道ID封裝數(shù)據(jù)包,隧道的目的IPv4地址為IPv4兼容的IPv6地址所對(duì)應(yīng)的IPv4地址。
16.如權(quán)利要求15所述的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中所述策略處理單元包括策略類型確定單元,用于確定應(yīng)對(duì)該數(shù)據(jù)包所在的數(shù)據(jù)流進(jìn)行何種業(yè)務(wù)操作的策略類型;以及策略類型信息返回單元,用于將有關(guān)策略類型的信息發(fā)送回轉(zhuǎn)發(fā)平面,從而由轉(zhuǎn)發(fā)平面的分類轉(zhuǎn)發(fā)單元中對(duì)應(yīng)于該策略類型的操作部分對(duì)數(shù)據(jù)包進(jìn)行轉(zhuǎn)發(fā)操作。
17.如權(quán)利要求15所述的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中所述策略類型確定單元包括第一判斷部分,用于判斷入端口是否使能了NAT-PT;第二判斷部分,用于判斷目的IPv4地址是否為地址池內(nèi)地址;轉(zhuǎn)發(fā)信息查找單元,用于查找轉(zhuǎn)發(fā)表,判斷下一跳的接口類型,其中,當(dāng)目的IP地址為IPv4地址時(shí),首先由第一判斷部分判斷入端口是否使能了NAT-PT,并由第二判斷部分判斷目的IPv4地址是否為地址池內(nèi)地址,如果至少一項(xiàng)判斷結(jié)果為是,則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,將IPv4包轉(zhuǎn)換為IPv6的包;如果判斷結(jié)果都為否,則由轉(zhuǎn)發(fā)信息查找單元進(jìn)行IPv4相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,判斷下一跳的接口類型,如果下一跳的接口類型為IPv4,則確定應(yīng)在轉(zhuǎn)發(fā)平面完成IPv4轉(zhuǎn)發(fā),如果下一跳對(duì)應(yīng)的接口為IPv6,則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行IPv4 in IPv6的隧道操作,其中目的地址可以為該IPv4地址對(duì)應(yīng)的IPv4兼容的IPv6地址也可以為手工配置的隧道地址,當(dāng)目的IP地址為IPv4兼容的IPv6地址時(shí),首先由第一判斷部分判斷入端口是否使能了NAT-PT,并由第二判斷部分判斷目的IPv4地址是否為地址池內(nèi)地址,如果至少一項(xiàng)判斷結(jié)果為是,則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,其中轉(zhuǎn)換后的目的IP地址為原有IPv6目的地址的低32位;如果判斷結(jié)果都為否,則由轉(zhuǎn)發(fā)信息查找單元進(jìn)行IPv6相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,判斷下一跳的出接口類型,如果為IPv6,則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行IPv6轉(zhuǎn)發(fā),如果下一跳的類型為IPv4,則首先由第一判斷部分判斷出端口是否使能了NAT-PT,如果有則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行NAT-PT操作,其中源地址為地址池內(nèi)的地址,而目的地址為原有IPv6目的地址的低32位進(jìn)行步驟(gb4),否則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行IPv6 in IPv4操作,其中目的地址為原有IPv6目的地址的低32位;當(dāng)目的IP地址為非IPv4兼容的IPv6地址時(shí),由轉(zhuǎn)發(fā)信息查找單元根據(jù)IPv6相關(guān)的轉(zhuǎn)發(fā)信息查找轉(zhuǎn)發(fā)表,并判斷下一跳所對(duì)應(yīng)的接口類型,如果為IPv6,則確定應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行IPv6轉(zhuǎn)發(fā);否則為IPv4,則應(yīng)在轉(zhuǎn)發(fā)平面進(jìn)行IPv6 in IPv4的隧道操作,其中IPv4的目的地址為配置的隧道的IPv4地址。
18.如權(quán)利要求17所述的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中所述本地策略流轉(zhuǎn)發(fā)表目生成單元包括第一表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行IPv4轉(zhuǎn)發(fā)時(shí),策略類型為IPv4_FORWARD,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容至少包括策略類型、流ID、出端口索引、下一跳IPv6地址;第二表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行IPv6轉(zhuǎn)發(fā)時(shí),策略類型為IPv6_FORWARD,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容至少包括策略類型、流ID、出端口索引、下一跳IPv6地址;第三表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行網(wǎng)絡(luò)地址/協(xié)議地址轉(zhuǎn)換時(shí),策略類型為NAT_PT,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容至少包括策略類型、流ID、Alias IPv6 Address、Source IPv4 Address、Destination IPv4 Address、SourcePort、Destination Port、Alias Port、Protocol Type等,出端口索引和下一跳IPv6地址等;第四表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行自動(dòng)的IPv4 in IPv6隧道操作時(shí),策略類型為IPv4_IN_IPv6_AUTO,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容至少包括策略類型、流ID、出端口索引、下一跳IPv6地址、隧道ID;第五表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行手工配置的IPv4 in IPv6隧道操作時(shí),策略類型為IPv4_IN_IPv6_MANU,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容至少包括策略類型、流ID、出端口索引、下一跳IPv6地址、隧道ID以及隧道的終點(diǎn)地址;第六表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行IPv6 in IPv4自動(dòng)隧道操作時(shí),策略類型為IPv6_IN_IPv4_AUTO,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容至少包括策略類型、流ID、出端口索引和隧道ID;第七表目生成部分,在對(duì)數(shù)據(jù)包進(jìn)行IPv6 in IPv4手工隧道操作時(shí),策略類型為IPv6_IN_IPv4_MANU,生成的本地策略流轉(zhuǎn)發(fā)表目的內(nèi)容至少包括策略類型、流ID、出端口索引和隧道ID。
19.如權(quán)利要求11所述的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中所述本地策略流轉(zhuǎn)發(fā)表目存儲(chǔ)單元中存儲(chǔ)的本地策略流轉(zhuǎn)發(fā)表目中記錄有表明該策略流轉(zhuǎn)發(fā)表目是否超時(shí)的超時(shí)標(biāo)識(shí),每當(dāng)該本地策略流轉(zhuǎn)發(fā)表目被匹配的數(shù)據(jù)包使用一次即刷新該超時(shí)標(biāo)識(shí),所述控制平面每隔一定時(shí)間去檢查該標(biāo)識(shí),如果該標(biāo)識(shí)在一定時(shí)間內(nèi)沒(méi)有被刷新,說(shuō)明該本地策略流轉(zhuǎn)發(fā)表目已經(jīng)老化,則刪除該策略流轉(zhuǎn)發(fā)表目。
20.如權(quán)利要求11所述的數(shù)據(jù)轉(zhuǎn)發(fā)設(shè)備,其中所述本地策略流轉(zhuǎn)發(fā)表目存儲(chǔ)單元中存儲(chǔ)的本地策略流轉(zhuǎn)發(fā)表目中記錄有Source IPv4 Address(4字節(jié))數(shù)據(jù)流的源IPv4地址;Destination IPv4 Address(4字節(jié))數(shù)據(jù)流的目的IPv4地址;Source IPv6 Address(16字節(jié))數(shù)據(jù)流的源IPv6地址;Destination IPv6 Address(16字節(jié))數(shù)據(jù)流的目的IPv6地址;Protocol Type(2字節(jié))協(xié)議類型;Source Protocol Port(2字節(jié))源協(xié)議端口,由協(xié)議類型來(lái)決定為何種協(xié)議的端口;Destination Protocol Port(2字節(jié))目的協(xié)議端口,由協(xié)議類型來(lái)決定為何種協(xié)議的端口;Flow Label(2字節(jié))IPv6中的流標(biāo)記Flow_label;Stream ID(4字節(jié))表示一個(gè)流的唯一的ID;Alias Port(2字節(jié))偽端口,轉(zhuǎn)換后的協(xié)議端口,用于網(wǎng)絡(luò)地址轉(zhuǎn)換;Alias IPv4 Address(4字節(jié))偽IP地址,轉(zhuǎn)換后的IPv4地址,用于網(wǎng)絡(luò)地址轉(zhuǎn)換;Alias IPv6 Address(16字節(jié))偽IPv6地址,轉(zhuǎn)換后的IPv6地址,用于網(wǎng)絡(luò)地址轉(zhuǎn)換;Tunnel ID(2字節(jié))隧道ID,用于IPv6 to IPv4或IPv4 to IPv6隧道;Policy Type(2字節(jié))策略類型,表明對(duì)數(shù)據(jù)流該進(jìn)行的何種業(yè)務(wù)操作類型,可由網(wǎng)管靈活配置或用戶進(jìn)行業(yè)務(wù)定制;QoS(2字節(jié))服務(wù)質(zhì)量,表明對(duì)該數(shù)據(jù)流的服務(wù)質(zhì)量參數(shù);Expired Timer(1字節(jié))超時(shí)定時(shí)器,判斷該數(shù)據(jù)流轉(zhuǎn)發(fā)表目是否超時(shí);TCP Flag(1字節(jié))TCP標(biāo)志位,用來(lái)判斷TCP流是否結(jié)束;Output Port Index(2字節(jié))出端口索引,用來(lái)指定該數(shù)據(jù)包的發(fā)送出端口;Next Hop IPv4 Address(4字節(jié))下一跳IPv4地址;Next Hop IPv6 Address(16字節(jié))下一跳IPv6地址;Tunnel end IPv4 Address(4字節(jié))隧道終點(diǎn)IPv4地址,和偽IPv4地址復(fù)用;以及Tunnel end IPv6 Addddress(16字節(jié))隧道終點(diǎn)IPv6地址,和偽IPv6地址復(fù)用。
全文摘要
本發(fā)明提出了一種采用策略流方式實(shí)現(xiàn)在同一物理管道中同時(shí)支持IPv4和IPv6轉(zhuǎn)發(fā)的方法和裝置。其中,根據(jù)不同的目的IP的數(shù)據(jù)流類型,提取相應(yīng)的數(shù)據(jù)包的多元屬性組,計(jì)算出策略流標(biāo)識(shí)ID,據(jù)此精確查找策略流轉(zhuǎn)發(fā)表目。如果發(fā)現(xiàn)有相匹配的策略流轉(zhuǎn)發(fā)表目,則按照該表目對(duì)數(shù)據(jù)包進(jìn)行相關(guān)內(nèi)容修改和轉(zhuǎn)發(fā)操作。如果沒(méi)有,則由控制平面根據(jù)該數(shù)據(jù)包的屬性對(duì)數(shù)據(jù)包進(jìn)行相應(yīng)的處理,并綜合控制平面中和各種應(yīng)用相關(guān)的表目信息生成相應(yīng)的唯一的一條本地策略流轉(zhuǎn)發(fā)表目。將該策略流轉(zhuǎn)發(fā)表目分發(fā)到所述轉(zhuǎn)發(fā)平面供后面的數(shù)據(jù)包使用。從而,避免了復(fù)雜的IPv4和IPv6的逐包查找,提高了轉(zhuǎn)發(fā)效率,并且避免了引入額外的信令,不會(huì)影響互聯(lián)網(wǎng)的互聯(lián)互通性。
文檔編號(hào)H04L12/24GK1612562SQ200310101790
公開日2005年5月4日 申請(qǐng)日期2003年10月28日 優(yōu)先權(quán)日2003年10月28日
發(fā)明者吉萌, 余少華 申請(qǐng)人:武漢烽火網(wǎng)絡(luò)有限責(zé)任公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
乾安县| 恩平市| 牟定县| 高平市| 壶关县| 永德县| 海宁市| 榕江县| 大安市| 洮南市| 洮南市| 汾阳市| 海伦市| 达尔| 项城市| 鹤庆县| 祥云县| 石景山区| 兴化市| 化德县| 延寿县| 合山市| 沂源县| 五原县| 凉城县| 浮梁县| 新巴尔虎右旗| 宜丰县| 昌吉市| 福清市| 安泽县| 合川市| 托克逊县| 柳州市| 阿克| 博乐市| 垫江县| 驻马店市| 南华县| 呈贡县| 渑池县|