網際網路 IPv4 and IPv6

Kola (Yan-Hao Wang)
7 min readApr 18, 2024

--

IP 由 網際網路名稱與數字位址分配機構 (ICANN) 底下的 網際網路號碼分配局(英語:Internet Assigned Numbers Authority,縮寫IANA)負責分配,它負責授權給公正的單位來分配 IP,台灣則是 TWNIC 財團法人台灣網路資訊中心 負責分配,分配給學術網路、各家 ISP,我們申請是向

IP 封包分為 header and payload, header 放著有關 IP 協定相關的資訊, Payload 則放其他的東西。

IP 協定有三種傳輸方式

  1. Unicast: 單點傳送
  2. Broadcast: 傳給所有人
  3. Multicast: 傳給特定群組

最久以前有分成 Class A, B, C, D and E,如下圖,分為網路位置跟主機位置,其中 D 為 multicast and E 保留。

https://techhub.hpe.com/eginfolib/networking/docs/switches/5130ei/5200-3942_l3-ip-svcs_cg/content/483572274.htm

Class A 的第 1 個位元組會 < 128,128 ≤ B <192, 192 ≤ C < 224

其中會有幾個特殊 IP

  1. 主機位址全部為 0 代表這個網路
  2. 主機位址全部為 1代表 這個網路所有機器
  3. 全部都是 1, 255.255.255.255, limited broadcast 代表只有跟你一樣網路位址的機器可以收到
  4. Loopback address,自己,位址塊127.0.0.0/8被保留作環回通訊用
  5. 私人地址,根據 A B C 會有不同的 range
https://www.google.com/url?sa=i&url=https%3A%2F%2Fnetworkel.com%2Fip-address-classes%2F&psig=AOvVaw19d0Y99CHIUAFtaX9rI07W&ust=1713528770331000&source=images&cd=vfe&opi=89978449&ved=0CBQQjhxqFwoTCIDBr5_ey4UDFQAAAAAdAAAAABAE

不過這樣比較沒有彈性,所以有了 Subnet 來細分 host ID,它會等於多了一個子網路位址 (借用主機位址,這樣就等於網路位址變長了),你可以設定 1(等於沒設) 2 4 8 … 個子網路。

我們則需要網路遮罩來知道網路位址真正的長度,因為有子網路,如下圖。所以常見的表示遮罩方式為 168.95.192.1/21 代表遮罩長度 (1 的數量)為 21。

https://techhub.hpe.com/eginfolib/networking/docs/switches/5130ei/5200-3942_l3-ip-svcs_cg/content/483572276.htm

而原本 Class A B C 沒設定子網路的遮罩就是 255.0.0.0 (Class A), 255.255.0.0(Class B) and 255.255.255.0(Class C)

但現在上實際用的是 CIDR (無類別域間路由),又叫做 Supernet,本質上就是把網路位址縮短。

NAT

  1. Static NAT: private ip 跟 public ip 一對一
  2. Dynamic NAT: 一個私人 ip 對應一個不固定的合法 ip 位置
  3. NAPT (Network Address Port Translation),利用 port 讓多個私人 IP 共用一個合法 IP 位址,絕對不會不夠,又被稱為 (IP Masquerade),最常用的

寬頻分享企或者無限分享機就具備 NAT + switch 的效果。

缺點為可能無法使用否些加密協定、外界主動存取時設定比較複雜。

IPv6

使用 16 進位表示 address,有 8 段,128 bits,相較於 IPv4 有以下特殊的特性。

  1. Auto-Configuration 機制
  2. 整合了加密協定 IPSec (IP Security)
  3. IPv4 header 長度不固定,20–60 bytes,IPv6 固定為 40 Bytes,欄位也從 14 變成 8 個

同樣 IPv4 address 也有 prefix,長度不固定,常見的 IPv6 address 為,在 / 之後放上 prefix 的長度,之前 IPv4 是 mask 1 的數量。

ipv6 address 分成三種

https://ipcisco.com/lesson/ipv6-address-types/
  1. Unicast: 表示單一界面
  2. Multicast: 整合了 ipv4 multicast and broadcast
  3. Anycast: 特殊新增的,一個 anycast 可以被多個電腦使用,它代表的是送給距離最近或成本最近的節點,由路由表決定,不能給電腦使用,給路由器使用。

其中 Unicast 又分成

  1. Global address: Prefix 長度為 001, Interface ID (IPv4 的 Host ID) 固定為 64 bit,這就是最多跟常用的,具有唯一性,通常以 2 or 3 開頭,
  2. Site-Local address: FEC0::/10,過時了,原本目標是讓企業範圍使用,當作 private IP。
  3. Link-Local Address: FE80:/10,類似 IPv4 APIPA address,僅在特定的網路區段內使用 (同一個子網路),不能通過路由器,用在自動設定上面。
    在網路中,Link-local指的是「只用於在同一個廣播網域中的通訊」。以IPv4來說,自動化設定的時候會採用169.254.0.0/16的IP位址區段。而IPv6則會採用fe80::/10的IP位址區段。 — 來源
    為何需要介面索引值呢(scope id)?因為 link-local 位址(與 Site-local 位 址)的前置碼可以重複使用,也就是站台內的所有連結都可以使用相同的前置碼 (因此位於不同連結內的節點,其 link-local 位址也可以相同),這會造成使用上的 混淆
    同理,每一台主機也可能有多個網路介面分別連接到不同的站台(site),因此也 需透過 zone ID 來區分(此時它被稱為 site ID)。若您的主機只連接到 1 個站台, 則其預設的 site ID 為 1
  4. IPv4-Compatiable adrress: IPv4 前面加 96 個 0。
  5. Unique Local: Unique Local 位址是用來取代 Site-local 位址
https://dlcenter.gotop.com.tw/SampleFiles/ACA027200/%E8%A3%9C%E5%85%85%E5%8F%8A%E6%9B%B4%E6%96%B0%E8%B3%87%E6%96%99/2022Book1APPA.pdf

6. Special address: loopback address and unspecified address

https://dlcenter.gotop.com.tw/SampleFiles/ACA027200/%E8%A3%9C%E5%85%85%E5%8F%8A%E6%9B%B4%E6%96%B0%E8%B3%87%E6%96%99/2022Book1APPA.pdf

參考

--

--

Kola (Yan-Hao Wang)
Kola (Yan-Hao Wang)

Written by Kola (Yan-Hao Wang)

在系統軟體跟資安領域學習的學生

No responses yet