《電子技術應用》
您所在的位置:首頁 > 通信與網絡 > 設計應用 > NAT-PT技術在IPv4和IPv6互聯中的實現
NAT-PT技術在IPv4和IPv6互聯中的實現
華山,戴勇
新疆輕工職業(yè)技術學院
摘要: IPv6推廣應用初期網絡資源相當匱乏,使用者主要是研究IPv6的科研工作者,。IPv6的推廣普及需吸引大量普通網絡用戶,僅靠IPv6網絡的優(yōu)異性能是不夠的,,還需建立大量的可用資源,在短時間內是不可能的,。而IPv4網絡具有豐富的資源,。如能通過轉換網關實現IPv6與IPv4網絡的無縫連接,,實現IPv4與IPv6網絡的資源共享,這不僅增加了IPv6網絡對用戶的吸引力,,并具有較高的經濟和應用價值,。
關鍵詞: NGN|4G IPv6
Abstract:
Key words :

1 引言
                   
         IPv6推廣應用初期網絡資源相當匱乏,使用者主要是研究IPv6的科研工作者,。IPv6的推廣普及需吸引大量普通網絡用戶,,僅靠IPv6網絡的優(yōu)異性能是不夠的,還需建立大量的可用資源,,在短時間內是不可能的,。而IPv4網絡具有豐富的資源。如能通過轉換網關實現IPv6與IPv4網絡的無縫連接,,實現IPv4與IPv6網絡的資源共享,,這不僅增加了IPv6網絡對用戶的吸引力,并具有較高的經濟和應用價值,。
2 NAT-PT轉換網關方案
2.1 NAT-PT的位置位置和功能結構

        NAT-PT在Linux協議棧中所處的位置如圖1所示,整個NAT-PT模塊由3部分構成,,NAT維護映射表和地址池,,其中DNS-ALG處于應用層,而NAT和PT處于IP層,,工作在Linux內核,,但NAT和PT只是在一個Linux內核模塊工作,整個NAT-PT網關是一個包含NAT-PT功能的Linux系統(tǒng),。

        圖2為NAT-PT的功能結構圖,。NAT負責IPv4和IPv6地址的映射轉換,如存儲并維護IPv4地址池,;為將要建立的連接選擇合適的地址,;保持同一通信期間IPv4到IPv6地址的映射、維護,。PT負責在兩種版本的協議之間進行轉換,,主要工作是在IP報頭的對應字段,根據IPv4和IPv6在語義上的不同定義進行轉換,,并對上層協議進行適當的轉換(如TCP,、UDP及ICMP),從而構建新的數據包,。應用級網關ALG負責轉換負載中包含IP地址的典型應用,,其中DNS-ALG是雙向NAT-PT必須具備的功能。
 2.2 NAT.PT的通信過程
        下面分析NAT-PT在網絡中的通信過程,,圖3為通信模型及其基本配置,。

                     
         (1)從IPv4到IPv6的通信當IPv4主機B初次與IPv6主機A通信時,,首先向本地網絡的DNS服務器發(fā)送一個對A名字的查詢請求,此請求記錄是“A”,,本地DNS服務器無此名字記錄,,此查詢通過NAT-PT轉交,則被DNS-ALG截獲,,然后將“A”記錄改為“AAAA”記錄,,并直接將轉換后的查詢記錄遞交給IPv6網絡的  DNS服務器,IPv6的DNS服務器返回:

        主機A AAAA 200 1:250:2000:3::3 

        DNS-ALG將該應答截獲,,并將“AAAA”記錄改為“A”記錄,,同時在地址映射表中查找此IPv6地址的映射地址,如果有,,則直接用映射的IPv4地址替換DNS應答中的IPv6地址,,并返回應答給IPv4主機B;如果沒有,,則向NAT模塊請求分配一個映射地址給此IPv6地址,,NAT確認映射表中沒有關于此IPv6地址的映射表項后,在地址池中分配一個空閑的IPv4地址(比如202.115.9.249)映射給該IPv6地址,,并在映射表中添加此綁定表項,,最后把分配的IPv4地址返回給DNS-ALG,這時候DNS應答變?yōu)椋?br />          主機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,。
         此數據包被路由器轉發(fā)給NAT-PT,,協議翻譯模塊PT轉換源包的IP報頭和TCP校驗,在源地址前添加IPv6前綴,,轉換為IPv4映射的IPv6地址,,并根據NAT地址映射表中202.115.9.249與2001:250:2000:3::3的映射關系,將包翻譯為:源地址=2001:250:2000:3::202.1 15.8.3,,源TCP端口=1 025,;目的地址=2001:250:2000:3::3,目的TCP端口=80,。
       這樣,,IPv4主機B可以與IPv6主機進行通信。對于在此映射表項生存期內的后續(xù)通信,,將繼續(xù)利用此表項,,映射表項超時后將被刪除,,映射表項超時機制的引入一是為了釋放地址資源和內存,另外還可以減少拒絕服務攻擊(DoS)的風險,。

        (2)從IPv6到IPv4的通信IPv6主機可以從IPv4網絡中的DNS服務器獲得:IPv4主機的名字解析,,但如果在IPv6DNS服務器中緩存適當的。IPv4主機的名字解析表,,則可以提高通信的效率,,這樣,IPv6主機就可以從本地的IPv6 DNS服務器獲得關于IPv4主機的名字解析,。如果IPv6DNS服務器采用上述方案,,則:在圖3中,若IPv6主機A試圖與IPv4主機B建立通信,,則A首先發(fā)送一個對IPv4主機B的名字查詢請求到本地IPv6網絡的DNS服務器,,這個請求記錄為“AAAA”或“A6'’記錄,由于主機B可能在本地DNS有IPv4地址或IPv6地址映射,,DNS-ALG將把此“AAAA”或“A6”查詢不加修改地轉交給本地DNS,,若本地DNS應答返回的是一個“AAAA”或“A6”記錄,那么DNS-ALG將把此應答不作修改地返回給IPv6主機A,。若DNS返回一個“A”記錄,,即:
        主機B A 202.115.8.3
        DNS-ALG則對應答返回的IPv4地址進行修改,在IPv4地址前面加上IPv6前綴,,變?yōu)椋?br />         主機B AAAA 200 1:250:2000:3::202.1 1 5.8.3或 主機B A6 2001:250:2000:3::202.115.8.3
        如果IPv6 DNS服務器中沒有緩存IPv4主機的名字解析表,則DNS-ALG將把該“AAAA”或“A6”請求記錄修改為“A”記錄,,并將轉換后的名字解析請求轉發(fā)給IPv4網絡的DNS服務器,,則IPv4網絡的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
        至此,,名字解析成功,。僅僅這樣IPv6主機還無法與IPv4主機建立通信,還須將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ā)送的數據包被路由器轉發(fā)給NAT-PT,協議翻譯模塊PT轉換源包的IPv6報頭和TCP校驗,,并根據NAT地址映射表中202.115.9.249與2001:250:2000:3::3的映射關系,,將數據包翻譯成:源地址=202.115.9.249,源TCP端口=1 025,;目的地址=202.115.8.3.目的TCP端口=80,。這樣,IPv6主機A可與IPv4主機B通信,。映射表項生存期內的后續(xù)通信,,將繼續(xù)利用此表項,映射表項超時后刪除,。
3 結束語
        由于IPv4資源豐富,,而IPvr6資源很少,如果能實現IPv6/IPv4網絡的互操作,,使IPv6網絡中的主機能夠訪問IPv4網絡資源,,從而減小網絡升級成本,加快IPv6的推廣普及,,因此必須研發(fā)IPv4/IPv6轉換網關,。NAT-PT方案可實現IPv4與IPv6的雙向通信功能。利用NAT-PT技術設計IPv4/IPv6轉換網關,,并對其測試,,從而實現IPv4與IPv6的雙向通信。

此內容為AET網站原創(chuàng),,未經授權禁止轉載,。