|
為什麼需要IPv6? “世界上每樣物品都需要識別” J.C.Ramesh Babu IPv6 Special Interest Group, Communication And Product Services (CAPS) Division, Infosys Technologies Limited, Electronics City, Hosur Road, Bangalore 561229, INDIA. Email: rameshbabu_j@inf.com摘要 起初網際網路世界(Internet World)是以IPv4起步的,而現在IPv6誕生了,這給了網際網路一個新的開始,但是每當有一個新的協定(protocol)產生的時候,總是會伴隨著出現一個問題:為什麼需要它?任何人回答這個問題的方法都是試著去列舉出之前的協定所潛藏的危機或是發展上的限制。這些限制並不是因為該協定的效率不足,而是因為需求的龐大產生。這一份文件試圖來回答「為什麼需要IPv6?」這個問題。 導論 對於網際網路最好的形容就是將它描述成一群子網路所集合成的較大網路,而所謂的子網路是指由大專院校、政府機關、公司行號或是最小的終端個體所構成的網路。IP乙太區域網路(Ethernet LANs),環型的區域網路(Token
Ring LANs),路由器(Routers),中樞網路(Backbones),集線器(Hub),廣域網路(WANs)和都會區域網路(MANs)是網際網路的一些基本成員,而IP
(網際網路通訊協定,Internet Protocol)是將這些成員緊密結合的黏著劑。網際網路通訊協定現有的正式版本IPv4,是最被廣泛使用的網路層(Network
Layer)協定,它提供了一個不用預先連結的最佳封包(packet)傳送系統。 網際網路正在迅速地膨脹和爆炸中。網路常被想成是一群電腦的集合,但是現在它已經發展到超出電腦了。新的裝置通常會具有一小片可以裝置IP的金片,甚至連烤麵包機都可以擁有一個IP位址(IP address)。Email、FTP、Telnet和www,一些網際網路初始的應用,已經不再是唯一的應用層面了。VoIP、多媒體(Multimedia)、虛擬私人網路(VPN)或線上遊戲是新一代的應用層面。網路因主從模式(client/server)環境和多媒體技術的進展而變的日益複雜,而IPv4受到位址空間的限制、服務品質(QOS)和安全上的疑慮,已經沒有辦法滿足這些持續成長中的需求。Host-Density Ratio (RFC-3194)的研究有敘述在32位元位址長度上,網際網路所能處理的痛苦程度,而根據這份文件敘述,若有5千100萬台主機的話,其痛苦程度是處尚能負荷階段,但若再多給固定位址的話痛苦程度就會劇烈地增加。 繼承IPv4的下一代的網際網路通訊協定IPv6,是解決這些問題的保證方案。IPv6維持了IPv4的好的特質而去除了它不再適用的方面。IPv6有著比IPv4長的地址空間,因此它最多可以給每個人大約1500個實體位址;IPv6的檔頭(header)長度是固定的,而這可以降低網路層在處理網際網路上元件的負擔。 IPv4的簡史 在網際網路上的每台主機和路由器都有一個IP位址用以識別該主機。所有的IP位址都是32位元的長度,用在IP封包的來源和目的位址欄位。這些位址也被稱為identifier。早在80年代,IP Gurus就意識到由於需求量開始逐漸增加而有將IP位址階層話的需要性。這引導出了依IP位址分成Class A,B,C,D和E的概念。IPv4的位址佔32位元長,可以分配位址給大約40億個獨立裝置。 依照IP位址的分類等級,Class A提供了1千6百萬個位址,而Class B大約是1萬6千個網路(約65k台主機),Class C則大約2百萬個網路,另外Class D和E分別用來做群播和研究的活動。這種被採用的分割結構和管理政策減少了實際上可以使用的位址總數,因此真正可以實現的數字是2億四千萬。IAB已經指出這種位址不足的危機,而各組織正面臨由ISPs、RIRs和IANA取得配置位址的困難。 於是IETF工作群組決定利用以下幾種方法來解決這種無效益的使用和位址空間危機的問題: l 分成子網路(Subnetting) l 不分級網域間路由(Classless Inter Domain Routing, CIDR) l 網路位址轉譯(Network Address Translation, NAT) l 位址重複使用—動態主機設定協定(Dynamic Host Configuration Protocol, DHCP) Subnetting Subnetting使許多實體網路共享相同的IP位址,而每個實體網路都變成一個子網路,各個子網路以IP位址的網路部分和子網路部分來區分,而子網路遮罩就代表了其ID(subnet-id)。Class B位址越來越稀少,所以IETF決定也配置Class C的位址區塊。很明顯地,Class A網路對大多數的組織來說太龐大,而Class C網路又太小,Class B是最恰當的選擇,但這衍生出了一些其他的問題。假想一個組織已經配置了5個Class C位址,此組織網路的路由器必須要有五種不同的路由內容,這必須花5倍的記憶體在路由表上。路由器會變的負擔過重而導致執行效能較低。這樣的問題可以用CIDR來避免。(不分級網域間路由) CIDR 研究顯示超過一半的Class B位址都已經配置出去,這使得必須對一個網站配置數個Class C網路位址。對於Class C位址的配置將使得路由表內的每個Class C位址新增一個登錄單元,而導致路由表的大小增加。CIDR(不分級網域間路由)對這個問題提出了短暫的解決辦法。它運用一種超網路(super netting)的概念。CIDR基本上是將剩餘的Class C網路以不固定長度的區塊配置,並允許其路由。CIDR雖然減緩了網際網路路由表的成長,它卻對已經存在的路由毫無貢獻。 NAT 當一個企業或是組織無法清楚總結其內部封包所傳遞的路徑時,這將對中樞路由表造成相當大的負荷而導致該企業(組織)被迫使用獨立的私有位址。當位址分配不再是自由並且不再經由ISP來控制分配時,某些ISP開始提供實有位址給他們的客戶。NAT允許一台獨立裝置,例如路由器,來當做區域網路以及網際網路之間的代理者。藉著這個方法,IP位址在隱瞞終端使用者的情形下從一個群體被對應到另一個群體。這樣一來只需要一個獨立且唯一的IP位址就可以代表一個公司的所有部門團體。NAT也可以被應用在某些組織的安全性原則裡。就外行角度來看,NAT就像一個轉達員一樣。 DHCP DHCP提供了一個架構可以用來傳遞設定的資訊,例如IP位址,閘道路由器的IP位址,子網路遮罩,名稱伺服器位址,對於用戶端的時間延遲等等。這表示用戶端在開始使用TCP/IP協定以互相溝通前並不需要做額外的設定工作。DHCP伺服器在既有的一組IP位址前提下可以提供一個IP位址以及額外的控制資訊給用戶端,而這個動作藉由發出DISCOVER封包來達成。一但用戶端關機一段時間並且超過了一個期限,該IP位址將被收回並重複使用。 IPv4的限制 以上的章節對IP做了基本的介紹,以及一些IETF用來修正IPv4限制的解決方法。接下來這一節將對IPv4的議題及限制來做詳細的解釋。 位址空間(Address
Space) 對於需要一個新的協定最重要也最令人信服的原因是陡峭的成長率。在最近幾年裡,許多研究都顯示在網際網路裡的網路數量是每年以倍數成長。IPv4的32位元位址雖然能夠容納40億台裝置,但對於所期望的和預測的長期成長來說仍是不夠的,更何況實際上的數字是大約2億4千萬。在一開始,網際網路的主要目標是能連接世界上的所有電腦和網路而創造一個全球性的網路。而現在目標改變了,新的應用陸續開發,而更多的裝置都能夠連上網路。儘管IPv4能夠實現其中少數的需求,我們還是需要考量到效能。分析師指出在2000年時我們已經用掉了40億的IPv4位址的一半,而依照成長速率(每年加倍)和新的需求產生,我們必須要有更大的位址空間。即使是40億個位址也無法全數配置給所有需要位址的人,因為當達到一個極限點的時候,網際網路的效能就必然會降低[見H-D ratio RFC-3194]。InterNIC已經開始限制IPv4位址的配置。組織團體和公司行號也早一步開始配置私有位址。”Everything over IP”是一句醒目的標語,如它的字義,希望地球上的每樣東西都裝上能配置IP的電子晶片。行動電話、冰箱、筆記型電腦和汽車是其中一些例子,它們都逐漸研發成能配置IP。第三代的網路即將上線,無線裝置將從迴路切換(Circuit-switched)轉為封包交換(packet-switched)的資料傳送方式。因此很明顯地我們需要大量的IP位址,而IPv4無法滿足此需要。 設定配置(Configuration) 在這裡我們所指的設定配置是指將一個IP位址配置給一台主機(介面)。第一次對某個新的用戶端設定會有一些負擔以及風險。對網路管理人和負責人來說,當他們要配置一個大的網路時就變的相當地麻煩。雖然有BOOTP和DHCP這些方法來幫助他們處理,還是相當費力的。網路管理者需要用手工鍵入一個IP位址。在使用IP並且經人工定義IP位址的網路其數目相當地龐大。 路由(routing) 路由是IP最重要的功能之一並且可以用來確定在網路世界裡的可達性。在IPv4的檔頭裡有許多欄位而這些資訊對於中介的路由器比較沒有那麼重要。一個路由器的工作只要去查看一個封包內所包含的目的地資訊,並且將這個封包繼續向前送離自己的介面即可。但這個動作將會增加路由器的負荷並且降低轉送的速度。 位址配置是近來較有興趣的一門領域,然而對於網路管理者來講有時存在著相當的困擾性。所有的問題都會在網路管理者決定使用單一平面化的位址空間時一併出現。這個方法有可能會耗盡IP位址,而解決的方法就是使用階層化的位址配置。因為不使用階層化的位址將使得中樞路由器被迫儲存在世界上所有網路的可達性資訊,這樣一來將導致路由器的效率變差,而經由CIDR解決這個問題並不會保證產生一個比較有效率以及明顯階層化的解決方案。 檔頭(header) (圖一)是一個IP資料段(datagram),它包含了一個檔頭以及資料的部分。檔頭是一個固定為20bytes長的部分,並且擁有不同的選擇項目。在固定的20bytes部分裡存在一個欄位稱為TOTAL LENGTH,代表包含檔頭以及資料部分的整個封包其全部長度為何。IPv4檔頭的長度是可變的,然而這將增加路由器處理封包時的延遲時間。這就是IPv4的限制。
圖一. IPv4檔頭 即時性(Real-Time)多媒體 即時性的和多媒體的應用程式,如連續性的音效或視訊,變的日漸廉價。這些應用由於需要龐大的時間,所以通常在流量中佔有相當的優先權以及量。IPv4檔頭並沒有定義這一項優先權也沒有定義QOS,而TOS欄位也不適用於即時性與多媒體的應用。 分段(Fragmentation) 假如IP資料段的大小比鏈結層(linked layer)的MTU(最大傳輸單位, )還大,那麼IP資料段就會被分成數個較小的片段。在IPv4的網路除了執行分段的來源之外,路由器同時也需要再更一步地將這些片段再做分割。這是因為IP的特性,傳輸封包過程中所做的轉送決定(資料封包轉送),以及假使路由器決定經由其他鏈結轉送某的封包時,在MTU都會有所改變。這個進一步分割的動作加重了路由器的負荷儘管我們可以將封包內的分割位元設定成1來避免這個動作,然而這並不是一項合理的方法。 NAT的問題 網路位址轉譯,也就是一般所謂的NAT(圖二),是為了解決額外位址空間需求而生的。NAT允許網路管理者在防火牆以及NAT盒後面隱藏廣大的使用者族群。某些私有或是特殊的位址例如10.x.x.x,172.6.x.x,以及192.168.x.x,NAT都將它們視作混雜網路架構。 圖二. NAT概觀 NAT是主要用來解決龐大的用戶端系統需求的一個短程解決辦法,但是對於網路伺服器卻毫無幫助,因為他們需要唯一且固定的IP位址。NAT同時抹煞了點對點的概念,因為對外面世界看來一個特定的IP位址並不是代表一個終端點,反而是代表一個允許NAT協定的路由器或是防火牆。當執行tracerout時或許會得到一個ICMP的錯誤訊息或是會出錯。而使用鏈結導向技術的應用也會失敗,因為他們並不知道如何送達封包至最後的目的主機。這就像是TELNET到一台防火牆後的主機,會失敗是因為TCP會尋找SYN封包以建立一條路徑,而應用方面也會出錯假如他們互相交換各自的IP以及連接埠號碼。雖然NAT提供了一個方法可以用來改寫或是轉換應用程式的資料,然而若是應用在加密方面這也許又不太可能。NAT因為天性的關係而成為新應用程式發展的阻礙,例如VoIP、線上遊戲、視訊會議以及甚至已經存在的IPSec、Kerberos,NAT是高速網路的一個瓶頸。 (VoIP) VoIP,經由IP來傳遞聲音,是經由IP達成任何事情的這個神話的最新實現方案。隨著VoIP的出現,依賴線路轉移來傳遞的聲音訊號現在被封包化並且以IP來當作傳輸協定。聲音封包會被轉成IP的封包並且經由IP網路而被傳達到目的地。大部分的網路軟硬體供應商都已經開始在他們的裝置上實現VoIP的支援技術。VoIP需要點對點的鏈結,但是就我們所知大部分的組織都因為IPv4的位址不足而使用虛擬私人位址的方式來架構網路,加上NAT本身的方向缺陷以及緩慢的解讀速度而導致VoIP在私人位址上實現具有相當的困難度。 圖三. VoIP對一個在NAT之下的私人位址撥號 安全性(Security) 在現實生活中”安全”被我們用在很多地方,走到哪幾乎都會見到。當我們離開我們車子、房子或銀行保險箱,我們會有安全上的疑慮。對網際網路也很自然地有安全感的需求。然而NAT通常是一個安全上的漏洞,因為它為了使IP資料段能夠到達目的地必須要讀取和覆寫其上的資訊。NAT改變封包檔頭上的位址對IPSec是很大的破壞。在IPv4裡安全是一個選擇性的部分。 服務品質(QOS) 當我們要購買或使用某些東西時,我們都會講究品質。品質這個字整體而言代表了很多意義。當我們被提供了品質優良的服務時,我們會很高興而且因此對於其品質不再有疑慮,於是對該項服務相當滿意。在網際網路上這種提供良好品質服務的服務稱為QOS。許多即時性的應用程式和線上裝置都要求有優先順序,但在IPv4裡QOS卻不是必須的,而只是可附加上或可選擇的。 行動性(Mobility) 世界上的每樣東西都即將能夠配置上IP,有許多裝置,如筆記型電腦、PDA等都漸漸支援無線網路。然而IPv4並不支援地址的自動配置(DHCP在網路管理者的角度來看仍是人工作業的)。這對位址配置是不划算且不夠有效率的。移動性的裝置需要自動配置、可達性以及最重要的安全性。當一台移動性的電腦轉移了位置,它需要一個傳送的位址來和它的本籍代理機器(home agent)聯繫和溝通。在IPv4則難以取得位址。IPv4環境下的行動電腦可能沒有辦法傳達她們在位置上的改變。NAT是”always on”這個需求的最大障礙。 功能選擇(Feature,
an option) 其中每個人都希望而且需要的主要特點,是移動性、QOS和安全性。但這些部份雖然存在於IPv4,卻是附加上或選擇性而不是預設的。當要求的選項數量增加時協定的複雜度也隨之升高。假如有人同時要求QOS和安全性困難的程度就增加了。 救星 – Ipv6 下一代網際網路通訊協定,也是現存網際網路協定的下一版本IPv6,能夠補足上面所提到的所有議題並且或是IPv4的缺陷,並且能夠迎接未來需求的挑戰。 IPv6的優點 驅使這個新版本的網際網路通訊協定最大的動力是IPv4的32位元地址欄位所造成的種種限制。多數的技術都加上了TCP/IP堆疊使得每個裝置都能夠享受IP。而這造成每個裝置至少都需要IP位址。因此,為了滿足這些需求,IETF在1992年公開徵求下一代網際網路的計畫。他們收到了很多回應,最後IETF決定採用SIPP的提案並加以修正,於是產生了IPv6。 IPv6解決了在前面章節所解釋過的IPv4種種限制。IPv6擴增了位址的容量而能迎合更多IP位址的需求。IPv6將IP位址的程度由32位元增加到128位元長。這項擴充提供了地址階層更多層級並且對於增加支援IP的裝置相當有益。以IPv6檔頭中的128位元來看,它可以接受的位址數量大約是IPv4位址空間(2^^32)的四十億乘以四十億乘以四十億(2^^96)倍大小。這龐大的數量讓所有的裝置都能夠擁有一個固定且唯一的IP位址。因此,不只是烤麵包機可以有一個IP位址,甚至每一片麵包都可以有一個IP位址。這樣豐富的IP位址將會淘汰掉對NAT的需要,而能幫助很多方面的發展,如新的協定、需要點對點連線的應用程式、即時性的應用程式、無線裝置以及需要高層級安全性的應用程式等。 第一次對一個主機進行設定配置不再是一件痛苦的工作。IPv6提供了一種稱為Auto-Configuration的自動位址配置方式。當一個節點連結上一個區域網路開始運作,它會藉由對當地路由器的請求訊息而建立一個自己的位址。當一個組織遷移到新的ISP,這項特色能減少該組織的工作量。CIDR雖然已階層化的位址分配壓抑了路由表的膨脹,但這個模式卻有著一個很大的限制:對使用者來說IP位址不再是固定的。針對這個議題,IPv6使用它階層化的位址分配模組並提供所有裝置唯一且固定的位址。 IPv6的檔頭大小固定維持為40bytes。除非詳細指明,額外的資訊將對中介的路由器造成最小的困擾。這種額外的資訊不再是主要的檔頭而是選擇性的部份,稱為延伸檔頭(Extension headers)。IPv6檔頭的單純化是解決路由器負荷的方式。(圖四)為一個IPv6的檔頭。 圖四. IPv6檔頭 前面提到所支援的改進和延伸,對於未來選擇的技術加強和引入新的選項也有相當的便利性。IPv6的檔頭加入了一個新的欄位稱為Flow Label,是用來標記該封包屬於某一個特定的流量(通常稱為FEC—轉發等類價,Forward Equivalence Class)。在該欄位被標記的封包前往目的地的過程會受到五星級的待遇。Class欄位也是新增加的,它是指該資料段相較於網路上其他資料段的優先順序。這個優先順序的欄位可以分成兩個主要的類別,分別是壅塞控制(congestion-controled)和非壅塞控制(non-congestion controled)流量。即時性的視訊這類資料來源流量通常會落在非壅塞的範圍,因為這類的資料傳輸時不希望會有延遲的情形。 IPv4並不夠安全。網路面臨著許多類型的攻擊,其中包括有封包探測(packet sniffing)、DOS攻擊、IP欺騙(IP spoofing)和強迫連線(connection hijacking)。IPSec可以修正這個問題,但是它在IPv4裡是附加的。IPv6的發明鋪設了一條排除這些安全上危機的康莊大道。一個系統的安全概念不僅基於一個單一元件,而是對數個元件的組合而論。IP階層正好是對抗上述攻擊的安全演算法實現的層級。IPv6的認證檔頭(Authentication Header)和ESP是解決非法修改固定欄位及封包探測的對策。IPv6採納MD5為較加的摘要演算法。而IPv6所加入的的安全概念中最好的應用算是IP VPN。IPv6對不同領域(scope)的位址(如全域和非全域位址)支援視為基本架構。非全域位址的例子包括局部的鏈結(link-local)和局部的網點(site-local)。局部的網點是設計用在一個組織的內部網路。運用非全域位址的概念,IPv6的路由器能夠找出一個特定的非全域位址屬於哪一個區域。該區域並非以自己的位址加密得到,而是以其背景判讀出,例如它是從哪裡被送出或是接收的介面。這種方法預防了路由器洩露出特定區域的每個網點資訊。因此以不同的觀點看來,有局部的鏈結和局部的網點位址也加強了IPv6的安全觀念。 行動計算是最近很熱門的話題。行動計算要求隨時隨地都能在線上存取資訊與服務。而IPv6對行動計算有利的主要設計是在於足夠的位址、安全性、位址自動配置、最佳化的路由、目的地選擇以及避免耗弱的情況。IPv4的檔頭對於行動性裝置來說是一個負擔,因為它會佔用很多頻寬。而由於IPv6有較好的壓縮格式,這個情況將不會發生。在資料負載沒有改變的時後,檔頭壓縮避免了IP封包檔頭的重複性,因而可以增加頻寬和頻譜的效率。IPv4也有檔頭壓縮的技術,不過效率並不佳。檔頭壓縮減少了IPv6封包整體大小高達75%,並在以反覆回應來降低延遲和封包移失的情況下增加頻寬。 結論 IPv6協定將會解決位址的問題,以它能夠提供地球表面每平方公尺內有6*10e23個位址的容量,相信可以在未來幾年都適用。IPv6幫助網路架構重審基本IP相關的議題如IP位址短缺、安全性、服務品質、行動性、群播和網路管理。IPv6是這個新的千禧年的希望。 參考資料 RFCs
& IETF Drafts • 1597
Address
Allocation for Private Internets • 1809
Using
the Flow Label in IPv6 • 1884
IP
Version 6 Addressing Architecture • 2460
Internet
Protocol, Version 6 (IPv6) • draft-ietf-ipngwg-scoping-arch-03.txt
IPv6 Scoped Address Architecture White
papers and Presentations • IP
Next Generation Overview – Robert M.Hinden • IPv6
and the Future of the Internet - Sun Microsystems. • Understanding
Internet Protocol Version 6 – David Morton • Presentations
from IPv6 Forum. (www.ipv6forum.com) • Tutorial
from http://www.viagene.qc.ca/ Text
Books • TCP/IP
Illustrated – Vol 1. – Richard Stevens • Computer
Networks –
Tanenbaum • IPng
and the TCP/IP Protocols – Stephen A.Thomas • Data
and Computer Communications – William Stallings 致謝 我要感謝Pret
Joseph、Project
Manager和Prof.
Chandrashekar B.S Infosys Technologies Ltd,對於他們的一直支援、校閱、引導和許多中肯的意見。我也想要向我在IPv6
Special Interest Group, Infosys Technologies Limited的工作夥伴Anurag Agarwal、Nabhonil
Sinha和Varini致上謝意,感激他們的支持。 |