專利名稱::基于Linux的DS-Lite實(shí)現(xiàn)方法及其CPE接入設(shè)備的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及DS-Lite
技術(shù)領(lǐng)域:
,具體涉及基于Linux的DS-Lite實(shí)現(xiàn)方法及其CPE接入設(shè)備。
背景技術(shù):
:DS-Lite(Dual-StackLite)輕型雙棧技術(shù)是一種IPv4-1n_IPv6隧道技術(shù),可實(shí)現(xiàn)在IPv6-only接入網(wǎng)環(huán)境下,雙?;騃Pv4_only主機(jī)訪問(wèn)IPv4網(wǎng)絡(luò)資源,用來(lái)實(shí)現(xiàn)IPv4和IPv6的共存。目前隨著IPv4可分配地址資源的耗盡,互聯(lián)網(wǎng)采用IPv6網(wǎng)絡(luò)已成為下一代互聯(lián)網(wǎng)的發(fā)展方向,越來(lái)越多的運(yùn)營(yíng)商已開(kāi)始在接入網(wǎng)與核心網(wǎng)著手部署IPv6網(wǎng)絡(luò)。但是由于原有大量應(yīng)用層軟件和已部署的終端硬件局限性的問(wèn)題,在未來(lái)的相當(dāng)長(zhǎng)的時(shí)間內(nèi),需要IPv4和IPv6業(yè)務(wù)實(shí)現(xiàn)共存。那么在IPv6-only接入網(wǎng)環(huán)境下,如何實(shí)現(xiàn)終端對(duì)原有IPv4業(yè)務(wù)的訪問(wèn)成為必須解決的問(wèn)題
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問(wèn)題是,在保留終端IPv4業(yè)務(wù)的基礎(chǔ)上,如何實(shí)現(xiàn)IPv4業(yè)務(wù)流量在IPv6網(wǎng)絡(luò)中傳輸,從而實(shí)現(xiàn)在IPv6的環(huán)境下,對(duì)IPv4業(yè)務(wù)進(jìn)行訪問(wèn)。為了解決上述技術(shù)問(wèn)題,本發(fā)明所采用的技術(shù)方案是提供一種基于Linux的DS-Lite實(shí)現(xiàn)方法,其包括以下步驟:利用用戶終端網(wǎng)關(guān)(CPE)向網(wǎng)關(guān)控制服務(wù)器(BNG)發(fā)起呼叫請(qǐng)求,在WAN接口建立與IPv6網(wǎng)絡(luò)的連接,獲取WAN接口的IPv6全球地址;判斷是否靜態(tài)配置AFTR(AddressFamilyTranslationRouter,地址族過(guò)度路由器單元)服務(wù)器域名,若是,則調(diào)用AFTR服務(wù)器為用戶終端網(wǎng)關(guān)(CPE)提供AFTR服務(wù)器域名;若否,則利用用戶終端網(wǎng)關(guān)(CPE)通過(guò)DHCPv6隧道端點(diǎn)選項(xiàng)(option64)向網(wǎng)關(guān)控制服務(wù)器(BNG)發(fā)出請(qǐng)求分配AFTR服務(wù)器域名的請(qǐng)求,接收網(wǎng)關(guān)控制服務(wù)器(BNG)返回的AFTR服務(wù)器域名;根據(jù)所述AFTR服務(wù)器域名進(jìn)行解析,獲得所述AFTR服務(wù)器的IPv6地址;CPE通過(guò)DHCPv6獲取IPv6DNS服務(wù)器地址,在其LAN接口實(shí)現(xiàn)IPv4至IPv6的DNS代理,LAN接口作為IPv4主機(jī)的DNS服務(wù)器,將LAN側(cè)V4主機(jī)發(fā)送的IPv4DNS請(qǐng)求轉(zhuǎn)換為IPv6DNS請(qǐng)求進(jìn)行發(fā)送(A請(qǐng)求裝換為AAAA請(qǐng)求),收到IPv6DNS響應(yīng)后,再轉(zhuǎn)換為IPv4DNS響應(yīng)回送給V4主機(jī);開(kāi)啟DHCPv4Server功能,為連接到LAN接口的用戶終端分配私有IPv4地址,同時(shí)加載Iinux系統(tǒng)中的ip6_tunnel模塊;根據(jù)所述WAN接口的IPv6全球地址和所述AFTR服務(wù)器的IPv6地址,建立用戶終端網(wǎng)關(guān)至所述AFTR服務(wù)器的IPv4-1n-1Pv6隧道,構(gòu)建網(wǎng)關(guān)隧道接口,利用所述WAN接口的IPv6全球地址作為網(wǎng)關(guān)隧道接口的網(wǎng)絡(luò)地址;完成寬帶橋接;調(diào)用Iinux平臺(tái)ip_tables.ko模塊,通過(guò)下發(fā)iptables規(guī)則和限制隧道接口MTU值,來(lái)處理大包分片和自適應(yīng)確定TCPMSS值;判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型用以選擇傳輸通道,如果是IPv4協(xié)議,則通過(guò)IPv4-1n-1Pv6隧道完成與所述AFTR服務(wù)器的數(shù)據(jù)包傳輸,如果是IPv6協(xié)議,則直接通過(guò)WAN接口完成與所述AFTR服務(wù)器的數(shù)據(jù)包傳輸。在上述方案中,所述用戶終端網(wǎng)關(guān)(CPE)具有IPv4和IPv6兩種協(xié)議棧。在上述方案中,上述步驟中,在啟動(dòng)用戶終端網(wǎng)關(guān)CPE時(shí)一并開(kāi)啟DHCPv6Server功能,為連接到LAN接口的用戶終端分配相應(yīng)的IPv6地址,用于實(shí)現(xiàn)IPv6協(xié)議終端與用戶終端網(wǎng)關(guān)CPE之間的數(shù)據(jù)傳輸。在上述方案中,上述步驟中,所述調(diào)用Linux平臺(tái)下ip_tables模塊,用于協(xié)商TCPMSS值的自適應(yīng)過(guò)程如下:使用遠(yuǎn)程主機(jī)的主機(jī)名和端口號(hào)創(chuàng)建TCPclient,為TCP網(wǎng)絡(luò)服務(wù)提供客戶端連接,TCPclient發(fā)出SYN報(bào)文,其中option選項(xiàng)填充的MSS字段一般為MTU+IP頭大小+TCP頭大小,同樣TCPserver服務(wù)器收到SYN報(bào)文后,會(huì)發(fā)送SYN+ACK報(bào)文應(yīng)答,option選項(xiàng)填充的MSS字段也為MTU+IP頭大小+TCP頭大??;協(xié)商雙方會(huì)比較SYN和SYN+ACK報(bào)文中MSS字段大小,選擇較小的MSS作為發(fā)送TCP分片的大小。在上述方案中,在所述判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型用以選擇傳輸通道的過(guò)程中,針對(duì)用戶終端網(wǎng)關(guān)CPE的LAN接口流入的數(shù)據(jù)報(bào)文,判斷所述數(shù)據(jù)報(bào)文的協(xié)議類型,如果是IPv4協(xié)議,則通過(guò)所述網(wǎng)關(guān)隧道接口進(jìn)行IPv6協(xié)議的封裝,然后通過(guò)IPv4-1n-1Pv6隧道完成與所述AFTR服務(wù)器的上行數(shù)據(jù)傳輸(即從終端上述數(shù)據(jù)至互聯(lián)網(wǎng));如果是IPv6協(xié)議,則利用IPv6協(xié)議通過(guò)所述WAN接口直接傳輸完成與所述AFTR服務(wù)器的上行數(shù)據(jù)傳輸。在上述方案中,在所述判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型用以選擇傳輸通道的過(guò)程中,針對(duì)WAN接口側(cè)流入的數(shù)據(jù)包,判斷是否封裝有IPv4協(xié)議類型的報(bào)文以確定待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型,如果所述數(shù)據(jù)包中封裝有IPv4協(xié)議類型,則傳送至所述網(wǎng)關(guān)隧道接口進(jìn)行解封裝,將解封裝之后的報(bào)文送至IPv4協(xié)議棧用以獲取目標(biāo)地址,然后將解封裝之后的報(bào)文傳送至所述目標(biāo)地址對(duì)應(yīng)的LAN接口,利用IPv4協(xié)議傳輸至相應(yīng)的終端設(shè)備,完成下行數(shù)據(jù)(即從互聯(lián)網(wǎng)上下載數(shù)據(jù))的傳輸;如果所述數(shù)據(jù)包中沒(méi)有封裝IPv4協(xié)議類型,則將所述數(shù)據(jù)包傳送至IPv6協(xié)議棧用以獲取目標(biāo)地址,然后將所述數(shù)據(jù)包傳送至所述目標(biāo)地址對(duì)應(yīng)的LAN接口,利用IPv6協(xié)議傳輸至相應(yīng)的終端設(shè)備,完成下行數(shù)據(jù)的傳輸。在上述方案中,還提供了一種基于Linux的DS-Lite實(shí)現(xiàn)方法的CPE接入設(shè)備,包括LAN接口或/和WAN接口,其特征在于,所述設(shè)備包括:發(fā)送/接收模塊,用于利用LAN接口或/和WAN接口,根據(jù)待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型和目標(biāo)地址,向終端和/或AFTR服務(wù)器發(fā)送IPv4或IPv6協(xié)議數(shù)據(jù)包;接入模式判斷模塊,用于判斷是否靜態(tài)配置AFTR服務(wù)器域名,并根據(jù)判斷結(jié)果調(diào)用緩存中的AFTR服務(wù)器域名信息或利用所述發(fā)送/接收模塊獲取動(dòng)態(tài)AFTR服務(wù)器域名信息;域名解析模塊,用于根據(jù)獲得的AFTR服務(wù)器域名信息獲得所述AFTR服務(wù)器的IPv6地址;網(wǎng)關(guān)隧道接口模塊,用于封裝或解封裝含有IPv4協(xié)議報(bào)文的IPv6協(xié)議數(shù)據(jù)包,并將封裝后的IPv6協(xié)議數(shù)據(jù)包通過(guò)WAN接口傳輸至所述AFTR服務(wù)器或?qū)⒔夥庋b之后的IPv4協(xié)議報(bào)文通過(guò)LAN接口傳輸至終端設(shè)備;數(shù)據(jù)報(bào)文類型判斷模塊,用于判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型,并輸出判斷結(jié)果至所述發(fā)送/接收模塊,用以建立與AFTR服務(wù)器之間的傳輸通道'及自適應(yīng)TCPMSS值確認(rèn)模塊,用于調(diào)用Iinux平臺(tái)ip_tables.ko模塊,通過(guò)下發(fā)iptables規(guī)則和限制隧道接口MTU值,來(lái)處理大包分片和自適應(yīng)確定TCPMSS值。在上述方案中,所述設(shè)備還包括:所述數(shù)據(jù)報(bào)文類型判斷模塊包括:上行數(shù)據(jù)判斷處理單元,用于根據(jù)用戶終端網(wǎng)關(guān)CPE的LAN接口流入的數(shù)據(jù)報(bào)文協(xié)議類型,通過(guò)所述網(wǎng)關(guān)隧道接口模塊將IPv4協(xié)議報(bào)文封裝在IPv6協(xié)議數(shù)據(jù)包中送至所述發(fā)送/接收模塊,或直接送至所述發(fā)送/接收模塊利用IPv6協(xié)議發(fā)送數(shù)據(jù);下行數(shù)據(jù)判斷處理單元,用于判斷所述用戶終端網(wǎng)關(guān)CPE的WAN接口側(cè)流入的數(shù)據(jù)包中是否封裝有IPv4協(xié)議類型的報(bào)文,根據(jù)判斷結(jié)果將所述數(shù)據(jù)包送至所述網(wǎng)關(guān)隧道接口模塊進(jìn)行解封裝或直接送至所述發(fā)送/接收模塊。在上述技術(shù)方案的基礎(chǔ)上,所述設(shè)備還包括:IPv4協(xié)議棧模塊,用于將報(bào)文按照IPv4協(xié)議封裝或解封裝后送入發(fā)送/接收模塊;在上述技術(shù)方案的基礎(chǔ)上,所述設(shè)備還包括:IPv6協(xié)議棧模塊,用于將報(bào)文按照IPv6協(xié)議封裝或解封裝后送入發(fā)送/接收模塊或網(wǎng)關(guān)隧道接口模塊。本發(fā)明基于Linux軟件方式實(shí)現(xiàn)DS-Lite功能,并通過(guò)網(wǎng)關(guān)設(shè)備中使用DHCPv60ption64來(lái)獲取AFTR服務(wù)器地址,在IPv6WAN接口下建立4_in_6Tunnel,通過(guò)DNSProxy在LAN側(cè)接口實(shí)現(xiàn)IPv4到IPv6的DNS代理,實(shí)現(xiàn)IPv4DNS和IPv6DNS報(bào)文的相互轉(zhuǎn)換,通過(guò)iptables規(guī)則和對(duì)接口MTU值的限制避免數(shù)據(jù)大包分片,以此方式實(shí)現(xiàn)網(wǎng)關(guān)LAN側(cè)的IPv4數(shù)據(jù)包通過(guò)網(wǎng)關(guān)處理后,在IPv6-only的網(wǎng)絡(luò)環(huán)境進(jìn)行傳輸,降低對(duì)硬件的要求,簡(jiǎn)化了接入實(shí)現(xiàn)方式,提高了DS-Lite性能。此外本發(fā)明的特別之處在于,本發(fā)明以軟件方式來(lái)實(shí)現(xiàn)DS-Lite功能,其可以在保證原有CPE接入設(shè)備在保留IPv4業(yè)務(wù)的基礎(chǔ)上、通過(guò)植入基于Linux的DS-Lite的軟件實(shí)現(xiàn)方法,來(lái)實(shí)現(xiàn)基于Linux操作系統(tǒng)對(duì)硬件物理層的控制,從而保證在不改變?cè)蠧PE接入設(shè)備硬件和操作系統(tǒng)環(huán)境的基礎(chǔ)上實(shí)現(xiàn)在IPv6的環(huán)境下對(duì)IPv4業(yè)務(wù)進(jìn)行訪問(wèn),而這一目的的實(shí)現(xiàn),完全可基于Linux的應(yīng)用程序的植入來(lái)完成整個(gè)IPv4和IPv6業(yè)務(wù)實(shí)的共存,而不需要改變?cè)蠧PE接入設(shè)備的硬件和軟件環(huán)境,本發(fā)明特別適用于基于Linux內(nèi)核2.6.22以上的CPE設(shè)備。圖1為本發(fā)明應(yīng)用實(shí)施例的網(wǎng)絡(luò)環(huán)境結(jié)構(gòu)示意圖;圖2為本發(fā)明的方法流程控制圖;圖3為本發(fā)明的CPE接入設(shè)備的結(jié)構(gòu)示意圖。具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明作出詳細(xì)的說(shuō)明。如圖1所示,本發(fā)明的主要應(yīng)用場(chǎng)景為:用戶終端網(wǎng)關(guān)(CPE)的下掛設(shè)備(比如機(jī)頂盒、PC、智能終端等)產(chǎn)生和使用IPv6協(xié)議網(wǎng)絡(luò)的通訊數(shù)據(jù),IPv4協(xié)議終端/IPv6協(xié)議終端由用戶終端網(wǎng)關(guān)(CPE)將數(shù)據(jù)從LAN側(cè)轉(zhuǎn)發(fā)到WAN側(cè),用戶終端網(wǎng)關(guān)(CPE)WAN接口側(cè)接IPv6_only網(wǎng)絡(luò)。基于Linux內(nèi)核2.6.22以上的CPE設(shè)備,本發(fā)明提供以下實(shí)現(xiàn)方式:如圖2所示,一種基于Linux的DS-Lite實(shí)現(xiàn)方法,包括以下步驟:步驟100、利用用戶終端網(wǎng)關(guān)(CPE)向網(wǎng)關(guān)控制服務(wù)器(BNG)發(fā)起呼叫請(qǐng)求,在WAN接口建立與IPv6網(wǎng)絡(luò)的連接,通過(guò)鄰居發(fā)現(xiàn)協(xié)議獲取IPv6鏈路地址,開(kāi)啟DHCPv6Client功能和RADVD功能(Linux提供的路由器廣告守護(hù)進(jìn)程),獲取WAN接口的IPv6全球地址;步驟101、判斷是否靜態(tài)配置AFTR(AddressFamilyTranslationRouter,地址族過(guò)度路由器單元)服務(wù)器域名,若是,則執(zhí)行步驟102;否則,則執(zhí)行步驟103;步驟102、調(diào)用AFTR服務(wù)器為用戶終端網(wǎng)關(guān)(CPE)提供AFTR服務(wù)器域名,轉(zhuǎn)步驟105;步驟103、利用用戶終端網(wǎng)關(guān)(CPE)通過(guò)DHCPv6隧道端點(diǎn)選項(xiàng)(option64)向網(wǎng)關(guān)控制服務(wù)器(BNG)發(fā)出請(qǐng)求分配AFTR服務(wù)器域名的請(qǐng)求;步驟104、接收網(wǎng)關(guān)控制服務(wù)器(BNG)返回的AFTR服務(wù)器域名;步驟105、根據(jù)獲取的AFTR服務(wù)器域名,對(duì)其進(jìn)行IPv6DNS解析,獲得AFTR服務(wù)器的IPv6地址;步驟106、CPE通過(guò)DHCPv6請(qǐng)求獲取IPv6DNS服務(wù)器地址,在其LAN接口實(shí)現(xiàn)IPv4至IPv6的DNS代理,LAN接口·作為IPv4主機(jī)的DNS服務(wù)器,將LAN側(cè)IPv4主機(jī)發(fā)送的IPv4DNS請(qǐng)求轉(zhuǎn)換為IPv6DNS請(qǐng)求進(jìn)行發(fā)送(A請(qǐng)求裝換為AAAA請(qǐng)求),相應(yīng)的收到IPv6DNS響應(yīng)后,再轉(zhuǎn)換為IPv4DNS響應(yīng)回送給IPv4主機(jī)。步驟107、開(kāi)啟DHCPv4Server功能,為連接到CPE的LAN接口上的用戶終端分配私有IPv4地址,同時(shí)加載Iinux系統(tǒng)中的ip6_tunnel模塊。ip6_tunnel模塊為Iinux系統(tǒng)中的隧道代碼,在Iinux內(nèi)核代碼目錄樹(shù)中有,ip6_tunnel.h,ip6_tunnel.c,tunnel6.c,編譯之后生成ip6_tunnel.ko和tunne6.ko兩個(gè)可加載驅(qū)動(dòng)模塊,使用insmod(指Iinux系統(tǒng)中的加載模塊,是靠一個(gè)在kernel/module,c里定義的系統(tǒng)調(diào)用來(lái)實(shí)現(xiàn)的)加載到內(nèi)核。步驟108、根據(jù)CPE的WAN接口的IPv6全球地址和AFTR服務(wù)器的IPv6地址,建立用戶終端網(wǎng)關(guān)(CPE)至AFTR服務(wù)器的IPv4-1n-1Pv6隧道;利用WAN接口的IPv6全球地址作為網(wǎng)關(guān)隧道接口的網(wǎng)絡(luò)地址,添加IPv4默認(rèn)路由,使IPv4數(shù)據(jù)經(jīng)過(guò)隧道接口進(jìn)行轉(zhuǎn)發(fā),完成寬帶橋接;步驟109、通過(guò)限制網(wǎng)關(guān)LAN側(cè)接口和隧道接口的MTU值(MTU=MaxitumTransmissionUnit最大傳輸單元),來(lái)避免傳統(tǒng)方法建立IPv4-1n_IPv6隧道導(dǎo)致的對(duì)分段數(shù)據(jù)的處理問(wèn)題。加載Linux系統(tǒng)平臺(tái)中的iptables模塊(Linux系統(tǒng)平臺(tái)中的iptables防火墻的守護(hù)進(jìn)程,經(jīng)過(guò)編譯之后形成iptables.ko文件用于驅(qū)動(dòng)加載),下發(fā)iptables規(guī)則,限制隧道接口MTU值,改變TCPMSS值以適應(yīng)PMTU(pathMaxinumTransimissionUnit,即IP包數(shù)據(jù)包的總長(zhǎng)度一定不能超過(guò)MTU,如果超過(guò)就要分段傳送),這里通過(guò)限制LAN接口和隧道接口的MTU值,可以避免對(duì)IPv6數(shù)據(jù)分段的處理,完成對(duì)IPv4和IPv6大包的處理。這里的TCPMSS值是指TCP數(shù)據(jù)包每次能夠傳輸?shù)淖畲髷?shù)據(jù)分段,為了達(dá)到最佳的傳輸效能TCP協(xié)議在建立連接的時(shí)候通常要協(xié)商雙方的MSS值,這個(gè)值TCP協(xié)議在實(shí)現(xiàn)的時(shí)候往往用MTU值代替(需要減去IP數(shù)據(jù)包包頭的大小20Bytes和TCP數(shù)據(jù)段的包頭20Bytes),通訊雙方會(huì)根據(jù)雙方提供的MSS值得最小值確定為這次連接的最大MSS值。而一般以太網(wǎng)MTU都為1500,所以在以太網(wǎng)中,往往TCPMSS為1460。協(xié)商TCPMSS大小具體過(guò)程如下:使用遠(yuǎn)程主機(jī)的主機(jī)名和端口號(hào)創(chuàng)建TCPclient,為TCP網(wǎng)絡(luò)服務(wù)提供客戶端連接,TCPclient發(fā)出SYN報(bào)文(包含SYN標(biāo)志而不含ACK標(biāo)志的報(bào)文),其中option選項(xiàng)填充的MSS字段一般為“MTU+IP頭大小+TCP頭大小”,同樣TCPserver服務(wù)器收到SYN報(bào)文后,會(huì)發(fā)送SYN+ACK報(bào)文(同時(shí)包含SYN標(biāo)志和ACK標(biāo)志的報(bào)文)應(yīng)答,option選項(xiàng)填充的MSS字段也為“MTU+IP頭大小+TCP頭大小”;協(xié)商雙方會(huì)比較SYN和SYN+ACK報(bào)文中MSS字段大小,選擇較小的MSS作為發(fā)送TCP分片的大小。在進(jìn)入隧道接口時(shí),由于對(duì)IPv4報(bào)文(包括IPv4分片報(bào)文)封裝IPv6報(bào)頭,會(huì)導(dǎo)致IPv6分片報(bào)文(包括在IPv4分片報(bào)文的基礎(chǔ)上又進(jìn)行IPv6的分片),這樣會(huì)降低傳輸速率;通過(guò)限制LAN接口和隧道接口的MTU值,可以避免對(duì)IPv6數(shù)據(jù)分段的處理,完成對(duì)IPv4和IPv6大包的處理,提高DS-Lite處理能力。步驟110、判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型用以選擇傳輸通道,如果是IPv4協(xié)議,則通過(guò)IPv4-1n-1Pv6隧道完成與AFTR服務(wù)器的數(shù)據(jù)包傳輸,如果是IPv6協(xié)議,則直接通過(guò)WAN側(cè)IPv6接口完成與AFTR服務(wù)器的數(shù)據(jù)包傳輸。在步驟110中,在判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型用以選擇傳輸通道的過(guò)程中,針對(duì)用戶終端網(wǎng)關(guān)(CPE)LAN接口流入的數(shù)據(jù)報(bào)文,執(zhí)行以下步驟118至120的過(guò)程;針對(duì)WAN接口側(cè)流入的數(shù)據(jù)包,執(zhí)行以下步驟128至130的過(guò)程。`步驟118、判斷數(shù)據(jù)報(bào)文的協(xié)議類型,如果是IPv4協(xié)議,則執(zhí)行步驟119;如果是IPv6協(xié)議,則執(zhí)行步驟120;步驟119、通過(guò)網(wǎng)關(guān)隧道接口進(jìn)行對(duì)IPv4報(bào)文進(jìn)行IPv6協(xié)議的封裝,然后通過(guò)IPv4-1n-1Pv6隧道完成與AFTR服務(wù)器的上行數(shù)據(jù)傳輸(即從終端上傳數(shù)據(jù)至互聯(lián)網(wǎng));步驟120、利用IPv6協(xié)議通過(guò)WAN側(cè)IPv6接口直接傳輸完成與AFTR服務(wù)器的上行數(shù)據(jù)傳輸。步驟119中的封裝是在一種將協(xié)議數(shù)據(jù)單元封裝在一組協(xié)議頭和尾中的過(guò)程。用戶終端網(wǎng)關(guān)(CPE)WAN側(cè)Tunnel接口將IPv4報(bào)文封裝為IPv6報(bào)文,封裝的方式為直接在IPv4報(bào)文上封裝一個(gè)IPv6報(bào)文頭(報(bào)文頭的源地址為WAN側(cè)IPv6地址,目的地址為AFTR地址);在用戶終端網(wǎng)關(guān)(CPE)和AFTR服務(wù)器之間的IPv6網(wǎng)絡(luò)中,該報(bào)文會(huì)使用IPv6報(bào)文頭中的目的地址進(jìn)行轉(zhuǎn)發(fā)。步驟128、判斷是否封裝有IPv4協(xié)議類型的報(bào)文以確定待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型,若有,則執(zhí)行步驟129;若無(wú)則執(zhí)行步驟130;步驟129、如果數(shù)據(jù)包中封裝有IPv4協(xié)議類型,則傳送至網(wǎng)關(guān)隧道接口進(jìn)行解封裝,將解封裝之后的報(bào)文送至IPv4協(xié)議棧用以獲取目標(biāo)地址,然后將解封裝之后的報(bào)文傳送至所述目標(biāo)地址對(duì)應(yīng)的LAN接口,利用IPv4協(xié)議傳輸至相應(yīng)的終端設(shè)備,完成下行數(shù)據(jù)(即從互聯(lián)網(wǎng)上下載數(shù)據(jù))的傳輸;步驟130、如果數(shù)據(jù)包中沒(méi)有封裝IPv4協(xié)議類型,則將數(shù)據(jù)包傳送至IPv6協(xié)議棧用以獲取目標(biāo)地址,然后將數(shù)據(jù)包傳送至目標(biāo)地址對(duì)應(yīng)的LAN接口,利用IPv6協(xié)議傳輸至相應(yīng)的終端設(shè)備,完成下行數(shù)據(jù)的傳輸。在上述步驟128中,可以通過(guò)IPv6協(xié)議棧檢查IPv6數(shù)據(jù)包中的封裝協(xié)議類型,如果封裝了IPv4協(xié)議,則數(shù)據(jù)包進(jìn)入網(wǎng)關(guān)隧道接口模塊進(jìn)行解封裝,解封裝之后的報(bào)文被送到IPv4協(xié)議棧進(jìn)行處理。在上述步驟129中所指的解封裝是上述封裝的反過(guò)程,收到該報(bào)文數(shù)據(jù)包后進(jìn)行解封裝,解封裝的方式為將IPv6報(bào)文頭剝離,露出IPv4報(bào)文。在上述方案中,所述用戶終端網(wǎng)關(guān)(CPE)具有IPv4和IPv6兩種協(xié)議棧。在上述方案中,上述步驟中,在啟動(dòng)用戶終端網(wǎng)關(guān)(CPE)時(shí)一并開(kāi)啟DHCPv6Server功能,為連接到LAN接口的用戶終端分配相應(yīng)的IPv6地址,用于實(shí)現(xiàn)IPv6協(xié)議終端與用戶終端網(wǎng)關(guān)(CPE)之間的數(shù)據(jù)傳輸。在上述方案中,WAN側(cè)隧道接口的MTU值限制,應(yīng)根據(jù)WAN側(cè)IPv6接口的MTU值減去IPv6報(bào)頭大小,來(lái)避免IPv4報(bào)文封裝后產(chǎn)生IPv6分片報(bào)文。同時(shí)適應(yīng)不支持IPv6分片報(bào)文的網(wǎng)絡(luò)環(huán)境,提高DS-Lite傳輸性能,保證DS-Lite應(yīng)用場(chǎng)景的多樣性。在上述步驟中,接入模式是指在終端IPv4的網(wǎng)絡(luò)環(huán)境中,是如何與IPv6服務(wù)器建立連接,以此來(lái)建立IPv4流量在IPv6-only網(wǎng)絡(luò)環(huán)境中的通道。實(shí)現(xiàn)了靜態(tài)接入方式、動(dòng)態(tài)接入方式兩種接入方式來(lái)建立隧道連接。良好的接入方式,可以簡(jiǎn)化CPE(CPE是指物理上位于用戶側(cè)的硬件,如:服務(wù)器;工作站;通信硬件(CSU/DSUs,調(diào)制解調(diào)器))的實(shí)現(xiàn)模式,同時(shí)提高AFTR服務(wù)器(AddressFamilyTransitionRouter地址族轉(zhuǎn)換路由器)的高可用性。靜態(tài)接入方式可以提高接入效率。動(dòng)態(tài)接入方式,可以提高AFTR服務(wù)器的高可用性,隧道的端點(diǎn)可以位于供應(yīng)商網(wǎng)絡(luò)中的任務(wù)位置,方便AFTR服務(wù)器的橫向擴(kuò)展。基于上述實(shí)現(xiàn)方法,將其構(gòu)建的軟件應(yīng)用程序植入于基于Linux內(nèi)核2.6.22以上的CPE設(shè)備上即可提供一種基于Linux的DS-Lite實(shí)現(xiàn)方法的CPE接入設(shè)備,如圖3所示,CPE接入設(shè)備具有LAN接口或/和WAN接口,具體包括:發(fā)送/接收模塊,用于利用LAN接口或/和WAN接口,根據(jù)待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型和目標(biāo)地址,向終端和/或AFTR服務(wù)器發(fā)送IPv4或IPv6協(xié)議數(shù)據(jù)包;接入模式判斷模塊,用于判斷是否靜態(tài)配置AFTR服務(wù)器域名,并根據(jù)判斷結(jié)果調(diào)用緩存中的AFTR服務(wù)器域名信息或利用所述發(fā)送/接收模塊獲取動(dòng)態(tài)AFTR服務(wù)器域名信息;域名解析模塊,用于根據(jù)獲得的AFTR服務(wù)器域名信息獲得所述AFTR服務(wù)器的IPv6地址;網(wǎng)關(guān)隧道接口模塊,用于封裝或解封裝含有IPv4協(xié)議報(bào)文的IPv6協(xié)議數(shù)據(jù)包,并將封裝后的IPv6協(xié)議數(shù)據(jù)包通過(guò)WAN接口傳輸至所述AFTR服務(wù)器或?qū)⒔夥庋b之后的IPv4協(xié)議報(bào)文通過(guò)LAN接口傳輸至終端設(shè)備;數(shù)據(jù)報(bào)文類型判斷模塊,用于判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型,并輸出判斷結(jié)果至所述發(fā)送/接收模塊,用以建立與AFTR服務(wù)器之間的傳輸通道;和,自適應(yīng)TCPMSS值確認(rèn)模塊,用于調(diào)用Iinux平臺(tái)ip_tables.ko模塊,通過(guò)下發(fā)iptables規(guī)則和限制隧道接口MTU值,來(lái)處理大包分片和自適應(yīng)確定TCPMSS值。在上述方案中,數(shù)據(jù)報(bào)文類型判斷模塊包括上行數(shù)據(jù)判斷處理單元和下行數(shù)據(jù)判斷處理單元。上行數(shù)據(jù)判斷處理單元,用于根據(jù)用戶終端網(wǎng)關(guān)(CPE)LAN接口流入的數(shù)據(jù)報(bào)文協(xié)議類型,通過(guò)所述網(wǎng)關(guān)隧道接口模塊將IPv4協(xié)議報(bào)文封裝在IPv6協(xié)議數(shù)據(jù)包中送至所述發(fā)送/接收模塊,或直接送至所述發(fā)送/接收模塊利用IPv6協(xié)議發(fā)送數(shù)據(jù);下行數(shù)據(jù)判斷處理單元,用于判斷所述用戶終端網(wǎng)關(guān)(CPE)WAN接口側(cè)流入的數(shù)據(jù)包中是否封裝有IPv4協(xié)議類型的報(bào)文,根據(jù)判斷結(jié)果將所述數(shù)據(jù)包送至所述網(wǎng)關(guān)隧道接口模塊進(jìn)行解封裝或直接送至所述發(fā)送/接收模塊。在上述技術(shù)方案的基礎(chǔ)上,IPv4協(xié)議棧模塊,用于將報(bào)文按照IPv4協(xié)議封裝或解封裝后送入發(fā)送/接收模塊;在上述技術(shù)方案的基礎(chǔ)上,IPv6協(xié)議棧模塊,用于將報(bào)文按照IPv6協(xié)議封裝或解封裝后送入發(fā)送/接收模塊或網(wǎng)關(guān)隧道接口模塊??傊?在Linux操作系統(tǒng)平臺(tái)上(大部分的CPE接入設(shè)備均采用的是Linux操作系統(tǒng))構(gòu)建一種可方便植入的應(yīng)用軟件系統(tǒng),可以隨意植入只要滿足其硬件和操作系統(tǒng)需求的任意一臺(tái)CPE設(shè)備之上,從而實(shí)現(xiàn)DS-Lite功能。在保留終端IPv4業(yè)務(wù)的基礎(chǔ)上,實(shí)現(xiàn)IPv4業(yè)務(wù)流量在IPv6網(wǎng)絡(luò)中傳輸,從而實(shí)現(xiàn)在IPv6的環(huán)境下,對(duì)IPv4業(yè)務(wù)進(jìn)行訪問(wèn)。基于如圖1所示的網(wǎng)絡(luò)架構(gòu)圖,單IPv4協(xié)議終端或單IPv6協(xié)議終端與IPv6協(xié)議網(wǎng)絡(luò)業(yè)務(wù)服務(wù)器或IPv4協(xié)議網(wǎng)絡(luò)業(yè)務(wù)服務(wù)器交互訪問(wèn)時(shí),存在IPv4和IPv6協(xié)議之間的轉(zhuǎn)換,可以通過(guò)在CPE設(shè)備上構(gòu)建一個(gè)將數(shù)據(jù)包在IPv4協(xié)議棧和IPv6協(xié)議棧之間傳輸?shù)墓δ軉卧?,用以完善上述DS-Lite的實(shí)現(xiàn)方法,比如在單IPv4協(xié)議終端訪問(wèn)IPv6協(xié)議網(wǎng)絡(luò)業(yè)務(wù)服務(wù)器時(shí),可以通過(guò)在CPE設(shè)備增加一個(gè)協(xié)議轉(zhuǎn)換單元,用以在上述步驟130中增加一個(gè)步驟:將所述數(shù)據(jù)包傳送至IPv6協(xié)議棧進(jìn)行解析,獲得目標(biāo)地址和報(bào)文信息,然后送至IPv4協(xié)議棧將所述目標(biāo)地址和報(bào)文信息按照IPv4協(xié)議進(jìn)行封裝,再通過(guò)LAN接口傳輸給目標(biāo)地址對(duì)應(yīng)的單IPv4協(xié)議終端。這樣做的目的在于實(shí)現(xiàn)單IPv4協(xié)議終端通過(guò)單IPv6協(xié)議網(wǎng)絡(luò)訪問(wèn)單IPv4協(xié)議業(yè)務(wù)服務(wù)器的過(guò)程,整體網(wǎng)絡(luò)架構(gòu)簡(jiǎn)單,易操作。本發(fā)明不局限于上述最佳實(shí)施方式,任何人應(yīng)該得知在本發(fā)明的啟示下作出的結(jié)構(gòu)變化,凡是與本發(fā)明具有相同或相近的技術(shù)方案,均落入本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求1.一種基于Linux的DS-Lite實(shí)現(xiàn)方法,其特征在于,包括以下步驟:利用用戶終端網(wǎng)關(guān)CPE向網(wǎng)關(guān)控制服務(wù)器BNG發(fā)起呼叫請(qǐng)求,在所述用戶終端網(wǎng)關(guān)的WAN接口建立與IPv6網(wǎng)絡(luò)的連接,并獲取WAN接口的IPv6全球地址;判斷是否靜態(tài)配置AFTR服務(wù)器域名,若是,則調(diào)用AFTR服務(wù)器為用戶終端網(wǎng)關(guān)提供AFTR服務(wù)器域名;若否,則利用用戶終端網(wǎng)關(guān)通過(guò)DHCPv6隧道端點(diǎn)選項(xiàng)向網(wǎng)關(guān)控制服務(wù)器發(fā)出請(qǐng)求分配AFTR服務(wù)器域名的請(qǐng)求,接收網(wǎng)關(guān)控制服務(wù)器返回的AFTR服務(wù)器域名;根據(jù)所述AFTR服務(wù)器域名進(jìn)行解析,獲得所述AFTR服務(wù)器的IPv6地址;CPE通過(guò)DHCPv6獲取IPv6DNS服務(wù)器地址,在其LAN接口實(shí)現(xiàn)IPv4至IPv6的DNS代理,LAN接口作為IPv4主機(jī)的DNS服務(wù)器,將LAN側(cè)V4主機(jī)發(fā)送的IPv4DNS請(qǐng)求轉(zhuǎn)換為IPv6DNS請(qǐng)求進(jìn)行發(fā)送,收到IPv6DNS響應(yīng)后,再轉(zhuǎn)換為IPv4DNS響應(yīng)回送給V4主機(jī);開(kāi)啟DHCPv4Server功能,為連接到LAN接口的用戶終端分配私有IPv4地址,同時(shí)加載Iinux系統(tǒng)中的ip6_tunnel模塊;根據(jù)所述WAN接口的IPv6全球地址和所述AFTR服務(wù)器的IPv6地址,建立用戶終端網(wǎng)關(guān)至所述AFTR服務(wù)器的IPv4-1n-1Pv6隧道,構(gòu)建網(wǎng)關(guān)隧道接口,利用所述WAN接口的IPv6全球地址作為網(wǎng)關(guān)隧道接口的網(wǎng)絡(luò)地址;完成寬帶橋接;調(diào)用Iinux平臺(tái)iptables模塊,通過(guò)下發(fā)iptables規(guī)則和限制隧道接口MTU值,來(lái)處理大包分片和自適應(yīng)確定TCPMSS值;判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型用以選擇傳輸通道,如果是IPv4協(xié)議,則通過(guò)IPv4-1n-1Pv6隧道完成與所述AFTR服務(wù)器的數(shù)據(jù)包傳輸,如果是IPv6協(xié)議,則直接通過(guò)WAN接口完成與所述AFTR服務(wù)器的數(shù)據(jù)包傳輸。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述用戶終端網(wǎng)關(guān)具有IPv4和IPv6兩種協(xié)議棧。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,在啟動(dòng)用戶終端網(wǎng)關(guān)時(shí)一并開(kāi)啟DHCPv6Server功能,為連接到LAN接口的用戶終端分配相應(yīng)的IPv6地址,用于實(shí)現(xiàn)IPv6協(xié)議終端與用戶終端網(wǎng)關(guān)之間的數(shù)據(jù)傳輸。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述調(diào)用Linux平臺(tái)下ip_tables模塊,用于協(xié)商TCPMSS值的自適應(yīng)過(guò)程如下:使用遠(yuǎn)程主機(jī)的主機(jī)名和端口號(hào)創(chuàng)建TCPclient,為TCP網(wǎng)絡(luò)服務(wù)提供客戶端連接,TCPclient發(fā)出SYN報(bào)文,其中option選項(xiàng)填充的MSS字段一般為MTU+IP頭大小+TCP頭大小,同樣TCPserver服務(wù)器收到SYN報(bào)文后,會(huì)發(fā)送SYN+ACK報(bào)文應(yīng)答,option選項(xiàng)填充的MSS字段也為MTU+IP頭大小+TCP頭大?。粎f(xié)商雙方會(huì)比較SYN和SYN+ACK報(bào)文中MSS字段大小,選擇較小的MSS作為發(fā)送TCP分片的大小。5.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型用以選擇傳輸通道的過(guò)程中,針對(duì)用戶終端網(wǎng)關(guān)LAN接口流入的數(shù)據(jù)報(bào)文,判斷所述數(shù)據(jù)報(bào)文的協(xié)議類型,如果是IPv4協(xié)議,則通過(guò)所述網(wǎng)關(guān)隧道接口進(jìn)行IPv6協(xié)議的封裝,然后通過(guò)IPv4-1n-1Pv6隧道完成與所述AFTR服務(wù)器的上行數(shù)據(jù)傳輸;如果是IPv6協(xié)議,則利用IPv6協(xié)議通過(guò)所述WAN接口直接傳輸完成與所述AFTR服務(wù)器的上行數(shù)據(jù)傳輸。6.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型用以選擇傳輸通道的過(guò)程中,針對(duì)WAN接口側(cè)流入的數(shù)據(jù)包,判斷是否封裝有IPv4協(xié)議類型的報(bào)文以確定待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型,如果所述數(shù)據(jù)包中封裝有IPv4協(xié)議類型,則傳送至所述網(wǎng)關(guān)隧道接口進(jìn)行解封裝,將解封裝之后的報(bào)文送至IPv4協(xié)議棧用以獲取目標(biāo)地址,然后將解封裝之后的報(bào)文傳送至所述目標(biāo)地址對(duì)應(yīng)的LAN接口,利用IPv4協(xié)議傳輸至相應(yīng)的終端設(shè)備,完成下行數(shù)據(jù)的傳輸;如果所述數(shù)據(jù)包中沒(méi)有封裝IPv4協(xié)議類型,則將所述數(shù)據(jù)包傳送至IPv6協(xié)議棧用以獲取目標(biāo)地址,然后將所述數(shù)據(jù)包傳送至所述目標(biāo)地址對(duì)應(yīng)的LAN接口,利用IPv6協(xié)議傳輸至相應(yīng)的終端設(shè)備,完成下行數(shù)據(jù)的傳輸。7.一種基于Linux的DS-Lite實(shí)現(xiàn)方法的CPE接入設(shè)備,具有LAN接口或/和WAN接口,其特征在于,所述CPE接入設(shè)備包括:發(fā)送/接收模塊,用于利用LAN接口或/和WAN接口,根據(jù)待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型和目標(biāo)地址,向終端和/或AFTR服務(wù)器發(fā)送IPv4或IPv6協(xié)議數(shù)據(jù)包;接入模式判斷模塊,用于判斷是否靜態(tài)配置AFTR服務(wù)器域名,并根據(jù)判斷結(jié)果調(diào)用緩存中的AFTR服務(wù)器域名信息或利用所述發(fā)送/接收模塊獲取動(dòng)態(tài)AFTR服務(wù)器域名信息;域名解析模塊,用于根據(jù)獲得的AFTR服務(wù)器域名信息獲得所述AFTR服務(wù)器的IPv6地址;網(wǎng)關(guān)隧道接口模塊,用于封裝或解封裝含有IPv4協(xié)議報(bào)文的IPv6協(xié)議數(shù)據(jù)包,并將封裝后的IPv6協(xié)議數(shù)據(jù)包通過(guò)WAN接口傳輸至所述AFTR服務(wù)器或?qū)⒔夥庋b之后的IPv4協(xié)議報(bào)文通過(guò)LAN接口傳輸至終端設(shè)備;數(shù)據(jù)報(bào)文類型判斷模塊,用于判斷待傳輸數(shù)據(jù)的報(bào)文協(xié)議類型,并輸出判斷結(jié)果至所述發(fā)送/接收模塊,用以建立與AFTR服務(wù)器之間的傳輸通道'及自適應(yīng)TCPMSS值確認(rèn)模塊,用于調(diào)用Iinux平臺(tái)iptables模塊,通過(guò)下發(fā)iptables規(guī)則和限制隧道接口MTU值,來(lái)處理大包分片和自適應(yīng)確定TCPMSS值。8.根據(jù)權(quán)利要求6所述的CPE接入設(shè)備,其特征在于,所述數(shù)據(jù)報(bào)文類型判斷模塊包括:上行數(shù)據(jù)判斷處理單元,用于根據(jù)用戶終端網(wǎng)關(guān)CPE的LAN接口流入的數(shù)據(jù)報(bào)文協(xié)議類型,通過(guò)所述網(wǎng)關(guān)隧道接口模塊將IPv4協(xié)議報(bào)文封裝在IPv6協(xié)議數(shù)據(jù)包中送至所述發(fā)送/接收模塊,或直接送至所述發(fā)送/接收模塊利用IPv6協(xié)議發(fā)送數(shù)據(jù);下行數(shù)據(jù)判斷處理單元,用于判斷所述用戶終端網(wǎng)關(guān)CPE的WAN接口側(cè)流入的數(shù)據(jù)包中是否封裝有IPv4協(xié)議類型的報(bào)文,根據(jù)判斷結(jié)果將所述數(shù)據(jù)包送至所述網(wǎng)關(guān)隧道接口模塊進(jìn)行解封裝或直接送至所述發(fā)送/接收模塊。9.根據(jù)權(quán)利要求6所述的CPE接入設(shè)備,其特征在于,還包括:IPv4協(xié)議棧模塊,用于將報(bào)文按照IPv4協(xié)議封裝或解封裝后送入發(fā)送/接收模塊。10.根據(jù)權(quán)利要求6所述的CPE接入設(shè)備,其特征在于,還包括:IPv6協(xié)議棧模塊,用于將報(bào)文按照IPv6協(xié)議封裝或解封裝后送入發(fā)送/接收模塊或網(wǎng)關(guān)隧道接口模塊。全文摘要本發(fā)明公開(kāi)了一種基于Linux的DS-Lite實(shí)現(xiàn)方法及其CPE接入設(shè)備,其基于Linux軟件方式實(shí)現(xiàn)DS-Lite功能,并通過(guò)網(wǎng)關(guān)設(shè)備中使用DHCPv6Option64來(lái)獲取AFTR服務(wù)器地址,在IPv6WAN連接下建立Tunnel,通過(guò)DNSProxy來(lái)進(jìn)行IPv4DNS與IPv6DNS相互轉(zhuǎn)換,進(jìn)行解析,以此方式實(shí)現(xiàn)網(wǎng)關(guān)LAN側(cè)的IPv4數(shù)據(jù)包通過(guò)網(wǎng)關(guān)處理后,在IPv6-only的網(wǎng)絡(luò)環(huán)境進(jìn)行傳輸,降低對(duì)硬件的要求,簡(jiǎn)化了接入實(shí)現(xiàn)方式。文檔編號(hào)H04L12/781GK103236964SQ20131016291公開(kāi)日2013年8月7日申請(qǐng)日期2013年5月7日優(yōu)先權(quán)日2013年5月7日發(fā)明者李華敏,曾斌,顏靚,田智煒,魏嬋申請(qǐng)人:烽火通信科技股份有限公司