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

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

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

        圖2為NAT-PT的功能結(jié)構(gòu)圖,。NAT負(fù)責(zé)IPv4和IPv6地址的映射轉(zhuǎn)換,如存儲(chǔ)并維護(hù)IPv4地址池,;為將要建立的連接選擇合適的地址,;保持同一通信期間IPv4到IPv6地址的映射、維護(hù),。PT負(fù)責(zé)在兩種版本的協(xié)議之間進(jìn)行轉(zhuǎn)換,,主要工作是在IP報(bào)頭的對(duì)應(yīng)字段,根據(jù)IPv4和IPv6在語(yǔ)義上的不同定義進(jìn)行轉(zhuǎn)換,,并對(duì)上層協(xié)議進(jìn)行適當(dāng)?shù)霓D(zhuǎn)換(如TCP,、UDP及ICMP),從而構(gòu)建新的數(shù)據(jù)包,。應(yīng)用級(jí)網(wǎng)關(guān)ALG負(fù)責(zé)轉(zhuǎn)換負(fù)載中包含IP地址的典型應(yīng)用,其中DNS-ALG是雙向NAT-PT必須具備的功能,。
 2.2 NAT.PT的通信過(guò)程
        下面分析NAT-PT在網(wǎng)絡(luò)中的通信過(guò)程,,圖3為通信模型及其基本配置。

                     
         (1)從IPv4到IPv6的通信當(dāng)IPv4主機(jī)B初次與IPv6主機(jī)A通信時(shí),,首先向本地網(wǎng)絡(luò)的DNS服務(wù)器發(fā)送一個(gè)對(duì)A名字的查詢請(qǐng)求,,此請(qǐng)求記錄是“A”,本地DNS服務(wù)器無(wú)此名字記錄,,此查詢通過(guò)NAT-PT轉(zhuǎn)交,,則被DNS-ALG截獲,然后將“A”記錄改為“AAAA”記錄,,并直接將轉(zhuǎn)換后的查詢記錄遞交給IPv6網(wǎng)絡(luò)的  DNS服務(wù)器,,IPv6的DNS服務(wù)器返回:

        主機(jī)A AAAA 200 1:250:2000:3::3 

        DNS-ALG將該應(yīng)答截獲,并將“AAAA”記錄改為“A”記錄,,同時(shí)在地址映射表中查找此IPv6地址的映射地址,,如果有,則直接用映射的IPv4地址替換DNS應(yīng)答中的IPv6地址,,并返回應(yīng)答給IPv4主機(jī)B,;如果沒有,則向NAT模塊請(qǐng)求分配一個(gè)映射地址給此IPv6地址,,NAT確認(rèn)映射表中沒有關(guān)于此IPv6地址的映射表項(xiàng)后,,在地址池中分配一個(gè)空閑的IPv4地址(比如202.115.9.249)映射給該IPv6地址,并在映射表中添加此綁定表項(xiàng),,最后把分配的IPv4地址返回給DNS-ALG,,這時(shí)候DNS應(yīng)答變?yōu)椋?br />          主機(jī)A A 202.115.9.249
         DNS-ALG將此DNS應(yīng)答返回給IPv4主機(jī)B。IPv4主機(jī)B此時(shí)就可以建立與IPv6主機(jī)A的通信,,這里假定IPv4主機(jī)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報(bào)頭和TCP校驗(yàn),,在源地址前添加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主機(jī)B可以與IPv6主機(jī)進(jìn)行通信,。對(duì)于在此映射表項(xiàng)生存期內(nèi)的后續(xù)通信,,將繼續(xù)利用此表項(xiàng),映射表項(xiàng)超時(shí)后將被刪除,,映射表項(xiàng)超時(shí)機(jī)制的引入一是為了釋放地址資源和內(nèi)存,,另外還可以減少拒絕服務(wù)攻擊(DoS)的風(fēng)險(xiǎn)。

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

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。