iT邦幫忙

2021 iThome 鐵人賽

DAY 18
0
自我挑戰組

網路通訊輕鬆聊系列 第 18

理解網際網路協定(四):從 IPv4 到 IPv6,為何新技術遲遲不普及?淺談 NAT 及 IPv6

關於 Internet Protocol,我們最後來聊聊為了解決 IPv4 一些問題而提出的新版本 IPv6,以及為什麼早在上世紀末就規劃好解決方案,時至今日還是沒有廣泛的被使用?

首先來看看 IPv4 的主要問題:IP 位置數量不足。

IP 位置不足會影響什麼?

前面提到,由於 IPv4 在定義 Address 時只有使用 32 個位元,也就是總數為 42 億多的 IP 位置,在今天連網設備數量極多情況,根本沒辦法讓每個設備都被分配到一個實際的 Public IP Address。

有人可能會問,為何上網的設備都需要一個 IP 位置呢?這是因為當你取用網路服務時,實際上是在做封包交換,需要一個目的位置,當然也需要一個來源位置。

上網瀏覽時的訊息交換
*上網瀏覽時的訊息交換

例如我們在瀏覽網頁時,我們電腦的瀏覽器需要先送一段話給網站的伺服器,稱為 Request,其中會包含來源的 IP 位置。等網站伺服器收到這段 Request 後,就會把資料回傳給來源方,稱做 Response。

在 Request 及 Response 的訊息傳遞過程中,都會包含要送到哪個 IP 位置這個訊息,因此來源方需要提供一個可以到達的 IP 位置

為何特別標註可以到達的 IP 位置?因為 IPv4 的公開 IP 位置不足,所以很大一部份的連網設備,都會被 Router 分配一組私有(虛擬) IP 位置,而私有 IP 位置是無法在網際網路上被找到的,只有你所在的區域網路知道你在哪。

怎麼辦?這時有個叫做 NAT 的技術就被提出來了!

NAT 如何讓私有 IP 被定位?

NAT,是 Network Address Translation 的縮寫,中文翻譯成網路位置轉換。沒錯,就是轉換!把私有 IP 位置轉成公開 IP 位置,再轉回來不就得了?

基本的 NAT 就是這麼做的,由於網站伺服器無法定位私有 IP,在電腦送 Request 出去時,Router 就會把來源的 IP 位置改成自己的(Router 同時有兩個 IP 位置,區網內的私有 IP 位置,以及 ISP 指派的公開 IP 位置)。

NAT 改寫 IP 位置

在 Router 改寫來源 IP 位置時,也會在自己的記憶體內註記一下,把原本的私有 IP 位置 192.168.1.2 記錄下來,對應到從這個位置想要 Request 的目的 IP 位置 87.65.43.21

等到網站伺服器收到這個 Request,把資料回傳時,Router 一看這個來源網站伺服器為 87.65.43.21,剛好是我有記錄過的位置,就把這個 Response 丟回給有記錄的這個私有 IP 位置 192.168.1.2,大功告成!

也就是這樣技術的誕生,使得 IPv4 位置不夠的問題得到緩解。

被耽誤 30 年的 IPv6

雖說有這些技術讓 IP 位置不夠的問題有處理的方式,但終究不是最佳解。

透過 NAT 所轉送的封包會有一些限制,例如包了更多層的區域網路,一些需要頻繁交換封包的服務從外網進來就難以「穿透」達到真正的目的地,或變的更加複雜,並存在一些安全性的疑慮。

這時將協定更新成 IPv6 就顯的較為重要。和 IPv4 最大的不同就是地址的長度,從原先的 32 位元,一下變長了 4 倍達到 128 位元。也就是說,總 IP 位置的數量從原本的 42 億多一下增加到 2^128 (約為 10^38 這樣的數量級)這麼多,就算全世界每個人一天增加 10000 連網設備,到老也用不完的地步。

這麼長的 IP 位置,用十進位表示顯然也還是太長,因此最常見的表示方法就改為每 16 位元一組,每組 4 個 16 進制數字,並且中間用 : 隔開,例如 2001:0db8:86a3:08d3:1319:8a2e:0370:7344

縱使解決了大部分 IPv4 的弊端,但在 IPv4 已經普及而且不到很難用的情況下,IPv6 還是無法完全取代 IPv4,究其原因還是相容性的問題。當初設計時並沒有辦法直接讓 IPv6 的硬體設備支援 IPv4 的封包,導致要實做一些像是 Tunneling 的轉換機制,才能讓其相容。

也因此這讓網路設備開發商,亦或是 ISP 們比較沒有動力開發或使用 IPv6 的設備,也畢竟大多數的人用 IPv4 還是用的好好的,何必多花錢更新呢?

在去年底(2020)的 IPv6 流量已經佔全部流量的 30% 了,但過了 IPv6 已經提出的 30 多年後,還不知道何時能真正普及呢?

參考資料

  1. Wiki - IPv6
  2. 鳥哥的 Linux 私房菜 - NAT
  3. Wiki - NAT
  4. TWNIC Blog - IPv6 何時才能全面普及?
  5. Wiki - ICANN

上一篇
理解網際網路協定(三):何謂「子網路遮罩」,什麼又是「預設閘道」?
下一篇
常見網路問題(四):為什麼還是上不了網?DNS Server 設定錯誤,DNS 的簡介及小工具 ping
系列文
網路通訊輕鬆聊30

尚未有邦友留言

立即登入留言