郝佳晶
(山西職業(yè)技術(shù)學(xué)院計(jì)算機(jī)工程系,山西太原030006)
IPv4協(xié)議在因特網(wǎng)中獲得了巨大的成功,但是,隨著因特網(wǎng)的迅速發(fā)展和接入主機(jī)數(shù)量的急劇膨脹,IP地址也越來越緊張,路由表也變得越來越大,根據(jù)2009年的統(tǒng)計(jì),全球只有21%的網(wǎng)民擁有IP地址,接入到Internet中。其他80%的網(wǎng)民只能用其他技術(shù)來實(shí)現(xiàn)接入因特網(wǎng),比如私有地址,來減少IPv4地址的消耗。在當(dāng)前形勢下,IPv6最終取代IPv4是大勢所趨,幾乎無限的地址容量是IPv6發(fā)展最直接的理由,我們從下面幾個(gè)方面來討論其必然的因素。
1)IPv4:地址空間有限
IPv4采用32位地址長度,只有大約43億個(gè)地址。根據(jù)統(tǒng)計(jì),在2010年1月,IPv4的公網(wǎng)地址只有10%沒有分配出去,各項(xiàng)資料顯示,最遲到2011年這些地址將會(huì)被全部消耗掉。
2)IPv6:更大的地址空間
IPv6地址是128位,幾乎可以不受限制地提供地址,按保守方法估算IPv6實(shí)際可分配的地址,整個(gè)地球每平方米面積上可分配1 000多個(gè)地址,這樣,就有足夠的IPv6地址分配超過整個(gè)IPv4網(wǎng)絡(luò)地址空間到地球上每一個(gè)人。
2008年北京奧運(yùn)會(huì)的官網(wǎng)使用的全部是IPv6技術(shù),包括路由,包括DNS服務(wù)器等等,得到行業(yè)里面許多人的關(guān)注。
在實(shí)施上,IOS支持IPv6,但之所以沒有大范圍地部署IPv6的原因是:IPv6與IPv4的編址發(fā)生變化,導(dǎo)致數(shù)據(jù)包的格式也發(fā)生變化。對(duì)網(wǎng)絡(luò)設(shè)備,對(duì)傳輸設(shè)備來講,對(duì)IPv4能做到限時(shí)轉(zhuǎn)發(fā),對(duì)IPv6就不見得能做到這一點(diǎn)。比如交換機(jī)在制作芯片的時(shí)候,對(duì)PDU的處理,肯定是基于IPv4的,而不是基于IPv6的PDU。所以交換機(jī)或者三層設(shè)備,它要能對(duì)IPv6的數(shù)據(jù)包做限時(shí)轉(zhuǎn)發(fā),只有一個(gè)前提條件,就是對(duì)硬件方面來講,PDU要基于IPv6制造。這就是全球?yàn)槭裁礇]有大范圍地部署IPv6的原因,只是劃片區(qū)的,局部的,就是因?yàn)榭紤]到硬件設(shè)備的投入。所以除了IPv4和IPv6的兼容性之外,還需要投入大幅度的設(shè)備經(jīng)費(fèi)。
1)IPv4:路由聚合性能不足
由于接入因特網(wǎng)主機(jī)的不斷膨脹,主機(jī)因特網(wǎng)路由表繼續(xù)增長,這意味著互聯(lián)網(wǎng)核心路由器需要更多的處理能力、內(nèi)存和開銷。
全球路由表的膨脹是非常快的,因?yàn)樗鼤?huì)消耗我們大量的CPU、內(nèi)存資源。2010年7月統(tǒng)計(jì):大概全球有超過33萬條路由表信息,雖然我們有各種各樣的路由匯總、路由聚合技術(shù),但也至少消耗300M內(nèi)存。隨著互聯(lián)網(wǎng)用戶的增長,IPv4地址即將消耗殆盡,IPv4的全球路由表也在不斷膨脹。好在我們有路由匯總、路由聚合技術(shù),否則,全球路由表至少超過200萬條,對(duì)于骨干路由器來說,光用于存儲(chǔ)這些路由表就需要2G的內(nèi)存。再言之,全球路由表的交換方式是基于BGP,BGP的交換是消耗BGP表的表項(xiàng),也就是說不再做匯總和聚合這種背景之下,它所產(chǎn)生的表項(xiàng)都是存儲(chǔ)在BGP表里面,BGP表至少需要有2G的內(nèi)存,然后再寫入路由表,還要映射到FIB表,在不考慮鄰接關(guān)系的數(shù)量下,就有6、7百萬條。換句話說,一個(gè)路由器需要有10G的內(nèi)存用于存儲(chǔ)這些表項(xiàng),所以說這是非常不現(xiàn)實(shí)的!
IPv4的先天不足在于IP編址上做的不是特別好。IPv4是層次化的地址,體現(xiàn)在它分為網(wǎng)絡(luò)位和主機(jī)位。就是由于IPv4的這種結(jié)構(gòu),所以對(duì)路由聚合做不到太大優(yōu)化,優(yōu)化效果不很顯著,不管如何路由匯總,都匯總不到我們需要的少的路由條數(shù)。
2)IPv6:鏈路聚合能力相當(dāng)優(yōu)秀
我們?nèi)騃P地址42億個(gè)地址,實(shí)際產(chǎn)生大概200多萬個(gè)子網(wǎng),經(jīng)過一些聚合,聚合成30多萬條路由條目。IPv6有128位地址,產(chǎn)生的地址更多,子網(wǎng)數(shù)也更多,理論上產(chǎn)生的路由條目也更多。因此IPv6編碼格式不像我們之前分的A類、B類、C類,所以IPv6的編址層次化結(jié)構(gòu)相當(dāng)優(yōu)秀。對(duì)于IPv6,我們只把它叫做聚合,不講匯總。但在IPv4中我們很少講聚合,都在講匯總。這在根源上是有區(qū)別的。
1)IPv4:缺乏端到端通信以及故障排除的能力
IPv4網(wǎng)絡(luò)通常使用NAT技術(shù)來解決地址耗盡,但是,NAT隱藏了真正的源地址的流量,這可能會(huì)導(dǎo)致其他問題。
因?yàn)镮Pv4地址空間不夠,所以我們平時(shí)在單位上網(wǎng),是通過NAT技術(shù)將內(nèi)網(wǎng)地址翻譯成外網(wǎng)地址,這樣可以實(shí)現(xiàn)多個(gè)內(nèi)網(wǎng)地址對(duì)應(yīng)一個(gè)外網(wǎng)地址,內(nèi)部通過端口號(hào)進(jìn)行區(qū)分,從外部來看,看到的只是一個(gè)公網(wǎng)地址。那么在理想的情況下,假設(shè)IP地址夠用,會(huì)不會(huì)用這項(xiàng)技術(shù)?答案是肯定的。NAT在某些方面來看,它可以隱藏網(wǎng)絡(luò)的一些細(xì)節(jié),但是從故障排除來看,我們沒有辦法做端到端的故障排除。比如一個(gè)用戶做一些入侵行為,定位我們只能定位到內(nèi)部網(wǎng)絡(luò),具體是誰,還得用其他技術(shù)和手段一臺(tái)一臺(tái)做故障排除,只是通過IP編址,我們是沒有辦法區(qū)分的。
再者,由于內(nèi)網(wǎng)和外網(wǎng)頻繁通信,每次通信需要NAT轉(zhuǎn)換地址,做NAT需要?jiǎng)?chuàng)建NAT表項(xiàng),創(chuàng)建表項(xiàng)的過程中會(huì)消耗CPU資源,再加上每次內(nèi)轉(zhuǎn)外,外轉(zhuǎn)內(nèi),這樣頻繁做計(jì)算,流量也會(huì)增加,同時(shí)也會(huì)消耗大量CPU資源。所以,很多時(shí)候路由器CPU占用率和內(nèi)存占用率大幅度提升都是由于NAT造成的。這樣只能升級(jí)硬件進(jìn)行解決或者采用IPv6技術(shù)。
2)IPv6:支持端到端的通信以及故障排除
端到端通信可追溯性是可能的。由于地址非常多,所以不存在公網(wǎng)地址、私網(wǎng)地址的區(qū)分,也不再需要NAT技術(shù),增加了端到端排錯(cuò)的優(yōu)勢。
1)IPv4:安全性差
IP包頭是以明文形式暴露在外的,我們抓包抓下來之后,就可以獲得相應(yīng)的信息。除此之外,IPv4協(xié)議中,尤其是單播路由形式,它是基于目標(biāo)地址路由,不關(guān)心從哪里來,只關(guān)心去往哪里,這就是為什么單播路由表只記錄目標(biāo)地址,不記錄原地址。再加上它不具備一種安全機(jī)制,缺乏一種認(rèn)證。
同時(shí),IP包頭明文,缺乏各種各樣的加密技術(shù),其中也包括了校驗(yàn)和技術(shù)。包頭的校驗(yàn)和指的是對(duì)包頭,如果是對(duì)數(shù)據(jù)本身做一些修改,那它這個(gè)包頭校驗(yàn)和僅僅是對(duì)包頭,不能對(duì)整個(gè)數(shù)據(jù)進(jìn)行校驗(yàn)。
2)IPv6:安全性高(集成了IPsec),移動(dòng)性高,幫助確保符合移動(dòng)IP和IPsec標(biāo)準(zhǔn)
在對(duì)移動(dòng)IP的性能上,IPv4也支持,但是IPv6支持的更好一些,已經(jīng)將移動(dòng)IP做到了集成化,同時(shí),在IPv6中要求更高,如果是一些服務(wù)技術(shù),比方說像一些導(dǎo)航系統(tǒng),它就要求使用到移動(dòng)IP以及它背后的新對(duì)應(yīng)出的PDU,也就是我們的任意播。
除此之外IPv4中有一個(gè)最大的缺點(diǎn),就是安全性,IPv4包頭是以明文形式傳輸?shù)?,后來才提到IPsec安全版的IP,也需要我們做特殊的配置。但是在IPv6中,IPsec是一種強(qiáng)制手段,是一種集成化的,所以它的安全性和移動(dòng)性比IPv4做的更好。同時(shí),在使用IPv6網(wǎng)絡(luò)中用戶可以對(duì)網(wǎng)絡(luò)層的數(shù)據(jù)進(jìn)行加密并對(duì)IP報(bào)文進(jìn)行校驗(yàn),在IPv6中的加密與鑒別選項(xiàng)提供了分組的保密性與完整性,極大地增強(qiáng)了網(wǎng)絡(luò)的安全性。
1)IPv4:存在廣播
IPv4中有單播、組播、廣播。其中廣播的應(yīng)用是沒有價(jià)值的,廣播的優(yōu)勢是多點(diǎn)傳輸,但是它完全可以用組播實(shí)現(xiàn);廣播的缺點(diǎn)太多,它可以被各種各樣的攻擊手段利用(蠕蟲就是復(fù)制,以廣播形式向整個(gè)網(wǎng)段掃描,來進(jìn)行傳播的)。如果我們把廣播消除掉,采用組播或者多播來代替這種多點(diǎn)傳輸是完全可以的。
交換機(jī)vlan的出現(xiàn)就是由于IPv4會(huì)出現(xiàn)廣播風(fēng)暴,通過vlan技術(shù)來控制盒隔離廣播風(fēng)暴。
2)IPv6:使用組播代替廣播,并增加任意播
IPv6現(xiàn)在包括單播、多播、任意播,所以在IPv6里面,它的PDU類型發(fā)生變化,取消了廣播,取而代之,多了一種播,叫任意播(anycast)。任意播和廣播是絕對(duì)不能劃等號(hào)的,任意播是IPv6單播地址比較特殊的一種類型。
任意播并不是為了取代廣播,任意播的應(yīng)用面很窄,但是一旦要用到任意播的時(shí)候,說明對(duì)這種特性需要依賴的應(yīng)用能做一個(gè)非常高的支持度,主要體現(xiàn)在移動(dòng)。也就是說我們做移動(dòng)IP的話,我們可以使用任意播。今后的哪些應(yīng)用,如果要在移動(dòng)性方面做一個(gè)體現(xiàn)的話,那么任意播一定是首選。
原來IPv4包頭只有20位字節(jié),但I(xiàn)Pv4中的很多字段是沒有用的,比如“選項(xiàng)”字段、“保留”字段,這些字段開發(fā)的時(shí)候想到今后可能要用,事實(shí)上,卻沒有用到它。
現(xiàn)在IPv6包頭有40個(gè)字節(jié),比IPv4大了一倍,但是檢索起來反而更快了,因?yàn)樵贗Pv6中,對(duì)IPv4的報(bào)文頭部格式進(jìn)行了簡化,把一些不必要的字段給去掉了,字段只有8個(gè),加快了報(bào)文轉(zhuǎn)發(fā),提高了吞吐量。所以,從路由效率來講,IPv6的包頭更為簡化。
IPv6和IPv4比較,它徹底解決了地址空間耗盡和路由表爆炸等問題,而且為IP協(xié)議注入了新的內(nèi)容,使支持安全、主機(jī)移動(dòng)以及多媒體成為IP協(xié)議的有機(jī)組成部分。協(xié)議的設(shè)計(jì)使路由器處理報(bào)文更加簡便,擴(kuò)展性也更好。目前,IPv4的實(shí)驗(yàn)網(wǎng)已經(jīng)遍布全球,IP協(xié)議從IPv4過渡到IPv6已經(jīng)是歷史必然。同時(shí),基于IPv4的網(wǎng)絡(luò)的廣泛應(yīng)用,取代的過程需要一個(gè)較長的過渡時(shí)期,在這段時(shí)間內(nèi),IPv6將與IPv4共存。IPv6網(wǎng)絡(luò)協(xié)議是我們下一代互聯(lián)網(wǎng)的主流協(xié)議。隨著它的不斷推廣,我們的網(wǎng)絡(luò)業(yè)也越加復(fù)雜和多樣化。當(dāng)然這也就容易產(chǎn)生不少的問題。我們所需要做的是加快IPv6網(wǎng)絡(luò)建設(shè),不斷完善其不足,發(fā)掘其新的應(yīng)用,以逐步替代目前的IPv4網(wǎng)絡(luò)。