本發(fā)明涉及通信領(lǐng)域,尤其涉及一種IPV6報(bào)文封裝的處理方法和裝置。
背景技術(shù):
段路由SR(Segment Routing)是一種基于源地址的路由的方法,通過(guò)在數(shù)據(jù)報(bào)文外疊加一層影響現(xiàn)有最短路徑轉(zhuǎn)發(fā)的節(jié)點(diǎn)信息,攜帶在數(shù)據(jù)報(bào)文外部,報(bào)文根據(jù)這些指定路徑節(jié)點(diǎn)信息進(jìn)行最短路徑轉(zhuǎn)發(fā)。
如圖1所示,當(dāng)包含段路由報(bào)文頭的報(bào)文在SR網(wǎng)絡(luò)域中進(jìn)行傳輸時(shí),通過(guò)段路由頭中攜帶的指定SR節(jié)點(diǎn)路徑信息,網(wǎng)絡(luò)設(shè)備(路由器)根據(jù)段路由報(bào)文頭中的段操作指示進(jìn)行相應(yīng)的操作,該操作指示包括Push,Next,Continue。當(dāng)操作指示為PUSH操作時(shí),網(wǎng)絡(luò)設(shè)備將段路由報(bào)文頭(Segment Routing Header,SR Header)壓入到IP報(bào)文中,或者在段路由報(bào)文頭中增加其他的段指示;Next和continue操作通過(guò)Ptr的指針來(lái)表明,當(dāng)判斷出當(dāng)前的段操作已經(jīng)完畢,指針移到下一個(gè)段,指針?biāo)傅亩伪砻魇怯糜谵D(zhuǎn)發(fā)下一跳的active segment;Continue操作為該段操作沒(méi)有結(jié)束,指針仍然停留在當(dāng)前的段上。通過(guò)SR指定路徑轉(zhuǎn)發(fā)功能,可以非常便捷的實(shí)現(xiàn)網(wǎng)絡(luò)的負(fù)載均衡和流程工程,以及快速重路由等復(fù)雜網(wǎng)絡(luò)功能。
如圖2所示,段路由技術(shù)利用了現(xiàn)有的IPV6的路由頭進(jìn)行封裝擴(kuò)展,現(xiàn)有的IPV6報(bào)文頭中攜帶SR Header。另外,現(xiàn)有技術(shù)中的IPV6的報(bào)文頭攜帶下一個(gè)擴(kuò)展頭(Next Header,NH)類(lèi)型,routing type為其中一種擴(kuò)展頭,其擴(kuò)展頭的格式參見(jiàn)圖3。在現(xiàn)有技術(shù)中的SR擴(kuò)展的封裝過(guò)程中,由于IPV6SR擴(kuò)展頭中由可擴(kuò)展長(zhǎng)度字段組成,當(dāng)LIST列表中攜帶的顯示指定節(jié)點(diǎn)或鏈路數(shù)個(gè)數(shù)越多,報(bào)文頭的長(zhǎng)度越長(zhǎng)。
舉例來(lái)說(shuō),以圖4所示網(wǎng)絡(luò)為例進(jìn)行說(shuō)明:
當(dāng)網(wǎng)絡(luò)中出現(xiàn)一條顯示路徑幾乎覆蓋網(wǎng)絡(luò)中的所有節(jié)點(diǎn)時(shí),一條SR LIST顯示指定為:R1-R2-R4-R3-R5-R6-R8-R7-R9-R10,則SR的IPV6報(bào)文頭至少需要128bits*9+64bits的頭部長(zhǎng)度在R1節(jié)點(diǎn)進(jìn)行封裝。
由上可以看出,這種擴(kuò)展形式會(huì)給IPV6的報(bào)文頭帶來(lái)很大負(fù)擔(dān)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明提供一種IPV6報(bào)文封裝的處理方法和裝置,要解決的技術(shù)問(wèn)題是現(xiàn)有技術(shù)中IPV6的報(bào)文頭負(fù)擔(dān)過(guò)重的問(wèn)題。
為解決上述技術(shù)問(wèn)題,本發(fā)明提供了如下技術(shù)方案:
一種IPV6報(bào)文封裝的處理方法,包括:
轉(zhuǎn)發(fā)節(jié)點(diǎn)獲取SR段路由列表與列表標(biāo)識(shí)LIST ID的對(duì)應(yīng)關(guān)系;
所述轉(zhuǎn)發(fā)節(jié)點(diǎn)根據(jù)所述段路由列表與LIST ID的對(duì)應(yīng)關(guān)系,對(duì)接收到的IPV6報(bào)文進(jìn)行轉(zhuǎn)發(fā)。
其中,當(dāng)所述轉(zhuǎn)發(fā)節(jié)點(diǎn)為SR入口節(jié)點(diǎn)時(shí),所述LIST ID是由所述轉(zhuǎn)發(fā)節(jié)點(diǎn)攜帶在IPV6報(bào)文的擴(kuò)展報(bào)文頭中的。
其中,所述LIST ID是通過(guò)IPV6報(bào)文的報(bào)文頭中Flag字段的比特置位信息或routing type的特定預(yù)設(shè)值信息來(lái)識(shí)別。
其中,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)獲取段路由列表與列表標(biāo)識(shí)LIST ID的對(duì)應(yīng)關(guān)系之后,所述方法還包括:
生成LIST ID的轉(zhuǎn)發(fā)條目。
其中,所述生成LIST ID的轉(zhuǎn)發(fā)條目,包括:
查找所述轉(zhuǎn)發(fā)節(jié)點(diǎn)在LIST列表中的下一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的出接口信息;
將查找到的出接口信息保存為L(zhǎng)IST ID的轉(zhuǎn)發(fā)條目的出接口信息。
其中,所述根據(jù)所述段路由列表與LIST ID的對(duì)應(yīng)關(guān)系,對(duì)接收到的IPV6報(bào)文進(jìn)行轉(zhuǎn)發(fā),包括:
當(dāng)接收到目標(biāo)地址為所述轉(zhuǎn)發(fā)節(jié)點(diǎn)的地址時(shí),如果所述IPV6報(bào)文的報(bào)文頭中下一個(gè)擴(kuò)展頭的類(lèi)型為路由類(lèi)型,且剩余LIST列表的跳數(shù)不為零,則根據(jù)LIST ID值獲取LIST列表中的下一跳信息,并將下一跳的IPV6地址作為目的地址,繼續(xù)轉(zhuǎn)發(fā)所述IPV6報(bào)文。
其中,在所述LIST ID中包括路徑中所有途徑節(jié)點(diǎn)信息時(shí),通過(guò)將LIST ID置于IPV6轉(zhuǎn)發(fā)報(bào)文的目的地址字段來(lái)攜帶路徑中所有途徑節(jié)點(diǎn)信息。
一種IPV6報(bào)文封裝的處理裝置,包括:
獲取模塊,用于獲取SR段路由列表與列表標(biāo)識(shí)LIST ID的對(duì)應(yīng)關(guān)系;
轉(zhuǎn)發(fā)模塊,用于根據(jù)所述段路由列表與LIST ID的對(duì)應(yīng)關(guān)系,對(duì)接收到的IPV6報(bào)文進(jìn)行轉(zhuǎn)發(fā)。
其中,當(dāng)所述轉(zhuǎn)發(fā)節(jié)點(diǎn)為SR入口節(jié)點(diǎn)時(shí),所述LIST ID是由所述轉(zhuǎn)發(fā)節(jié)點(diǎn)攜帶在IPV6報(bào)文的擴(kuò)展報(bào)文頭中的。
其中,所述LIST ID是通過(guò)IPV6報(bào)文的報(bào)文頭中Flag字段的比特置位信息或routing type的特定預(yù)設(shè)值信息來(lái)識(shí)別。
其中,所述裝置還包括:
生成模塊,用于在獲取段路由列表與列表標(biāo)識(shí)LIST ID的對(duì)應(yīng)關(guān)系之后,生成LIST ID的轉(zhuǎn)發(fā)條目。
其中,所述生成模塊包括:
查找單元,用于查找所述轉(zhuǎn)發(fā)節(jié)點(diǎn)在LIST列表中的下一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的出接口信息;
保存單元,用于將查找到的出接口信息保存為L(zhǎng)IST ID的轉(zhuǎn)發(fā)條目的出接口信息。
其中,所述轉(zhuǎn)發(fā)模塊包括:
獲取單元,用于當(dāng)接收到目標(biāo)地址為所述轉(zhuǎn)發(fā)節(jié)點(diǎn)的地址時(shí),如果所述IPV6報(bào)文的報(bào)文頭中下一個(gè)擴(kuò)展頭的類(lèi)型為路由類(lèi)型,且剩余LIST列表的跳數(shù)不為零,則根據(jù)LIST ID值獲取LIST列表中的下一跳信息;
轉(zhuǎn)發(fā)單元,用于將下一跳的IPV6地址作為目的地址,繼續(xù)轉(zhuǎn)發(fā)所述IPV6報(bào)文。
其中,在所述LIST ID中包括路徑中所有途徑節(jié)點(diǎn)信息時(shí),通過(guò)將LIST ID置于IPV6轉(zhuǎn)發(fā)報(bào)文的目的地址字段來(lái)攜帶路徑中所有途徑節(jié)點(diǎn)信息。
本發(fā)明提供的實(shí)施例,給LIST分配一個(gè)LIST ID,IPV6通過(guò)封裝攜帶LIST ID,并通過(guò)LIST id來(lái)標(biāo)識(shí)各LIST,且在本地通過(guò)LIST ID查找LIST中的下一跳目的地址查找相應(yīng)目的地址封裝,而轉(zhuǎn)發(fā)表還是原有的轉(zhuǎn)發(fā)表,只不過(guò)在LIST中顯示指定的節(jié)點(diǎn)上需要維護(hù)LIST ID到LIST的映射。使具有固定長(zhǎng)度的V6擴(kuò)展封裝用于SR報(bào)文頭封裝,所述LIST ID用于映射SR LIST的節(jié)點(diǎn)信息,以此IPV6SR報(bào)文轉(zhuǎn)發(fā)至終點(diǎn),通過(guò)LIST ID的攜帶形式進(jìn)行IPV6報(bào)文的SR封裝實(shí)現(xiàn),有效解決報(bào)文頭載荷隨著指定節(jié)點(diǎn)的數(shù)量顯示增加的問(wèn)題,減輕了IPV6報(bào)文的報(bào)文頭的負(fù)擔(dān),提高了數(shù)據(jù)傳輸效率。
附圖說(shuō)明
圖1為現(xiàn)有技術(shù)中SR的報(bào)文頭格式的示意圖;
圖2為現(xiàn)有技術(shù)中IPv6SR的報(bào)文頭格式的示意圖;
圖3為現(xiàn)有技術(shù)中網(wǎng)絡(luò)拓?fù)涞氖疽鈭D;
圖4為現(xiàn)有技術(shù)中IPv6擴(kuò)展頭的示意圖;
圖5為本發(fā)明提供的IPV6報(bào)文封裝的處理方法實(shí)施例的流程圖;
圖6為本發(fā)明實(shí)施例一提供的IPv6報(bào)文的擴(kuò)展頭格式的示意圖;
圖7為本發(fā)明實(shí)施例二提供的網(wǎng)絡(luò)拓?fù)涞氖疽鈭D;
圖8為本發(fā)明實(shí)施例二提供的路由器R1上的轉(zhuǎn)發(fā)表的示意圖;
圖9為本發(fā)明實(shí)施例三提供的LIST ID轉(zhuǎn)發(fā)表的示意圖;
圖10為本發(fā)明提供的IPV6報(bào)文的報(bào)文頭中Flag字段的示意圖;
圖11為本發(fā)明提供的IPV6報(bào)文封裝的處理裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖及具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
圖5為本發(fā)明提供的IPV6報(bào)文封裝的處理方法實(shí)施例的流程圖。圖5所示方法,包括:
步驟501、轉(zhuǎn)發(fā)節(jié)點(diǎn)獲取SR段路由列表與列表標(biāo)識(shí)LIST ID的對(duì)應(yīng)關(guān)系;
步驟502、所述轉(zhuǎn)發(fā)節(jié)點(diǎn)根據(jù)所述段路由列表與LIST ID的對(duì)應(yīng)關(guān)系,對(duì)接收到的IPV6報(bào)文進(jìn)行轉(zhuǎn)發(fā)。
本發(fā)明提供的方法實(shí)施例,獲取獲取端路由器列表與LIST ID的對(duì)應(yīng)關(guān)系,再利用該對(duì)應(yīng)關(guān)系進(jìn)行報(bào)文轉(zhuǎn)發(fā),通過(guò)攜帶的LIST ID,有效解決報(bào)文頭載荷隨著指定節(jié)點(diǎn)的數(shù)量顯示增加的問(wèn)題,減輕了IPV6報(bào)文的報(bào)文頭的負(fù)擔(dān),提高了數(shù)據(jù)傳輸效率。
下面對(duì)本發(fā)明提供的方法實(shí)施例作進(jìn)一步說(shuō)明:
其中,當(dāng)所述轉(zhuǎn)發(fā)節(jié)點(diǎn)為SR入口節(jié)點(diǎn)時(shí),所述LIST ID是由所述轉(zhuǎn)發(fā)節(jié)點(diǎn)攜帶在IPV6報(bào)文的擴(kuò)展報(bào)文頭中的。
具體的,通過(guò)在入口節(jié)點(diǎn)在IPV6報(bào)文,可以方便路徑途徑的節(jié)點(diǎn)充分利用該LIST ID。
所述LIST ID是通過(guò)IPV6報(bào)文的報(bào)文頭中Flag字段的比特置位信息或routing type的特定預(yù)設(shè)值信息來(lái)識(shí)別。
通過(guò)充分利用IPV6報(bào)文的報(bào)文頭的格式中可用的字段,減少對(duì)現(xiàn)有協(xié)議的修改,實(shí)現(xiàn)簡(jiǎn)單且方便。
當(dāng)然,所述轉(zhuǎn)發(fā)節(jié)點(diǎn)獲取段路由列表與列表標(biāo)識(shí)LIST ID的對(duì)應(yīng)關(guān)系之后,所述方法還包括:生成LIST ID的轉(zhuǎn)發(fā)條目。
通過(guò)為該LIST ID生成轉(zhuǎn)發(fā)條目,可以方便利用該LIST ID進(jìn)行數(shù)據(jù)轉(zhuǎn) 發(fā),提高IPV6報(bào)文轉(zhuǎn)發(fā)的效率。
具體,所述生成LIST ID的轉(zhuǎn)發(fā)條目,包括:
查找所述轉(zhuǎn)發(fā)節(jié)點(diǎn)在LIST列表中的下一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的出接口信息;將查找到的出接口信息保存為L(zhǎng)IST ID的轉(zhuǎn)發(fā)條目的出接口信息。
其中,所述根據(jù)所述段路由列表與LIST ID的對(duì)應(yīng)關(guān)系,對(duì)接收到的IPV6報(bào)文進(jìn)行轉(zhuǎn)發(fā),包括:
當(dāng)接收到目標(biāo)地址為所述轉(zhuǎn)發(fā)節(jié)點(diǎn)的地址時(shí),如果所述IPV6報(bào)文的報(bào)文頭中下一個(gè)擴(kuò)展頭的類(lèi)型為路由類(lèi)型,且剩余LIST列表的跳數(shù)不為零,則根據(jù)LIST ID值獲取LIST列表中的下一跳信息,并將下一跳的IPV6地址作為目的地址,繼續(xù)轉(zhuǎn)發(fā)所述IPV6報(bào)文。
另外,在所述LIST ID中包括路徑中所有途徑節(jié)點(diǎn)信息時(shí),通過(guò)將LIST ID置于IPV6轉(zhuǎn)發(fā)報(bào)文的目的地址字段來(lái)攜帶路徑中所有途徑節(jié)點(diǎn)信息。
實(shí)施例一
以下以一個(gè)具體的實(shí)施例來(lái)說(shuō)明本發(fā)明的SR LIST問(wèn)題。通過(guò)擴(kuò)展管理IPV6地址塊,使用未被使用的全局IPV6地址或其它bits長(zhǎng)度的標(biāo)識(shí)用以表示LIST的映射標(biāo)識(shí),如圖3所示:
控制器Controller(Operator)獲取到網(wǎng)絡(luò)中所有節(jié)點(diǎn)的IPV6地址,發(fā)現(xiàn)還有全局唯一的單播空余的IPV6地址2001::1001-2001::2000(該字段可以是連續(xù)的,也可以是不連續(xù)的)未被使用,則給各節(jié)點(diǎn)R1-R10分配的節(jié)點(diǎn)SID分別為2001::1001-2001::1010,另外控制器上根據(jù)策略計(jì)算出的一條策略路徑為2001::1001-2001::1002-2001::1004-2001::1003-2001::1005-2001::1006-2001::1008-2001::1007-2001::1009-2001::1010,現(xiàn)在的SR頭部擴(kuò)展會(huì)將該LIST的節(jié)點(diǎn)信息均攜帶在RH擴(kuò)展頭中,這里只是其中一個(gè)場(chǎng)景,若網(wǎng)絡(luò)規(guī)模再大,而有些特殊策略需要經(jīng)過(guò)策略經(jīng)過(guò)更多跳數(shù)的節(jié)點(diǎn),則也需要將所有的節(jié)點(diǎn)信息都攜帶在擴(kuò)展頭中,這會(huì)大大增加報(bào)文頭負(fù)擔(dān),本專(zhuān)利可以如示實(shí)現(xiàn):
1、控制器上將未使用的2001::2000的路由分配給該路徑,用2001:: 2000的地址對(duì)該策略路徑在控制器上進(jìn)行的映射維護(hù),也即通過(guò)該LIST ID來(lái)唯一的標(biāo)識(shí)該LIST;
2、將2001::2000到2001::1001-2001::1002-2001::1004-2001::1003-2001::1005-2001::1006-2001::1008-2001::1007-2001::1009-2001::1010映射信息(所述信息通過(guò)南向接口協(xié)議下發(fā),如PCEP(Path Computation Element Protocol路徑計(jì)算單元協(xié)議)、BGP-LS(Border Gateway Protocol-Link-state邊界網(wǎng)關(guān)協(xié)議-鏈路狀態(tài))、openflow(開(kāi)放流)、netconf(網(wǎng)絡(luò)配置)等協(xié)議的擴(kuò)展下發(fā))下發(fā)該路徑中的各節(jié)點(diǎn)。
3、對(duì)于該路徑中的各節(jié)點(diǎn),形成一張LIST ID(2001::2000)到LIST(2001::1001-2001::1002-2001::1004-2001::1003-2001::1005-2001::1006-2001::1008-2001::1007-2001::1009-2001::1010)的映射表;
4、對(duì)于報(bào)文的入口ingress節(jié)點(diǎn)R1,如圖5所示,新增一個(gè)新的routing type頭表示本擴(kuò)展頭攜帶的是一個(gè)路徑標(biāo)識(shí)信息,所述新type中仍然和現(xiàn)有的擴(kuò)展一樣包括Segments Left字段(剩余LIST列表的跳數(shù))仍舊為策略路徑中的節(jié)點(diǎn)個(gè)數(shù)-2(從零開(kāi)始計(jì)數(shù),自身的第一跳已經(jīng)剝除),Segment LIST ID封裝為2001::2000,基礎(chǔ)v6的報(bào)文封裝目的地址為本節(jié)點(diǎn)R1(2001::1001)在該LIST中的下一跳節(jié)點(diǎn)2001::1002,R2,依據(jù)R2的轉(zhuǎn)發(fā)表中的路由條目進(jìn)行轉(zhuǎn)發(fā);
5、當(dāng)報(bào)文轉(zhuǎn)發(fā)到R2,目的地址為自身,報(bào)文攜帶了NH頭,里面的Segments Left字段不為0,則將Segment LIST ID字段取出來(lái),進(jìn)行映射表的查找,發(fā)現(xiàn)本節(jié)點(diǎn)R2(2001::1002)在該LIST中的下一跳節(jié)點(diǎn)2001::1004,R4,則將R4的地址填充在目的地址字段,Segments left字段進(jìn)行減1,而后依據(jù)目的地址R4進(jìn)行轉(zhuǎn)發(fā);
6、報(bào)文轉(zhuǎn)發(fā)至R4,同樣重復(fù)步驟5所述的操作,報(bào)文轉(zhuǎn)發(fā)至R3-R5-R6-R8-R7-R9-R10
7、當(dāng)報(bào)文到達(dá)R10,目的地址為自身,報(bào)文攜帶了NH頭,里面的Segments Left字段為0,判斷出自己是最后一跳,將NH報(bào)文中的該SR type的擴(kuò)展頭可選彈出。
實(shí)施例二
上述實(shí)施例中均覆蓋的是節(jié)點(diǎn)SID,當(dāng)路徑需要指定顯示路徑經(jīng)過(guò)某一條鏈路時(shí),需要涉及到各節(jié)點(diǎn)的鄰接SID(Adjacency SID),如圖6所示,R4和R6之間有兩條等價(jià)鏈路,上面的鏈路指定的鄰接SID為本地標(biāo)簽值,如上下兩條鏈路分別為FE80::9001和FE80::9002,若指定的顯示路徑一定要通過(guò)R4-R6的上面一條鏈路可達(dá),則控制器計(jì)算出的一個(gè)LIST,比如LIST 3為:2001::1001-2001::1004-FE80::9001-2001::1010,還是如圖實(shí)施例一所述的控制面控制下,給所述LIST 3的映射標(biāo)識(shí)為2001::1199,則控制器將該標(biāo)識(shí)及路徑信息的映射信息下發(fā)給R1、R3、R10,各節(jié)點(diǎn)存儲(chǔ)該映射表信息:
1、對(duì)于R1節(jié)點(diǎn),控制器下發(fā)需要至該策略路徑的流量的報(bào)文頭所需經(jīng)過(guò)的路徑為2001::1001-2001::1004-FE80::9001-2001::1010,攜帶該LIST ID的映射標(biāo)識(shí)2001::1199;如圖6所需封裝示,下發(fā)需要轉(zhuǎn)發(fā)至該策略路徑的流量的報(bào)文頭所需的Segments Left仍舊為策略路徑中的節(jié)點(diǎn)個(gè)數(shù)-2(從0開(kāi)始計(jì)數(shù),本地節(jié)點(diǎn)減掉了自己這一跳的跳數(shù)),即為2,Segment LIST ID封裝為2001::1199,IPV6的報(bào)文封裝目的地址為本節(jié)點(diǎn)R1(2001::1001)在該LIST中的下一跳節(jié)點(diǎn)2001::1004,R4,依據(jù)最短路徑到R4的路由進(jìn)行轉(zhuǎn)發(fā),如圖8轉(zhuǎn)發(fā)表所示,此時(shí)R1最短路徑到R4是通過(guò)R2可達(dá)的;
2、報(bào)文轉(zhuǎn)發(fā)到R2節(jié)點(diǎn),R2節(jié)點(diǎn)查看目的地址是到R4,NH頭為routing type頭,自己無(wú)需處理,即對(duì)該擴(kuò)展頭及外層封裝中的內(nèi)容不做處理將報(bào)文轉(zhuǎn)發(fā)給R4節(jié)點(diǎn);
3、報(bào)文到達(dá)R4節(jié)點(diǎn),發(fā)現(xiàn)目的地址是到自己,而NH頭中顯示下一個(gè)擴(kuò)展頭為routing type頭,則查看routing type頭中的type是表明的路徑標(biāo)識(shí),且segments left字段為2,自己不是最后一跳,查找映射表,自身的下一跳為FE80::9001,為本地鏈路地址,取下下一跳地址2001::1010封裝在Dst字段,將報(bào)文轉(zhuǎn)發(fā)到該鏈路地址所在的接口,segments left字段減一跳到 本地,再減一跳到本地鏈路,則投遞出去的報(bào)文此時(shí)為0;
4、報(bào)文通過(guò)9001鏈路的接口傳輸給R6,R6是轉(zhuǎn)發(fā)中間節(jié)點(diǎn),沒(méi)有在該LIST中,其依據(jù)報(bào)文的DST字段2001::1010進(jìn)行轉(zhuǎn)發(fā),默認(rèn)最短路徑為R6-R8-R10,NH頭為routing type頭,自己無(wú)需處理,即對(duì)該擴(kuò)展頭及外層封裝中的Dst內(nèi)容不做處理將報(bào)文轉(zhuǎn)發(fā)給R8節(jié)點(diǎn);
5、R8節(jié)點(diǎn)操作同R6,將報(bào)文轉(zhuǎn)發(fā)給R10節(jié)點(diǎn)
6、目的地址為自身,NH頭為routing type頭,里面的Segments Left字段為0,判斷出自己是最后一跳,將NH報(bào)文中的該SR type的擴(kuò)展頭可選彈出。
實(shí)施例三
如實(shí)施例一描述所述,控制器發(fā)送一條顯示路徑的映射信息LIST ID(2001::2000)到LIST(2001::1001-2001::1002-2001::1004-2001::1003-2001::1005-2001::1006-2001::1008-2001::1007-2001::1009-2001::1010)給所有節(jié)點(diǎn),當(dāng)ingress到egress節(jié)點(diǎn)間的路徑包含路徑途徑的所有中間節(jié)點(diǎn)時(shí),所有轉(zhuǎn)發(fā)節(jié)點(diǎn)都會(huì)接收到該映射消息。則可以將LIST ID的下一跳信息學(xué)習(xí)為自身在所述LIST列表中的下一跳的出接口和網(wǎng)關(guān)地址,即R1的轉(zhuǎn)發(fā)條目如類(lèi)似圖7所示,R1的下一跳在該LIST中是R2,下一跳是到R2的出接口,網(wǎng)關(guān)也是到R2的網(wǎng)關(guān),則在本地生成一條到LIST ID的轉(zhuǎn)發(fā)條目,下一跳是到R2的出接口,網(wǎng)關(guān)也是到R2的網(wǎng)關(guān),如圖9所示;同樣R2\R3等節(jié)點(diǎn)也都這樣形成轉(zhuǎn)發(fā)條目。則在做報(bào)文封裝時(shí),將LIST ID信息放在目的節(jié)點(diǎn),各節(jié)點(diǎn)的轉(zhuǎn)發(fā)均依據(jù)目的地址LIST ID來(lái)進(jìn)行轉(zhuǎn)發(fā),可選無(wú)需擴(kuò)展頭攜帶信息,即可將報(bào)文沿路徑傳達(dá)終點(diǎn)。在目的節(jié)點(diǎn)R10,需要識(shí)別自己是該LIST的目的,解析報(bào)文內(nèi)容,進(jìn)行分析。所述實(shí)施例三要求LIST覆蓋路徑中的完整節(jié)點(diǎn)信息,不然可能會(huì)有中間轉(zhuǎn)發(fā)節(jié)點(diǎn)查找不到到LIST ID的路由條目。
實(shí)施例四
使用唯一的標(biāo)識(shí)LIST ID來(lái)標(biāo)記各LIST,其中LIST ID可以是20bits的標(biāo)簽或32bits的ipv4地址或128bits的IPV6地址。
具體的LIST ID可以通過(guò)如下方式進(jìn)行攜帶,包括:
通過(guò)路由類(lèi)型的擴(kuò)展頭中的RESV字段中的某些bit置位來(lái)進(jìn)行標(biāo)識(shí);或者,設(shè)置新的routing type值。
其中,RESV字段可以為現(xiàn)有SR擴(kuò)展的字段攜帶。如圖10所示,F(xiàn)LAG字段中的某個(gè)R置位表明是攜帶的路徑標(biāo)識(shí)。由于節(jié)點(diǎn)有路徑標(biāo)識(shí)的映射表,原有policy的預(yù)留位可以空出來(lái)用來(lái)表示具體是攜帶的多少bits的標(biāo)簽,其中如其中FLAG字段低位的三個(gè)bit字段用以標(biāo)識(shí)各是多少bits置位的標(biāo)識(shí)。
圖11為本發(fā)明提供的IPV6報(bào)文封裝的處理裝置的結(jié)構(gòu)圖。圖10所示裝置,包括:
獲取模塊1101,用于獲取SR段路由列表與列表標(biāo)識(shí)LIST ID的對(duì)應(yīng)關(guān)系;
轉(zhuǎn)發(fā)模塊1102,用于根據(jù)所述段路由列表與LIST ID的對(duì)應(yīng)關(guān)系,對(duì)接收到的IPV6報(bào)文進(jìn)行轉(zhuǎn)發(fā)。
其中,當(dāng)所述裝置位于SR入口節(jié)點(diǎn)時(shí),所述LIST ID是由所述轉(zhuǎn)發(fā)節(jié)點(diǎn)攜帶在IPV6報(bào)文的擴(kuò)展報(bào)文頭中的。
其中,所述LIST ID是通過(guò)IPV6報(bào)文的報(bào)文頭中Flag字段的比特置位信息或routing type的特定預(yù)設(shè)值信息來(lái)識(shí)別。
其中,所述裝置還包括:
生成模塊,用于在獲取段路由列表與列表標(biāo)識(shí)LIST ID的對(duì)應(yīng)關(guān)系之后,生成LIST ID的轉(zhuǎn)發(fā)條目。
其中,所述生成模塊包括:
查找單元,用于查找所述轉(zhuǎn)發(fā)節(jié)點(diǎn)在LIST列表中的下一個(gè)轉(zhuǎn)發(fā)節(jié)點(diǎn)的出接口信息;
保存單元,用于將查找到的出接口信息保存為L(zhǎng)IST ID的轉(zhuǎn)發(fā)條目的出接口信息。
其中,所述轉(zhuǎn)發(fā)模塊1102包括:
獲取單元,用于當(dāng)接收到目標(biāo)地址為所述轉(zhuǎn)發(fā)節(jié)點(diǎn)的地址時(shí),如果所述IPV6報(bào)文的報(bào)文頭中下一個(gè)擴(kuò)展頭的類(lèi)型為路由類(lèi)型,且剩余LIST列表的跳數(shù)不為零,則根據(jù)LIST ID值獲取LIST列表中的下一跳信息;
轉(zhuǎn)發(fā)單元,用于將下一跳的IPV6地址作為目的地址,繼續(xù)轉(zhuǎn)發(fā)所述IPV6報(bào)文。
其中,在所述LIST ID中包括路徑中所有途徑節(jié)點(diǎn)信息時(shí),通過(guò)將LIST ID置于IPV6轉(zhuǎn)發(fā)報(bào)文的目的地址字段來(lái)攜帶路徑中所有途徑節(jié)點(diǎn)信息。
本發(fā)明提供的裝置實(shí)施例,獲取獲取端路由器列表與LIST ID的對(duì)應(yīng)關(guān)系,再利用該對(duì)應(yīng)關(guān)系進(jìn)行報(bào)文轉(zhuǎn)發(fā),通過(guò)攜帶的LIST ID,有效解決報(bào)文頭載荷隨著指定節(jié)點(diǎn)的數(shù)量顯示增加的問(wèn)題,減輕了IPV6報(bào)文的報(bào)文頭的負(fù)擔(dān),提高了數(shù)據(jù)傳輸效率。
本領(lǐng)域普通技術(shù)人員可以理解上述實(shí)施例的全部或部分步驟可以使用計(jì)算機(jī)程序流程來(lái)實(shí)現(xiàn),所述計(jì)算機(jī)程序可以存儲(chǔ)于一計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,所述計(jì)算機(jī)程序在相應(yīng)的硬件平臺(tái)上(如系統(tǒng)、設(shè)備、裝置、器件等)執(zhí)行,在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。
可選地,上述實(shí)施例的全部或部分步驟也可以使用集成電路來(lái)實(shí)現(xiàn),這些步驟可以被分別制作成一個(gè)個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
上述實(shí)施例中的各裝置/功能模塊/功能單元可以采用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,也可以分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上。
上述實(shí)施例中的各裝置/功能模塊/功能單元以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷(xiāo)售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。 上述提到的計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤(pán)或光盤(pán)等。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以權(quán)利要求所述的保護(hù)范圍為準(zhǔn)。