1. 程式人生 > 程式設計 >漫話:全球 IPv4 地址正式耗盡?是時候說說到底什麼是IPv4和IPv6了!

漫話:全球 IPv4 地址正式耗盡?是時候說說到底什麼是IPv4和IPv6了!

2019年11月25日,負責英國、歐洲、中東和部分中亞地區網際網路資源分配的歐洲網路協調中心(RIPE NCC)宣佈,其最後的 IPv4 地址空間儲備池在 11 月 25 日 UTC + 1 15:35 完全耗盡,所有 43 億個 IPv4 地址已分配完畢。

其實,早在20世紀80年代後期開始,全球已經開始意識到這個問題將會發生。IPv6的研發及佈署,主要就是為瞭解決這個問題。

什麼是IPv4?

IPv4是Internet Protocol version 4的縮寫,中文翻譯為網際網路通訊協議(TCP/IP協議)第四版,通常簡稱為網際協議版本4。

IPv4使用32位(4位元組)地址,因此地址空間中只有4,294,967,296(2^32) 個地址。

IPv4地址可被寫作任何表示一個32位整數值的形式,但為了方便人類閱讀和分析,它通常被寫作點分十進位制的形式,即四個位元組被分開用十進位制寫出,中間用點分隔。

所以,通常IPv4地址的地址格式為nnn.nnn.nnn.nnn,如:

192.168.1.255複製程式碼

因為在點分十進位制的表達形式下,共有4個位元組的IP地址被分位四段,每一段就有一個位元組,而一個位元組有8位,那麼,8位能表示的數字範圍是 0 - 255。

所以,一個IPv4的地址,格式為nnn.nnn.nnn.nnn,其中 0<=nnn<=255,而每個 n 都是十進位制數。可省略前導零。

IPv4報文格式

我們知道,在TCP/IP 五層協議模型中,一次網路請求要先後經過應用層->傳輸層->網路層->資料鏈路層->物理層。

而在請求過程中,一個請求資料也會從應用層到物理層經過層層包裝,每一層把上一層的資料報文包裝後加上一層頭部資訊之後再傳給下一層。

所以,IPv4作為網路層協議,在其報文結構中,同樣包含了IP首部和資料部分。

其中,IPv4的首部長度是可變的,範圍在20-60位元組之間。

首部

IPv4報文的首部包含14個欄位,其中13個是必須的,1個是可選的。

上圖是一張IPv4報文的首部格式,可以看到,IPv4首部中包含的內容還是很多的,比如版本號,首部長度,識別符號,分片偏移,存活時間,協議等。

由於這部分不是本文的重點,這裡就不對報文頭展開詳細介紹了,讀者可以參照上圖自行學習下。

資料

報文中,除了首部以外,還有一個最重要的部分那就是資料部分,資料欄位不是首部的一部分,因此並不被包含在首部檢驗和中。

前面說過,網路層會把傳輸層的報文封裝成資料,並新增上首部之後傳遞給鏈路層。

所以,IPv4的報文中資料部分就是傳輸層的協議報文內容,如TCP、UDP等。

為什麼IPv4會枯竭?

IP地址的全球性管理機構為網際網路號碼分配局(IANA),其下有五個區域網際網路註冊管理機構(RIR)

在理論上,IPv4最多可以提供2^32 (約42.9億)個IP地址。不過,一些地址是為特殊用途所保留的,如約1800萬個專用網路和約2.7億個多播地址,同樣減少了可在網際網路上路由的地址數量。

隨著地址不斷被分配給終端使用者,IPv4地址枯竭問題也在隨之產生。

中國是世界上網際網路使用者數量最多的國家,但人均只有0.45個IPv4地址。在IPv4的環境下,我國使用者上網地址需要動態分配,人與地址沒有固定的對應關係,使用者溯源難,帶來網際網路安全和監管隱患。

所以,為瞭解決這個問題,IPv6誕生了。

什麼是IPv6?

IPv6是Internet Protocol version 6的縮寫,中文翻譯為網際網路通訊協議(TCP/IP協議)第6版,通常簡稱為網際協議版6。IPv6具有比IPv4大得多的編碼地址空間,用它來取代IPv4主要是為瞭解決IPv4地址枯竭問題,同時它也在其他方面對於IPv4有許多改進。

IPv6具有比IPv4大得多的編碼地址空間。這是因為IPv6採用128位的地址,而IPv4使用的是32位。因此新增的地址空間支援2^128 個地址,具體數量為340,282,366,920,938,463,374,607,431,768,211,456個(不知道有沒有人能把這個數讀出來?)

有人說IPv6的地址數可能比全世界的沙子還要多,足以解決目前IPv4地址量不足的問題。

IPv6二進位制下為128位長度,以16位為一組,每組以冒號“:”隔開,可以分為8組

IPv6文字格式為 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每個 x 都是十六進位制數,表示 4 位。例如:

2001:0db8:86a3:08d3:1319:8a2e:0370:7344複製程式碼

IPv6的報文格式

和IPv4一樣,IPv6的報文中同樣包含首部和資料部分。

和IPv4不同的是,IPv6報文的首部是40個位元組的固定長度。

下圖是IPv6報文的首部的結構,IPv6定義了一種新的分組格式,目的是為了最小化路由器處理的訊息標頭。

從圖中可以看出,和IPv4相比,IPv6的頭部內容少了很多。

同樣是網路層協議,IPv6和IPv4一樣,都封裝了傳輸層的報文內容作為自己的資料。這一點是沒有任何差異的,所以我們可以說,在報文上,IPv6和IPv4的主要區別是報文頭的區別。

IPv4 VS IPv6

介紹完了IPv4和IPv6,我們再來整體看下這兩種協議之間的區別。

地址

  • IPv4長度為 32 位(4 個位元組)。

    • IPv4 地址的文字格式為 nnn.nnn.nnn.nnn,其中 0<=nnn<=255,而每個 n 都是十進位制數。可省略前導零。最大列印字元數為 15 個,不計掩碼。

  • IPv6長度為 128 位(16 個位元組)。

    • IPv6 地址的文字格式為 xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx,其中每個 x 都是十六進位制數,表示 4 位。可省略前導零。可在地址的文字格式中使用一次雙冒號(::),用於指定任意數目的 0 位。例如,::ffff:10.120.78.40 表示 IPv4 對映的 IPv6 地址。

地址解析協議

  • IPv4 使用 ARP 來查詢與 IPv4 地址相關聯的實體地址(如 MAC 或鏈路地址)。

  • IPv6 使用因特網控制報文協議版本 6(ICMPv6)將這些功能嵌入到 IP 自身作為無狀態自動配置和鄰節點發現演演算法的一部分。因此,不存在類似於 ARP6 之類的東西。

IP 報頭

  • IPv4根據提供的 IP 選項,有 20-60 個位元組的可變長度。

  • IPv6的報文頭是 40 個位元組的固定長度。沒有 IP 報頭選項。

  • 通常,IPv6 報頭比 IPv4 報頭簡單。

安全性

  • IPv6預設有IPSec,來提升安全性。

  • 相較之下,IPv4的IPSec則需要額外開啟。

地址型別

  • IPv4 地址分為三種基本型別:單點廣播地址、多點廣播地址和廣播地址。

  • IPv6 地址分為三種基本型別:單點廣播地址、多點廣播地址和任意廣播地址。有關描述,請參閱 IPv6 地址型別。

專用地址和公用地址

  • IPv4除由 IETF RFC 1918 指定為專用的三個地址範圍 10…

  • (10/8)、172.16.0.0 至 172.31.255.255 (172.16/12) 和 192.168.. (192.168/16) 之外,所有 IPv4 地址都是公用的。專用地址域通常在組織內部使用。專用地址不能通過因特網路由。

  • IPv6 有類似的概念,但還有重要差別。地址是公用或臨時的,先前稱為匿名地址。請參閱 RFC 3041。與 IPv4 專用地址不同,臨時地址可進行全域性路由。

  • 動機也不一樣:IPv6 臨時地址要在它開始通訊時遮蔽其客戶機的身份(涉及隱私)。臨時地址的生存期有限,且不包含是鏈路(MAC)地址的介面標識。它們通常與公用地址沒有區別。

相比IPv4,IPv6主要有以下幾個方面的優點

  • 1.更大的地址空間。IPv4中規定IP地址長度為32,即有2^32 -1個地址。而IPv6中IP地址的長度為128,即有2^128 -1個地址。

  • 2.更小的路由表。IPv6的地址分配遵循聚類原則,這使得路由器能在路由表中用一條記錄表示一片子網,大大減少了路由器中路由表的長度,提高了路由器轉發資料包的速度。

  • 3.增強的組播支援以及對流的支援。這使得網路上的多媒體應用有了長足發展的機會,為服務質量控制提供了良好的網路平臺,加入了對自動配置的支援。這是對DHCP的改進和擴充套件,使得網路的管理更加方便和快捷。

  • 4.更高的安全性。在使用ipv6的網路中使用者可以對網路層的資料進行加密並對IP報文進行校驗,這極大地增強了網路安全。

有人做了一個形象的總結,那就是『多快好省』


IPv4向IPv6的轉換

一方面因為IPv4的枯竭,另一方面也因為IPv6的"多快好省",越來越多的企業開始選擇使用IPv6。

那麼,想要把IPv4網路轉換到IPv6網路,需要做什麼呢?

首先,可以明確的事,IPv6並不是IPv4協議的的升級,而是一個全新的協議,二者之間是無法互相相容的。

為了保障IPv4向IPv6的順利演進,國際網際網路工程任務組(IETF)成立專門工作組進行研究,形成了三類技術方案:雙棧技術、隧道技術、協議轉換技術(NAT-PT)。

雙棧技術

IPv4 和 IPv6 有功能相近的網路層協議,都是基於相同的硬體平臺,同一個主機同時執行 IPv4 和 IPv6 兩套協議棧,具有 IPv4/IPv6 雙協議棧的結點稱為雙棧節點,這些結點既可以收發 IPv4 報文,也可以收發 IPv6 報文。它們可以使用 IPv4 與 IPv4 結點互通,也可以直接使用 IPv6 與 IPv6 結點互通。雙棧節點同時包含 IPv4 和 IPv6 的網路層,但傳輸層協議(如 TCP 和 UDP)的使用仍然是單一的。

 圖源:https://inews.gtimg.com/newsapp_bt/0/10497932033/1000

雙棧技術的優點:

  • 處理效率高、無資訊丟失

  • 互通性好、網路規劃簡

  • 充分發揮 IPv6 協議的所有優點,更小的路由表、更高的安全性等。

  • 資源佔用多,運維複雜。

雙棧技術的缺點:

  • 無法實現 IPv4 和 IPv6 互通

  • 對網路裝置要求較高,內部網路改造牽扯比較大,週期性相比較較長。

隧道技術

隧道技術指將另外一個協議資料包的報頭直接封裝在原資料包報頭前,從而可以實現在不同協議的網路上直接進行傳輸,這種機制用來在 IPv4 網路之上連線 IPv6 的站點,站點可以是一臺主機,也可以是多個主機。隧道技術將 IPv6 的分組封裝到 IPv4 的分組中,或者把 IPv4 的分組封裝到 IPv6 的分組中,封裝後的 IPv4 分組將通過 IPv4 的路由體系傳輸或者 IPv6 的分組進行傳輸。

 圖源:https://inews.gtimg.com/newsapp_bt/0/10497932035/1000

隧道技術的優點:

  • 無資訊丟失

  • 網路運維相比較簡單

  • 容易實現,只要在隧道的入口和出口進行修改

隧道技術的缺點:

  • 隧道需要進行封裝解封裝,轉發效率低。

  • 無法實現 IPv4 和 IPv6 互通

  • 無法解決 IPv4 短缺問題

  • NAT 相容性不好

協議轉換技術

協議轉換技(NAT-PT)附帶協議轉換器的網路地址轉換器。是一種純 IPv6 節點和 IPv4 節點間的互通方式,所有包括地址、協議在內的轉換工作都由網路裝置來完成。NAT-PT 包括靜態和動態兩種,兩者都提供一對一的 IPv6 地址和 IPv4 地址的對映,只不過動態 NAT-PT 需要一個 IPv4 的地址池進行動態的地址轉換。

 圖源:https://inews.gtimg.com/newsapp_bt/0/10497932041/1000

NAT-PT 技術的優點:

  • 不需要進行 IPv4、IPv6 節點的升級改造

NAT-PT 技術的缺點:

  • IPv4 節點訪問 IPv6 節點的實現方法比較複雜,網路裝置進行協議轉換、地址轉換的處理開銷較大一般在其他互通方式無法使用的情況下使用

雙棧技術、隧道技術、協議轉換技術在IPv4向IPv6過渡期間互相配合、協同工作,解決了過渡期間的IPv4與IPv6的共存和互通問題,保障了IPv4向IPv6的平滑演進。

有了以上的切換方法、切換原則和技術保障,以及順應網際網路的發展趨勢,國家正積極推動IPv6的部署。

中國網際網路資訊中心(CNNIC)的第44次《中國網際網路絡發展狀況統計報告》指出,截止2019年6月,我們國家的IPv6地址數量為50286塊/32,已躍居全球第一位;IPv6活躍使用者數達1.3億,大概佔我國網際網路使用者的15%。

IPv6對中國的影響

中國比發達國家晚接入網際網路20年,是網際網路行業的後來者,雖然在網際網路產品和網際網路應用上是大國,但我們的作業系統還是國外的,我們在核心技術上仍有差距,想要在IPv4環境下進行技術創新,中國幾乎沒有什麼機會了。

但是在IPv6上,我們跟發達國家起步差不多,我們是有機會的。

在IPv4時代,中國是沒有根伺服器的,新增幾乎不可能。但是,由中國下一代網際網路國家工程中心牽頭髮起的“雪人計劃”已在全球完成25臺IPv6根伺服器架設,其中在中國境內就部署了其中的4臺,打破了中國過去沒有根伺服器的困境。

另外,國際網際網路有八千多個標準,在IPv4時代,中國只提了中文編碼標準。但目前中國就IPv6提出了一百多個標準,可以說IPv6為中國網際網路發展開啟了一個新的創新空間。

所以,伴隨著IPv4的枯竭,IPv6的大量投入使用,中國在國際網際網路的地位一定會變得愈加重要!

參考資料:

https://www.hollischuang.com/archives/1889

https://new.qq.com/rain/a/20191013A081LI https://www.upyun.com/tech/article/411/%E4%B8%80%E6%96%87%E8%AF%BB%E6%87%82%20IPv4%20%E5%88%B0%20IPv6%20%E7%9A%84%E8%BF%87%E6%B8%A1%E6%8A%80%E6%9C%AF.html