IPv6 部署(IPv6 deployment)
/ eye-pee-vee-six /
網際網路上的每個裝置都需要一個位址,就像給封包用的郵政地址。舊的方案 IPv4 大約有 43 億個位址(2^32)——這在 1980 年代聽起來用不完,但隨著數十億支手機、筆電與小裝置上線就用光了。後繼者 IPv6 的供應實際上取之不盡(2^128 個位址——足以給地球上每一粒沙好幾段它自己的位址範圍)。IPv6 部署就是這個長達數十年、至今仍未完成的工程:把全世界真正切換到這套新的定址——而它是一堂鮮明的課,教我們升級像網際網路這麼龐大、這麼去中心化的東西有多難。
具體來說,IPv6 不是對 IPv4 的小修小補;它是一套獨立、不相容的定址方案,所以一台純 IPv6 主機和一台純 IPv4 主機無法直接交談。沒有哪一天大家會在午夜一起切換——沒有人負責整個網際網路。取而代之的是,遷移要走過一段漫長的過渡期,期間兩種協定並存:主機跑雙堆疊(同時講 IPv4 和 IPv6),而各種轉換與隧道機制橋接這兩個世界。每個網路營運者、內容供應商與裝置廠商都得按自己的時程升級,而一項服務只有在兩端與它們之間的路徑都支援 IPv6 時,才真正獲得 IPv6 的好處。
為什麼重要、以及誠實的現實:IPv6 自 1990 年代就標準化了,但採用花了數十年、至今仍只是部分——這是一個沒有中央權威、且既有設備量龐大的系統裡,慣性的鮮明例子。減輕壓力的主要權宜之計是網路位址轉換(NAT),它讓許多裝置共用一個公開 IPv4 位址;NAT 爭取到了時間,卻也破壞了乾淨的端對端模型、增加了複雜度,諷刺的是這反而降低了遷往 IPv6 的急迫性。一個常見的誤解是 IPv6 主要關乎更多位址;它也清理了標頭、消除了對 NAT 的需要——但它緩慢、艱辛的推進才是真正的故事,並提醒我們「正確的設計」不會自己部署。
一支現代手機通常跑雙堆疊:當它開啟一個網站時,它同時嘗試該網站的 IPv6 位址和 IPv4 位址、用先連上的那個。如果這個網站、手機的網路、以及它們之間的每一跳都支援 IPv6,連線就走 IPv6;如果這條鏈中任何一個連結只支援 IPv4,它就悄悄退回 IPv4——常常是穿過電信商的 NAT。
雙堆疊讓新舊定址在漫長的過渡期裡並存。
IPv6 部署顯示出,更好的設計不會自己部署:在沒有中央權威、且有數十億台既有裝置的情況下,遷移爬得很慢。IPv4 的權宜之計 NAT 用得太成功、反而消磨了急迫感——這正是為什麼數十年後,網際網路仍然新舊兩種協定並行。