摘要:IPv6是應(yīng)所謂“IPv4地址耗盡問題”而出現(xiàn)的,簡單來說就是認為原來的IPv4地址空間不夠用了,要給IP地址升位。類似6位電話號碼不夠用了,就升位到7位或8位。IPv6第一個版本出現(xiàn)于1995年12月份,萬維網(wǎng)和第一個流行的瀏覽器Mosaic都剛剛出現(xiàn),大數(shù)據(jù)和手機定位等技術(shù)都是近十年間才逐步獲得應(yīng)用的。技術(shù)時代的局限使得該IPv6在其地址結(jié)構(gòu)的設(shè)計思想上存在很大缺陷。
因當(dāng)時盲目地認為128位地址太過富裕,因此就集成進了物理層及應(yīng)用層的信息,混淆了網(wǎng)絡(luò)層次,形成奇特的“拼接地址”結(jié)構(gòu),由此帶來無解的安全漏洞等潛在問題。另一方面,因在過去IPv4技術(shù)條件下發(fā)展的NAT等技術(shù),“IPv4地址耗盡”本質(zhì)上其實是不成立的。
事實上,不采用IPv6,繼續(xù)在IPv4框架內(nèi)平滑演進也無妨。電信技術(shù)因其特殊的標準性質(zhì),當(dāng)一種標準技術(shù)一定程度上成為“全球公認”的時候,它就成為一種政治正確,即使大家都明顯看出其中存在問題,卻誰都不敢再發(fā)表質(zhì)疑的意見,這導(dǎo)致類似ATM等看似完美和全球一致公認的技術(shù),卻長期無法大規(guī)模普及,甚至永遠也無法普及,這會白白耗費大量社會資源。因此呼吁重新思考IPv6的發(fā)展問題。
一、IPv6“拼接編碼”結(jié)構(gòu)簡介
IPv6地址有128位長度,人們普遍認為IPv6的地址空間就是128位。但這種想法是不對的,因IPv6地址結(jié)構(gòu)設(shè)計很奇特,其地址空間并非如人們想象的就是128位空間。要理解IP地址的結(jié)構(gòu)原理,可以用E.164電話號碼來做參考。電話號碼的結(jié)構(gòu)是“國家或地區(qū)代碼+區(qū)號+電話號碼”,三段不同的代碼代表了不同的層級。在IPv4地址中,是采用“網(wǎng)絡(luò)ID(A、B、C、D、E類不同長度的地址)+主機ID”的結(jié)構(gòu)。在IPv6主要的單播地址中,從大的原則上看,似乎也是采用類似IPv4的“網(wǎng)絡(luò)ID+主機ID”結(jié)構(gòu),只不過IPv6的網(wǎng)絡(luò)ID變成了具有三層更細結(jié)構(gòu),并且是固定長度的子網(wǎng)前綴:“頂級聚合ID+次級聚合ID+站點級聚合ID”,而IPv4中的主機ID,變成固定64位長度的“接口ID”。
表面上看,這樣的設(shè)計是符合一般地址結(jié)構(gòu)設(shè)計規(guī)律的。問題在于,從通信協(xié)議的最一般原理來說,需要有“分層”的概念,最一般的通信原理是七層協(xié)議。不同層次的問題應(yīng)當(dāng)交給不同層次的協(xié)議去解決,不同協(xié)議層之間應(yīng)當(dāng)透明。由于IPv6地址設(shè)計者認為128位長度實在是太富裕,既然IP地址要升位,不如乘機解決更多的問題。這樣一來,把過多不應(yīng)該由IP地址層考慮的其他協(xié)議層的問題,過多地摻雜進了IPv6地址中,由此導(dǎo)致了一系列致命的后果。原則上說,IP地址應(yīng)當(dāng)屬于網(wǎng)絡(luò)層的協(xié)議,它應(yīng)當(dāng)與物理層和應(yīng)用層透明,但IPv6兩個大的地址段的設(shè)計摻進了物理層地址和應(yīng)用層。兩個地址段事實上采用了完全不同的編址設(shè)計和分配體系,這是一個非常奇怪的設(shè)計,使得IPv6事實上并不是單一的地址,有點像把6位郵政編碼與13位個人身份證號碼,這兩種各自獨立的編碼直接拼接在一起形成的“拼接編碼”。
二、IPv6詳解2.1 子網(wǎng)前綴地址
IPv6地址有很多分配給了一些特殊目的用途,如:
未指明地址 ::/128
環(huán)回地址 ::1/128
組播地址 FF00::/8
本地聯(lián)接的地址 FE80::/10
這些不是專業(yè)人員可以不用去詳細討論。除此之外,IPv6地址的主體是可聚合的“全網(wǎng)單播地址”(global unicast address),這些地址的前綴從001直到111。這種單播地址采用“子網(wǎng)前綴”加“接口ID”的基本模式,并且“可聚合的全網(wǎng)單播地址”采用子網(wǎng)前綴和接口ID各占64位的模式進行分配。
以IPv6版本RFC2373為例,其分配的細節(jié)如下:
2.2 接口ID
以2006年的IPv6版本RFC4291為例,相關(guān)描述如下
ModifiedEUI-64 format-based interface identifiers may have universal scope when derivedfrom a universal token (e.g., IEEE 802 48-bit MAC or IEEE EUI-64 identifiers [EUI64])or may have local scope where a global token is not available (e.g., seriallinks, tunnel end-points) or whereglobal tokens are undesirable (e.g., temporary tokens for privacy [PRIV]).
這就是說,接口ID是按照IPv6協(xié)議之外的其他全網(wǎng)唯一的標識來解決的。一般是采用全網(wǎng)唯一的48位(實際長度為47位)長度的MAC地址(就是計算機網(wǎng)卡等都會有的唯一標識)生成或64位長度的IEEE EUI-64標識符。也可以在全網(wǎng)唯一標識難以獲得情況下,獲得只在本地唯一的標識。還可以在不希望有全網(wǎng)唯一標識情況下采用私有策略。
RFC2373附錄A里,提供了“如果只具有非全網(wǎng)唯一物理接口地址,以及沒有物理地址情況下”產(chǎn)生接口ID的方法。
對于沒有物理地址的情況,可以采用三種方法來產(chǎn)生接口ID:
手工配置;
產(chǎn)生一個隨機數(shù)字;
利用節(jié)點的序號。
在這個設(shè)計里,之所以采用“接口ID”(interface ID)這個名稱,顯然表明了它的根本目的就是要采用終端物理地址來建立這部分編碼。從最普遍的設(shè)計原則來說,物理地址是需要具有全網(wǎng)唯一性的。并且在IPv6所設(shè)定的使用環(huán)境中,接口ID的全網(wǎng)唯一性也具有重要價值。這主要體現(xiàn)在兩個方面:
一是很好地支持移動。如果假設(shè)物理地址不具有唯一性的話,當(dāng)兩個具有相同物理地址的終端移動到同一個站點時,它們產(chǎn)生的IPv6地址將沒有區(qū)別。如果太多沖突的話,將使整個系統(tǒng)崩潰。因此,盡管附錄A里對不具有全網(wǎng)唯一物理地址、甚至不具有物理地址情況下如何獲得接口ID進行了建議,并且建議中甚至有任意產(chǎn)生一個隨機數(shù)字的方式,但這種方式顯然不能成為主流,因為它如果成為主流的話,所謂“接口ID”就完全失去意義了。
二是其安全性的考慮。就是通過全網(wǎng)唯一的物理地址來唯一地確定終端的身份。
根據(jù)以上對IPv6地址基本思路的分析,可知該協(xié)議會存在如下嚴重的問題。
三、IPv6將使運營商網(wǎng)絡(luò)拓撲完全透明
在IPv6的地址申請過程中,并不像IPv4那樣是申請整個IP地址段。IPv6運營商只能申請前64位的子網(wǎng)前綴地址,后64位的接口ID完全是另外一套分配規(guī)則,基本不受運營商管理和控制,不同結(jié)構(gòu)段的地址分配規(guī)則完全不一樣。其實,E.164電話號碼不同號碼段的分配規(guī)則機制也不一樣。ITU給各個國家分配國家或區(qū)域代碼,各個國家自己給各個城市分配區(qū)號和不同運營商的號段。各個運營商自己分配用戶號碼。IPV6卻有點反過來了,子網(wǎng)前綴是批量申請到,具體編碼由運營商自己分配,而位于后面的接口ID卻不受運營商的管理和分配。有點兒像電話網(wǎng)的區(qū)號是運營商自己分配,而用戶號碼卻不受運營商管理和分配一樣。這的確會讓人理解起來有點兒繞得頭暈。
我們來設(shè)想一下,如果一個電信運營商申請到了一批子網(wǎng)前綴,它會如何用這些子網(wǎng)前綴進行網(wǎng)絡(luò)規(guī)劃和分配呢?例如某移動運營商M,它可以用頂級聚合ID來規(guī)劃省或直轄市,用次級聚合ID來規(guī)劃城市及城區(qū),用站點聚合ID來規(guī)劃各個基站及扇區(qū)。這意味著什么?當(dāng)該移動運營商的某個手機用戶生成它的IPv6地址以后,在地址里面就清楚地顯示了該用戶所在省或直轄市,城市及城區(qū),直到其所在的基站和載扇等子網(wǎng)前綴號碼。這樣一來,假如該用戶訪問網(wǎng)站GOOGLE,那么GOOGLE很容易就可以獲取移動運營商M的一個路徑上的網(wǎng)絡(luò)拓撲,甚至通過該用戶的所在位置精確地定位用戶所在基站和其扇區(qū)的位置。如果僅僅是這一個信息,意義是不大的。但是,當(dāng)大量用戶訪問GOOGLE網(wǎng)絡(luò)后,該網(wǎng)站可以通過大數(shù)據(jù)分析很快還原出整個運營商M的所有網(wǎng)絡(luò)拓撲結(jié)構(gòu),基站所在位置、扇區(qū)方向、載頻數(shù)量甚至網(wǎng)絡(luò)性能。
當(dāng)然,這個問題技術(shù)上并非絕對不能有反制的方法。M可以采用隨機的甚至動態(tài)分配的方式來調(diào)整子網(wǎng)前綴的分配。但是,這種動態(tài)調(diào)整不是隨便可以進行的,尤其當(dāng)業(yè)務(wù)量比較大的時候,一旦調(diào)整會造成大量業(yè)務(wù)一定時間內(nèi)的中斷。另外,IPv6對子網(wǎng)前綴進行這樣的設(shè)計,本來一個很重要的目的就極大提升路由效率。地址規(guī)劃與網(wǎng)絡(luò)拓撲越是一致,路由表就越簡單,可以只根據(jù)子網(wǎng)地址前綴中部分層級的地址信息就可以完成路由。它有點類似IPv4時代提出的MPLS(多協(xié)議標記交換),子網(wǎng)前綴中的部分層級編址就相當(dāng)于標記,它可以把相應(yīng)子網(wǎng)內(nèi)的IPv6包聚合在一起進行交換。這對提升路由效率和增強QoS確實是有很大好處的。例如,北京朝陽區(qū)到深圳皇崗區(qū)的IPv6包都可以聚合在一起,而不管站點地址和接口ID是多少。這就是為什么把子網(wǎng)前綴的地址稱為“可聚合的”根本原因所在。如果子網(wǎng)前綴不按網(wǎng)絡(luò)拓撲結(jié)構(gòu)隨機地進行分配,可聚合的根本好處就沒有了。如果僅從IP路由本身角度看,IPv6可聚合的子網(wǎng)前綴設(shè)計的確是一個很突出的優(yōu)點,對提升路由效率和增強QoS確實是有好處的。可是在大數(shù)據(jù)和手機定位已經(jīng)普及的時代,這個優(yōu)點同時又可能面對嚴重的安全問題。
當(dāng)M網(wǎng)絡(luò)里用戶量大到一定程度,對網(wǎng)站、尤其像GOOGLE等訪問非常集中的網(wǎng)站,即使采用隨機甚至動態(tài)的子網(wǎng)前綴分配,還是可以在很短時間內(nèi)就可以完成對M網(wǎng)絡(luò)拓撲的大數(shù)據(jù)分析。
E.164電話號碼結(jié)構(gòu)中的不同層級也是包含網(wǎng)絡(luò)拓撲信息的,為什么IPv6會有這樣的后果,而E.164號碼就沒這個問題?原因在于:
E.164是服務(wù)于固網(wǎng)運營商電話業(yè)務(wù),當(dāng)號碼是固定的時候,即使是通過來電顯示知道電話號碼,沒有位置信息,也無法確定對應(yīng)的網(wǎng)絡(luò)拓撲結(jié)構(gòu)。
點對點之間的通話僅僅能知道極少量的電話號碼,很少存在所有用戶經(jīng)常向某一個服務(wù)點打電話的情況。
電話網(wǎng)不是數(shù)據(jù)服務(wù),很少大數(shù)據(jù)的分析能力。
來電顯示是電信運營商主動提供的服務(wù)。如果電信運營商不想對方知道來電信息,可以不提供。
用戶不移動,很難準確區(qū)分局號和用戶號分界點。
但IPv6時代已經(jīng)完全不同,“用戶移動尤其還是接口ID固定的用戶移動”“大數(shù)據(jù)”“手機定位”,這幾個技術(shù)加起來就會讓采用IPv6的運營商網(wǎng)絡(luò)拓撲基本上處于完全透明狀態(tài)。由于手機可通過WiFi等接入固網(wǎng),因此固網(wǎng)電信運營商的網(wǎng)絡(luò)結(jié)構(gòu)同樣可以輕易地被破解。不僅是GOOGLE擁有這樣的能力,用戶量稍微多一點的任何一個IPv6互聯(lián)網(wǎng)站都可以具備這種能力。
最早的IPv6版本RFC1884是1995年12月份發(fā)布,那個時候別說是大數(shù)據(jù),連互聯(lián)網(wǎng)的萬維網(wǎng)1990年剛出現(xiàn),第一個流行的瀏覽器Mosaic1.0版是在1993年11月份才發(fā)布,GOOGLE公司也都還沒有成立,那時侯根本想不到會出現(xiàn)今天的技術(shù)局面。雖然后來IPv6協(xié)議的版本經(jīng)過很多的改變,如:
RFC2373,1998年7月
RFC3513,2003年4月
RFC4291,2006年2月
接口ID設(shè)計的最新標準是RFC8064,2017年2月。
但是,IPv6這種將物理層的信息嵌入到IP地址中的基本設(shè)計思想,在其最初一旦形成后是無法改變的,能改變的只是細節(jié)。如接口ID可以不止是采用MAC地址作為全球唯一編址的工具,也可以利用其他更多的物理層地址等。
為什么IPv4沒有這個問題,而IPv6會有這個問題呢?因為IPv4純粹只是網(wǎng)絡(luò)層的地址,電信運營商各個網(wǎng)絡(luò)拓撲的IPv4地址主要只是在網(wǎng)絡(luò)內(nèi)部使用,通信的信宿(信息接收的終端)并不會知道這些地址。在現(xiàn)在的電信運營商網(wǎng)絡(luò)里,拓撲的各個節(jié)點都有對應(yīng)的物理層地址,包括基站和扇區(qū)都有編號。但它們都只是在運營商的網(wǎng)絡(luò)內(nèi)部使用,一旦出了運營商的網(wǎng)絡(luò),這些信息就都被剝離掉了,對方通信終端的信宿不可能獲得這些地址信息。但IPv6把所有物理地址與IP層的地址混同了,而IP通信的雙方一般都是知道對方的整個IP地址信息的,因為一個完整的IP包頭會包含通信雙方的IP地址信息。把電信運營商的物理層信息完全暴露在IP地址信息中,等同于裸奔。
一個電信運營商的網(wǎng)絡(luò)拓撲和網(wǎng)絡(luò)性能往往是其核心商業(yè)機密之一,運營商們真的想清楚了IPv6帶來的這種后果,并且愿意承受嗎?
四、“良民IPv6用戶”同樣裸奔
如果電信運營商們真的不在乎這個事情,那到也罷了,作為普通用戶我們何苦要操這份閑心。但是,IPv6會讓用戶也同樣裸奔,那我們就不能不操心了。
接口ID對應(yīng)了最終用戶終端的地址。一般情況下,這個地址是用MAC地址等物理地址按一定規(guī)則生成的。這樣,采用這種方式的用戶一旦進行通信,通信的另一方從IPv6地址的接口ID中是可以根據(jù)IPv6的規(guī)則輕易還原出用戶的MAC地址的。而MAC地址相當(dāng)于用戶的網(wǎng)絡(luò)身份證。這會導(dǎo)致什么情況?這種“良民IPv6用戶”也相當(dāng)于在互聯(lián)網(wǎng)上裸奔。尤其當(dāng)你訪問導(dǎo)航類網(wǎng)站的時候,相當(dāng)于讓這些網(wǎng)站時時刻刻在跟蹤自己,這實在是太糟糕了。更糟糕的是,一般不懂互聯(lián)網(wǎng)技術(shù),尤其不懂IPv6這種地址設(shè)計缺陷的人不知不覺地會用MAC地址生成自己的接口ID,而IPv6又容許可以用其他方式,甚至用隨機方法和手工生成。這會導(dǎo)致什么結(jié)果?黑客、極專業(yè)的用戶等可以自己知道如何用這些方法匿名,形成“匿名或隱身IPv6用戶”。這樣,IPv6就會通過接口ID是否采用全網(wǎng)唯一的物理地址,而將用戶分成“良民”和“隱身”兩類。像GOOGLE、百度、騰訊、阿里巴巴等這種全網(wǎng)用戶都可能會大量使用的網(wǎng)站,很容易通過解析良民用戶IPv6地址中的MAC地址等開發(fā)相應(yīng)的軟件進行大數(shù)據(jù)分析。這會是什么結(jié)果——近似于人口和物聯(lián)網(wǎng)終端及其軌跡、行為的實時監(jiān)控。
一旦人們普遍發(fā)現(xiàn)這個問題、尤其是出了安全事故之后會是怎樣?絕大多數(shù)用戶都會要求自己的接口ID是匿名和隱身的,甚至于不斷變換接口ID。這樣會導(dǎo)致全網(wǎng)唯一的物理地址生成接口ID的途徑最終有可能被廢棄。而本質(zhì)上接口ID要求是全網(wǎng)唯一的,能保證全網(wǎng)唯一性的途徑只能是全網(wǎng)統(tǒng)一分配且地址固定。其他途徑,尤其黑客等隨機生成的接口ID不可能是全網(wǎng)統(tǒng)一分配的。沖突檢測也只是在一個站點內(nèi)、頂多同一個次級聚合ID覆蓋的站點內(nèi)進行,不可能全網(wǎng)進行。現(xiàn)在IPv6沒普及,所以對這個問題不會有任何感覺。但隨著網(wǎng)上IPv6用戶量越來越大,接口ID的沖突機率就會越來越大。這相當(dāng)于全世界所有用戶都在隨機地或自己給自己編64位的接口ID,地址沖突的機率就會越來越大。
5G準備全部采用IPv6,如果5G手機用戶知道自己將在5G時代完全在網(wǎng)上裸奔,他們是否會要求自己的IPv6地址接口ID必須是隨機變換的,否則就會拒絕采用該運營商的5G服務(wù)。如果出現(xiàn)這種情況,5G的推廣是否會受到阻礙?
五、安全設(shè)計帶來的巨大安全隱患
如果表面來看,IPv6提供了更多安全設(shè)計,通信應(yīng)該更安全才對。但是,我們一定要首先理解安全性的一個最基本的特點,就是它相對不同利益相關(guān)方的互斥性。
簡單來說,通信安全類似于戰(zhàn)爭中的攻防雙方較量的過程,同一個技術(shù)相對于較量的雙方,其安全性評價是完全相反的。例如,采用防空雷達可增強防御一方的安全性,但對進攻一方的海空軍就不安全了。采用隱身戰(zhàn)機對進攻一方更安全,而對防御一方就更不安全了。反導(dǎo)系統(tǒng)對防御導(dǎo)彈攻擊的一方來說更安全了,但對導(dǎo)彈進攻的一方就更不安全。
通信技術(shù)的安全性對不同利益相關(guān)方來說,其評價也是完全相反的。通信系統(tǒng)涉及的利益相關(guān)方不僅有通信的雙方,而且還有主權(quán)國家對通信系統(tǒng)的安全監(jiān)管,對潛在黑客的偵破等。如果通信過程可以被監(jiān)聽到,對通信者來說是不安全的,但對監(jiān)控通信過程的一方來說則更安全。如果通信過程被加密后不能被其他第三方監(jiān)聽到,對通信雙方來說更安全,但對監(jiān)管通信網(wǎng)絡(luò)的主權(quán)國家來說就存在信息安全問題。因此,互聯(lián)網(wǎng)的通信安全是應(yīng)用層的事情,而不能在IP層去考慮。
互聯(lián)網(wǎng)曾把匿名作為其優(yōu)點之一,但是,這種完全不能確認用戶身份的狀態(tài)導(dǎo)致了網(wǎng)絡(luò)黑客橫行。IPv6試圖在IP層提供解決通信安全性的手段,這種技術(shù)手段主要體現(xiàn)在兩個方面。
一是IPv6地址設(shè)計中采用接口ID設(shè)置,提供了確認對方物理終端的技術(shù)條件。
二是IPv6還在其擴展頭中增加了身份驗證頭AH和封裝安全性數(shù)據(jù)頭(ESP)。
這些安全設(shè)計提供了多方面的安全服務(wù):
驗證數(shù)據(jù)源身份。這是通過使用散列技術(shù)來實現(xiàn)數(shù)字簽名;
對數(shù)據(jù)傳輸過程進行保密。如果使用隧道模式,則不僅可以對傳送的數(shù)據(jù)進行保密,甚至對IP包頭也可以保密。
要理解以上設(shè)計存在的問題,我們可以先參考一下INTEL公司CPU安全設(shè)計的案例。INTEL公司曾經(jīng)想在其CPU中增加全球唯一的序列號,以增加所謂的安全性。但這個設(shè)計因為會使全球終端PC用戶被鎖定而受到強烈反對,此事不得不最終作罷。但IPv6接口ID的設(shè)計相比CPU中增加序列號有過之而無不及。因為CPU中的序列號還需要特殊的軟件才能啟用,不是隨便誰都可以用的,并且一旦在CPU中加了序列號,所有CPU都會有,大家都是平等的。但IPv6的接口ID會使“良民IPv6用戶”在通訊過程中一旦自己的IP包傳過去,第一時間就把自己終端的MAC地址告訴對方了。這相當(dāng)于把自己的身份證號碼貼在自己腦門上,并在所有通信過程中暴露自己的身份。同時IPv6的隨機產(chǎn)生接口ID的方式卻讓黑客IPv6用戶可以輕易匿名。作為生活在社會中的每個人,在很多情況下必須接受自己的身份被公開,例如采坐飛機和高鐵就得出示身份證。如果只是去超市買瓶水,到餐館吃個飯,憑什么要人出示身份證?但是,IPv6事實上是要求良民IPv6用戶在網(wǎng)上一切條件下進行任何服務(wù)得在出示自己的身份證。這能被社會接受嗎?
如果市場不能接受INTEL公司在CPU中增加全球唯一序列號的話,實在難以理解為什么可以接受IPv6的接口ID設(shè)計方式?原因只是IPv6還沒有大規(guī)模地普及,人們根本搞不明白IPv6的接口ID是怎么回事,等明白了并且出過問題后就不會再接受了。
在IPv4為基礎(chǔ)的互聯(lián)網(wǎng)中,如果黑客對某個合法用戶發(fā)起攻擊,我們有可能通過IP地址找到其攻擊地點。但如果IPv6中安全網(wǎng)關(guān)的隧道方式被黑客采用的話,從網(wǎng)上就根本無法確認其數(shù)據(jù)包是從什么地方發(fā)出的了。如果隧道方式被敵對國家的間諜機關(guān)以及犯罪分子采用,我方安全機關(guān)就難以追蹤其活動。不僅搞不清楚對方通信的內(nèi)容,連對方通信地址和如何區(qū)別敵方通信的數(shù)據(jù)包都做不到了。作為主權(quán)國家,能接受這樣的狀況出現(xiàn)嗎?
IP層所要做的事情就只是做好IP層的事情就夠了。IP層要解決的安全問題應(yīng)當(dāng)僅限于數(shù)據(jù)本身的正確性和可靠性,即:如何準確、可靠、高效地將數(shù)據(jù)從信源傳遞到信宿,不該它解決的問題就不該去考慮。如果像IPv6這樣把從物理層到應(yīng)用層的功能全包在里面,由于互聯(lián)網(wǎng)贏家通吃的特點,像GOOGLE這種全球用戶都可能去訪問的網(wǎng)站,不僅成為人口管理的新聯(lián)合國政府,而且成為世界所有電信運營商網(wǎng)絡(luò)拓撲信息大全了。中國和其他各國政府真的想清楚這種后果是什么了嗎?
六、含混的地址空間問題
正如前面所說,IPv6是一種拼接編址。這樣一來,它的地址空間就不是單純的128位。子網(wǎng)前綴決定的只是子網(wǎng)地址的空間,與最終用戶數(shù)量是多少沒有直接關(guān)系(只有每個站點管理多少用戶的間接關(guān)系)。如同一個郵政編碼覆蓋的區(qū)域與最終居民是多少根本沒有直接關(guān)系一樣。用戶地址的空間是由接口ID的長度決定的,從目前看,它最大就是64位。當(dāng)然,未來也可以將保留的編址部分進行新增的設(shè)計,對接口ID進行擴展,從而高于64位。但這樣一來整個路由算法就將完全不同,一定程度上等同于另一個全新的IP協(xié)議。并且接口ID地址長度增加了,會壓縮子網(wǎng)前綴的地址空間。如果64位用戶地址真的不夠用了,同時也會需要更多子網(wǎng)前綴的地址空間來管理用戶。因此,這樣的未來設(shè)想不能簡單地以增加接口ID來考慮。
如果接口ID是采用48位的MAC地址,因為其中u比特在IPv6中要求是固定為1,因此,事實上的有效長度是47位,這才是實際的這種設(shè)計的IPv6用戶地址空間。當(dāng)然,從我們所進行的分析來說,47位地址其實也足夠了,但人們在宣傳IPv6的時候簡單地說它有128位地址空間,“可以給地球上每個沙子分配一個地址”顯然在技術(shù)上太不嚴格。47位地址空間相比IPv4也就增加了15位,與宣傳的128位差距實在是太遠了。
七、IPv4地址空間耗盡問題其實并不存在
這可能會是一個非常令人震驚的結(jié)論,但它卻是實實在在的客觀現(xiàn)實。IPv4地址空間并不是人們一般理解的32位。因為NAT地址的使用,事實上IPv4的地址被極大地擴展了。它有點類似電話網(wǎng)中的分機號碼。具體能擴展多少呢?NAT地址使用了三個不同類型的網(wǎng)絡(luò)ID。
A類地址:10.0.0.0至10.255.255.255
B類地址:172.16.0.0至172.31.255.255
C類地址:192.168.0.0至192.168.255.255
即使以C類地址來看,一個公網(wǎng)IPv4地址可以擴展出65535個NAT里的IPv4地址。事實上,即使純粹從IPv4的公網(wǎng)地址來看,所謂IPv4地址不夠用的問題遠沒那么嚴重。隨著互聯(lián)網(wǎng)用戶量接近人口總量,其對IP地址的消耗速度也很快慢下來。只要比IPv4的理論空間多出2個數(shù)量級,其地址空間就足夠了。多年前我們經(jīng)常聽到電話號碼升位的消息,但有很多年已經(jīng)沒聽到過這樣的消息了。原因在于一方面由于移動技術(shù)的發(fā)展,固定電話用戶增加到一定程度后轉(zhuǎn)為下降,不再需要更多號碼資源。另一方面,電話升到8位以后,其理論空間為8千萬個,這已經(jīng)遠遠超過世界上任何城市的潛在用戶量。NAT地址以最少的C類地址來進行擴展也有4個數(shù)量級的潛力。如果采用B類甚至A類地址潛力就更大了。
NAT地址確實也存在一定的技術(shù)問題,如私網(wǎng)穿透等,但這些都已經(jīng)解決或有很簡單的技術(shù)就可完全解決。
更準確地說,現(xiàn)在一般使用的是NAPT,用NAT網(wǎng)關(guān)IP地址的端口號作為建立臨時TCP/IP鏈接的映射,這個會存在端口號2字節(jié)16位長度(65535個)的限制。如果真想解決這個限制也不是沒有辦法。我本人就設(shè)計了一種超級IPv4的專利技術(shù),可以很好地解決這個問題。另外,采用現(xiàn)在的SDN技術(shù),也可以很容易解決NAPT端口數(shù)量限制的問題。這些技術(shù)都不復(fù)雜,并且真正兼容IPv4,幾乎可以無限擴展IPv4的地址空間。它們都是只需要很簡單的邊緣路由器以及終端TCP/IP部分的軟件升級一下就完全可以解決問題,根本不需要IPv6這么大的動靜。
因此,僅從地址空間角度來說,IPv6也純屬雞肋,有它不多,無它也真不少。
八、平滑升級問題
網(wǎng)絡(luò)技術(shù)并不像面包一樣,只要生產(chǎn)出來一個就可以被消費,它必須要形成一個網(wǎng)才有可能獲得應(yīng)用。因此,通信的新技術(shù)要成功,充分考慮與原有技術(shù)的兼容和平滑升級是極為關(guān)鍵的。IP地址是互聯(lián)網(wǎng)最基礎(chǔ)的協(xié)議,要通過完全另引爐灶徹底更換的方式解決難度極大。最初IPv6的設(shè)計者們沒太深入地動腦子,就認為IPv4的32地址空間問題不可能通過平滑升級的方式解決,因此就輕易地采用完全另起爐灶的方式重新設(shè)計。我們只要考察另外一個技術(shù)案例就知道網(wǎng)絡(luò)領(lǐng)域里的平滑升級有多重要,并且為此付多么大的努力都是值得的了。
電視技術(shù)最初是黑白的,為了發(fā)展彩色電視,要克服的困難并不在于如何實現(xiàn)彩電本身,而是如何能讓過去的黑白電視網(wǎng)絡(luò)兼容且可以平滑升級。也就是黑白電視傳播發(fā)射設(shè)備可以兼容彩色電視信號,原來的黑白電視機可以接收和播放彩色電視信號(雖然放出來當(dāng)然還是黑白的),新的彩色電視機也可以接收原來的黑白電視信號。這個難度實在是太大了,為了解決這個問題,人們把三基色的彩色信號分離成亮度信號(相當(dāng)于黑白電視信號)和色度信號,通過梳狀的頻譜安排將兩者混在一起,在接收機端用梳狀濾波器將兩者分離。這些功能都是通過模擬技術(shù)實現(xiàn)的,花了業(yè)界整整30多年時間才攻破了所有技術(shù)難題。可以說,彩色電視系統(tǒng)是模擬電路時代技術(shù)復(fù)雜度的巔峰之作。但是,一旦解決了平滑升級的問題,彩色電視很快就普及了。
因為IPv6想圖省事兒繞開解決平滑升級的問題,所以雖然它短時間內(nèi)很快就推出來,卻花了20多年還是看不到真正普及的希望。到現(xiàn)在還想靠行政命令搞IPv6-Only強行推廣。在平滑演進的問題上,想快是快不了的。想最快的結(jié)果很有可能就是根本做不成。
由于現(xiàn)在全網(wǎng)如此之多的用戶全都在用IPv4,如果要想實現(xiàn)IPv4向IPv6的轉(zhuǎn)換,不可能全球用戶在同一時間一次性完成,必然存在一個非常漫長的轉(zhuǎn)換期。在其轉(zhuǎn)換過程中,如果只是部分用戶采用IPv6,無論采用隧道方式還是雙棧方式進行兼容,采用IPv6的用戶其實就相當(dāng)于IPv4中的一個私網(wǎng),它的一切假設(shè)的技術(shù)優(yōu)勢特點都發(fā)揮不出來。既然如此,為什么不直接用IPv4的NAT網(wǎng)解決問題拉倒?IPv6已經(jīng)成了全球通信領(lǐng)域里的一個政治正確,所有運營商和用戶誰也不敢反對它,甚至表面上大家都在支持它,但又誰都不會積極地率先采用它。
有人認為物聯(lián)網(wǎng)是最適合IPv6的,這完全是立場決定觀點,屁股決定腦袋。NB-IoT里的終端通信頻率極低,碼率也極低,幾乎沒有任何通信性能的要求,采用NAT技術(shù)才是最適合的,用一個IPv4公網(wǎng)地址和A類私網(wǎng)地址擴展出數(shù)量上千萬的物聯(lián)網(wǎng)終端都沒問題。如果不去大規(guī)模地使用,網(wǎng)絡(luò)設(shè)備里IPv6的潛在技術(shù)缺陷就發(fā)現(xiàn)不了,這樣率先采用IPV6的用戶反而可能遇到很多服務(wù)不好的問題。要一直到所有用戶全都采用IPv6了,它使用起來才真正順暢。
說白了,IPv6最大的價值就是要解決一個地址空間問題,其他多余引入的技術(shù)只會同時引入一堆潛在的麻煩。地址空間問題又因IPv4的NAT技術(shù)的存在而可有可無,這就會使IPv6的普及變得如登天般困難。
坦率地說,原來以IPv4為甚礎(chǔ)的互聯(lián)網(wǎng)也有不同的安全問題,社會也都忍了,或叫適應(yīng)了,或通過其他技術(shù)彌補了,或者再說得悲觀點叫不愿接受也無可奈何吧。所以,就算我們不考慮前面所說的IPv6存在安全性的巨大問題,它要是真能普及的話我們也樂見其成。但因為它的跨度太大而不能平滑升級,同時IPv4又足以很簡單甚至更有效、更合理地解決所有IPv6想解決的問題,而IPv6本身新帶來的安全問題比它解決的還要多得多,所以IPv6很可能成為另一個ATM——它純屬一個政治正確,全世界所有人表面上都在支持它,甚至一致公認地認為它是最理想的技術(shù),但100年以后也沒法普及。為此整個社會將永無止盡地為一個根本不可能普及的技術(shù)無謂地白白耗費大量資源。
別以為所有技術(shù)都是越變化越好的。有誰希望自己的郵政編碼不斷變化的?
-
IPv6
+關(guān)注
關(guān)注
6文章
690瀏覽量
59553 -
網(wǎng)絡(luò)層
+關(guān)注
關(guān)注
0文章
40瀏覽量
10337
原文標題:重新思考IPv6發(fā)展的呼吁
文章出處:【微信號:industry4_0club,微信公眾號:工業(yè)4俱樂部】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論