一種IPv6客戶機訪問IPv4服務器的方法
【專利摘要】本發(fā)明公開了一種IPv6客戶機訪問IPv4服務器的方法,通過在利用無狀態(tài)的IPv4/IPv6地址和協(xié)議翻譯方法把IPv4服務器的公有IPv4地址映射為特定的IPv6地址,利用單向函數(shù)把IPv6互聯(lián)網(wǎng)上的任意IPv6地址映射為IPv4私有地址10.0.0.0/8并記錄該映射關系構成映射關系表,使IPv6互聯(lián)網(wǎng)上的任意IPv6地址能夠無狀態(tài)的訪問該IPv4服務器,這樣可以保持無狀態(tài)翻譯技術的映射唯一性、可擴展性和可溯源性,在映射關系表已經(jīng)產(chǎn)生,并有效的情況下,可以支持雙向發(fā)起的通信,從而有效地推進互聯(lián)網(wǎng)從IPv4向IPv6的過渡。
【專利說明】—種IPv6客戶機訪問IPv4服務器的方法
【技術領域】
[0001]本發(fā)明涉及計算機網(wǎng)絡通信【技術領域】,特別涉及一種IPv6客戶機訪問IPv4服務器的方法。
【背景技術】
[0002]目前互聯(lián)網(wǎng)廣泛使用的第四版網(wǎng)絡協(xié)議IPv4的地址尋址范圍只有232,即43億地址,目前已經(jīng)分配完畢。為了解決IPv4地址不夠用的問題,國際互聯(lián)網(wǎng)工程組(InternetEngineering Task Force,簡稱IETF)設計了第六版網(wǎng)絡協(xié)議IPv6,它的地址尋址范圍有2128,可以徹底解決IPv4地址不足的問題。
[0003]但由于種種原因,IPv6協(xié)議與IPv4協(xié)議是不兼容的,不能實現(xiàn)兩好的互聯(lián)互通,因此需要一種方法或技術能夠實現(xiàn)IPv4向IPv6的過渡。業(yè)內(nèi)曾嘗試用“雙協(xié)議?!钡姆椒ń鉀Q互聯(lián)互通的問題,但近十年IPv6推廣的經(jīng)驗和教訓證明,不能訪問IPv4眾多網(wǎng)絡信息資源,不能與IPv4眾多的用戶通信。
[0004]現(xiàn)有技術中可以采用IPv4/IPv6地址和協(xié)議翻譯技術,基于無狀態(tài)的地址轉換和協(xié)議轉換方法,實現(xiàn)IPv6客戶機到IPv4服務器的訪問,具有可擴展性,但無狀態(tài)的地址轉換方法需要IPv6客戶機使用特定的IPv6地址,因此不能支持IPv6互聯(lián)網(wǎng)上的任意地址訪問IPv4服務器。
【發(fā)明內(nèi)容】
[0005](一)要解決的技術問題
[0006]本發(fā)明要解決的技術問題是如何實現(xiàn)IPv6互聯(lián)網(wǎng)中的任意IPv6客戶機能夠無狀態(tài)的訪問IPv4服務器,支持雙向發(fā)起的通信。
[0007](二)技術方案
[0008]為解決上述技術問題,本發(fā)明提供了一種IPv6客戶機訪問IPv4服務器的方法,包括:
[0009]S1、在IPv4服務器與IPv6互聯(lián)網(wǎng)之間設置翻譯網(wǎng)關,并根據(jù)單向函數(shù)建立IPv6地址與IPv4公有地址之間的映射關系表;
[0010]S2、IPv6互聯(lián)網(wǎng)中的IPv6客戶機發(fā)送第一類IPv6分組;
[0011]S3、翻譯網(wǎng)關接收第一類IPv6分組,并對第一類IPv6分組的源地址及傳輸層源端口和目標地址做映射,產(chǎn)生第一類IPv4分組并發(fā)送;
[0012]S4、IPv4服務器接收第一類IPv4分組進行處理,產(chǎn)生并發(fā)送第二類IPv4分組;
[0013]S5、翻譯網(wǎng)關接收第二類IPv4分組,并對第二類IPv4分組的源地址和目標地址及傳輸層目標端口做映射,產(chǎn)生第二類IPv6分組并發(fā)送給IPv6客戶機。
[0014]進一步地,所述翻譯網(wǎng)關為IPv4/6翻譯網(wǎng)關。
[0015]進一步地,步驟SI中建立映射關系表具體包括:
[0016]根據(jù)RFC6052選擇IPv6前綴及長度,把IPv4服務器的地址嵌入IPv6前綴,構成IPv6地址,配置對應的DNS的AAAA記錄;
[0017]配置10.0.0/8路由到翻譯網(wǎng)關,根據(jù)單向函數(shù)把任意IPv6地址映射為一個字符
串O
[0018]進一步地,在步驟SI之后、步驟S2之前還包括:IPv6客戶機查詢DNS,獲得AAAA記錄,解析出IPv6源地址和IPv6目標地址,發(fā)送第一類IPv6分組。
[0019]進一步地,步驟S3具體包括:
[0020]判斷第一類IPv6分組的源地址是否在映射關系表中,如果是則根據(jù)映射關系表將第一類IPv6分組的源地址翻譯成映射私有地址,并根據(jù)補充的端口映射狀態(tài)進行端口映射,否則根據(jù)第一類IPv6分組的源地址做單向函數(shù)映射,取映射結果的前24個比特構造映射私有地址10.0.0.0/8中的10之后的24位,并記錄到映射關系表中。
[0021]進一步地,構造映射私有地址之后,記錄到映射關系表中之前還包括:判斷構造得到的映射私有地址與映射關系表中記錄的映射私有地址是否沖突,如果是則更改傳輸層源端口并把端口映射狀態(tài)補充記錄到映射關系表中。
[0022]進一步地,根據(jù)得到的IPv4源地址及傳輸層源端口和IPv4目標地址構成第一類IPv4分組。
[0023]進一步地,步驟S5中對第二類IPv4分組的源地址和目標地址及傳輸層目標端口具體包括:
[0024]S51、根據(jù)映射關系表查詢第二類IPv4分組的目標地址,如果存在則翻譯成相對應的IPv6目標地址,并根據(jù)補充的映射表把傳輸層目標端口映射回原有隨機端口的數(shù)值,否則將此次接收的第二類IPv4分組丟棄;
[0025]S52、對第二類IPv4分組的源地址做RFC6052映射,得到IPv6源地址;
[0026]S53、根據(jù)步驟S51得到的IPv6目標地址以及步驟S52得到的IPv6源地址構成第二類IPv6分組。
[0027]進一步地,IPv6客戶機接收第二類IPv6分組之后還包括檢查通信是否結束,如果沒有結束重復步驟S2-S5,直到通信結束為止。
[0028]進一步地,所述單向函數(shù)映射為MD5函數(shù)或SHA函數(shù)或MAC函數(shù)。
[0029](三)有益效果
[0030]本發(fā)明實施例提供的一種IPv6客戶機訪問IPv4服務器的方法,通過在利用無狀態(tài)的IPv4/IPv6地址和協(xié)議翻譯方法把IPv4服務器的公有IPv4地址映射為特定的IPv6地址,利用單向函數(shù)把IPv6互聯(lián)網(wǎng)上的任意IPv6地址映射為IPv4私有地址10.0.0.0/8并記錄該映射關系構成映射關系表,使IPv6互聯(lián)網(wǎng)上的任意IPv6地址能夠無狀態(tài)的訪問該IPv4服務器,這樣可以保持無狀態(tài)翻譯技術的映射唯一性、可擴展性和可溯源性,在映射關系表已經(jīng)產(chǎn)生,并有效的情況下,可以支持雙向發(fā)起的通信,從而有效地推進互聯(lián)網(wǎng)從IPv4向IPv6的過渡。
【專利附圖】
【附圖說明】
[0031]圖1是本發(fā)明實施例中提供的一種IPv6客戶機訪問IPv4服務器的方法的步驟流程圖;
[0032]圖2是本發(fā)明實施例中步驟S5的步驟流程圖;[0033]圖3是本發(fā)明實施例中IPv6客戶機訪問IPv4服務器的方法的網(wǎng)絡連接方式示意圖;
[0034]圖4是本發(fā)明實施例中本實施例中IPv6客戶機訪問IPv4服務器的方法的工作流程圖。
【具體實施方式】
[0035]下面結合附圖和實施例,對本發(fā)明的【具體實施方式】作進一步詳細描述。以下實施例用于說明本發(fā)明,但不用來限制本發(fā)明的范圍。
[0036]本發(fā)明實施例提供了一種IPv6客戶機訪問IPv4服務器的方法,步驟流程如圖1所示,具體包括以下步驟:
[0037]步驟S1、在IPv4服務器與IPv6互聯(lián)網(wǎng)之間設置翻譯網(wǎng)關,并根據(jù)單向函數(shù)建立IPv6地址與IPv4公有地址之間的映射關系表。
[0038]步驟S2、IPv6互聯(lián)網(wǎng)中的IPv6客戶機發(fā)送第一類IPv6分組。
[0039]步驟S3、翻譯網(wǎng)關接收第一類IPv6分組,并對第一類IPv6分組的源地址及傳輸層源端口和目標地址做映射,產(chǎn)生第一類IPv4分組并發(fā)送。
[0040]步驟S4、IPv4服務器接收第一類IPv4分組進行處理,產(chǎn)生并發(fā)送第二類IPv4分組。
[0041]步驟S5、翻譯網(wǎng)關接收第二類IPv4分組,并對第二類IPv4分組的源地址和目標地址及傳輸層端口做映射,產(chǎn)生第二類IPv6分組并發(fā)送給IPv6客戶機。
[0042]進一步地,本實施例中翻譯網(wǎng)關為IPv4/6翻譯網(wǎng)關。
[0043]進一步地,本實施例中步驟SI中建立映射關系表具體包括:
[0044]根據(jù)RFC6052選擇IPv6前綴及長度,把IPv4服務器的地址嵌入IPv6前綴,構成IPv6地址,配置對應的DNS的AAAA記錄;
[0045]配置10.0.0/8路由到翻譯網(wǎng)關,根據(jù)單向函數(shù)把任意IPv6地址映射為一個字符
串O
[0046]需要說明的是,本實施例中只是以10.0.0/8作為例子進行說明,但是并不是將只限定為10.0.0/8,即選擇其它沒有使用的IPv4地址前綴代替10.0.0.0/8,可以達到同樣效
果O
[0047]進一步地,本實施例中在步驟SI之后、步驟S2之前還包括:IPv6客戶機查詢DNS,獲得AAAA記錄,解析出IPv6源地址和IPv6目標地址,發(fā)送第一類IPv6分組。其中AAAA記錄用于將域名解析到IPv6地址的DNS記錄。
[0048]進一步地,步驟S3中進行映射的時候需要對第一 IPv6分組的源地址進行判斷,具體包括:
[0049]判斷第一類IPv6分組的源地址是否在映射關系表中,如果是則根據(jù)映射關系表將第一類IPv6分組的源地址翻譯成映射私有地址,并根據(jù)補充的端口映射狀態(tài)進行端口映射,例如10.a.b.c,否則根據(jù)第一類IPv6分組的源地址做單向函數(shù)映射(trappedfunction),取映射結果的前24個比特構造映射私有地址10.0.0.0/8中的10之后的24位,例如10.a.b.c,并記錄到映射關系表中。
[0050]需要說明的是,上述步驟構造映射私有地址之后,記錄到映射關系表中之前還包括:判斷構造得到的映射私有地址與映射關系表中記錄的可譯IPv6地址是否沖突,如果是則更改傳輸層源端口并把端口映射狀態(tài)補充記錄到映射關系表中。
[0051]進一步地,步驟S4中IPv4服務器接收第一類IPv4分組并對源地址和目標地址做交換具體包括:
[0052]將第一類IPv4分組的源地址作為第二類IPv4分組的目標地址,將第一類IPv4分組的目標地址作為第二類IPv4分組的源地址。
[0053]進一步地,步驟S5中對第二類IPv4分組的源地址和目標地址及傳輸層目標端口做映射的步驟流程如圖2所示,具體包括:
[0054]S51、根據(jù)映射關系表查詢第二類IPv4分組的目標地址,如果存在則翻譯成相對應的IPv6目標地址,并根據(jù)補充的映射表把傳輸層目標端口映射回原有隨機端口的數(shù)值,否則將此次接收的第二類IPv4分組丟棄。
[0055]S52、對第二類IPv4分組的源地址做RFC6052映射,得到IPv6源地址。
[0056]S53、根據(jù)步驟S51得到的IPv6目標地址以及步驟S52得到的IPv6源地址構成第二類IPv6分組。
[0057]進一步地,上述步驟S5執(zhí)行完,IPv6客戶機接收第二類IPv6分組之后還包括檢查通信是否結束,如果沒有結束重復步驟S2-S5,直到通信結束為止。
[0058]進一步地,本實施例中的單向函數(shù)映射為MD5函數(shù),即第五版信息摘要算法。另外,本實施例中的單向函數(shù)映射還可以是SHA函數(shù)或MAC函數(shù)。
[0059]以下本實施例中提`供的IPv6客戶機訪問IPv4服務器的方法的網(wǎng)絡連接方式示意圖如圖3所示,在IPv4服務器的前端設置IPv4/IPv6翻譯網(wǎng)關,連接到IPv6互聯(lián)網(wǎng)。IPv4服務器配置的IPv4公有地址根據(jù)RFC6052映射為可譯IPv6地址,IPv6計算機的任意IPv6地址根據(jù)單向函數(shù)和映射記錄映射為10.0.0.0/8中的唯一地址。
[0060]以下對上述IPv6客戶機訪問IPv4服務器的方法舉例進行說明,工作流程圖如圖4所示,具體的:
[0061]IPv4服務器配置的IPv4公有地址為1.2.3.5,復用比為128,IPv6前綴為2001: da8:1000:100::/64,PSID 為 10,則根據(jù) RFC6052,對應的可譯 IPv6 地址為 2001:da8:1000:100:102:305:700a:O0
[0062]使用MD5作為單向映射函數(shù),選擇其結果的前24位,則任意IPv6地址可以映射為
10.a.b.c,幾個例子如表1所示:
[0063]
2001:da8:1005:1111:0:5efe:acl5:14 Il0.10.243.84
2001:da8:1005:1111:0:5efe:acl5:438 10.205.58.209
2001:da8:1005:1111:0:5efe:acl5:44f 10.234.249.70
2001:da8:1005:1111:0:5efe:acl5:458 10.37.50.39
2001:da8:207:3::823010.131.248.33
【權利要求】
1.一種IPv6客戶機訪問IPv4服務器的方法,其特征在于,包括: 51、在IPv4服務器與IPv6互聯(lián)網(wǎng)之間設置翻譯網(wǎng)關,并根據(jù)單向函數(shù)建立IPv6地址與IPv4公有地址之間的映射關系表; 52、IPv6互聯(lián)網(wǎng)中的IPv6客戶機發(fā)送第一類IPv6分組; 53、翻譯網(wǎng)關接收第一類IPv6分組,并對第一類IPv6分組的源地址及傳輸層源端口和目標地址做映射,產(chǎn)生第一類IPv4分組并發(fā)送; 54、IPv4服務器接收第一類IPv4分組進行處理,產(chǎn)生并發(fā)送第二類IPv4分組; 55、翻譯網(wǎng)關接收第二類IPv4分組,并對第二類IPv4分組的源地址和目標地址及傳輸層目標端口做映射,產(chǎn)生第二類IPv6分組并發(fā)送給IPv6客戶機。
2.如權利要求1所述的方法,其特征在于,所述翻譯網(wǎng)關為IPv4/6翻譯網(wǎng)關。
3.如權利要求1所述的方法,其特征在于,步驟SI中建立映射關系表具體包括: 根據(jù)RFC6052選擇IPv6前綴及長度,把IPv4服務器的地址嵌入IPv6前綴,構成IPv6地址,配置對應的DNS的AAAA記錄; 配置10.0.0/8路由到翻譯網(wǎng)關,根據(jù)單向函數(shù)把任意IPv6地址映射為一個字符串。
4.如權利要求1所述的方法,其特征在于,在步驟SI之后、步驟S2之前還包括:IPv6客戶機查詢DNS,獲得AAAA記錄,解析出IPv6源地址和IPv6目標地址,發(fā)送第一類IPv6分組。
5.如權利要求1所述的方法,其特征在于,步驟S3具體包括: 判斷第一類IPv6分組的源地址是否在映射關系表中,如果是則根據(jù)映射關系表將第一類IPv6分組的源地址翻譯成映射私有地址,并根據(jù)補充的端口映射狀態(tài)進行端口映射,否則根據(jù)第一類IPv6分組的源地址做單向函數(shù)映射,取映射結果的前24個比特構造映射私有地址10.0.0.0/8中的10之后的24位,并記錄到映射關系表中。
6.如權利要求5所述的方法,其特征在于,構造映射私有地址之后,記錄到映射關系表中之前還包括:判斷構造得到的映射私有地址與映射關系表中記錄的映射私有地址是否沖突,如果是則更改傳輸層源端口并把端口映射狀態(tài)補充記錄到映射關系表中。
7.如權利要求1所述的方法,其特征在于,步驟S3具體還包括: 對第一類IPv4分組的目標地址做RFC6052映射,得到IPv6目標地址。
8.如權利要求5-7中任一項所述的方法,根據(jù)得到的IPv4源地址及傳輸層源端口和IPv4目標地址構成第一類IPv4分組。
9.如權利要求1所述的方法,其特征在于,步驟S5中對第二類IPv4分組的源地址和目標地址及傳輸層目標端口做映射具體包括: 551、根據(jù)映射關系表查詢第二類IPv4分組的目標地址,如果存在則翻譯成相對應的IPv6目標地址,并根據(jù)補充的映射表把傳輸層目標端口映射回原有隨機端口的數(shù)值,否則將此次接收的第二類IPv4分組丟棄; 552、對第二類IPv4分組的源地址做RFC6052映射,得到IPv6源地址; 553、根據(jù)步驟S51得到的IPv6目標地址以及步驟S52得到的IPv6源地址構成第二類IPv6分組。
10.如權利要求1所述的方法,其特征在于,IPv6客戶機接收第二類IPv6分組之后還包括檢查通信是否結束,如果沒有結束重復步驟S2-S5,直到通信結束為止。
11.如權利要求3或5所述的方法,其特征在于,所述單向函數(shù)映射為MD5函數(shù)或SHA函數(shù)或MAC函數(shù)。`
【文檔編號】H04L29/12GK103856580SQ201410117444
【公開日】2014年6月11日 申請日期:2014年3月26日 優(yōu)先權日:2014年3月26日
【發(fā)明者】包叢笑, 李星, 韓國梁 申請人:清華大學