王子龍,陳光武
(蘭州交通大學 光電技術與智能控制教育部重點實驗室,甘肅 蘭州 730070)
隨著IPv4局限性的日益突出,IPv6技術應運而生,IPv6技術不僅解決了IPv4地址空間不足、路由擁塞、安全性不足等多種問題,而且還在其基礎上增加了一些新的特性?,F(xiàn)有的網路中很大一部分仍然使用的是IPv4,要在短時間內將其取代是不可能的,所以采取一些必要的過渡措施在所難免,這個過渡期也將是長期而復雜的。然而如何去實現(xiàn)IPv4網路平穩(wěn)過渡到IPv6網路,這將是人們所要思考的問題。本文結合當前IPv4/IPv6過渡的需求,在GNS3下模擬了 IPv6與 IPv4網絡通信的過程,并借助wireshark抓包工具對實驗結果進行了詳細的解析,為NAT-PT技術的可行性研究提供依據。
GNS3是一款具有圖形化界面并支持多平臺的網絡虛擬軟件。可以通過它來完成相關的網絡實驗模擬,同時它也可以用于虛擬體驗Cisco網路操作系統(tǒng)IOS或者是檢驗將要在真實的路由器上部署的相關配置。本文采用Cisco7200型號的路由器作為NAT-PT網關,DNS服務器采用Simple DNS Plus軟件實現(xiàn)。
NAT-PT(網路地址轉換-協(xié)議轉換)是一種附帶協(xié)議轉換器的網路地址轉換器,它在IPv4/IPv6地址轉換的同時也在IPv4分組和IPv6分組間進行包頭和語義的翻譯。它把SIIT(無狀態(tài)IP/ICMP轉換)技術和IPv4網路中動態(tài)NAT技術結合起來,很好地解決了SIIT中全局IPv4地址池規(guī)模有限的問題。另外,NAT-PT還使用了一些特定的應用層網關為一些需要在上層協(xié)議中內嵌IP地址的應運提供了協(xié)議轉化[1]。NAT-PT主要用于在沒有IPv6服務器為IPv6主機服務,或者其他不適合使用隧道技術的場景。NAT-PT可分為靜態(tài)、動態(tài)和結合DNS-ALG的動態(tài)NAT-PT,但靜態(tài)技術需要在路由器上配置的 IPv6和IPv4地址一一對應,其配置復雜,維護不便,更重要的是需要消耗大量的IPv4地址,所以并不是一個較好過渡方案。
動態(tài)NAT-PT使用一個IPv4地址池為IPv6節(jié)點動態(tài)的在每個回話跨越網路邊界時分配一個IPv4地址,NAT-PT網關綁定并記錄這一對IPv4與IPv6地址和端口的映射關系(稱為會話信息)[2],為后續(xù)報文提供透明路由。如圖1所示,當IPv6節(jié)點PC2想與IPv4節(jié)點PC1通信時,節(jié)點PC2會創(chuàng)建一個源地址為 2000::2,目的地址為 2002::c0a8:2(即地址2002::192.168.0.2)的數(shù)據包,此報文被發(fā)送到NAT-PT網關時,路由器查看其目的地址的地址前綴 2002::與配置的前綴是否相同,相同則對此報文進行轉換然后再轉發(fā),否則丟棄[3]。但是動態(tài)NAT-PT技術仍然存在不足,下面就其缺點和改進方案進行分析。
圖1 網路拓撲
動態(tài) NAT-PT技術雖然從技術上解決了節(jié)省IPv4地址的問題,但它只能實現(xiàn)IPv6節(jié)點與IPv4節(jié)點的單向通信,而且某些應用在凈載荷中是含有IP地址的,此時只能通過 ALG對報文凈載荷中的IP地址進行格式轉換,通過 DNS-ALG的動態(tài)NAT-PT,不但可以做到IPv4和IPv6網路中任何一方主動發(fā)起連接,而且還可以做到基于DNS名稱訪問對方主機。實驗中將名稱與IPv4地址的映射稱為A記錄,把名稱與IPv6地址的映射稱為AAAA記錄[4]。結合圖1所示拓撲,下面以節(jié)點PC2與節(jié)點PC1通信進行詳細分析。
1)首先PC2要向IPv4區(qū)域中的DNS服務器發(fā)出請求對PC1進行名稱解析,請求報文的源地址為2000::2,目的地址為 2002::c0a8:102(即地址2002::192.168.1.2)。
2) 請求報文到達 NAT-PT網關之后,NAT-PT設備對報文頭部進行轉換,從IPv4地址池中分配一個地址192.168.2.2,替換請求報文中的IPv6源地址2000::2,其目的地址轉換為 192.168.1.2,并記錄其映射關系。同時對其內容進行修改,把AAAA類型請求轉換成A類型[4],然后將此報文轉發(fā)給IPv4網路中的DNS服務器。
3) IPv4側的DNS服務器收到報文以后,查詢自己的記錄表,解析出 PC1的 IPv4地址是192.168.0.2,于是 IPv4服務器向 PC2以源地址為192.168.1.2,目的地址為192.168.2.2的報文進行回應,此報文被路由到NAT-PT設備中去。
4) 報文到達 NAT-PT設備以后,報文頭部被NAT-PT設備進行轉換,同時,DNS-ALG將其中的DNS應答部分也進行轉換,把A記錄轉換成AAAA記錄,PC2收到此 DNS應答之后,就知道了 PC1的標識 IPv4地址是 192.168.0.2,于是發(fā)起到 PC1的連接,報文的源地址為 2000::2,目的地址為2002::192.168.0.2。
5) 報文到達 NAT-PT設備后,由于在 NAT-PT設備中已經有 IPv4地址 192.168.2.2與 IPv6地址2000::2的會話記錄,因此可以按照此會話記錄對地址進行轉換,轉換后的報文源地址為 192.168.2.2,目的地址為192.168.0.2。
6) 報文到達PC1之后,PC1對此報文進行回復,應答報文的源地址為 192.168.0.2,目的地址為192.168.2.2。
7) 應答報文到達 NAT-PT設備以后,NAT-PT設備再按照原有的記錄對此報文進行轉換,轉換后的報文源地址為 2002::192.168.0.2,目的地址為2000::2,并將報文路由到PC2,完成一次通信。
在NAT-PT網關上使用命令debug ipv6 nat 查看PC2 ping PC1 時在NAT-PT網關內部發(fā)生的地址轉換,整個轉換過程可分為PC2與IPv4_DNS服務器之間報文地址的轉換和PC2與PC1之間報文地址的轉換兩部分。
在IPv6主機上ping IPv4主機的域名pc1.cisco,會直接去訪問DNS服務器,利用域名成功實現(xiàn)訪問IPv4主機。上述實驗實現(xiàn)了 IPv6主機通過域名訪問IPv4主機,進一步實驗參照圖1在IPv6網絡中添加一臺IPv6_DNS服務器,讓所有從IPv4域中發(fā)出的,目的是解析IPv6域中的主機的DNS解析請求被NAT-PT轉發(fā)到IPv6_DNS服務器,從而實現(xiàn)全網域名的通信。
重點論述了結合DNS-ALG的NAT-PT技術的工作機制和實現(xiàn)原理,解決了IPv6主機和IPv4主機通過域名的訪問以及相關的地址轉換和協(xié)議翻譯,從而實現(xiàn)了IPv6主機和IPv4主機的透明通信,達到了預期的要求。NAT-PT技術通過上層協(xié)議的映射使大量的IPv6主機使用同一個IPv4地址,從而節(jié)省了寶貴的IPv4地址,為IPv4網路向IPv6網路的過渡提供了比較完整的解決方案。
[1] IETF RFC 2766. Network Address Translation-Protocol Translation(NAT-PT)[S].USA:[s.n.]:2000.
[2] 楊林,楊勇.基于IPv4過渡時期NAT技術應用研究[J].通信技術,2012,45(06):42-44.
[3] 周利利,張平,梁祖華.IPv4/IPv6過渡技術在校園網中的應用[J].通信技術,2009,42(02):212-214.
[4] IETF RFC 2694.DNS extensions to Network Address Translators(DNS-ALG)[S].USA:[s.n.]:1999.
[5] 馬義濤,薛質,王軼駿.關于TCP穿越NAT技術的研究與分析[J].信息安全與通信保密,2008,35(04):47-49.