專利名稱:一種穿越IPv6網(wǎng)絡(luò)地址翻譯建立虛擬隧道的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及本發(fā)明涉及一種穿越IPv6NAT(Network AddressTranslation,網(wǎng)絡(luò)地址翻譯)建立虛擬隧道的方法,特別是涉及一種穿越IPv6NAT建立虛擬隧道實(shí)現(xiàn)IPv6骨干網(wǎng)上IPv4子網(wǎng)間通信的方法。
背景技術(shù):
IPv6(IP第6版)協(xié)議作為下一代互聯(lián)網(wǎng)IP協(xié)議具備諸多優(yōu)點(diǎn)簡化的路由表、地址自動(dòng)配置、超大地址空間、對移動(dòng)性很好的支持、簡化的包頭處理等等,這些都為互聯(lián)網(wǎng)從IPv4(IP第4版)協(xié)議體系向IPv6體系提供了技術(shù)上的優(yōu)勢。但是IPv6的部署不單單是技術(shù)層面上的問題,更多的倚賴于ISP(網(wǎng)絡(luò)服務(wù)提供者)和政府的推動(dòng)。目前互聯(lián)網(wǎng)上大部分的路由設(shè)備和終端設(shè)備只支持IPv4,對于ISP來說,很難讓其立即放棄原有的IPv4而全面升級到IPv6,為了保證ISP原有IPv4網(wǎng)絡(luò)建設(shè)投資的延續(xù)性,相應(yīng)的解決IPv4和IPv6兩種協(xié)議體系共存融合的過渡機(jī)制就顯得越來越重要。由于IPv6和IPv4報(bào)文格式的不兼容性,人們設(shè)計(jì)了多種過渡機(jī)制,使IPv6孤島通過IPv4骨干網(wǎng)絡(luò)進(jìn)行互聯(lián)互通。在IPv4向IPv6過渡的后期,主干網(wǎng)上存在大量的IPv6路由設(shè)備,需要解決IPv4孤島間通過IPv6骨干網(wǎng)互聯(lián)互通的問題,因而采用IPv4-in-IPv6的隧道技術(shù),其核心是把IPv4報(bào)文封裝在IPv6報(bào)文中,從而在IPv6骨干網(wǎng)上傳送IPv4報(bào)文。
但是目前的IPv4-in-IPv6隧道技術(shù)存在一些限制,即作為隧道源端和目的端的IPv4/IPv6雙棧節(jié)點(diǎn)必須分配了全局可路由的global地址(全局地址),即不能用局部地址建立隧道,這樣才可以保證由IPv6協(xié)議封裝的IPv4報(bào)文能夠在IPv6骨干網(wǎng)上傳送。而目前出于網(wǎng)絡(luò)安全方面的考慮,在企業(yè)網(wǎng)內(nèi)部部署的IPv4/IPv6雙棧節(jié)點(diǎn)可能只擁有Link-Local地址(鏈路本地地址)或Site-Local地址(節(jié)點(diǎn)本地地址)這樣的局部地址用于內(nèi)部網(wǎng)絡(luò)節(jié)點(diǎn)間的通信,以該類地址作為IPv6源地址或目的地址的IPv6報(bào)文只能在本地鏈路上或本地站點(diǎn)范圍內(nèi)傳送,而不能路由到IPv6骨干網(wǎng)上。通過引入IPv6NAT(Network Address Translation,網(wǎng)絡(luò)地址翻譯)設(shè)備為可以為內(nèi)部網(wǎng)絡(luò)節(jié)點(diǎn)分配全局可路由的global(全局)地址,但是因?yàn)镹AT破壞了隧道的端到端通信模式,阻止了企業(yè)內(nèi)部IPv4/IPv6雙棧節(jié)點(diǎn)所連接的IPv4子網(wǎng)與IPv6公網(wǎng)上另一IPv4子網(wǎng)間的隧道建立。
專利申請公開號為US20040088385的美國專利《Method and apparatusfor connecting IPV4devices through an IPV6network using a tunnelsetup protocol》是HEXAGO公司向美國專利局提交并于2004年5月6日公開的。該專利提出了一種隧道建立協(xié)議,使得IPv4節(jié)點(diǎn)之間可以通過IPv6骨干網(wǎng)互聯(lián)互通。經(jīng)分析,該專利所涉及的方法主要是利用隧道代理服務(wù)器來進(jìn)行隧道配置信息的交互從而進(jìn)行報(bào)文的動(dòng)態(tài)封裝和動(dòng)態(tài)解封裝,而對于由IPv6私有網(wǎng)絡(luò)接入的IPv4子網(wǎng)與IPv6公網(wǎng)上的IPv4子網(wǎng)間進(jìn)行通信的方法在該專利的權(quán)利要求書及實(shí)現(xiàn)方法中并沒有提及到。
專利申請?zhí)枮?3147471.3的中國專利《一種利用雙重隧道機(jī)制穿透NAT的方法》是中國科學(xué)院計(jì)算技術(shù)研究所于2003年7月14日向中國專利局提交的。該專利提出了一種利用雙重隧道機(jī)制穿透NAT(網(wǎng)絡(luò)地址翻譯)的方法,主要是利用含有偽隧道頭部的IPv4報(bào)文來封裝傳遞IPv6報(bào)文,并通過一個(gè)隧道服務(wù)器的重新封裝,使位于IPv4NAT后面的IPV6/IPv4雙棧主機(jī),能夠使用自己的IPv4私有地址建立雙重隧道,從而穿越IPv4網(wǎng)絡(luò),和其他的IPv6主機(jī)建立連接。該方法可以穿透所有類型的NAT,并且和現(xiàn)有的網(wǎng)絡(luò)體系兼容,無需對現(xiàn)有的路由設(shè)備進(jìn)行升級。利用這種方法穿透NAT時(shí),位于IPv4NAT后面的IPv6/IPv4雙棧主機(jī)可以使用獨(dú)立于IPv4地址的任意IPv6地址,該地址在公共的地址服務(wù)器上注冊后,即可接收由一般IPv6結(jié)點(diǎn)主動(dòng)發(fā)起的連接,并且可以和其他位于IPv4NAT后面的IPv6/IPv4雙棧主機(jī)建立連接。經(jīng)分析,該專利所涉及的方法適用于過渡初期,即骨干網(wǎng)絡(luò)上的大量路由設(shè)備仍只支持IPv4協(xié)議,利用該專利提供的方法,可以滿足企業(yè)網(wǎng)內(nèi)部由IPv4/IPv6雙棧節(jié)點(diǎn)接入的IPv6節(jié)點(diǎn)與公網(wǎng)上IPv6節(jié)點(diǎn)的通信需求,但是對于由IPv6私有網(wǎng)絡(luò)中的IPv4子網(wǎng)與IPv6公網(wǎng)上的IPv4子網(wǎng)間進(jìn)行通信的方法在該專利的說明書書及實(shí)現(xiàn)方法中并沒有提及到。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種穿越IPv6NAT建立虛擬隧道的方法,解決現(xiàn)有技術(shù)在過渡機(jī)制后期,企業(yè)網(wǎng)內(nèi)部存在的由IPv4/IPv6雙棧節(jié)點(diǎn)接入的IPv4孤立子網(wǎng)難以與IPv6公網(wǎng)上的IPv4子網(wǎng)進(jìn)行通信的問題。
為達(dá)到上述目的,本發(fā)明提供了一種穿越IPv6NAT建立虛擬隧道的方法,其特點(diǎn)在于,私網(wǎng)雙棧節(jié)點(diǎn)將IPv4報(bào)文加入隧道信息后封裝為IPv6報(bào)文并穿過IPv6NAT發(fā)送給一個(gè)隧道服務(wù)器,所述隧道服務(wù)器根據(jù)所述隧道信息對所述IPv6報(bào)文進(jìn)行二次封裝并轉(zhuǎn)發(fā)給公網(wǎng)雙棧節(jié)點(diǎn),從而在私網(wǎng)雙棧節(jié)點(diǎn)和公網(wǎng)雙棧節(jié)點(diǎn)之間建立雙向虛擬隧道,從而通過IPv6骨干網(wǎng)絡(luò)實(shí)現(xiàn)IPv4子網(wǎng)間的通信。
上述的方法,其特點(diǎn)在于,所述IPv4子網(wǎng)間的通信是與所述私網(wǎng)雙棧節(jié)點(diǎn)相連的私網(wǎng)IPv4子網(wǎng)和與所述公網(wǎng)雙棧節(jié)點(diǎn)相連的公網(wǎng)IPv4子網(wǎng)之間通過所述雙向隧道進(jìn)行通信。
上述的方法,其特點(diǎn)在于,所述IPv4子網(wǎng)間的通信是兩個(gè)私網(wǎng)中的私網(wǎng)IPv4子網(wǎng)之間通過所述雙向隧道進(jìn)行通信。
上述的方法,其特點(diǎn)在于,所述隧道信息包括私網(wǎng)IPv4子網(wǎng)及負(fù)責(zé)接入的私網(wǎng)雙棧節(jié)點(diǎn)的入口IPv6地址、作為目的地的公網(wǎng)IPv4子網(wǎng)及負(fù)責(zé)接入的公網(wǎng)雙棧節(jié)點(diǎn)的入口IPv6地址;并且所述私網(wǎng)雙棧節(jié)點(diǎn)的入口IPv6地址為所述隧道服務(wù)器的IPv6地址。
上述的方法,其特點(diǎn)在于,所述隧道信息存儲在一可被查詢的公共服務(wù)器上,由雙棧節(jié)點(diǎn)查詢需要的隧道信息并寫入IPv6報(bào)文的IPv6目的地選項(xiàng)頭標(biāo)中。
上述的方法,其特點(diǎn)在于,所述穿過IPv6NAT包括IPv6NAT用全局地址作為源地址替換Ipv6報(bào)文中的本地鏈路地址或本地站點(diǎn)地址,并記錄地址映射關(guān)系。
上述的方法,其特點(diǎn)在于,所述二次封裝包括隧道服務(wù)器取出所述隧道信息,用隧道服務(wù)器的IPv6地址替換IPv6報(bào)文中的源地址,用所述隧道信息中的公網(wǎng)雙棧節(jié)點(diǎn)的入口IPv6地址做為目的地址對所述IPv6報(bào)文進(jìn)行相應(yīng)封裝。
上述的方法,其特點(diǎn)在于,所述相應(yīng)封裝包括去掉IPv6目的地選項(xiàng)頭標(biāo),將IPv6標(biāo)準(zhǔn)首標(biāo)中的‘next Hop’字段的值置為4,表明是由IPv6協(xié)議封裝的IPv4報(bào)文,并保持IPv6報(bào)文中其他部分內(nèi)容不變。
上述的方法,其特點(diǎn)在于,還包括公網(wǎng)雙棧節(jié)點(diǎn)對所述相應(yīng)封裝后的IPv6報(bào)文進(jìn)行解封裝,解封出所述IPv4報(bào)文送所述公網(wǎng)IPv4子網(wǎng)處理的步驟。
上述的方法,其特點(diǎn)在于,還包括由所述公網(wǎng)IPv4子網(wǎng)將IPv4報(bào)文通過所述雙向虛擬隧道逆向返回給所述私網(wǎng)IPv4子網(wǎng)的步驟。
上述的方法,其特點(diǎn)在于,包括如下步驟步驟一、私網(wǎng)IPv4子網(wǎng)將IPv4報(bào)文發(fā)送給私網(wǎng)雙棧節(jié)點(diǎn),私網(wǎng)雙棧節(jié)點(diǎn)將IPv4報(bào)文加入隧道信息后封裝為IPv6報(bào)文,并經(jīng)IPv6NAT發(fā)往隧道服務(wù)器;步驟二、IPv6NAT用全局地址作為源地址替換Ipv6報(bào)文中的本地鏈路地址或本地站點(diǎn)地址,并記錄地址映射關(guān)系;步驟三、所述隧道服務(wù)器根據(jù)所述隧道信息對所述IPv6報(bào)文進(jìn)行二次封裝并轉(zhuǎn)發(fā)給公網(wǎng)雙棧節(jié)點(diǎn);步驟四、所述公網(wǎng)雙棧節(jié)點(diǎn)從所述二次封裝后的IPv6報(bào)文解封裝出所述Ipv4報(bào)文并發(fā)送給公網(wǎng)IPv4子網(wǎng);步驟五、公網(wǎng)IPv4子網(wǎng)發(fā)送返回的IPv4報(bào)文給公網(wǎng)雙棧節(jié)點(diǎn),公網(wǎng)雙棧節(jié)點(diǎn)將所述返回的IPv4報(bào)文加入返回隧道信息后封裝為返回IPv6報(bào)文,并發(fā)往所述隧道服務(wù)器;步驟六、所述隧道服務(wù)器根據(jù)所述返回隧道信息對所述返回IPv6報(bào)文進(jìn)行二次封裝并轉(zhuǎn)發(fā)給私網(wǎng)雙棧節(jié)點(diǎn);步驟七、所述私網(wǎng)雙棧節(jié)點(diǎn)從所述二次封裝后的返回IPv6報(bào)文解封裝出所述返回Ipv4報(bào)文并發(fā)送給私網(wǎng)IPv4子網(wǎng)。
本發(fā)明的技術(shù)效果在于在對現(xiàn)有技術(shù)進(jìn)行分析的基礎(chǔ)上,本發(fā)明提出了一種穿越IPv6 NAT建立虛擬隧道的方法,通過隧道服務(wù)器和公共服務(wù)器的配合來完成虛擬隧道的建立,從而在IPv6骨干網(wǎng)上實(shí)現(xiàn)IPv4子網(wǎng)間通信。本發(fā)明所提出的方法特別適用于過渡后期,即骨干網(wǎng)上的大量路由設(shè)備已經(jīng)由原來的IPv4協(xié)議升級到了IPv6協(xié)議,而企業(yè)網(wǎng)內(nèi)部仍存在著由IPv4/IPv6雙棧節(jié)點(diǎn)接入的IPv4孤立子網(wǎng),利用該方法,可以滿足企業(yè)網(wǎng)內(nèi)部由IPv4/IPv6雙棧節(jié)點(diǎn)接入的IPv4子網(wǎng)與IPv6公網(wǎng)上IPv4子網(wǎng)間的通信需求,填補(bǔ)隧道機(jī)制在過渡后期,特別是在私網(wǎng)內(nèi)IPv4子網(wǎng)與公網(wǎng)上IPv4子網(wǎng)通過IPv6骨干網(wǎng)進(jìn)行通信需求方面的空白。
另外,本發(fā)明方法還可以使位于IPv6NAT后面的IPv4/IPv6雙棧節(jié)點(diǎn)所接入的IPv4子網(wǎng)可以使用獨(dú)立于IPv6地址的任意IPv4地址,該地址只需要在公共服務(wù)器上注冊后,就可以接收由其他IPv4子網(wǎng)發(fā)起的連接,而且,位于IPv6NAT后面的IPv4/IPv6雙棧節(jié)點(diǎn)不僅可以和IPv6公網(wǎng)上的IPv4子網(wǎng)進(jìn)行通信,還可以和另一個(gè)位于IPv6NAT后面的IPv4/IPv6雙棧節(jié)點(diǎn)下的IPv4子網(wǎng)進(jìn)行通信。
圖1是本發(fā)明方法的步驟流程圖;圖2是本發(fā)明應(yīng)用場景的組網(wǎng)示意圖。
具體實(shí)施例方式
本發(fā)明主要在于利用IPv6協(xié)議的目地選項(xiàng)頭標(biāo)來攜帶隧道信息,并利用IPv6協(xié)議來封裝IPv4報(bào)文,通過IPv6骨干網(wǎng)上的一個(gè)隧道服務(wù)器取出隧道信息,對封裝的IPv4報(bào)文進(jìn)行二次封裝,從而使位于IPv6NAT后面的IPv6私有網(wǎng)絡(luò)中的IPv4/IPv6雙棧節(jié)點(diǎn)能夠使用IPv6的本地鏈路地址或本地站點(diǎn)地址建立與IPv6公網(wǎng)上另一IPv4/IPv6雙棧節(jié)點(diǎn)的雙向虛擬隧道,從而通過IPv6骨干網(wǎng)絡(luò)實(shí)現(xiàn)IPv4子網(wǎng)間的通信。
如圖1所示,本發(fā)明實(shí)施的步驟為步驟601、位于IPv6NAT后面的IPv6私網(wǎng)中的IPv4/IPv6雙棧節(jié)點(diǎn)只擁有IPv6的Link-local地址或Site-Local地址,IPv4/IPv6雙棧節(jié)點(diǎn)作為隧道端節(jié)點(diǎn)提供IPv4子網(wǎng)的的接入。當(dāng)IPv4/IPv6雙棧節(jié)點(diǎn)收到IPv4子網(wǎng)對IPv6公網(wǎng)上目的IPv4子網(wǎng)的連接請求后,這里假設(shè)網(wǎng)絡(luò)上的IPv4/IPv6雙棧節(jié)點(diǎn)都已向公共服務(wù)器注冊過隧道信息(譬如,IPv4子網(wǎng)前綴及負(fù)責(zé)接入的IPv4/IPv6雙棧節(jié)點(diǎn)的入口IPv6地址),對于IPv6私網(wǎng)中的IPv4/IPv6雙棧節(jié)點(diǎn),向公共服務(wù)器注冊的IPv6入口地址是公網(wǎng)上隧道服務(wù)器的IPv6地址,而隧道服務(wù)器的IPv6地址對IPv6私網(wǎng)中的IPv4/IPv6雙棧節(jié)點(diǎn)是已知的,因此可以根據(jù)IPv4地址向公共服務(wù)器查詢目的IPv4子網(wǎng)所接入的IPv4/IPv6雙棧節(jié)點(diǎn)的IPv6入口地址。得到目的IPv4子網(wǎng)的IPv6入口地址后,IPv6NAT后面的IPv6私網(wǎng)中的IPv4/IPv6雙棧節(jié)點(diǎn)用自己的Link-local或Site-Local地址作為IPv6源地址,用公網(wǎng)上隧道服務(wù)器的IPv6地址作為IPv6目的地址,在IPv6標(biāo)準(zhǔn)頭標(biāo)后增加IPv6目的地選項(xiàng)頭標(biāo),攜帶的信息包括目的IPv4子網(wǎng)的入口IPv6地址,隧道的MTU信息等,并對IPv4報(bào)文進(jìn)行封裝。
步驟602、封裝報(bào)文到達(dá)IPv6NAT后,IPv6NAT為該IPv4/IPv6雙棧節(jié)點(diǎn)分配一個(gè)全局可路由的global地址,用此global地址替換IPv6報(bào)文中的IPv6源地址,并記錄地址映射關(guān)系。而后進(jìn)行常規(guī)的路由查找和報(bào)文發(fā)送。
步驟603、IPv6報(bào)文被正確路由至IPv6公網(wǎng)上的隧道服務(wù)器后,隧道服務(wù)器接收該報(bào)文首先將封裝報(bào)文中IPv4首部中的IPv4源地址和IPv6標(biāo)準(zhǔn)頭標(biāo)中的IPv6源地址記錄在一映射表中供返回報(bào)文查詢使用(詳細(xì)說明見步驟6),之后取出IPv6目的地選項(xiàng)頭標(biāo)中的隧道信息,用其中的目的IPv4子網(wǎng)的IPv6入口地址替換IPv6報(bào)文中的IPv6目的地址,用隧道服務(wù)器的IPv6地址替換IPv6報(bào)文中的IPv6源地址,去掉IPv6目的地選項(xiàng)頭標(biāo),將IPv6標(biāo)準(zhǔn)首標(biāo)中的‘next Hop’字段的值置為4(表明是由IPv6協(xié)議封裝的IPv4報(bào)文),并保持IPv6報(bào)文中其他部分內(nèi)容不變。而后進(jìn)行常規(guī)的路由查找和報(bào)文發(fā)送。
步驟604、IPv6報(bào)文被正確路由至目的IPv4子網(wǎng)所接入的IPv4/IPv6雙棧節(jié)點(diǎn),因?yàn)镮Pv6私網(wǎng)中的IPv4/IPv6雙棧節(jié)點(diǎn)向公共服務(wù)器注冊的IPv6入口地址是公網(wǎng)上隧道服務(wù)器的IPv6地址,因此該封裝報(bào)文可以通過隧道源地址檢查并進(jìn)行正確的解封裝,解封裝完成后,將IPv4報(bào)文送目的IPv4子網(wǎng)處理。
步驟605、對于由目的IPv4子網(wǎng)返回的IPv4報(bào)文,首先由目的IPv4子網(wǎng)所接入的IPv4/IPv6雙棧節(jié)點(diǎn)進(jìn)行IPv6協(xié)議的封裝操作,其封裝后IPv6報(bào)文的IPv6源地址為目的IPv4子網(wǎng)的入口IPv6地址,IPv6目的地址為隧道服務(wù)器的IPv6地址,載荷內(nèi)容為目的IPv4子網(wǎng)返回的IPv4報(bào)文。
步驟606、返回的IPv6封裝報(bào)文路由至隧道服務(wù)器后,隧道服務(wù)器從封裝報(bào)文中提取出IPv4首部中的IPv4目的地址,之后用IPv4目的地址作為查找鍵來匹配映射表,找到對應(yīng)的IPv6地址信息,即IPv6NAT為其私網(wǎng)內(nèi)部IPv4/IPv6雙棧節(jié)點(diǎn)分配的IPv6global地址。然后隧道服務(wù)器用該IPv6global地址代替IPv6標(biāo)準(zhǔn)頭標(biāo)中的IPv6目的地址,報(bào)文其他部分的內(nèi)容保持不變,之后將此IPv6報(bào)文發(fā)送給IPv6NAT處理。因?yàn)镮Pv6NAT上記錄了地址映射關(guān)系,因此IPv6NAT將地址進(jìn)行反向映射后遞交給其私網(wǎng)內(nèi)IPv4/IPv6雙棧節(jié)點(diǎn)(即隧道源端節(jié)點(diǎn))進(jìn)行處理。
步驟607、私網(wǎng)內(nèi)IPv4/IPv6雙棧節(jié)點(diǎn)(即隧道源端節(jié)點(diǎn))接收到目的IPv4子網(wǎng)返回的IPv6封裝報(bào)文后,通過隧道源地址檢查和解封裝后,將IPv4報(bào)文遞交給發(fā)起通信請求的IPv4子網(wǎng)進(jìn)行處理。
通過以上所述的步驟601-607完成了虛擬雙向隧道的建立。
圖2是本發(fā)明應(yīng)用場景的組網(wǎng)示意圖,其中圖中標(biāo)注為001的是一個(gè)位于IPv6NAT后面的IPv4/IPv6雙棧節(jié)點(diǎn),圖中標(biāo)注為004的一個(gè)連接在雙棧節(jié)點(diǎn)001下的IPv4子網(wǎng);圖中標(biāo)注為008的是位于IPv6NAT后面的IPv6私有網(wǎng)絡(luò),內(nèi)部節(jié)點(diǎn)只擁有IPv6的Link-local地址或Site-Local地址;圖中標(biāo)注為002的是一個(gè)IPv6NAT設(shè)備,負(fù)責(zé)為內(nèi)部IPv6節(jié)點(diǎn)分配IPv6公網(wǎng)地址,即global地址(全局地址);圖中標(biāo)注為003的是一個(gè)位于IPv6公網(wǎng)上的IPv4/IPv6雙棧節(jié)點(diǎn);圖中標(biāo)注為005的是一個(gè)連接在003下的IPv4子網(wǎng);圖中標(biāo)注為009的是位于IPv6公網(wǎng)上的一個(gè)IPv6子網(wǎng);圖中標(biāo)注為006的是一個(gè)位于IPv6公網(wǎng)上的公共服務(wù)器,負(fù)責(zé)保存和查詢IPv4/IPv6雙棧節(jié)點(diǎn)的隧道信息,為請求節(jié)點(diǎn)提供所需的隧道封裝信息;圖中標(biāo)注為007的是一個(gè)隧道服務(wù)器,負(fù)責(zé)虛擬隧道的建立和報(bào)文的二次封裝;圖中標(biāo)注為100的是IPv4子網(wǎng)004發(fā)給雙棧節(jié)點(diǎn)001的IPv4報(bào)文;圖中標(biāo)注為200的是雙棧節(jié)點(diǎn)001發(fā)給NAT設(shè)備002的IPv6報(bào)文;圖中標(biāo)注為300的是NAT設(shè)備002發(fā)給隧道服務(wù)器007的封裝報(bào)文,其IPv6報(bào)文的目的地選項(xiàng)頭標(biāo)中攜帶隧道建立所需的信息;圖中標(biāo)注為400的是經(jīng)過隧道服務(wù)器007二次封裝后的隧道報(bào)文;圖中標(biāo)注為500的是雙棧節(jié)點(diǎn)003經(jīng)過解封裝后遞交給IPv4子網(wǎng)005處理的IPv4報(bào)文;圖中標(biāo)注為501的是IPv4子網(wǎng)005處理后返回的IPv4報(bào)文;圖中標(biāo)注為401的是雙棧節(jié)點(diǎn)003經(jīng)過封裝后返回給隧道服務(wù)器007的隧道報(bào)文;圖中標(biāo)注為301的是隧道服務(wù)器007返回給NAT設(shè)備002的隧道報(bào)文;圖中標(biāo)注為201的是經(jīng)NAT設(shè)備002地址轉(zhuǎn)換后的遞交給雙棧節(jié)點(diǎn)001處理的封裝報(bào)文;圖中標(biāo)注為101的是雙棧節(jié)點(diǎn)001經(jīng)過解封裝后遞交給IPv4子網(wǎng)004處理的IPv4報(bào)文;圖中標(biāo)注為010的是建立完成后的虛擬雙向隧道。
下面結(jié)合圖1,并做如下符號定義用IPv4_004來表示IPv4子網(wǎng)004中節(jié)點(diǎn)的IPv4地址;用IPv4_005來表示IPv4子網(wǎng)005中節(jié)點(diǎn)的IPv4地址;用IPv6_001來表示IPv4/IPv6雙棧節(jié)點(diǎn)001的IPv6 Link-Local地址或Site-Local地址;用IPv6_002來表示IPv6 NAT 002為IPv4/IPv6雙棧節(jié)點(diǎn)001分配的IPv6全局可路由地址;用IPv6_007來表示隧道服務(wù)器007的IPv6地址;用IPv6_003來表示IPv4/IPv6雙棧節(jié)點(diǎn)003的IPv6地址。
當(dāng)IPv4子網(wǎng)004發(fā)起向IPv4子網(wǎng)005的連接請求100時(shí),用IPv4_004作為源地址,IPv4_005作為目的地址,傳輸層協(xié)議可選UDP或TCP。
IPv4/IPv6雙棧節(jié)點(diǎn)001收到連接請求報(bào)文100后,根據(jù)100中的IPv4目的地址IPv4_005向公共服務(wù)器006查詢并得到目的IPv4子網(wǎng)005所接入的IPv4/IPv6雙棧節(jié)點(diǎn)003的IPv6地址IPv6_003,雙棧節(jié)點(diǎn)001用自己的IPv6地址IPv6_001作為IPv6源地址,用隧道服務(wù)器007的IPv6地址IPv6_007作為IPv6目的地址,在IPv6標(biāo)準(zhǔn)頭標(biāo)后增加IPv6目的地選項(xiàng)頭標(biāo),攜帶的信息包括目的IPv4子網(wǎng)005的入口IPv6地址IPv6_003,隧道的MTU信息等,并對IPv4報(bào)文100進(jìn)行封裝,最后構(gòu)造報(bào)文200并發(fā)送給NAT設(shè)備002進(jìn)行處理。
IPv6NAT設(shè)備002收到報(bào)文200后,NAT設(shè)備002為IPv4/IPv6雙棧節(jié)點(diǎn)001分配一個(gè)全局可路由的global地址IPv6_002,用IPv6_002替換報(bào)文200中的IPv6源地址,并記錄IPv6_001和IPv6_002地址的映射關(guān)系{IPv6_001←-→IPv6_002},最后將地址轉(zhuǎn)換后的報(bào)文300發(fā)送給隧道服務(wù)器007進(jìn)行處理。
隧道服務(wù)器007收到報(bào)文300后,首先將300中IPv4首部中的IPv4源地址IPv4_004和IPv6標(biāo)準(zhǔn)頭標(biāo)中的IPv6源地址IPv6_002記錄在一映射表{IPv4_004←-→IPv6_002}中,之后取出IPv6目的地選項(xiàng)頭標(biāo)中的隧道信息,用其中的目的IPv4子網(wǎng)005的IPv6入口地址IPv6_003替換報(bào)文300中的IPv6目的地址,用隧道服務(wù)器007自己的IPv6地址IPv6_007替換報(bào)文300中的IPv6源地址,去掉IPv6目的地選項(xiàng)頭標(biāo),將IPv6標(biāo)準(zhǔn)首標(biāo)中的‘next Hop’字段的值置為4(表明是由IPv6協(xié)議封裝的IPv4報(bào)文),并保持報(bào)文300中其他部分內(nèi)容不變,最后將二次封裝處理后的報(bào)文400發(fā)送給IPv4/IPv6雙棧節(jié)點(diǎn)003進(jìn)行處理。
IPv4/IPv6雙棧節(jié)點(diǎn)003收到報(bào)文400后要進(jìn)行隧道的源地址檢查,因?yàn)镮Pv4/IPv6雙棧節(jié)001點(diǎn)向公共服務(wù)器006注冊的IPv6入口地址是隧道服務(wù)器007的IPv6地址IPv6_007,因此該報(bào)文400可以通過隧道源地址檢查并被正確的解封裝,解封裝完成后,IPv4/IPv6雙棧節(jié)點(diǎn)003將解封裝后的報(bào)文500發(fā)送給IPv4子網(wǎng)005進(jìn)行處理。
IPv4子網(wǎng)005內(nèi)的節(jié)點(diǎn)接收到報(bào)文500并處理后,要向隧道源端節(jié)點(diǎn)即隧道服務(wù)器007返回應(yīng)答報(bào)文501,其IPv4源地址為IPv4_005,IPv4目的地址為IPv4_004。
IPv4/IPv6雙棧節(jié)點(diǎn)003收到報(bào)文501后要進(jìn)行報(bào)文的封裝處理,因?yàn)榕cIPv4目的地址IPv4_004對應(yīng)的IPv6入口地址是隧道服務(wù)器007的IPv6地址IPv6_007,因此封裝首部的IPv6目的地址為隧道服務(wù)器007的IPv6地址IPv6_007,IPv6源地址為IPv4/IPv6雙棧節(jié)點(diǎn)003的IPv6地址IPv60_03,載荷為報(bào)文501,最后IPv4/IPv6雙棧節(jié)點(diǎn)003將封裝后的報(bào)文401發(fā)送給隧道服務(wù)器007進(jìn)行處理。
隧道服務(wù)器007接收到報(bào)文401后,從報(bào)文401中提取出IPv4首部中的IPv4目的地址IPv4_004,之后用IPv4_004作為查找鍵來匹配映射表{IPv4_004←-→IPv6_002},找到對應(yīng)的IPv6地址IPv6_002,即IPv6NAT002為IPv4/IPv6雙棧節(jié)點(diǎn)001分配的IPv6global地址。然后隧道服務(wù)器007用IPv6_002代替報(bào)文401的IPv6標(biāo)準(zhǔn)頭標(biāo)中的IPv6目的地址,對于報(bào)文401的其他部分的內(nèi)容保持不變,從而形成報(bào)文301并發(fā)送給IPv6NAT 002進(jìn)行處理。
IPv6NAT 002收到報(bào)文301后,因?yàn)镮Pv6 NAT 002上記錄了地址映射關(guān)系{IPv6_001←-→IPv6_002},IPv6 NAT 002將報(bào)文301的IPv6標(biāo)準(zhǔn)頭標(biāo)中的IPv6目的地址替換為IPv6_001后形成報(bào)文201并發(fā)送給IPv4/IPv6雙棧節(jié)點(diǎn)001進(jìn)行處理。
IPv4/IPv6雙棧節(jié)點(diǎn)001收到報(bào)文201后要進(jìn)行隧道的源地址檢查,因?yàn)镮Pv4/IPv6雙棧節(jié)003點(diǎn)向公共服務(wù)器006注冊的IPv6入口地址是IPv6_003,因此報(bào)文201可以通過隧道源地址檢查并被正確的解封裝,解封裝完成后,IPv4/IPv6雙棧節(jié)點(diǎn)003將解封裝后的報(bào)文101發(fā)送給IPv4子網(wǎng)004進(jìn)行處理。
通過以上過程,建立了一條連接IPv4/IPv6雙棧節(jié)點(diǎn)001和IPv4/IPv6雙棧節(jié)點(diǎn)003的虛擬的雙向隧道010,完成了隧道穿越IPv6 NAT 002,從而恢復(fù)了隧道的端到端通信模式。
本發(fā)明實(shí)現(xiàn)了一種穿越IPv6NAT,通過隧道服務(wù)器和公共服務(wù)器的配合來完成虛擬隧道的建立,從而在IPv6骨干網(wǎng)上實(shí)現(xiàn)IPv4子網(wǎng)間通信的方法。本發(fā)明所提出的方法特別適用于過渡后期,即骨干網(wǎng)上的大量路由設(shè)備已經(jīng)由原來的IPv4協(xié)議升級到了IPv6協(xié)議,而企業(yè)網(wǎng)內(nèi)部仍存在著由IPv4/IPv6雙棧節(jié)點(diǎn)接入的IPv4孤立子網(wǎng),利用本發(fā)明提供的方法,可以滿足企業(yè)網(wǎng)內(nèi)部由IPv4/IPv6雙棧節(jié)點(diǎn)接入的IPv4子網(wǎng)與IPv6公網(wǎng)上IPv4子網(wǎng)間的通信需求,填補(bǔ)隧道機(jī)制在過渡后期,特別是在私網(wǎng)內(nèi)IPv4子網(wǎng)與公網(wǎng)上IPv4子網(wǎng)通過IPv6骨干網(wǎng)進(jìn)行通信需求方面的空白。本發(fā)明所提出的方法不排他的還適用于一個(gè)位于IPv6NAT后面的IPv4/IPv6雙棧節(jié)點(diǎn)下的IPv4子網(wǎng)和另一個(gè)位于IPv6NAT后面的IPv4/IPv6雙棧節(jié)點(diǎn)下的IPv4子網(wǎng)間的通訊。
以上所述僅為本發(fā)明的較佳實(shí)施例,并非用來限定本發(fā)明的實(shí)施范圍;凡是依本發(fā)明所作的等效變化與修改,都被本發(fā)明的專利范圍所涵蓋。
權(quán)利要求
1.一種穿越IPv6 NAT建立虛擬隧道的方法,其特征在于,私網(wǎng)雙棧節(jié)點(diǎn)將IPv4報(bào)文加入隧道信息后封裝為IPv6報(bào)文并穿過IPv6 NAT發(fā)送給一個(gè)隧道服務(wù)器,所述隧道服務(wù)器根據(jù)所述隧道信息對所述IPv6報(bào)文進(jìn)行二次封裝并轉(zhuǎn)發(fā)給公網(wǎng)雙棧節(jié)點(diǎn),從而在私網(wǎng)雙棧節(jié)點(diǎn)和公網(wǎng)雙棧節(jié)點(diǎn)之間建立雙向虛擬隧道,從而通過IPv6骨干網(wǎng)絡(luò)實(shí)現(xiàn)IPv4子網(wǎng)間的通信。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述IPv4子網(wǎng)間的通信是與所述私網(wǎng)雙棧節(jié)點(diǎn)相連的私網(wǎng)IPv4子網(wǎng)和與所述公網(wǎng)雙棧節(jié)點(diǎn)相連的公網(wǎng)IPv4子網(wǎng)之間通過所述雙向隧道進(jìn)行通信。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述IPv4子網(wǎng)間的通信是兩個(gè)私網(wǎng)中的私網(wǎng)IPv4子網(wǎng)之間通過所述雙向隧道進(jìn)行通信。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述隧道信息包括私網(wǎng)IPv4子網(wǎng)及負(fù)責(zé)接入的私網(wǎng)雙棧節(jié)點(diǎn)的入口IPv6地址、作為目的地的公網(wǎng)IPv4子網(wǎng)及負(fù)責(zé)接入的公網(wǎng)雙棧節(jié)點(diǎn)的入口IPv6地址;并且所述私網(wǎng)雙棧節(jié)點(diǎn)的入口IPv6地址為所述隧道服務(wù)器的IPv6地址。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述隧道信息存儲在一可被查詢的公共服務(wù)器上,由雙棧節(jié)點(diǎn)查詢需要的隧道信息并寫入IPv6報(bào)文的IPv6目的地選項(xiàng)頭標(biāo)中。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述穿過IPv6 NAT包括IPv6 NAT用全局地址作為源地址替換Ipv6報(bào)文中的本地鏈路地址或本地站點(diǎn)地址,并記錄地址映射關(guān)系。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述二次封裝包括隧道服務(wù)器取出所述隧道信息,用隧道服務(wù)器的IPv6地址替換IPv6報(bào)文中的源地址,用所述隧道信息中的公網(wǎng)雙棧節(jié)點(diǎn)的入口IPv6地址做為目的地址對所述IPv6報(bào)文進(jìn)行相應(yīng)封裝。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述相應(yīng)封裝包括去掉IPv6目的地選項(xiàng)頭標(biāo),將IPv6標(biāo)準(zhǔn)首標(biāo)中的‘next Hop’字段的值置為4,表明是由IPv6協(xié)議封裝的IPv4報(bào)文,并保持IPv6報(bào)文中其他部分內(nèi)容不變。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,還包括公網(wǎng)雙棧節(jié)點(diǎn)對所述相應(yīng)封裝后的IPv6報(bào)文進(jìn)行解封裝,解封出所述IPv4報(bào)文送所述公網(wǎng)IPv4子網(wǎng)處理的步驟。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,還包括由所述公網(wǎng)IPv4子網(wǎng)將IPv4報(bào)文通過所述雙向虛擬隧道逆向返回給所述私網(wǎng)IPv4子網(wǎng)的步驟。
11.根據(jù)權(quán)利要求2所述的方法,其特征在于,包括如下步驟步驟一、私網(wǎng)IPv4子網(wǎng)將IPv4報(bào)文發(fā)送給私網(wǎng)雙棧節(jié)點(diǎn),私網(wǎng)雙棧節(jié)點(diǎn)將IPv4報(bào)文加入隧道信息后封裝為IPv6報(bào)文,并經(jīng)IPv6 NAT發(fā)往隧道服務(wù)器;步驟二、IPv6 NAT用全局地址作為源地址替換Ipv6報(bào)文中的本地鏈路地址或本地站點(diǎn)地址,并記錄地址映射關(guān)系;步驟三、所述隧道服務(wù)器根據(jù)所述隧道信息對所述IPv6報(bào)文進(jìn)行二次封裝并轉(zhuǎn)發(fā)給公網(wǎng)雙棧節(jié)點(diǎn);步驟四、所述公網(wǎng)雙棧節(jié)點(diǎn)從所述二次封裝后的IPv6報(bào)文解封裝出所述Ipv4報(bào)文并發(fā)送給公網(wǎng)IPv4子網(wǎng);步驟五、公網(wǎng)IPv4子網(wǎng)發(fā)送返回的IPv4報(bào)文給公網(wǎng)雙棧節(jié)點(diǎn),公網(wǎng)雙棧節(jié)點(diǎn)將所述返回的IPv4報(bào)文加入返回隧道信息后封裝為返回IPv6報(bào)文,并發(fā)往所述隧道服務(wù)器;步驟六、所述隧道服務(wù)器根據(jù)所述返回隧道信息對所述返回IPv6報(bào)文進(jìn)行二次封裝并轉(zhuǎn)發(fā)給私網(wǎng)雙棧節(jié)點(diǎn);步驟七、所述私網(wǎng)雙棧節(jié)點(diǎn)從所述二次封裝后的返回IPv6報(bào)文解封裝出所述返回Ipv4報(bào)文并發(fā)送給私網(wǎng)IPv4子網(wǎng)。
全文摘要
本發(fā)明公開了一種穿越IPv6 NAT建立虛擬隧道的方法,私網(wǎng)雙棧節(jié)點(diǎn)將IPv4報(bào)文加入隧道信息后封裝為IPv6報(bào)文并穿過IPv6 NAT發(fā)送給一個(gè)隧道服務(wù)器,所述隧道服務(wù)器根據(jù)所述隧道信息對所述IPv6報(bào)文進(jìn)行二次封裝并轉(zhuǎn)發(fā)給公網(wǎng)雙棧節(jié)點(diǎn),從而在私網(wǎng)雙棧節(jié)點(diǎn)和公網(wǎng)雙棧節(jié)點(diǎn)之間建立雙向虛擬隧道,從而通過IPv6骨干網(wǎng)絡(luò)實(shí)現(xiàn)IPv4子網(wǎng)間的通信。本發(fā)明可以滿足企業(yè)網(wǎng)內(nèi)部由IPv4/IPv6雙棧節(jié)點(diǎn)接入的IPv4子網(wǎng)與IPv6公網(wǎng)上IPv4子網(wǎng)間的通信需求,填補(bǔ)隧道機(jī)制在過渡后期,特別是在私網(wǎng)內(nèi)IPv4子網(wǎng)與公網(wǎng)上IPv4子網(wǎng)通過IPv6骨干網(wǎng)進(jìn)行通信需求方面的空白。
文檔編號H04L12/56GK1798093SQ20041010186
公開日2006年7月5日 申請日期2004年12月29日 優(yōu)先權(quán)日2004年12月29日
發(fā)明者王堅(jiān), 王 忠, 李竹平 申請人:中興通訊股份有限公司