1. 漫畫開場
漫畫文字版(畫面及對白)
| 格 | 畫面 | 對白 |
|---|---|---|
| 1 | 阿麥回到家,手上的地址卡空白(0.0.0.0),拿著擴音器廣播。 |
字幕:「阿麥剛連上家中的 Wi-Fi,還沒有 IP Address(網絡位址)。」 阿麥:「有沒有人可以給我一個地址?」 |
| 2 | 路路坐在酒店前台,遞出房卡:192.168.1.10、Default Gateway(預設閘道) 192.168.1.1、DNS(網域名稱系統) 192.168.1.1、租約 24 小時。 |
字幕:「DHCP(動態主機設定協定)好像酒店前台派房卡。」 路路:「 192.168.1.10 給你,租用 24 小時。出門找我,查名字也找我!」阿麥:「謝謝!」 |
| 3 | 小比出門經過管理處;路路把寄件人 192.168.1.10 改成 203.0.113.1,在記錄簿寫下對照。 |
字幕:「全家共用一個 Public IP(公共位址)出門,這叫 NAT(網絡位址轉換)。」 路路:「私人室號不能在街上用,我幫你換成大廈地址,順便記一筆!」 |
| 4 | 回覆的小比寫著收件人 203.0.113.1 Port(連接埠) 40001;路路翻記錄簿,改回 192.168.1.10。 |
字幕:「回信到了,管理處照記錄轉交。」 路路:「40001 號……是阿麥的!這邊走,這條路最快!」 |
2. 重點概念
新裝置連上網絡時,還沒有 IP Address。DHCP(動態主機設定協定)就是自動分配 IP Address 和其他設定的協定,好像酒店前台派房卡:你報到,前台給你一個房號,租用一段時間。
家中的裝置用的是 Private IP(私人位址),不能直接在互聯網上使用。NAT(網絡位址轉換)讓全家裝置共用 Router(路由器)上的一個 Public IP(公共位址),好像大廈管理處代收代寄信件。
3. 看深一點
想看動畫詳解? 網絡小故事 14. 大廈管理處:NAT(網絡位址轉換)與 Port Forwarding(連接埠轉發)
DHCP 給你的不只是位址
一次 DHCP,會同時給你上網需要的幾樣設定:
| 設定 | 阿麥在家得到的 | 用途 |
|---|---|---|
| IP Address | 192.168.1.10 |
你在這個網絡的位址 |
| Subnet Mask(子網絡遮罩) | 255.255.255.0(即 /24) |
分辨誰和你在同一個 Subnet(子網絡) |
| Default Gateway(預設閘道) | 192.168.1.1 |
出門找誰(第 4、6 課) |
| DNS 伺服器 | 192.168.1.1 |
查名字找誰(第 7 課) |
| Lease Time(租約時間) | 24 小時 | 這個位址借給你多久 |
在家中,這些工作全部由家用 Router 負責:它同時是 DHCP 伺服器、Default Gateway 和 DNS 的轉介站。
四個步驟:DORA
DHCP 分配位址有四個步驟,取英文第一個字母,叫 DORA:
| 步驟 | 英文 | 誰說 | 說什麼 |
|---|---|---|---|
| 1 | Discover(發現) | 阿麥(廣播) | 「有沒有 DHCP 伺服器?我需要一個位址!」 |
| 2 | Offer(提供) | 路路 | 「192.168.1.10 給你,可以嗎?」 |
| 3 | Request(請求) | 阿麥(廣播) | 「我要 192.168.1.10!」 |
| 4 | Acknowledge(確認) | 路路 | 「批准!租用 24 小時。」 |
為什麼第 1 步要廣播?因為阿麥還沒有 IP Address,也不知道 DHCP 伺服器在哪裡,只好向整個 LAN(區域網絡)大叫。這時他的寄件人位址寫 0.0.0.0(「我還沒有位址」),收件人寫 255.255.255.255(IPv4 的「同一個 LAN 內所有人」);Frame(訊框)上的收件人則是第 3 課的 FF:FF:FF:FF:FF:FF。
第 3 步為什麼又要廣播?因為一個 LAN 裡可能有多於一部 DHCP 伺服器都作出了 Offer。阿麥大聲說出自己選了哪一個,其他伺服器就知道可以把位址留給別人。
圖解:左邊是阿麥,右邊是家中 Router(DHCP 伺服器)。第 1 和第 3 步用廣播;四步完成後,阿麥得到 IP Address、Subnet Mask、Default Gateway、DNS 伺服器和租約時間。
租約:借的,不是送的
DHCP 的位址是借給你的。租約時間過了一半,裝置就會問 Router 可否續租,通常都會批准,所以你在家裡的位址往往很少改變。
如果你離開了(例如拿著手機出門),租約到期後,位址就會收回,分給其他裝置。這就是為什麼第 4 課說,就算坐著不動,IP Address 也有可能改變。
找不到 DHCP 伺服器會怎樣? 很多系統會自己選一個
169.254.x.x的位址。這種位址只能和同一條線上的裝置溝通,不能上網。如果你見到自己的位址是169.254開頭,通常表示 DHCP 出了問題。
NAT(網絡位址轉換):大廈管理處
第 4 課說過,Private IP 不會在互聯網上出現。那麼阿麥(192.168.1.10)怎樣上 example.com(192.0.2.80)?
答案是:家用 Router 在封包出門時,把寄件人改成自己的 Public IP,並記下一筆對照。家中有很多部裝置,怎樣分得清回信是誰的?Router 同時會改寫 Port(連接埠)號碼(第 9 課會詳細介紹 Port),每個對話用一個不同的號碼。
阿麥和家中另一部裝置同時上 example.com,Router 的 NAT 記錄簿可能是這樣的:
| 家中裝置(Private) | 出門後變成(Public) | 對方 |
|---|---|---|
192.168.1.10,Port 50000 |
203.0.113.1,Port 40001 |
192.0.2.80,Port 443 |
192.168.1.11,Port 50000 |
203.0.113.1,Port 40002 |
192.0.2.80,Port 443 |
兩部裝置剛巧都用了 Port 50000,但出門後分別變成 40001 和 40002,所以不會混亂。
回信到達時:
- 回信的收件人是
203.0.113.1,Port 40001。 - Router 翻查記錄簿:40001 是
192.168.1.10的 Port 50000。 - Router 把收件人改回
192.168.1.10,Port 50000,送進家中 LAN。
圖解:上半部是出門的封包,寄件人被改寫;下半部是回來的封包,收件人按記錄簿改回。互聯網上只看到 203.0.113.1。
嚴格來說,這種連 Port 一起改寫的做法叫 PAT(連接埠位址轉換),也有人叫 NAPT。今天家用 Router 說的「NAT」,幾乎都是指它。
NAT 的副作用:陌生人找不到你
記錄簿只有「家中裝置主動寄出」的對話。如果互聯網上有人主動寄信到 203.0.113.1,而記錄簿沒有對應的一行,Router 就不知道應該轉交給誰,通常會直接丟掉。
- 好處:家中裝置不會被陌生人直接找到,多了一層保護。
- 壞處:如果你想在家中架設伺服器,或者玩某些網上遊戲,就要在 Router 設定 Port Forwarding(連接埠轉發),事先寫好「寄到某個 Port 的信,交給哪部裝置」。
IPv6 的位址多到用不完,每部裝置都可以有自己的 Public 位址,所以一般不用 NAT。
4. 動手試試
任務一:看看你的租約
| 系統 | 步驟 |
|---|---|
| Windows | 在「命令提示字元」輸入 ipconfig /all,找「租用取得」和「租用到期」,以及「DHCP 伺服器」 |
| macOS | 系統設定 → 網絡 → Wi-Fi → 詳細資料 → TCP/IP,看「設定 IPv4」是否為「使用 DHCP」 |
| iPhone | 設定 → Wi-Fi → ⓘ,看「設定 IP」是否為「自動」;最底有「更新租約」 |
| Android | Wi-Fi 網絡詳細資料 → 進階選項 → IP 設定是否為「DHCP」 |
想一想:你的 DHCP 伺服器位址,和 Default Gateway 一樣嗎?
任務二:比較兩個位址
第 4 課你已經找過自己的 Private IP,也用搜尋器看過自己的 Public IP。現在你知道:兩者不同,就是因為家中 Router 做了 NAT。
小互動
DHCP 的正確次序
把 DORA 四個步驟排好次序。
- Request:阿麥廣播「我要 192.168.1.10!」
- Discover:阿麥廣播「有沒有 DHCP 伺服器?」
- Acknowledge:路路回覆「批准!租用 24 小時。」
- Offer:路路回覆「192.168.1.10 給你,可以嗎?」
小互動
DHCP 還是 NAT?
把以下六張卡分到正確的功能:
-
1新裝置連上 Wi-Fi 時,自動得到 192.168.1.10
-
2封包出門時,寄件人由 192.168.1.10 變成 203.0.113.1
-
3告訴裝置 Default Gateway 是 192.168.1.1
-
4回信到達時,按記錄簿找出是哪部裝置的
-
5租約過了一半,裝置要求續租
-
6讓全家裝置共用一個 Public IP
全部分對了!DHCP 負責派位址和設定;NAT 負責在 Private IP 和 Public IP 之間轉換。
5. 比喻的極限
- 酒店前台不會要求你「退房」。 現實中裝置離開時,未必會通知 DHCP 伺服器;伺服器要等租約到期才會收回位址。
- 不是每部裝置都用 DHCP。 Router、伺服器和打印機常常用人手設定的固定位址;Router 也可以設定「某個 MAC Address(硬體位址)永遠拿到同一個位址」。
- 管理處不只一層。 有些 ISP(互聯網服務供應商)位址不夠,會在自己的網絡裡再做一次 NAT,所以你的 Router 對外位址也可能不是真正的 Public IP。
- NAT 不是防火牆。 它令陌生人較難找到你,但真正的保安工作要靠 Firewall(防火牆)(網絡小故事 19)。
- 路路的記錄簿會過期。 NAT 記錄在對話結束或一段時間沒用後就會刪除,所以回信不能遲太久才到。
6. 小測驗
7. 重點筆記
- DHCP(動態主機設定協定)自動派發 IP Address、Subnet Mask、Default Gateway、DNS 伺服器和租約時間。
- DHCP 的四個步驟是 DORA:Discover、Offer、Request、Acknowledge;Discover 和 Request 用廣播。
- 位址是租借的,租約過了一半會續租;見到
169.254開頭的位址,通常表示找不到 DHCP 伺服器。 - NAT(網絡位址轉換)讓全家共用一個 Public IP:出門時改寫寄件人和 Port,回來時按記錄簿改回。
- 外面的人不能主動找到 NAT 後面的裝置,除非設定 Port Forwarding(連接埠轉發)。
下一站
NAT 的記錄簿裡出現了很多 Port 號碼:50000、40001、443……它們到底是什麼?為什麼有些資料要「先握手」才送?