網際協議第 6 版（，縮寫：IPv6）是網際協議的最新版本，用作網際網路的協議。用它來取代 IPv4 主要是為了解決 IPv4 地址枯竭問題，同時它也在其他方面對於 IPv4 有許多改進。 IPv6 的設計目的是取代 IPv4，然而長期以來 IPv4 在網際網路流量中仍佔據主要地位，IPv6 的使用增長緩慢。在 2022 年 4 月，透過 IPv6 使用 Google 服務的使用者百分率首次超過 40。 背景與目標 現今的 zhhans 網際網路絡；zhhk 網際網路絡；zhsg 網際網路絡；zhtw 網際網路； 發展蓬勃，截至 2018 年 1 月，全球上網人數已達 4021 億，IPv4 僅能提供約 429 億個 IP 位置。雖然目前的網路地址轉換及無類別域間路由等技術可延緩網路位置匱乏之現象，但為求解決根本問題，從 1990 年開始，網際網路工程工作小組開始規劃 IPv4 的下一代協定，除要解決即將遇到的 IP 位址短缺問題外，還要發展更多的擴充功能，為此 IETF 小組建立 IPng，以讓後續工作順利進行。1994 年，各 IPng 領域的代表們於多倫多舉辦的 IETF 會議中，正式提議 IPv6 發展計劃，該提議直到同年的 11 月 17 日才被認可，並於 1996 年 8 月 10 日成為 IETF 的草案標準，最終 IPv6 在 1998 年 12 月由網際網路工程工作小組以網際網路標準規範（RFC 2460）的方式正式公佈。 IPv6 的計劃是建立未來網際網路擴充的基礎，其目標是取代 IPv4，雖然 IPv6 在 1994 年就已被 IETF 指定作為 IPv4 的下一代標準，由於早期的路由器、防火牆、企業的企業資源計劃系統及相關應用程式皆須改寫，所以在世界範圍內使用 IPv6 部署的公眾網與 IPv4 相比還非常的少，技術上仍以雙架構並存居多。預計在 2025 年以前 IPv4 仍會被支援，以便給新協議的修正留下足夠的時間。 與 IPv4 比較 在 Internet 上，資料以分組的形式傳輸。IPv6 定義了一種新的分組格式，目的是為了最小化路由器處理的訊息標頭 RFC 2460 Internet Protocol Version 6 IPv6 Specification Deering S Hinden R（December 1998）RFC 1726 Technical Criteria for Choosing IP The Next Generation IPng Partridge C Kastenholz F（December 1994）。由於 IPv4 訊息和 IPv6 訊息標頭有很大不同，因此這兩種協議無法互操作。但是在大多數情況下，IPv6 僅僅是對 IPv4 的一種保守擴充套件。除了嵌入了網際網路地址的那些應用協議（如 FTP 和 NTPv3，新地址格式可能會與當前協議的語法衝突）以外，大多數傳輸層和應用層協議幾乎不怎麼需要修改就可以在 IPv6 上執行。 無狀態地址自動配置（SLAAC） 當連線到 IPv6 網路上時，IPv6 主機可以使用鄰居發現協議對自身進行自動配置。當第一次連線到網路上時，主機發送一個鏈路本地路由器請求（solicitation）多播請求來獲取配置引數。路由器使用包含 Internet 層配置引數的路由器宣告（advertisement）報文進行回應 RFC 4862 IPv6 Stateless Address Autoconfiguration Thomson S Narten T Jinmei T（September 2007）。 在不適合使用 IPv6 無狀態地址自動配置的場景下，網路可以使用有狀態配置（DHCPv6），或者使用靜態方法手動配置。 IPv6 編碼 IPv6 具有比 IPv4 大得多的編碼地址空間。這是因為 IPv6 採用 128 位元的地址，而 IPv4 使用的是 32 位元。因此新增的地址空間支援 2128（約 341038）個位址，具體數量為 340282366920938463463374607431768211456 個，也可以說成 1632 個，因為每 4 位地址（128 位分為 32 段，每段 4 位）可以取 2416 個不同的值。 網路地址轉換是目前減緩 IPv4 地址耗盡最有效的方式，而 IPv6 的地址消除了對它的依賴，被認為足夠在可以預測的未來使用。就以地球人口 70 億人計算，每人平均可分得約 4861028（4861176671020）個 IPv6 位址。 從 IPv4 到 IPv6 最顯著的變化就是網路地址的長度。RFC 2373 和 RFC 2374 定義的 IPv6 地址有 128 位長；IPv6 地址的表達形式一般採用 32 個十六進位制數。 在很多場合，IPv6 地址由兩個邏輯部分組成：一個 64 位的網路字首和一個 64 位的主機地址，主機地址通常根據物理地址自動生成，叫做 EUI64（或者 64 位擴充套件唯一標識）。 IPv6 格式 IPv6 二進位制下為 128 位元長度，以 16 位元為一組，每組以冒號「」隔開，可以分為 8 組，每組以 4位 十六進位制方式表示。例如：20010db886a308d313198a2e03707344 是一個合法的 IPv6 位址。類似於 IPv4 的點分十進位制，同樣也存在點分十六進位制的寫法，將 8 組 16 位十六進位制地址的冒號去除後，每位以點號 分組，例如：20010db885a308d313198a2e03707344 則記為 20010db885a308d313198a2e03707344，其倒序寫法用於 ip6arpa 子域名記錄 IPv6 地址與域名的對映。 同時 IPv6 在某些條件下可以省略： 每項數字前導的 0 可以省略，省略後前導數字仍是 0 則繼續，例如下組 IPv6 是等價的。 20010db802de00000000000000000e13 2001db82de0000000000000000e13 2001db82de000000000000e13 2001db82de00000000e13 2001db82de0000e13 可以用雙冒號「」表示一組 0 或多組連續的 0，但只能出現一次： 如果四組數字都是零，可以被省略。遵照以上省略規則，下面這兩組 IPv6 都是相等的。 2001db82de0000e13 2001db82dee13 20010db80000000000000000142857ab 20010db8000000000000142857ab 20010db80000142857ab 20010db800142857ab 20010db8142857ab 200125decade 是非法的，因為雙冒號出現了兩次。它有可能是下種情形之一，造成無法推斷。 2001000000000000000025de0000cade 200100000000000025de00000000cade 20010000000025de000000000000cade 2001000025de0000000000000000cade 如果這個位址實際上是 IPv4 的位址，後 32 位元可以用 IPv4 的點分十進位制方式表示；因此ffff192168899 相等於ffffc0a85909。這種地址格式叫做 IPv4 對映位址。 由於同一非全域性地址可能在同一範圍的多個區域中使用（例如，在兩條獨立的物理鏈路中使用鏈路本地地址 fe801），而且一個節點可能連線到同一範圍的不同區域的介面（例如，一個路由器通常有多個介面連線到不同的鏈路）。IPv6 新增了區域 ID（Zone ID）加以區分，或稱作用域 ID（Scope ID）。作用域 ID 僅用於本地連結，使用百分號追加在地址後面。其內容特定於作業系統，例如 Windows 使用數字 fe8023 ，Linux 使用網絡卡名字 fe802 eth0 。RFC 4007 IPv6 Scoped Address Architecture 在 URI 中使用時，百分號需要進行編碼，例如 fe80a en1 應顯示為 httpfe80a25en1 。RFC 6874 Representing IPv6 Zone Identifiers in Address Literals and Uniform Resource Identifiers IPv6 位址的分類 IPv6 位址可分為三種： 單播（unicast）位址 單播位址標示一個網路介面。協議會把送往位址的封包送往給其介面。IPv6 的單播位址可以有一個代表特殊位址名字的範疇，如鏈路本地位址（link local address）和唯一區域位址（ULA，unique local address）。單播地址包括可聚類的全球單播地址 地址範圍為 16 進位：20003fff 開頭、鏈路本地地址 地址為 fe80 開頭 等。 任播（anycast）位址 任播像是 Unicast（單點傳播）與 Broadcast（多點廣播）的綜合。單點廣播在來源和目的地間直接進行通訊；多點廣播存在於單一來源和多個目的地進行通訊。 而 Anycast 則在以上兩者之間，它像多點廣播（Broadcast）一樣，會有一組接收節點的位址列表，但指定為 Anycast 的封包，只會傳送給距離最近或傳送成本最低（根據路由表來判斷）的其中一個接收位址，當該接收位址收到封包並進行回應，且加入後續的傳輸。該接收列表的其他節點，會知道某個節點位址已經回應了，它們就不再加入後續的傳輸作業。 以目前的應用為例，Anycast 位址只能分配給中間裝置（如路由器、三層交換機等），不能分配給終端裝置（手機、電腦等），而且不能作為傳送端的位址。 多播（multicast）位址 多播地址也稱組播地址。多播位址也被指定到一群不同的介面，送到多播位址的封包會被傳送到所有的位址。多播位址由皆為一的位元組起始，亦即：它們的前置為 FF008。其第二個位元組的最後四個位元用以標明 範疇。 一般有 nodelocal 0x1、linklocal 0x2、sitelocal 0x5、organizationlocal 0x8 和 global 0xE。多播位址中的最低 112 位元會組成多播群組識別碼，不過因為傳統方法是從 MAC 位址產生，故只有群組識別碼中的最低 32 位元有使用。定義過的群組識別碼有用於所有節點的多播位址 0x1 和用於所有路由器的 0x2。 另一個多播群組的位址為 solicitednode 多播位址，是由前置 FF021FF000104 和剩餘的群組識別碼（最低 24 位元）所組成。這些位址允許經由鄰居發現協議（NDP，Neighbor Discovery Protocol）來解譯連結層位址，因而不用幹擾到在區網內的所有節點。 特殊位址 IANA 維護官方的 IPv6 位址空間列表。全域的單播位址的分配可在各個區域網際網路註冊管理機構或 GRH DFP 頁面找到。 IPv6 中有些位址是有特殊含義的： 未指定位址 128－所有位元皆為零的位址稱作未指定位址。這個位址不可指定給某個網路介面，並且只有在主機尚未知道其來源 IP 時，才會用於軟體中。路由器不可轉送包含未指定位址的封包。 鏈路本地位址 1128－是一種單播繞回位址。如果一個應用程式將封包送到此位址，IPv6 堆疊會轉送這些封包繞回到同樣的虛擬介面（相當於 IPv4 中的 1270018）。 fe8010－這些鏈路本地位址指明，這些位址只在區域連線中是合法的，這有點類似於 IPv4 中的 1692540016。 fc007－唯一區域位址（ULA，unique local address）只可用於本地通訊，類似於 IPv4 的專用網路位址 100008、172160012 和 1921680016。這定義在 RFC 4193 中，是用來取代站點本地位域。這位址包含一個 40 位元的偽隨機數，以減少當網站合併或封包誤傳到網路時碰撞的風險。這些位址除了只能用於區域外，還具備全域性的範疇，這點違反了唯一區域位域所取代的站點本地位址的定義。 多播位址 ff008－這個前置表明定義在 IP Version 6 Addressing Architecture（RFC 4291）中的多播位址。其中，有些位址已用於指定特殊協議，如 ff0X101 對應所有區域的 NTP 伺服器（RFC 2375）。 請求節點多播位址（Solicitednode multicast address） ff021FFXXXXXX－XXXXXX 為相對應的單播或任播位址中的三個最低的位元組。 IPv4 轉譯位址 ffffxxxx96－用於 IPv4 對映位址。（參見以下的轉換機制）。 200132－用於 Teredo 隧道。 200216－用於 6to4。 ORCHID 20011028－ORCHID Overlay Routable Cryptographic Hash Identifiers（RFC 4843）。這些是不可遶送的 IPv6 位址，用於加密雜湊識別。 檔案 2001db832－這前置用於檔案（RFC 3849）。這些位址應用於 IPV6 位址的範例中，或描述網路架構。 遭捨棄或刪除的用法 96－這個前置曾用於 IPv4 相容位址，現已刪除。 fec010－這個站點本地前置指明這位址只在組織內合法。它已在 2004 年 9 月的 RFC3879 中捨棄，並且新系統不應該支援這型別的位址。 IPv6 封包 IPv6 封包由兩個主要部分組成：頭部和負載。 包頭是包的前 320 位元，並且包含有源和目的地址，協議版本，通訊類別（8 位元，包優先順序），流標記（20 位元，QoS 服務質量控制），分組長度（16 位），下一個頭部（用於入棧解碼，類似 IPv4 中的協議號），和跳段數限制（8 位元，生存時間，相當於 IPv4 中的 TTL）。後面是負載。MTU 至少 1280 位元組長，在常見的乙太網環境中為 1500 位元組。負載在標準模式下最大可為 65535 位元組，如果擴充套件報頭設定了 jumbo payload 選項，則長度值被置為 0。 IPv6 曾有兩個有著細微差別的版本；在 RFC 1883 中定義的原始版本（現在廢棄）和 RFC 2460 中描述的現在提議的標準版本。兩者主要在 通訊類別 這個選項上有所不同，它的位數由 4 位變為了 8 位。其他的區別都是微不足道的。 由於分片（Fragmentation）只在 IPv6 的主機中處理，而 IPv6 也要求實現 MTU 路徑發現 來避免資料包需要被中間裝置分片，所以 IPv4 頭涉及分片的欄位從 IPv6 基本頭移出至專用的分片擴充套件報頭中。 在 IPv6 中，可選項都被從標準頭部中移出並在協議欄位中指定，類似於 IPv4 的協議欄位功能。 IPv6 和域名系統 IPv6 地址在域名系統中為執行正向解析表示為 AAAA 記錄（所謂 4A 記錄，類似地，IPv4 表示為 A 記錄（A record））；反向解析在 ip6arpa（原先是 ip6int）下進行，在這裡地址空間為半位元組 16 進位制數字格式。這種模式在 RFC 3596 給與了定義。 AAAA 模式是 IPv6 結構設計時的兩種提議之一。另外一種正向解析為 A6 記錄。也有一些其他的創新像二進位制串標籤和 DNAME 記錄等。RFC 2874 和它的一些引用中定義了這種模式。 AAAA 模式只是 IPv6 域名系統的簡單概括，A6 模式使域名系統中檢查更全面，也因此更復雜： A6 記錄允許一個 IPv6 地址在分散於多個記錄中，或許在不同的區域；舉例來說，這就在原則上允許網路的快速重編號。 使用域名系統記錄委派地址被 DNAME 記錄（類似於現有的 CNAME，不過是重新命名整棵樹）所取代。 一種新的叫做位元標籤的型別被引入，主要用於反向解析。 2002 年 8 月的 RFC 3363 中對 AAAA 模式給予了有效的標準化（在 RFC 3364 有對於兩種模式優缺點的更深入的討論）。 IPv6 部署與應用 2004 年 7 月時 ICANN 聲稱網際網路的根域名伺服器已經經過改進以同時支援 IPv6 和 IPv4。 缺點： 需要在整個網際網路和它所連線到的裝置上建立對 IPv6 的支援 從 IPv4 訪問時的轉換過程中，在閘道器路由器（IPv6IPv4）還是需要一個 IPv4 地址和一些 NAT（ 共享的 IP 地址），增加了它的複雜性，還意味著 IPv6 許諾的巨大的空間地址不能夠立刻被有效的使用。 遺留的結構問題，例如在對 IPv6 multihoming 支援上一致性的匱乏。 工作： 6bone ICMPv6 IPv6 multihoming 部署進度： 截至 2011 年，全球透過 IPv6 第二階段認證的產品共 644 項，美國位居首共 264 種產品透過階段認證，次為日本計 143 項，臺灣居第三，共 115 項完成階段認證，中國大陸居四，共 68 件產品透過階段認證。 網路層安全 網際網路安全協議（Internet Protocol Security，即 IPsec）原本為 IPv6 開發，但是在 IPv4 中已經大量部署。IPsec 最初是 IPv6 協議的強制要求 RFC 4301 IPv6 Node Requirements J Loughney April 2006，但後來改為可選項。RFC 6434IPv6 Node Requirements E Jankiewicz J Loughney T Narten December 2011 轉換機制 在 IPv6 完全取代 IPv4 前，需要一些轉換機制使得只支援 IPv6 的主機可以連絡 IPv4 服務，並且允許孤立的 IPv6 主機及網路可以藉由 IPv4 設施連絡 IPv6 網際網路。 在 IPv6 主機和路由器與 IPv4 系統共存的時期時，RFC2893 和 RFC2185 定義了轉換機制。這些技術，有時一起稱作簡單網際網路轉換（SIT，Simple Internet Transition）。包含： 運作於主機和路由器之間的雙堆疊 IP 實作 將 IPv4 嵌入 IPv6 位址 IPv6 立於 IPv4 之上的隧道機制 IPv4IPv6 報頭轉換 許多轉換機制使用隧道來把 IPv6 交通包封在 IPv4 網路中。這個解決方案並不完美，可能會增加延時以及引起路徑最大傳輸單元發現（Path MTU Discovery）的問題，它並不總能執行，因為過時的網路裝置可能不支援 IPv6。有線電視基礎上的 Internet 訪問就是一個例子。在現代的有線電視網路中，光纖同軸混合網（HFC）的核心（比如大型核心路由器）是有可能支援 IPv6 的。然而，其他網路裝置（比如一個線纜調變解調器終端系統（CMTS） 以及使用者裝置（如線纜調變解調器）會需要軟體更新或硬體更新來支援 IPv6。這意味著線纜網路運營商必須調整適應隧道直至主幹裝置支援內部雙堆疊。 雙堆疊 雙堆疊（Dual IP stack implementation）是將 IPv6 視為一種 IPv4 的延伸，以共享程式碼的方式去實作網路堆疊，其可以同時支援 IPv4 和 IPv6，如此是相對較為容易的。如此的實作稱為 雙堆疊，並且，一個實作雙堆疊的主機稱為 雙堆疊主機。這步驟描述於 RFC 4213。 目前大部分 IPv6 的實現使用雙堆疊。一些早期實驗性實作使用獨立的 IPv4 和 IPv6 堆疊。 隧道 隧道（Tunneling）是另一個用來連結 IPv4 與 IPv6 的機制。為了連通 IPv6 網際網路，一個孤立主機或網路需要使用現存 IPv4 的基礎設施來攜帶 IPv6 封包。這可由將 IPv6 封包裝入 IPv4 封包的隧道協議來完成，實際上就是將 IPv4 當成 IPv6 的連結層。 IP 協議號碼的 41 號用來標示將 IPv6 資料訊框直接裝入 IPv4 封包。IPv6 亦能加入 UDP 封包，如為了跨過一些會阻擋協議 41 流量的路由器或 NAT 裝置。其它流行的封裝機制則有 AYIYA 和 GRE。 自動隧道 自動隧道（Automatic tunneling）指路由設施自動決定隧道端點的技術。RFC 3056 建議使用 6to4 穿隧技術來自動隧道，其會使用 41 協議來封裝。RFC 3056 Connection of IPv6 Domains via IPv4 Clouds 隧道端點是由遠端知名的 IPv4 任播位址所決定，並在本地端嵌入 IPv4 位址資訊到 IPv6 中。現今 6to4 是廣泛佈署的。 Teredo 是使用 UDP 封裝的隧道技術，據稱可跨越多個 NAT 裝置。RFC 4380 Teredo Tunneling IPv6 over UDP through Network Address Translations NATs Teredo 並非廣泛用於佈署的，但一個實驗性版本的 Teredo 已安裝於 Windows XP SP2 IPv6 堆疊中。IPv6，包含 6to4 隧道和 Teredo 隧道，在 Windows Vista 中預設是啟動的。許多 Unix 系統只支援原生的 6to4，但 Teredo 可由如 Miredoo 的第三方軟體來提供。 ISATAPRFC 4214 IntraSite Automatic Tunnel Addressing Protocol ISATAP 藉由將 IPv4 位址對應到 IPv6 的鏈路本地位址，從而將 IPv4 網路視為一種虛擬的 IPv6 區域連線。不像 6to4 和 Teredo 是站點間的隧道機制，ISATAP 是一種站點內機制，意味著它是用來設計提供在一個組織內節點之間的 IPv6 連線性。 組態隧道（6in4） 在組態隧道中，如 6in4 隧道隧，隧道端點是要明確組態過的，可以是藉由管理員手動或作業系統的組態機制，或者藉由如 tunnel broker 等的自動服務。RFC 3053 IPv6 Tunnel Broker 組態隧道通常比自動隧道更容易去除錯，故建議用於大型且良好管理的網路。 組態隧道在 IPv4 隧道上，使用網際協議中號碼的 41 號。 用於只支援 IPv6 主機的代理和轉譯 在 zhhans 區域網際網路註冊管理機構；zhhant 區域網際網路註冊管理機構 耗盡所有可使用的 IPv4 位址後，非常有可能使新加入網際網路的主機只具有 IPv6 連線能力。對這些須要向後相容以能存取 IPv4 資源的客戶端，須要佈署合適的轉換機制。 一種轉換技術是使用雙堆疊的應用層代理，如網頁代理伺服器。 一些對於應用程式無法得知但在其低層使用類 NAT 轉換技術也曾被提出。但因為一般應用層協議所要求的能力其應用太廣，其中大部分都被認定在實際上太不可靠，並且被認為應刪除。 主要的 IPv6 公告 在 2003 年，日本經濟新聞（在 2003 年被 CNET 亞洲機構引用）報告中說日本、中國和韓國聲稱已經決定要在網路技術中尋求領先，將部分參與 IPv6 的開發並在 2005 年開始全面採用 IPv6。 ICANN 在 2004 年 7 月 20 日發表宣告，稱 DNS 根伺服器已經建立對應日本（jp）和韓國（kr）的頂級域名伺服器的 AAAA 記錄，序列號為 2004072000。對應法國的（fr）IPv6 記錄會再晚一點時間加入。 2011 年網際網路協會將 6 月 8 日定為世界 IPv6 日。包括 Google、Facebook 和雅虎在內的參與者將在當天對他們的主要服務啟用 IPv6，以推進網際網路工業加速部署全面 IPv6 支援。 2017 年 11 月 26 日，中共中央辦公廳、國務院辦公廳印發《推進網際網路協議第六版（IPv6）規模部署行動計劃》，要求各地各部門貫徹落實。其中主要目標包括：到 2018 年末，IPv6 活躍使用者數達 2 億，網際網路使用者中佔比不低於 20；到 2020 年末，IPv6 活躍使用者數超過 5 億，網際網路使用者中佔比超過 50，新增網路地址不再使用私有 IPv4 地址；到 2025 年末，中國 IPv6 網路規模、使用者規模、流量規模位居世界第一，網路、應用、終端全面支援 IPv6。 根據科技資訊網站 cnBetacom，截至 2021 年 4 月 8 日，中國總共獲得 IPv6 地址塊數量為 59039 個／32（即是每段 32 位元的 IPv6 地址數目），目前排名第二的美國擁有 57785 個／32。 參見 OSI 模型 IPv4 TCPIP 協議 CNGI 相關的 IETF 工作組 6bone：IPv6 Backbone ipng：IP Next Generation concluded ipv6：IP Version 6 ipv6mib：IPv6 MIB concluded multi6：Site Multihoming in IPv6 v6ops：IPv6 Operations 參考資料 RFC 2460 Internet Protocol Version 6 現在版本 RFC 1883 Internet Protocol Version 6 舊版本 RFC 5214 IntraSite Automatic Tunnel Addressing Protocol ISATAP 現在版本取代 RFC 4214 外部連結 testipv6com，可測試本機 IPv6 配置情況並評分 IPv6 QA IPv6 Forum Taiwan 臺灣 NGN IPv6 移轉技術入口網 ipv6testcom 可測試本機 IPv6 連通性、傳輸速度、ping 時延 TRACEROUTE6NET 顯示現時使用之 IP，執行 ping trace whois 等多用途 IPv6 工具 The IPv6 Portal All the IPv6 News Why you want IPv6 LinuxReviews SPEEDTEST6COM 可顯示現時使用之 IP IPv6 速度測試工具 httpwwwianaorgassignmentsipv6addressspace CNET Asia Staff（2003） Report Japan China S Korea developing next Net Retrieved January 14 2003 httpswebarchiveorgweb20160317021818httpwwwmoonv6org IBM 紅皮書 Category 網路協議 Category 網際網路標準 Category 網際網路結構 Category 網路層協議