18.2. IPv6 --下一代的網際網路

由於全球資訊網 (World Wide Web,WWW) 的出現,過去十五年內,在網際網路上透過 TCP/IP 進行通訊的電腦數目暴增。自從 CERN 的 Tim Berners-Lee (http://public.web.cern.ch) 於 1990 年發明 WWW 以來,網際網路主機的數量從幾千台成長為幾百萬台。

如前面所述,IPv4 位址僅由 32 個位元組成。而且,損失了些 IP 位址 -- 由於組織網路的方式,使得這些 IP 位址無法使用。您的子網路中可用的位址數目是位元數的平方減 2。例如,子網路有 2 個、6 個或 14 個位址可用。例如,如果要連接 128 個主機到網際網路,則子網路需要 256 個 IP 位址,但是其中只有 254 個可用,因為子網路結構本身需要用掉兩個 IP 位址:即廣播位址與基本網路位址。

在目前的 IPv4 通訊協定之下,DHCP 或 NAT (網路位址轉譯,Network Address Translation) 是典型的機制,可用來避免位址可能不足的問題。搭配保持私人和公用位址空間分開的方式,能夠減輕短少的情形。其中產生的問題是在於其組態,設定麻煩且難於維護。若要在 IPv4 網路中設定主機,需要一些位址項目,如主機自己的 IP 位址、子網路遮罩、閘道位址,可能還需要名稱伺服器位址。您必須知道所有這些項目,且無法從其他地方取得。

透過 IPv6,位址短少及繁複組態的情形應該都成為過去式了。以下小節說明更多 IPv6 改善的部分及它帶來的好處,還有關於從舊通訊協定轉移到新通訊協定的資訊。

18.2.1. 優點

新通訊協定帶來的最重要、最顯而易見的改善,是能夠大量擴充可用的位址空間。IPv6 位址是由 128 個位元值組成,而不是傳統的 32 位元。這樣提供了數以千兆的 IP 位址。

然而,IPv6 位址不僅是在長度方面與之前的位址不同;這些位置的內部結構也不同,可能包含有關系統及其所屬網路的更明確資訊。有關 IPv6 的詳細資訊,可以在 節 18.2.2, "定址類型與結構" 中找到。

以下是新通訊協定一些其他優勢的清單:

自動設定

IPv6 讓網路能夠「隨插即用」(plug and play),表示新設定的系統不需經過任何手動設定,即可整合到 (區域) 網路。新主機使用其自動設定組態機制,從鄰近的路由器上可用的資訊取得自己的位址,依賴的是稱為「網路芳鄰尋找」(Neighbor Discovery,ND) 的通訊協定。這個方法不需要管理員的介入,而且不需要維護分配位址的中央伺服器,這是 IPv4 的另一個優勢,因為自動位址分配需要 DHCP 伺服器。

機動性

IPv6 能夠同時將數個位址指定給一個網路介面。這樣使用者就能輕鬆地存取數個網路,可以比擬為行動電話公司提供的國際漫遊服務:當您帶著手機出國時,電話只要進入通信區域,就會自動登入國外的服務,如此一來,使用同樣的電話號碼仍然可以找到您,而且您也可以撥打電話,就像在國內一樣。

安全通訊

使用 IPv4,網路安全性是附加的功能。IPv6 包括 IPSec 為其中一個核心功能,允許系統在安全的通道上進行通訊,避免網際網路上的外人竊聽。

舊版相容性

實際上,不可能一次將整個網際網路從 IPv4 切換到 IPv6。因此,很重要的是,兩個通訊協定不僅要能夠共存於網際網路上,也得要能夠共存於一個系統中。這是藉由相容的位址 (IPv4 位址可以輕易轉譯為 IPv6 位址) 以及使用一些通道來確保共存。請參閱 節 18.2.3, "IPv4 與 IPv6 的共存"。另外,系統可以仰賴「雙重堆疊 IP」(Dual Stack IP) 技術,同時支援這兩種通訊協定,這表示系統有兩個完全分開的網路堆疊,如此一來,兩種通訊協定版本不會相互干擾。

透過多重廣播自訂量身訂做的服務

利用 IPv4,有些服務 (如 SMB) 需要廣播它們的封包到區域網路上的所有主機。IPv6 以更精細的方法,透過多重廣播 (multicasting) 將一些主機定位為群組的一部分,讓伺服器定址主機 (這與透過廣播 (broadcasting) 定位所有主機,或透過單點廣播 (unicasting) 個別定址每個主機的方式不同)。定址為群組的主機,取決於具體的應用程式。例如,有些預先定義的群組可以定址所有名稱伺服器 (「所有名稱伺服器多重廣播群組」) 或所有路由器 (「所有路由器多重廣播群組」)。

18.2.2. 定址類型與結構

如前面所提,目前的 IP 通訊協定欠缺兩個重要層面:IP 位址正在逐漸短缺,而設定網路及維護路由表的工作變得更加複雜而繁重。IPv6 透過擴充位址空間到 128 個位元解決了第一個問題。第二個問題的解決方式則是引入階層位址結構,結合配置網路位址的複雜技術,以及 multihoming (指定數個位址到一個設備,可以存取數個網路)。

使用 IPv6 時,瞭解三種不同類型的位址是很有用的:

單點廣播 (Unicast)

這類位址恰好與一個網路介面有關聯。這類位址的封包僅傳送到一個目的地。因此,單點廣播位址用來傳送封包到區域網路或網際網路上的個別主機。

多重廣播 (Multicast)

這類位址與一組網路介面有關聯。這類位址的封包會傳送到屬於該組的所有目的地。多重廣播位址主要由特定網路服務使用,可直接與特定主機群組通訊。

任點廣播 (Anycast)

這類位址與一組介面有關聯。這類位址的封包會根據基礎路由通訊協定的原則,傳送到最靠近傳送者的群組成員。使用任點廣播位址,讓主機更易於找出在指定網路區域中提供特定服務的伺服器。相同類型的所有伺服器擁有一樣的任點廣播位址。只要主機要求服務,它會從最靠近位置的伺服器接收回覆,由路由通訊協定決定。如果此伺服器因為某種原因失敗,通訊協定會自動選取第二個最靠近的伺服器,或是選取第三個伺服器,依此類推。

IPv6 位址由八個四位數欄位組成,每個都代表 16 個位元,以十六進位標記法寫入。這些位址以冒號 (:) 分隔。指定欄位內的任何前導零位元組可以刪除,但是欄位內或尾端的零不能刪除。另一個慣例是多於四個連續的零位元組可能會摺疊成兩個冒號。不過,每個位址僅允許一個這類的 ::。這類的簡略的標記法,顯示於 範例 18.3, "範例 IPv6 位址" 中,其中三行都是代表相同的位址。

範例 18.3. 範例 IPv6 位址

fe80 : 0000 : 0000 : 0000 : 0000 : 10 : 1000 : 1a4
fe80 :    0 :    0 :    0 :    0 : 10 : 1000 : 1a4
fe80 :                           : 10 : 1000 : 1a4

IPv6 位址的每個部分都有定義的功能。第一個位元組形成字首,指定位址類型。中間的部分是位址的網路部分,但是可能不會使用。位址的尾端形成主機部分。透過 IPv6,在位址尾端的斜線後表示字首的長度,可以定義網路遮罩。位址如 範例 18.4, "指定字首長度的 IPv6 位址" 中所示,包含的資訊是形成位址網路部分的前 64 個位元以及形成其主機部分的最後 64 個位元。換句話說,64 表示網路遮罩從左邊開始填入 64 個 1 位元值。就像 IPv4 一樣,IP 位址使用 AND 結合網路遮罩的值,判斷主機是否位於相同的子網路或另一個子網路。

範例 18.4. 指定字首長度的 IPv6 位址

fe80::10:1000:1a4/64

IPv6 知道關於數個字首的預定類型。有一些顯示在 表格 18.4, "各種 IPv6 字首" 中。

表格 18.4. 各種 IPv6 字首

字首 (十六進位)

定義

00

IPv4 位址與透過 IPv6 的 IPv4 相容位址。這些位址用來維護與 IPv4 的相容性。其使用仍然要求路由器能夠轉譯 IPv6 封包為 IPv4 封包。數個特殊的位址,如迴路設備的位址,也有此字首。

23 做為第一個數字

可彙總的全域單點廣播位址。在 IPv4 的情形中,可以指定介面形成部分的特定子網路。目前而言,有以下位址空間:2001::/16 (製造品質位址空間) 與 2002::/16 (6to4 位址空間)。

fe80::/10

連結本地位址。具有這種字首的位址不應該傳送,因此僅能從相同的子網路內連接。

fec0::/10

本地網站位址。這些位址可以傳送,但是僅能在所屬組織的網路內傳送。事實上,它們等同於目前私人網路位址空間的 IPv6 (例如,10.x.x.x)。

ff

這些都是多重廣播位址。

單點廣播位址由三個基本元件組成:

公用拓撲 (Public Topology)

第一個部分 (也包含上述的其中一種字首) 用來透過公用網際網路傳送封包。它包含了有關提供網際網路存取的公司或機構資訊。

網站拓撲 (Site Topology)

第二個部分包含有關傳送封包的目的地子網路的傳送資訊。

介面識別碼 (Interface ID)

第三個部分識別傳送封包的介面。它也允許 MAC 形成部分的位址。這個前提是 MAC 在全球是唯一的,由硬體製造商在設備中編碼固定識別碼,可相當程度地簡化組態程序。事實上,結合前 64 個位址位元形成 EUI-64 記號,加上從 MAC 取得的最後 48 個位元,而其餘的 24 個位元則包含有關記號類型的特殊資訊。如此一來,就可以指定 EUI-64 記號給沒有 MAC 的介面,例如以 PPP 或 ISDN 為基礎的介面。

在此基本結構的最上層,IPv6 會分辨五種不同類型的單點廣播位址:

:: (未指定的)

第一次啟始介面時,如果還未用其他方法判定位址時,主機會使用此位址做為其來源位址。

::1 (迴路)

迴路設備的位址。

IPv4 相容位址

IPv6 位址是由 IPv4 位址以及由 96 個零位元組成的字首形成的。這類相容性位址用於通道 (請參閱 節 18.2.3, "IPv4 與 IPv6 的共存"),允許 IPv4 與 IPv6 主機在純 IPv4 環境中彼此通訊。

對應到 IPv6 的 IPv4 位址

這類位址以 IPv6 標記法指定純 IPv4 位址。

本地位址

有兩種位址類型用於本地:

連結本地

這類位址僅能用於本地子網路。具有此類型來源或目標位址的封包不應該傳送到網際網路或其他子網路。這些位址包含特殊字首 (fe80::/10) 以及網路卡的介面識別碼,加上由空位元組所組成的中間部分。自動設定組態以便與屬於相同子網路中的其他主機通訊時,會使用這類位址。

網站本地

具有這種位址的封包可以傳送到其他子網路,但是不能到更寬廣的網際網路,而必須保留在組織自己的網路內。這類位址用於內部網路,而且等同於 IPv4 所定義的私人位址空間。它們包含特殊字首 (fec0::/10)、介面識別碼,以及指定子網路識別碼的 16 位元欄位。同樣地,其他則是填入空位元組。

因為引入了 IPv6 這種全新的功能,所以每個網路介面通常會取得數個 IP 位址,其優點是可透過相同介面存取數個網路。其中一個網路可以設定完全自動化 (使用 MAC 和已知的字首),只要一啟用 IPv6 (使用連結本地位址) 即可連接區域網路上的所有主機。利用形成位址部分的 MAC,全球使用的任何 IP 位址都成為唯一的。位址的唯一變數部分,是指定網站拓撲公用拓撲,該部分視主機目前正在操作的實際網路而定。

如果主機要在不同的網路之間往返,至少需要兩個位址。其中一個,即主位址,不僅包含了介面識別碼,也包含了其通常所屬之主網路 (及其對應字首) 的識別碼。主位址是靜態位址,因此它通常不會變更。儘管如此,預定要送到行動主機的所有封包,還是可以傳送到主位址,無論是在主網路或其他外部網路中操作。這可藉由 IPv6 全新功能來達成,如「無狀態自動設定」「網路芳鄰尋找」。除了其主位址外,行動主機也取得一或多個其他的位址,這些位址屬於漫遊的外部網路。這些外部網路稱為 care-of 位址。主網路具有封包在外部漫遊時轉寄預定要送到主機的設備。在 IPv6 環境中,這個工作是由主代辦執行的,它會取得所有預定要送到主位址的封包,透過通道轉送它們。另一方面,預定送到 care-of 位址的封包會直接傳送到行動主機,不會特別繞行。

18.2.3. IPv4 與 IPv6 的共存

連接網際網路的所有主機從 IPv4 轉移到 IPv6 是一種漸進程序。這兩種通訊協定某些時候會共存。在一個系統上共存,可保證執行兩種通訊協定的「雙重堆疊」。但是仍出現一些問題,就是使用 IPv6 的主機如何與 IPv4 主機通訊,以及由 IPv4 架構主導的目前網路如何傳輸 IPv6 封包。最佳的解決方案是提供通道及相容性位址 (請參閱 節 18.2.2, "定址類型與結構")。

在 (全球) IPv4 網路中多少有些隔離的 IPv6 主機可以透過通道進行通訊:IPv6 封包會封裝成 IPv4 封包,在 IPv4 網路上移動。兩個 IPv4 主機之間的連線,稱為「通道」。若要完成這個目的,封包必須包含 IPv6 目的地位址 (或對應字首) 以及通道接收端上遠端主機的 IPv4 位址。基本通道可以根據主機管理員之間的協議「手動」設定;這也稱為「靜態通道」

不過,靜態通道的組態及維護通常需要密集勞力,才能使用它們應付每天的通訊需求。因此,IPv6 提供三種不同的「動態通道」方法:

6over4

IPv6 封包會自動封裝成 IPv4 封包,透過能夠多重廣播的 IPv4 網路進行傳送。IPv6 的訣竅是將整個網路 (網際網路) 視為一個大型的區域網路 (LAN)。如此即能自動判定 IPv4 通道的接收端。然而,這個方法不能適當的延伸,而且也因 IP 多重廣播目前在網際網路上並不普遍的事實而受到阻礙。所以,它僅能為啟用多重廣播的小型公司或機構的網路提供解決方案。這個方法的規格詳述於 RFC 2529。

6to4

利用此方法,IPv4 位址會自動從 IPv6 位址產生,使得隔離的 IPv6 主機能夠在 IPv4 網路上通訊。不過,有關這些隔離的 IPv6 主機及網際網路之間的通訊,目前已出現一些問題。該方法詳述於 RFC 3056。

IPv6 通道代理

這個方法仰賴提供 IPv6 主機專屬通道的特殊伺服器。詳述於 RFC 3053。

[Important]6bone 方案

「過去」網際網路的核心,已經有透過通道連接的 IPv6 子網路的全域散佈網路。這就是 6bone 網路 (http://www.6bone.net),這是 IPv6 測試環境,由想要開發及提供 IPv6 架構服務的程式人員及網際網路提供者使用,可獲得執行新通訊協定所需的經驗。詳細資訊請參閱專案的網際網路網站。

18.2.4. 設定 IPv6

若要設定 IPv6,您通常不需要在個別工作站中做任何變更。不過,必須載入 IPv6 支援。 如果要這樣做,請輸入 modprobe ipv6 做為 root

由於 IPv6 的自動組態概念,網路卡會在連結本地網路中指定一個位址。工作站通常不會進行路由表格管理。工作站可使用「路由器通告通訊協定」,向網路路由器查詢應使用的前置號碼和閘道。可使用 radvd 程式來設定 IPv6 路由器。此程式會通知工作站該 IPv6 位址應使用的前置號碼和路由器。或者,也可使用 zebra 自動設定位址和路由的組態。

請參閱 ifup 的手冊頁,了解如何使用 /etc/sysconfig/network 檔案來設定不同類型的通道。

18.2.5. 如需詳細資訊

上述概觀沒有完整地涵蓋 IPv6 主題。如需更深入的探討這種新的通訊協定,請參閱以下線上文件和書籍:

http://www.ngnet.it/e/cosa-ipv6.php

有一系列內容完整、提供 IPv6 基本概念的介紹文章。有關主題的最佳入門。

http://www.bieringer.de/linux/IPv6/

在此處可找到 Linux IPv6-HOWTO 和許多與此主題相關的連結。

http://www.6bone.net/

如果想要加入發掘 IPv6 網路的行列,請瀏覽此網站。

http://www.ipv6.org/

所有有關 IPv6 的入門資訊。

RFC 2640

有關 IPv6 的基本 RFC。

IPv6 Essentials

描述此主題所有重要面向的書籍,《IPv6 Essentials》由 Silivia Hagen 所著 (ISBN 0-596-00125-8)。