張德楊 黃 鑫
(1.河南省科學技術信息研究院,河南 鄭州 450003;2.河南省新聞出版廣電局信息網絡視聽節(jié)目傳播監(jiān)管中心,河南 鄭州 450003)
IPv6與Teredo技術應用
張德楊1黃 鑫2
(1.河南省科學技術信息研究院,河南 鄭州 450003;2.河南省新聞出版廣電局信息網絡視聽節(jié)目傳播監(jiān)管中心,河南 鄭州 450003)
本文首先介紹了IPv6誕生的背景并與IPv4進行了比較,然后分析了三種常見的過渡技術:雙棧、隧道和轉換,最后討論了Teredo技術在W indows7上的應用。
IPv6;過渡技術;Teredo
目前,國際互聯網廣泛使用的IP協議是IPv4,即互聯網協議第四版。近十多年來,互聯網上各類應用蓬勃發(fā)展,IP地址的需求量越來越大,IP地址資源日趨緊張。2011年2月3日全球IP地址管理機構“國際互聯網名稱與數字地址分配機構”(ICANN)宣布,最后所剩的5組IP地址(基于互聯網通信協議IPv4)被分配給了全球5大區(qū)域互聯網注冊管理機構,IPv4地址總庫已經枯竭。2011年4月,亞太互聯網絡信息中心(APNIC)宣布亞太地區(qū)IPv4地址也已經分配完畢,最后1個A類地址只用于IPv6過渡,亞太區(qū)是全球首個無法滿足IPv4需求的地區(qū)。中國互聯網絡信息中心(CNNIC)最新調查顯示,截至2013年底,我國IPv4地址數量僅為3.31億(不含港澳臺地區(qū)),無法滿足約6億網民的需求。由于全球IPv4地址數已經分配完畢,因而自2011年開始我國IPv4地址總數基本維持不變。
IPv4地址不足嚴重地制約了互聯網的應用和發(fā)展,面對全球IPv4地址即將用盡的問題,下一代IP協議IPv6應運而生,并提供數量“浩瀚”的新型IP地址。《IPv6全球部署評估報告》2011年調查結果數據顯示,約1600名國際調查對象中超過70%計劃2012年年底為其網絡部署IPv6。我國政府明確了今后一個時期我國發(fā)展下一代互聯網的路線圖和主要目標:2013年年底前開展國際互聯網協議第6版網絡(IPv6)小規(guī)模商用試點,2014年開始大規(guī)模部署和商用。
IPv4采用32位地址長度,其地址容量為2的32次方個,即4.3×10的9次方個,全球可用的IPv4地址只有大約43億個;IPv6地址采用128位地址長度,其地址容量達2的128次方個,即3.4× 10的38次方個。IPv6極大擴展了IP地址空間,全球平均每人可分配超過10億個地址,“可以為地球上的每粒沙子都分配一個IP地址”。IPv6的設計除了解決地址短缺問題以外,還考慮了在IPv4中解決不好的其他問題,主要有端到端IP連接、自動配置、網絡重編號、網絡聚合、服務質量(QoS)、安全性、多播、移動性、即插即用等[1]。
IPv6與IPv4地址比較如下表[2]:
盡管IPv6是為了解決IPv4地址不足的問題而誕生的,但是IPv6并不直接向下兼容IPv4。為了使IPv4能夠順利過渡到IPv6,IPv6在設計過程中提供了一些特性,使過渡過程得以簡化。目前互聯網使用的IPv4規(guī)模非常龐大,從IPv4過渡到IPv6不可能一次性實現,必須要經過一個循序漸進的過程,在過渡過程中IPv4和IPv6必將共存與互通?,F在已經有許多機制能夠解決從IPv4到IPv6的過渡問題,它們的實現原理和應用環(huán)境各有側重,應用比較廣泛的過渡策略主要有雙棧策略、隧道策略以及轉換策略[3]。
比較項目IPv4文本表示法點分十進制如192.168.0.1子網掩碼未指定地址回環(huán)地址公用地址IPv6冒分十六進制(取消前置零、一次零壓縮)如:FF01:0:0:AB:0:0:0:101 =FF01::AB:0:0:0:101或FF01:0:0:AB::101僅使用前綴長度表示法(CIDR)如1080:0:FF:0::/64(無掩碼)::/128::1/128可匯聚全球單播地址:2001::/16,2002::/16,3FFE::/16私有地址本地站點地址(FEC0::/10)多播地址FF00::/8被請求節(jié)點地址(FF02::1:FF00:0000/104)D類地址(224.0.0.0/4)無,作為多播的特例廣播地址以點陣十進制表示法或前綴長度表示法(CIDR)0.0.0.0 127.0.0.1 A類,B類,C類10.0.0.0/8 172.16.0.0/12 192.168.0.0/16自動配置的地址兼容IPv4的IPv6地址IPv4映射的IPv6地址本地鏈路地址(FE80::/10)::A.B.C.D::FFFF:A.B.C.D網絡廣播地址、子網廣播地址、全子網定向廣播地址和有限廣播地址169.254.0.0/16 A.B.C.D A.B.C.D
2.1 雙棧策略
雙棧策略是指網絡節(jié)點同時具有IPv4和IPv6兩個協議棧,這樣節(jié)點可以根據需要對數據進行IPv4封裝或者IPv6封裝,IPv4或者IPv6分組數據按照各自的協議進行接收、處理、發(fā)送,使得網絡節(jié)點既能與IPv4網絡也能與IPv6網絡通信。雙棧策略的優(yōu)點是概念清晰,易于理解,網絡規(guī)劃相對簡單,同時可以充分發(fā)揮IPv4或者IPv6協議的優(yōu)點;雙棧策略的缺點是對網絡節(jié)點設備的要求較高,需要其同時支持IPv4和IPv6協議,維護大量的協議和數據,此外網絡升級改造將牽涉到網絡中的所有節(jié)點設備,投資大、建設周期長。
2.2 隧道策略
隧道策略是指網絡節(jié)點之間利用一種協議來傳輸另一種協議的數據技術,類似于在網絡節(jié)點之間打通一條隧道來傳輸數據。具體來說是指在隧道入口以一種協議的形式來對另外一種協議數據進行封裝并發(fā)送,在隧道出口對接收到的協議數據解封裝并做相應的處理。通過隧道技術可以在IPv4數據包中封裝IPv6數據包,也可以在IPv6數據包中封裝IPv4數據包。隧道策略的優(yōu)點是能夠充分利用現有的網絡投資,因此在過渡初期是一種方便的選擇;缺點是在隧道的入口處會出現負載協議數據包的拆分,在隧道出口處會出現負載協議數據包的重組,因此增加了隧道出入口的實現復雜度,不利于大規(guī)模的應用。
2.3 轉換策略。雙棧策略和隧道策略要求網絡節(jié)點都支持雙棧,如果在網絡中純IPv4節(jié)點需要與純IPv6節(jié)點之間進行通信,則由于協議棧的不同,需要對這些協議進行轉換。對應協議的轉換可以分為兩個層面來進行,一是IPv4與IPv6網絡層的協議轉換,主要是通過NAT-PT技術來實現,二是IPv4與IPv6應用層的協議轉換,主要通過應用層網關ALG來實現。轉換策略的優(yōu)點是不需要對IPv4和IPv6節(jié)點進行升級改造;缺點是IPv4節(jié)點訪問IPv6節(jié)點的實現方法比較復雜,網絡設備進行協議轉換、地址轉換的處理開銷較大。因此,該策略一般是在其他互通方式無法使用的情況下使用。
上述各種過渡策略均有各自的優(yōu)缺點,其應用環(huán)境各有側重,目前,還沒有一種普遍適用的過渡技術。在實際網絡建設中,應根據擴展性、安全性、網絡性能等多方面因素綜合考慮,選擇適合網絡自身特征的過渡策略。
目前大多數ISP不提供IPv6接入服務,因此普通用戶無法直接接入IPv6網絡。Teredo是IPv4到IPv6過渡技術中一項地址分配和自動隧道技術,它使主機通過服務器將IPv4與IPv6互相轉換,從而使主機接入IPv6網絡。使用ISATAP等隧道技術需要主機有公網IPv4地址,而Teredo技術適用內網主機,如通過路由或NAT聯網的主機[4]。
微軟支持Teredo技術,Windows XP SP2以上版本內置Teredo,并且Windows vista以上版本默認啟用,雖然默認“普通應用”沒有啟用Teredo,但是可以使用它連接到IPv6網絡。
本文以Windows7為例介紹建立Teredo過程。
第一步:啟動IP Helper服務。windows就可以使用IPv6轉換技術(6to4、ISATAP、端口代理和Teredo)和IP-HTTPS提供隧道連接。
第二步:在注冊表里加下面這個鍵值:[HKEY_LOCAL_MA?CHINESYSTEMCurrentControlSetservicesDnscacheParameters]新建“AddrConfigControl”=DWORD:0x00000000;添加注冊表鍵值是使Windows應該程序能夠將域名通過DNS解析為IPv6地址。
第三步:內網主機類型需以管理員權限運行CMD,執(zhí)行以下命令:
netsh int teredo set state enterpriseclient
netsh int ipv6 delete prefixpolicy 2001::/32
這兩個命令分別使Teredo跳過受管理的網絡檢測和優(yōu)先解析路由IPv6地址,這樣NAT后的主機就可以使用Teredo技術連接到IPv6網絡,而且主機使用的IPv4網絡不受影響。
這樣Teredo建立完成,可以正常連接IPv6網絡了,以下是IPv6測試網站:http://test-ipv6.com、http://6rank.edu.cn、http:// www.kame.net、http://bgp.he.net、http://ipv6.google.com。
上述操作使Windows操作系統具有了IPv4和IPv6雙棧功能,但是IPv6數據是通過Teredo隧道封裝在IPv4的UDP包中穿越NAT出去,所有數據仍然是很大IPv4網絡中傳輸。如果NAT支持UDP端口解析,那么它就支持Teredo,但是對稱NAT是一個例外[5]。有些軟件會阻止UDP端口3544,這也會導致Teredo隧道不能使用。Teredo是作為接入IPv6網絡備用轉換技術而設計的,如果IPv6、6to4或者ISATAP等連接可以使用,那么主機就不要作為Teredo的客戶端?,F在,越來越多的IPv4 NAT經過了升級以便能夠支持6to4,而且IPv6連接變得越來越普遍,Teredo將會使用得越來越少,直到最后完全被放棄。
[1]IPv6[EB/OL].http://baike.baidu.com/view/5228.htm.
[2]IP Version 6 Addressing Architecture[EB/OL].http://tools. ietf.org/htm l/rfc2373.
[3]楊巧霞.IPv4/IPv6過渡技術和方案分析[EB/OL].http:// www.qqread.com/network-special/v300371.htm l.
[4]Teredo:Tunneling IPv6 over UDP through Network Address Translations(NATs)[EB/OL].http://tools.ietf.org/htm l/rfc4380.
[5]teredo[EB/OL].http://baike.baidu.com/view/2224124.htm.
TP393.04
A
1671-0037(2014)12-78-2
張德楊(1979-),男,工程碩士,工程師,研究方向:計算機網絡、軟件工程和應用技術研究。