網際網路 IPv4 and IPv6
IP 由 網際網路名稱與數字位址分配機構 (ICANN) 底下的 網際網路號碼分配局(英語:Internet Assigned Numbers Authority,縮寫IANA)負責分配,它負責授權給公正的單位來分配 IP,台灣則是 TWNIC 財團法人台灣網路資訊中心 負責分配,分配給學術網路、各家 ISP,我們申請是向
IP 封包分為 header and payload, header 放著有關 IP 協定相關的資訊, Payload 則放其他的東西。
IP 協定有三種傳輸方式
- Unicast: 單點傳送
- Broadcast: 傳給所有人
- Multicast: 傳給特定群組
最久以前有分成 Class A, B, C, D and E,如下圖,分為網路位置跟主機位置,其中 D 為 multicast and E 保留。
Class A 的第 1 個位元組會 < 128,128 ≤ B <192, 192 ≤ C < 224
其中會有幾個特殊 IP
- 主機位址全部為 0 代表這個網路
- 主機位址全部為 1代表 這個網路所有機器
- 全部都是 1, 255.255.255.255, limited broadcast 代表只有跟你一樣網路位址的機器可以收到
- Loopback address,自己,位址塊127.0.0.0/8被保留作環回通訊用
- 私人地址,根據 A B C 會有不同的 range
不過這樣比較沒有彈性,所以有了 Subnet 來細分 host ID,它會等於多了一個子網路位址 (借用主機位址,這樣就等於網路位址變長了),你可以設定 1(等於沒設) 2 4 8 … 個子網路。
我們則需要網路遮罩來知道網路位址真正的長度,因為有子網路,如下圖。所以常見的表示遮罩方式為 168.95.192.1/21 代表遮罩長度 (1 的數量)為 21。
而原本 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
- Static NAT: private ip 跟 public ip 一對一
- Dynamic NAT: 一個私人 ip 對應一個不固定的合法 ip 位置
- NAPT (Network Address Port Translation),利用 port 讓多個私人 IP 共用一個合法 IP 位址,絕對不會不夠,又被稱為 (IP Masquerade),最常用的
寬頻分享企或者無限分享機就具備 NAT + switch 的效果。
缺點為可能無法使用否些加密協定、外界主動存取時設定比較複雜。
IPv6
使用 16 進位表示 address,有 8 段,128 bits,相較於 IPv4 有以下特殊的特性。
- Auto-Configuration 機制
- 整合了加密協定 IPSec (IP Security)
- IPv4 header 長度不固定,20–60 bytes,IPv6 固定為 40 Bytes,欄位也從 14 變成 8 個
同樣 IPv4 address 也有 prefix,長度不固定,常見的 IPv6 address 為,在 / 之後放上 prefix 的長度,之前 IPv4 是 mask 1 的數量。
ipv6 address 分成三種
- Unicast: 表示單一界面
- Multicast: 整合了 ipv4 multicast and broadcast
- Anycast: 特殊新增的,一個 anycast 可以被多個電腦使用,它代表的是送給距離最近或成本最近的節點,由路由表決定,不能給電腦使用,給路由器使用。
其中 Unicast 又分成
- Global address: Prefix 長度為 001, Interface ID (IPv4 的 Host ID) 固定為 64 bit,這就是最多跟常用的,具有唯一性,通常以 2 or 3 開頭,
- Site-Local address: FEC0::/10,過時了,原本目標是讓企業範圍使用,當作 private IP。
- 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 - IPv4-Compatiable adrress: IPv4 前面加 96 個 0。
- Unique Local: Unique Local 位址是用來取代 Site-local 位址
6. Special address: loopback address and unspecified address