NAT-PT過(guò)渡策略中地址欺騙技術(shù)的研究
出處:iC921 發(fā)布于:2007-04-28 11:55:53
摘要:介紹了NAT-PT用到的地址欺騙技術(shù),詳細(xì)闡述了地址欺騙技術(shù)的原理并且在此基礎(chǔ)上提出了解決方案。
關(guān)鍵詞:NAT-PT IPv6 地址欺騙
當(dāng)肖Internet的基礎(chǔ)技術(shù)IPv4面臨的兩個(gè)問(wèn)題是地址資源耗盡和骨干路由器路由表規(guī)模爆炸,這兩個(gè)問(wèn)題是IPv4協(xié)議本身存在的缺陷,只有對(duì)其進(jìn)行較大的修改才能解決。經(jīng)過(guò)多年的討論、各種方案的比較權(quán)衡,下一代IP協(xié)議目前已經(jīng)基本制定完成,并分配了版本號(hào)6,稱為IPv6。
IPv6大規(guī)模普及面臨的一個(gè)關(guān)鍵問(wèn)題:如何漸進(jìn)地、無(wú)傷害地由基于IPv4的網(wǎng)絡(luò)過(guò)渡到基于IPv6的網(wǎng)絡(luò),同時(shí)盡可能減少過(guò)渡的成本。IETF已成立專門(mén)的工作組NGTRANS來(lái)研究從IPv4向IPv6的過(guò)渡問(wèn)題。目前提出的解決方案主要有三種:雙協(xié)議棧(Dual Stack)、隧道(Tunnel)和網(wǎng)絡(luò)地址/協(xié)議翻譯(NAPT-PT)。
由于現(xiàn)有的IPv4網(wǎng)絡(luò)仍在工作而且工作得不錯(cuò),而升級(jí)到IPv6的成本很高,所以可以預(yù)測(cè),升級(jí)到IPv6的肯定是那些IPv4很難滿足要求的特殊應(yīng)用驅(qū)動(dòng)的網(wǎng)絡(luò),譬如第三代移動(dòng)通信(3G)、信息家電等。這些網(wǎng)絡(luò)將采用純粹的IPv6,而不是IPv4/IPv6共存的雙協(xié)議棧。
但是現(xiàn)有網(wǎng)絡(luò)資源絕大多數(shù)存在于IPv4網(wǎng)絡(luò)中,必須保證純IPv6網(wǎng)絡(luò)能夠與現(xiàn)有IPv4網(wǎng)絡(luò)通信。網(wǎng)絡(luò)地址翻譯/協(xié)議翻譯(NAT-PT)作為一種支持純IPv6網(wǎng)絡(luò)與現(xiàn)有IPv4 Internet透明通信的技術(shù),具有其獨(dú)特的優(yōu)勢(shì)。
1 IPv4向IPv6過(guò)渡機(jī)制研究現(xiàn)狀
在未來(lái)的一段時(shí)間里,IPv4與IPv6將同時(shí)并存,相互作用。從IPv4到IPv6的演進(jìn)必然是一個(gè)漸進(jìn)的過(guò)程。引入IPv6技術(shù)并實(shí)現(xiàn)IPv6網(wǎng)絡(luò)互聯(lián),仍然需要一段時(shí)間,才能使所有服務(wù)都實(shí)現(xiàn)對(duì)IPv6的支持。在這種情況下,可以預(yù)見(jiàn),Internet由IPv4向IPv6過(guò)渡需要一個(gè)相當(dāng)長(zhǎng)的時(shí)間才能完成,完全升級(jí)。
目前,解決IPv4網(wǎng)絡(luò)向IPv6過(guò)渡問(wèn)題成熟的技術(shù)主要有三種:
·雙協(xié)議棧技術(shù)(Dual Stack);
·隧道技術(shù)(Tunnel);
·協(xié)議翻譯技術(shù)(NAT-PT)。
1.1 雙協(xié)議棧技術(shù)(Dual Stack,RFC2893)
主機(jī)同時(shí)運(yùn)行IPv4和IPv6兩套協(xié)議棧,同時(shí)支持兩套協(xié)議。IPv6和IPv4是功能相近的網(wǎng)絡(luò)協(xié)議,兩者都基于相同的物理平臺(tái),而且加載于其上的傳輸層協(xié)議TCP和UDP又沒(méi)有任何區(qū)別。由所示的協(xié)議棧結(jié)構(gòu)可以看出:如果一臺(tái)主機(jī)同時(shí)支持IPv4和IPv6兩種協(xié)議,那么該主機(jī)既能使用IPv4與支持IPv4協(xié)議的主機(jī)通信,又能使用IPv6與支持IPv6協(xié)議的主機(jī)通信,這就是雙協(xié)議棧技術(shù)的工作機(jī)理。
“雙?!边@個(gè)稱呼本身有些誤導(dǎo)。大多數(shù)IPv6實(shí)現(xiàn)并不提供兩個(gè)完全不同的TCP/IP棧分別為IPv4和IPv6服務(wù),而是提供一個(gè)混合的棧,在兩套協(xié)議酷共享大部分代碼。
1.2 隧道技術(shù)(Tunnel,RFC3053)
這種機(jī)制用來(lái)在IPv4網(wǎng)絡(luò)之上連接IPv6的站點(diǎn),站點(diǎn)可以是一臺(tái)主機(jī),也可以是多個(gè)主機(jī)。隧道技術(shù)將IPv6的分組封裝到IPv4的分組中,封裝后的IPv4分組將通過(guò)IPv4的路由體系傳輸,分組報(bào)頭的“協(xié)議”域設(shè)置為41,指示這個(gè)分組的負(fù)載是一個(gè)IPv6的分組,以便在適當(dāng)?shù)牡胤交謴?fù)出被封裝的IPv6分組并傳送給目的站點(diǎn)。隧道技術(shù)只要求在隧道的入口和出口處進(jìn)行修改,對(duì)其它部分沒(méi)有要求,因而非常容易實(shí)現(xiàn)。但是隧道技術(shù)不能實(shí)現(xiàn)IPv4主機(jī)與IPv6主機(jī)的直接通信。
1.3 NAT-PT技術(shù)(Network Address Translation-Protocol Translation,RFC2766)
RFC1631詳細(xì)說(shuō)明了NAT(Network Address Translator)技術(shù)的基本原理。雖然NAT技術(shù)是針對(duì)IPv4網(wǎng)絡(luò)提出的,但只要將IPv4地址和IPv6地址分別看作NAT技術(shù)中的內(nèi)部地址和全局地址,就能適用于IPv6技術(shù)的演進(jìn),這時(shí)NAT就演進(jìn)成了NAT-PT。利用轉(zhuǎn)換網(wǎng)關(guān)在IPv4和IPv6網(wǎng)絡(luò)之間轉(zhuǎn)換IP報(bào)頭的地址,同時(shí)根據(jù)協(xié)議不同對(duì)分組做相應(yīng)的語(yǔ)義翻譯,就能使純IPv4和純IPv6站點(diǎn)之間透明通信。
2 基于NAPT-PT的方案中地址欺騙技術(shù)的研究與實(shí)現(xiàn)
2.1 什么是地址欺騙技術(shù)
由于當(dāng)前的IPv6兼容IPv4的機(jī)制基于雙棧,要實(shí)現(xiàn)純IPv6主機(jī)對(duì)純IPv4主機(jī)的訪問(wèn),這時(shí)要做類似的地址欺騙和轉(zhuǎn)換。基于NAPT-PT的過(guò)渡方案是在純IPv4或純IPv6的網(wǎng)絡(luò)中提供一個(gè)或多個(gè)特殊的DNS服務(wù)器作“地址欺騙”,同時(shí)提供一個(gè)或多個(gè)雙棧的服務(wù)器做NAPT-PT網(wǎng)關(guān)。DNS服務(wù)器為整個(gè)站點(diǎn)服務(wù),當(dāng)純IPv6主機(jī)(ADDR6)發(fā)起一個(gè)DNS查詢時(shí),如果DNS服務(wù)發(fā)現(xiàn)目的主機(jī)只有IPv4地址(ADDR4),將會(huì)返回該IPv4主機(jī)一個(gè)按某種策略選定的IPv6地址(ADDR46)作為查詢結(jié)果,同時(shí)通知NAPT-PT網(wǎng)關(guān)ADDR6、ADDR4和ADDR46這三個(gè)地址之間的對(duì)應(yīng)關(guān)系,這樣NAPT-PT網(wǎng)關(guān)就可以根據(jù)這些信息進(jìn)行地址/協(xié)議翻譯了。其中,ADDR46必須是站點(diǎn)內(nèi)可以路由的。在邊界網(wǎng)關(guān)處將把目的地址是ADDR46的報(bào)文路由到相應(yīng)的NAPT-PT網(wǎng)關(guān)。
2.2 地址欺騙解決方案
本方案是建立一張hash表,如表1所示。
表1 hash表
| 表索引 | 源地址 | 源端口 |
| Index | ADDR6 | PORT6 |
| … | … | … |
同時(shí)提供一個(gè)配置文件:其中與hash表有關(guān)的內(nèi)容包括:
·欺騙用的公用IPv4地址,例如:210.25.132.120/29
·欺騙用的IPv6地址前綴,例如:CHEATING_IP6_ADDR_PF=0x3f,0xfe,0x81,0xb1,0x00,0x01,0x03,0x00,0x00,0x00,0x00,0x00
NAT-PT解決方案如所示。
首先,對(duì)于純IPv6主機(jī)(Host6)發(fā)起的訪問(wèn)純IPv4主機(jī)(Host4)的情況:
(1)首先Host6對(duì)DNS服務(wù)器發(fā)出對(duì)Host4的域名解析請(qǐng)求;
(2)DNS服務(wù)器解析出Host4的地址是ADDR4,同時(shí)發(fā)現(xiàn)它是一臺(tái)純IPv4主機(jī);
(3)DNS服務(wù)器通過(guò)配置文件naptgw6.conf進(jìn)行地址欺騙,將目的IPv4地址加上IPv6欺騙地址前綴組成ADDR46,作為目的主機(jī)的IPv6地址,反回給Host6,同時(shí)通知NAT-PT網(wǎng)關(guān)進(jìn)行相應(yīng)處理;
(4)NAT-PT網(wǎng)關(guān)通過(guò)hash算法得到hash表索引值,在hash表中相應(yīng)位置保留源IPv6地址和源端口信息;
(5)hash算法得到的索引值作為Host6欺騙用的IPv4源端口值,同時(shí)NAT-PT網(wǎng)關(guān)通過(guò)配置文件naptgw6.conf選擇一個(gè)欺騙用IPv4地址ADDR64作為協(xié)議翻譯后的源地址;
(6)Host6向ADDR46發(fā)出IPv6報(bào)文,IPv6報(bào)文路由到支持雙棧的邊界路由器Router_dualstack,路由器Router_dualstack接收到IPv6報(bào)文,把它路由給NAT-PT網(wǎng)關(guān),Router_dualstack的路由表如表2所示;
表2 Router_dualstack路由表項(xiàng)
| IPv4路由表 | Ipv6路由表 |
| …… ADDR64/29 NAP-PT Default …… | …… ADDR46/96NAT-PT Default …… |
(7)NAT-PT網(wǎng)關(guān)發(fā)現(xiàn)該報(bào)文的目的地址是ADDR46,于是將源地址改變ADDR64,將目的地址改為ADDR4,然后做協(xié)議轉(zhuǎn)換,以IPv4數(shù)據(jù)報(bào)文方式發(fā)給Host4。
對(duì)純IPv4主機(jī)(Host4)回該純IPv6(Host6)的情況:
(1)Host4收到Host6發(fā)來(lái)的數(shù)據(jù)報(bào),并返回IPv4數(shù)據(jù)給出ADDR64。
(2)反回IPv4數(shù)據(jù)報(bào)通過(guò)路由器Router_dualstack路由到NAT-PT網(wǎng)關(guān),根據(jù)Host4源端口值hash表中查到對(duì)應(yīng)的表項(xiàng)作為目的IPv6地址和端口;
(3)同時(shí)源IPv4地址加期騙前綴后地址變?yōu)锳DDR46,隨后做協(xié)議轉(zhuǎn)換,通過(guò)NAT-PT網(wǎng)關(guān)以IPv6數(shù)據(jù)包方式發(fā)給Host6;
(4)Host6收到返回?cái)?shù)據(jù)報(bào),報(bào)文交換成功。
當(dāng)Host4與Host6通信時(shí)過(guò)程正好相反。
2.3 實(shí)現(xiàn)負(fù)載均衡的方法
在簡(jiǎn)單的情況下,假設(shè)要使用兩個(gè)協(xié)議翻譯網(wǎng)關(guān)(GW1和GW2)實(shí)現(xiàn)負(fù)載均衡,只需要為GW1使用10.0.0.0/9和2001:1000:1::/64做地址欺騙,為GW2使用10.129.0.0/9和2001:1000:2::/64做地址欺騙,在邊緣IPv4/v6雙棧路由器如表3所示。
表3 負(fù)載均衡路由表項(xiàng)
| Ipv4路由表 | IPv6路由表 |
| …… 10.0.0.0/9 GW1 10.129.0.0/9 GW2 Defualt … | …… 2001:1000:1::/64 GW1 2001:1000:2::/64 GW2 |
GW1和GW2理論上自動(dòng)分配各一半的流量,而所有的設(shè)置只需要在網(wǎng)絡(luò)邊緣進(jìn)行,程序代碼不需要做任何修改;對(duì)于被服務(wù)的站點(diǎn)也是透明的,只需要改DNS服務(wù)器的設(shè)置。
2.4 數(shù)據(jù)結(jié)構(gòu)
map_tb1數(shù)據(jù)結(jié)構(gòu)的主要作用是記錄hash表中的數(shù)據(jù),包括索引值、源IPv6地址和源IPv6端口,以及是否使用標(biāo)志位。
map_tb1數(shù)據(jù)結(jié)構(gòu)如下:
strcut map_tb1[INDEX]
{
unsigned char used;
struct in6_addrsrc_ipv6_addr;
in_port_t src_port;
};
hash表存取地址的效率高低直接影響NAT-PT網(wǎng)關(guān)的連接速度,因此hash表中INDEX的算法很重要。為了盡量避免沖突,提高效率,hash函數(shù)涉及的參數(shù)有源IPv6地址、源IPv6端口、目的IPv4地址(欺騙用IPv6地址的8~11byte)、目的IPv6端口。這些參數(shù)對(duì)于每次新的連接都是變化的,通過(guò)這些參數(shù)相加計(jì)算出hash表的INDEX(16位),取1025~65535(去掉0~1024端口值)作為hash表的索引,同時(shí)標(biāo)志位置為1表示已占用,算法計(jì)算公式如下所示:
hash程序的簡(jiǎn)單處理流程如所示。
對(duì)于hash表地址發(fā)生沖突的處理,通過(guò)檢驗(yàn)標(biāo)志位得知此索引處是否已存有欺騙地址,然后INDEX值自動(dòng)加1,繼續(xù)檢驗(yàn)標(biāo)志位,直至發(fā)現(xiàn)沒(méi)有被占用INDEX。
2.5 方案測(cè)試
具體測(cè)試方案如表4~6所示。
表4 測(cè)試環(huán)境
| NAT-PT網(wǎng)關(guān) | 純IPv6主機(jī) | 純IPv4主機(jī) | |
| 操作系統(tǒng) | RedHat Linux 9.0 | FreeBSD 4.5 Release | Windows 2000 |
| CPU | Intel PIII 800MHz | AMD K7 500MHz | Intel P III 800MHz |
| 內(nèi)存 | 128MB | 64MB | 128MB |
| 網(wǎng)卡 | 全雙工100M | 全雙工10M | 全雙工100M |
| IP地址 | 10.0.0.224/28 2001:2:1000::1/64 | 2001:1:1000:1/64 | 10.0.0.129 |
| 主機(jī)域名 | Pure6.6.bupt.edu.cn | Pure4.6test.bupt.edu.cn |
表5 Ping測(cè)試
| 測(cè)試方法 | 在純IPv6主機(jī)上Ping對(duì)端純IPv4主機(jī)(域名):Ping6 Pure4.6test.bupt.edu.cn |
| 測(cè)試結(jié)果 | Pinging 2001:1000:1::a0e1 with 32 bytes of data: Reply from 2001:1000:1::a0e1:bytes=32 time<10ms TTL=128 Ping statistics for 2001:1000:1::a0e1: Packets:Sent=3,Received=3,Lost=0(0%) Approximate round trip times in milli-seconds: Minimum=0ms,Maximum=0ms,Average=0ms |
| 結(jié)果分析 | 在同一臺(tái)IPv6主機(jī)上同時(shí)進(jìn)行多個(gè)Ping6對(duì)端純IPv4主機(jī)(域名)的測(cè)試,反 |
表6 Telnet測(cè)試
| 測(cè)試方法 | 在純IPv4主機(jī)上Telnet對(duì)端純IPv6主機(jī)(域名):Telnet Pure6.6test.bupt.edu.cn 23 |
| 測(cè)試結(jié)果 | |
| 結(jié)果分析 |
2.6 方案總結(jié)
基于NAPT-PT的方案只是增加了幾臺(tái)設(shè)備,而沒(méi)有對(duì)現(xiàn)有設(shè)備做任何改動(dòng),特別是不要求客戶端做任何改動(dòng),只需要客戶端操作系統(tǒng)實(shí)現(xiàn)純IPv4協(xié)議?;蚣僆Pv6協(xié)議棧即可。由于這個(gè)方案可以很自然地實(shí)現(xiàn)負(fù)載均衡,所以可以被大的ISP用來(lái)為下面接入的所有站點(diǎn)服務(wù),并可以保證被服務(wù)的IPv4站點(diǎn)中的任務(wù)部分可以在任意時(shí)刻升級(jí)成雙棧,從而實(shí)現(xiàn)平穩(wěn)過(guò)渡。
總的來(lái)說(shuō),本方案具有以下特點(diǎn):
·適用于純IPv4與純IPv6站點(diǎn)間的通信;
·對(duì)被服務(wù)的站點(diǎn)的主機(jī)完全透明;
·不需要主機(jī)做任何修改,路由器也不需要升級(jí);
·能與其他現(xiàn)存的過(guò)渡技術(shù)結(jié)合使用,而且保持透明。
從理論上講,采用NAPT-PT并不是一種完善的過(guò)渡方案,的方案是采用雙協(xié)議棧技術(shù),保持現(xiàn)有IPv4的體系不變,逐漸在IPv4體系上增加IPv6支持,直到整個(gè)網(wǎng)絡(luò)都變成雙協(xié)議棧,建立起的IPv4與IPv6共存的體系。然后逐漸去掉IPv4協(xié)議,終過(guò)渡到純粹的IPv6網(wǎng)絡(luò)。但是這種想法帶有很強(qiáng)的理想主義色彩,實(shí)際上很難做到。很有可能在過(guò)渡的某個(gè)階段出現(xiàn)這種情況:Internet的大部分已經(jīng)支持雙棧并實(shí)現(xiàn)了IPv6的連接,但是還有一部分仍然是純粹的IPv4網(wǎng)絡(luò),同時(shí)由于IPv4地址耗盡等種種原因,有些網(wǎng)絡(luò)需要馬上就使用純IPv6,因此在現(xiàn)實(shí)過(guò)渡過(guò)程中使用地址欺騙技術(shù)的NAPT-PT方案情況的可能性要遠(yuǎn)遠(yuǎn)大于前者。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 工業(yè)5G技術(shù)在智能制造中的應(yīng)用與實(shí)踐解析2025/12/31 10:57:21
- 工業(yè)以太網(wǎng)交換機(jī)選型與現(xiàn)場(chǎng)應(yīng)用技術(shù)指南2025/12/18 10:48:14
- 無(wú)線傳輸電路基礎(chǔ),射頻前端設(shè)計(jì)、天線匹配與鏈路預(yù)算計(jì)算2025/10/27 13:55:50
- ASK 解調(diào)的核心要點(diǎn)與實(shí)現(xiàn)方式2025/9/5 16:46:17
- 雙偶極子天線:結(jié)構(gòu)、特性與應(yīng)用全解析2025/9/3 10:29:21
- PCB防靜電(ESD)設(shè)計(jì)核心規(guī)范
- 通信系統(tǒng)基石:信道化濾波器組原理與多速率信號(hào)處理
- 接觸不良對(duì)連接器性能的影響
- 開(kāi)關(guān)電源PCB設(shè)計(jì)常見(jiàn)問(wèn)題
- 多顆MOSFET并聯(lián)的散熱設(shè)計(jì)要點(diǎn)
- PCB多層板疊層設(shè)計(jì)核心規(guī)范
- 常見(jiàn)IC芯片分類及功能介紹
- 應(yīng)對(duì)信號(hào)采集難題:抗混疊濾波器的選型與設(shè)計(jì)關(guān)鍵
- 高速連接器在通信設(shè)備中的應(yīng)用
- 電源IC過(guò)熱損壞原因分析









