IPv4與IPv6中的NAT.PT配置方案
在IPv4與IPv6的轉(zhuǎn)換過程中,我們提出了不少兩者并存的方案。現(xiàn)在我們來詳細(xì)介紹一下有關(guān)于NAT.PT這個通信過程的具體內(nèi)容。作為即本文配置模型,我們在下面已經(jīng)給大家展示了它的示意圖。
NAT.PT的通信過程
下面分析NAT-PT在網(wǎng)絡(luò)中的通信過程,下圖為通信模型及其基本配置。
(1)從IPv4與IPv6的通信當(dāng)IPv4主機B初次與IPv6主機A通信時,首先向本地網(wǎng)絡(luò)的DNS服務(wù)器發(fā)送一個對A名字的查詢請求,此請求記錄是“A",本地DNS服務(wù)器無此名字記錄,此查詢通過NAT-PT轉(zhuǎn)交,則被DNS-ALG截獲,然后將“A"記錄改為“AAAA"記錄,并直接將轉(zhuǎn)換后的查詢記錄遞交給IPv6網(wǎng)絡(luò)的 DNS服務(wù)器,IPv6的DNS服務(wù)器返回:
主機A AAAA 200 1:250:2000:3::3
DNS-ALG將該應(yīng)答截獲,并將“AAAA"記錄改為“A"記錄,同時在地址映射表中查找此IPv6地址的映射地址,如果有,則直接用映射的IPv4地址替換DNS應(yīng)答中的IPv6地址,并返回應(yīng)答給IPv4主機B;如果沒有,則向NAT模塊請求分配一個映射地址給此IPv6地址,NAT確認(rèn)映射表中沒有關(guān)于此IPv6地址的映射表項后,在地址池中分配一個空閑的IPv4地址(比如202.115.9.249)映射給該IPv6地址,并在映射表中添加此綁定表項,最后把分配的IPv4地址返回給DNS-ALG,這時候DNS應(yīng)答變?yōu)?
主機A A 202.115.9.249
DNS-ALG將此DNS應(yīng)答返回給IPv4主機B。IPv4主機B此時就可以建立與IPv6主機A的通信,這里假定IPv4主機B發(fā)起的是TCP通信,則:源地址=202.115.8.3,源TCP端口=1 025;目的地址=202.115.9.249,目的TCP端口=80。
此數(shù)據(jù)包被路由器轉(zhuǎn)發(fā)給NAT-PT,協(xié)議翻譯模塊PT轉(zhuǎn)換源包的IP報頭和TCP校驗,在源地址前添加IPv6前綴,轉(zhuǎn)換為IPv4映射的IPv6地址,并根據(jù)NAT地址映射表中202.115.9.249與2001:250:2000:3::3的映射關(guān)系,將包翻譯為:源地址=2001:250: 2000:3::202.1 15.8.3,源TCP端口=1 025;目的地址=2001:250:2000:3::3,目的TCP端口=80。
這樣,IPv4與IPv6主機進行通信。對于在此映射表項生存期內(nèi)的后續(xù)通信,將繼續(xù)利用此表項,映射表項超時后將被刪除,映射表項超時機制的引入一是為了釋放地址資源和內(nèi)存,另外還可以減少拒絕服務(wù)攻擊(DoS)的風(fēng)險。
(2)從IPv6到IPv4的通信IPv6主機可以從IPv4網(wǎng)絡(luò)中的DNS服務(wù)器獲得:IPv4主機的名字解析,但如果在IPv6DNS服務(wù)器中緩存適當(dāng)?shù)?#65377;IPv4主機的名字解析表,則可以提高通信的效率,這樣,IPv6主機就可以從本地的IPv6DNS服務(wù)器獲得關(guān)于IPv4主機的名字解析。如果IPv6DNS服務(wù)器采用上述方案,則:在圖3中,若IPv6主機A試圖與IPv4主機B建立通信,則 A首先發(fā)送一個對IPv4主機B的名字查詢請求到本地IPv6網(wǎng)絡(luò)的DNS服務(wù)器,這個請求記錄為“AAAA"或“A6''記錄,由于主機B可能在本地 DNS有IPv4地址或IPv6地址映射,DNS-ALG將把此“AAAA"或“A6"查詢不加修改地轉(zhuǎn)交給本地DNS,若本地DNS應(yīng)答返回的是一個 “AAAA"或“A6"記錄,那么DNS-ALG將把此應(yīng)答不作修改地返回給IPv6主機A。若DNS返回一個“A"記錄,即:
主機B A 202.115.8.3#p#
DNS-ALG則對應(yīng)答返回的IPv4地址進行修改,在IPv4地址前面加上IPv6前綴,變?yōu)?
- 主機B AAAA 200 1:250:2000:3::202.1 1 5.8.3
- 或 主機B A6 2001:250:2000:3::202.115.8.3
如果IPv6DNS服務(wù)器中沒有緩存IPv4主機的名字解析表,則DNS-ALG將把該“AAAA"或“A6"請求記錄修改為“A"記錄,并將轉(zhuǎn)換后的名字解析請求轉(zhuǎn)發(fā)給IPv4網(wǎng)絡(luò)的DNS服務(wù)器,則IPv4網(wǎng)絡(luò)的DNS服務(wù)器返回如下應(yīng)答:
- 主機B A 202.115.8.3
- DNS-ALG截獲此應(yīng)答,并將其修改為:
- 主機B AAAA 2001:250:2000:3::202.1 15.8.3
- 或 主機B A6 2001:250:2000:3::202.115.8.3
至此,名字解析成功。僅僅這樣IPv4與IPv6的主機無法建立通信,還須將IPv6主機源地址修改為IPv4地址,NAT-PT的PT模塊截獲了主機A的名字查詢請求后將在地址映射表中查詢是否有與該IPv6地址匹配的IPv4地址綁定,若沒有,NAT將在IPv4地址池中分配一個空閑的IPv4地址(比如202.115.9.249)映射給該IPv6地址,并在映射表中添加此綁定表項,此時,IPv6主機A就可以與IPv4主機B建立通信。
IPv4節(jié)點同IPv6節(jié)點通信類似,這里假定A與B進行TCP通信:源地址=2001:250:2000:3::3,源TCP端口=1 025;目的地址=2001:250:2000:3::202.115.8.3;目的TCP端口=80。
IPv6主機A發(fā)送的數(shù)據(jù)包被路由器轉(zhuǎn)發(fā)給NAT-PT,協(xié)議翻譯模塊PT轉(zhuǎn)換源包的IPv6報頭和TCP校驗,并根據(jù)NAT地址映射表中202. 115.9.249與2001:250:2000:3::3的映射關(guān)系,將數(shù)據(jù)包翻譯成:源地址=202.115.9.249,源TCP端口=1 025;目的地址=202.115.8.3.目的TCP端口=80。這樣,IPv6主機A可與IPv4主機B通信。映射表項生存期內(nèi)的后續(xù)通信,將繼續(xù)利用此表項,映射表項超時后刪除。
結(jié)束語
由于IPv4資源豐富,而IPvr6資源很少,如果能實現(xiàn)IPv6/IPv4網(wǎng)絡(luò)的互操作,使 IPv6網(wǎng)絡(luò)中的主機能夠訪問IPv4網(wǎng)絡(luò)資源,從而減小網(wǎng)絡(luò)升級成本,加快IPv6的推廣普及,因此必須研發(fā)IPv4/IPv6轉(zhuǎn)換網(wǎng)關(guān)。NAT-PT 方案可實現(xiàn)IPv4與IPv6的雙向通信功能。利用NAT-PT技術(shù)設(shè)計IPv4/IPv6轉(zhuǎn)換網(wǎng)關(guān),并對其測試,從而實現(xiàn)IPv4與IPv6的雙向通信。