IPv4與IPv6的差異:位址長度、標頭、分段、位址設定與NAT比較

IPv4與IPv6都是在網路層把封包送達目的地的協定。IPv4的位址為32位元,只有約43億個,因此使用私有位址與NAT、讓多台設備共用一個全球位址的做法變得普遍。IPv6把位址擴大到128位元,將標頭簡化為40位元組的固定長度,並取消了途中路由器對封包的分割(分段)。不過兩者之間沒有相容性,只支援IPv4的設備與只支援IPv6的設備無法直接通訊。因此會組合同時使用兩者的雙堆疊、把一方的封包包在另一方的封包中傳送的通道技術,以及轉譯位址的NAT64等方式來推動轉移。

項目IPv4IPv6
位址的長度與數量32位元。2的32次方(約43億)個128位元。2的128次方(約3.4×10^38)個
表示法分成4個8位元的十進位數字,以點分隔(例:192.0.2.1)分成8組16位元的十六進位數字,以冒號分隔。各組開頭的0,以及一處連續為0的部分可用「::」省略(例:2001:db8::1)
標頭20〜60位元組的可變長度。有選項與標頭檢查碼40位元組的固定長度。沒有檢查碼,選項以擴充標頭接在後面。相當於TTL的是跳數限制
分段除了來源端,途中的路由器也能分割封包(未設定DF位元時)途中的路由器不分割。只有來源端使用擴充標頭分割。鏈路的MTU至少為1280位元組
位址的自動設定以DHCP分配(或手動設定)由終端依路由器通告(RA)的資訊自行產生位址的SLAAC,或DHCPv6。鏈路本地位址一定會自動產生
MAC位址的解析ARP。以廣播詢問ICMPv6的鄰居探索(NDP)。以群播詢問
NAT為彌補位址不足,一般以私有位址與NAPT共用一個全球位址位址充足,因此設計上為每台設備分配全球位址,端到端以同一位址通訊。一般不使用NAT
目的地的種類單播、廣播、群播單播、群播、任播。沒有廣播,改以群播替代
IPsec選用。需要時再加入使用早期的需求規定必須實作,現行的需求(RFC 8504)則為建議。實際是否使用,兩者都取決於設定

數值為具代表性的大致參考值,會因世代或產品而異。

適用於什麼情況

IPv4
目前仍在許多網路與服務中使用,因此短期內幾乎所有設備都需要支援。由於位址不足,會搭配私有位址與NAT使用。
IPv6
想為大量設備分配不經NAT的全球位址時,或新建網路時。實務上一般以與IPv4並用的雙堆疊方式導入。

常見問題

IPv6的設備能直接與IPv4的設備通訊嗎?

不能。兩者的標頭格式與位址長度都不同,沒有相容性。許多網路採用雙堆疊,讓設備同時擁有IPv4與IPv6位址,並依對方選用。只支援IPv6的設備要與只支援IPv4的伺服器通訊,需使用NAT64與DNS64這類轉譯位址的機制。要跨越IPv4網路傳送IPv6封包時,則使用把它包在IPv4封包中傳送的通道技術。

IPv6不使用NAT嗎?

並非不能使用,但一般不需要。NAT在IPv4中普及的主要原因是位址不足,而IPv6能為每台設備分配足夠數量的全球位址。限制從外部發起之連線的工作,由防火牆而非NAT負責。NAT並不會加密通訊,光靠它也無法防範來自外部的攻擊。

使用IPv6時,DNS有什麼改變?

由名稱查詢IPv4位址使用A記錄,查詢IPv6位址使用AAAA記錄。雙堆疊的設備一般會同時查詢兩者,能以IPv6連線就用IPv6,否則使用IPv4。

IPv6位址為什麼以十六進位表示?

因為把128位元寫成十進位會非常長。位址分成8組16位元,每組以4位數的十六進位表示。各組開頭的0可以省略,連續全為0的組也可以在一處合併為「::」。例如 2001:0db8:0000:0000:0000:0000:0000:0001 可以寫成 2001:db8::1。

理解度檢測

依照省略規則,把IPv6位址 2001:0db8:0000:0000:0000:0000:0000:0001 正確縮寫的是下列何者?

  1. A2001:db8:1
  2. B2001:db8::1
  3. C2001:db8::0::1
查看答案與解析

正確答案:B. 2001:db8::1

IPv6位址為128位元(IPv4為32位元),每16位元分為一組,共8組,每組以4位數的十六進位表示。省略規則有兩條:各組開頭的0可以省略(0db8→db8、0001→1),以及連續全為0的組可以用「::」取代,但只能用一次。此例中,第3到第7組共5組0合併後成為 2001:db8::1。若用了兩次「::」,就無法確定各自代表幾組0,因此不允許。「2001:db8:1」只有3組,又沒有表示省略0組的「::」,並不是這個位址的正確寫法。

下列IPv4位址中,哪一個屬於私有位址的範圍?

  1. A172.32.0.1
  2. B192.168.100.1
  3. C11.1.1.1
查看答案與解析

正確答案:B. 192.168.100.1

RFC 1918所定義的私有位址有 10.0.0.0/8、172.16.0.0/12(172.16.0.0~172.31.255.255)、192.168.0.0/16 三個範圍。這些位址可在組織或家庭內自由使用,由於在網際網路上不會宣告它們的路由,許多組織可以重複使用相同的位址。要與網際網路通訊時,由路由器的NAT轉換為全球位址。172.32.0.1 的第2個八位元組超出16~31的範圍,不屬於 172.16.0.0/12;11.1.1.1 也在 10.0.0.0/8 之外。

家用寬頻路由器會執行NAT(網路位址轉譯)的一種,即NAPT(IP偽裝)。NAPT能做到什麼?下列何者正確?

  1. A家中多台終端以連接埠號碼區分,可同時共用一個全球IP位址與網際網路通訊
  2. B家中終端與網際網路之間的通訊會被加密,途中無法被竊聽
  3. C家中每台終端都會自動分配到各自不同的全球IP位址
查看答案與解析

正確答案:A. 家中多台終端以連接埠號碼區分,可同時共用一個全球IP位址與網際網路通訊

NAT(網路位址轉譯)是改寫經過路由器之封包的來源或目的地IP位址的技術。NAPT除了IP位址之外也改寫連接埠號碼,並把「內側位址與連接埠」和「外側連接埠」的對應記錄在轉譯表中。因此,使用私有位址的多台終端可以同時使用路由器所擁有的一個全球位址。回傳的封包則查轉譯表送到正確的終端。它只改寫位址,並不加密。此外,從外部發起的連線在轉譯表中沒有對應,預設無法到達內側的終端,若要在內側公開伺服器,需要設定連接埠轉送等。

  1. 下列關於ARP功能的敘述,何者正確?
  2. IPv4標頭中TTL(Time To Live,存活時間)的功能,下列何者正確?
  3. 以DHCP讓終端取得IP位址時,訊息的順序下列何者正確?

前往電腦網路基礎的練習題

相關名詞的解說

CIDR
Classless Inter-Domain Routing(無類別域間路由)。以「/」之後的位元數(前綴長度)自由決定IP位址網路部長度的方式及其寫法,例如 192.168.1.0/24。
子網路遮罩
表示IP位址上位幾位元屬於網路部分(網路部)的32位元值。寫成 255.255.255.0 的形式,與CIDR表示法的 /24 意義相同。
NAT(網路位址轉譯)
改寫經過路由器之封包IP位址的技術。連同連接埠號碼一起改寫、讓多台終端共用一個全球位址的方式稱為NAPT(IP偽裝)。
DHCP
Dynamic Host Configuration Protocol(動態主機設定協定)。為連上網路的終端,自動且有期限地分配IP位址、子網路遮罩、預設閘道、DNS伺服器等設定的協定。
ARP
Address Resolution Protocol(位址解析協定)。根據IP位址查出同一網路上設備之MAC位址的協定。以廣播送出請求,由符合的設備回覆。
MAC位址
在乙太網路與無線區域網路中,用來指定同一網路內設備的48位元位址。上位24位元代表製造商,在製造時分配給每個介面。
DNS(網域名稱系統)
把 www.example.com 這類網域名稱與通訊所用的IP位址對應起來、由全世界的伺服器分散管理的機制。

相關的比較