NAT-PT完成IPv4與IPv6協(xié)議的結(jié)合
IPv4與IPv6協(xié)議的相互融合使用,是我們現(xiàn)在所期盼的結(jié)果。那么現(xiàn)在已經(jīng)有了多種手段實現(xiàn)這個目的。那么現(xiàn)在再來介紹一種比較特別的方式——NAT-PT的通信過程。
(1)從IPv4與IPv6協(xié)議的通信當IPv4主機B初次與IPv6主機A通信時,首先向本地網(wǎng)絡的DNS服務器發(fā)送一個對A名字的查詢請求,此請求記錄是“A",本地DNS服務器無此名字記錄,此查詢通過NAT-PT轉(zhuǎn)交,則被DNS-ALG截獲,然后將“A"記錄改為“AAAA"記錄,并直接將轉(zhuǎn)換后的查詢記錄遞交給IPv6網(wǎng)絡的 DNS服務器,IPv6的DNS服務器返回:
主機A AAAA 200 1:250:2000:3::3
DNS-ALG將該應答截獲,并將“AAAA"記錄改為“A"記錄,同時在地址映射表中查找此IPv6地址的映射地址,如果有,則直接用映射的IPv4地址替換DNS應答中的IPv6地址,并返回應答給IPv4主機B;如果沒有,則向NAT模塊請求分配一個映射地址給此IPv6地址,NAT確認映射表中沒有關(guān)于此IPv6地址的映射表項后,在地址池中分配一個空閑的IPv4地址(比如202.115.9.249)映射給該IPv6地址,并在映射表中添加此綁定表項,最后把分配的IPv4地址返回給DNS-ALG,這時候DNS應答變?yōu)?
主機A A 202.115.9.249
DNS-ALG將此DNS應答返回給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協(xié)議主機進行通信。對于在此映射表項生存期內(nèi)的后續(xù)通信,將繼續(xù)利用此表項,映射表項超時后將被刪除,映射表項超時機制的引入一是為了釋放地址資源和內(nèi)存,另外還可以減少拒絕服務攻擊(DoS)的風險。
(2)從IPv6到IPv4的通信IPv6主機可以從IPv4網(wǎng)絡中的DNS服務器獲得:IPv4主機的名字解析,但如果在IPv6DNS服務器中緩存適當?shù)?#65377;IPv4主機的名字解析表,則可以提高通信的效率,這樣,IPv6主機就可以從本地的IPv6DNS服務器獲得關(guān)于IPv4主機的名字解析。如果IPv6DNS服務器采用上述方案,則:在圖3中,若IPv6主機A試圖與IPv4主機B建立通信,則 A首先發(fā)送一個對IPv4主機B的名字查詢請求到本地IPv6網(wǎng)絡的DNS服務器,這個請求記錄為“AAAA"或“A6''記錄,由于主機B可能在本地 DNS有IPv4地址或IPv6地址映射,DNS-ALG將把此“AAAA"或“A6"查詢不加修改地轉(zhuǎn)交給本地DNS,若本地DNS應答返回的是一個 “AAAA"或“A6"記錄,那么DNS-ALG將把此應答不作修改地返回給IPv6主機A。若DNS返回一個“A"記錄,即:
主機B A 202.115.8.3
DNS-ALG則對應答返回的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服務器中沒有緩存IPv4主機的名字解析表,則DNS-ALG將把該“AAAA"或“A6"請求記錄修改為“A"記錄,并將轉(zhuǎn)換后的名字解析請求轉(zhuǎn)發(fā)給IPv4網(wǎng)絡的DNS服務器,則IPv4網(wǎng)絡的DNS服務器返回如下應答:
主機B A 202.115.8.3 DNS-ALG截獲此應答,并將其修改為: 主機B AAAA 2001:250:2000:3::202.1 15.8.3 或 主機B A6 2001:250:2000:3::202.115.8.3 至此,名字解析成功。僅僅這樣IPv4與IPv6協(xié)議的主機無法建立通信,還須將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)絡的互操作,使 IPv6網(wǎng)絡中的主機能夠訪問IPv4網(wǎng)絡資源,從而減小網(wǎng)絡升級成本,加快IPv6的推廣普及,因此必須研發(fā)IPv4/IPv6轉(zhuǎn)換網(wǎng)關(guān)。NAT-PT 方案可實現(xiàn)IPv4與IPv6協(xié)議的雙向通信功能。利用NAT-PT技術(shù)設計IPv4/IPv6轉(zhuǎn)換網(wǎng)關(guān),并對其測試,從而實現(xiàn)IPv4與IPv6協(xié)議的雙向通信。