1. 漫畫開場
漫畫文字版(畫面及對白)
| 格 | 畫面 | 對白 |
|---|---|---|
| 1 | 小比拿著收件人寫 example.com 的信;路路看著寫滿數字的指路牌皺眉。 |
字幕:「阿麥在瀏覽器打了 example.com。」小比:「路路,送去 example.com!」路路:「我只看得懂 IP Address(網絡位址),這個名字我不會找……」 |
| 2 | 查查博士走訪三個櫃位:Root Server(根伺服器)、.com、example.com 的權威伺服器。 |
字幕:「DNS(網域名稱系統)由總目錄開始,一層一層問下去。」 查查博士:「讓我查一查……」 櫃位:「去問 .com。」「去問 example.com 的權威伺服器。」「是 192.0.2.80!」 |
| 3 | 查查博士遞出答案卡,並在電話簿夾上書籤「TTL(存活時間) 3600 秒」。 | 查查博士:「example.com 就是 192.0.2.80。我夾張書籤,一小時內再問就快了!」字幕:「查過的答案會暫時記住,這叫 Cache(快取)。」 |
| 4 | 阿麥再問一次,查查博士即時翻到書籤頁回答;小比背包寫上 192.0.2.80 出發。 |
字幕:「第二次問,直接翻到書籤頁。」 阿麥:「 example.com 在哪裡?」查查博士:「書籤有記錄, 192.0.2.80!」小比:「背包執好,出發囉!」 |
2. 重點概念
電腦找對方,要用 IP Address,例如 192.0.2.80;但人比較容易記名字,例如 example.com。
DNS(網域名稱系統)就是負責把網址變成 IP Address 的系統,好像互聯網的電話簿:你查名字,它告訴你號碼。
這本電話簿不是一本書放在一個地方,而是由全世界很多部伺服器分工合作,一層一層地查出答案。
3. 看深一點
網址的結構:由右向左讀
www.example.com 這種名字,叫 Domain Name(網域名稱)。它由幾段組成,要由右向左讀,越右邊層級越高:
| 部分 | 例子 | 意思 |
|---|---|---|
| Root(根) | 最右邊一個看不見的「.」 | 整本電話簿的總目錄 |
| TLD(頂級網域) | com |
分冊,例如 .com、.org、.hk |
| 第二層網域 | example |
某個機構或個人登記的名字 |
| 子網域 | www |
由網域擁有者自己再分的名字 |
完整寫法其實是 www.example.com.,最後那一點代表 Root,平日可以省略。
本課的範例位址 本課假設
example.com的伺服器在192.0.2.80(IPv6 是2001:db8::80)。192.0.2.x是專門留給教材使用的位址。留意:它以 192 開頭,但不是 Private IP(私人位址);只有192.168.開頭的才是。
五個角色:誰在查電話簿?
| 角色 | 比喻 | 工作 |
|---|---|---|
| 你的裝置 | 想打電話的人 | 問:「example.com 的號碼是什麼?」 |
| Resolver(解析伺服器) | 查查博士 | 代你一層一層去問,再把答案告訴你 |
| Root Server(根伺服器) | 總目錄 | 不知道答案,但知道每個 TLD 分冊由誰管 |
| TLD 伺服器 | 分冊 | 知道 example.com 由哪部 Authoritative Server(權威伺服器)負責 |
| Authoritative Server(權威伺服器) | 本人親自接電話 | 保存 example.com 的正式答案 |
你的裝置用哪一部 Resolver?通常是連上網絡時,由 DHCP(動態主機設定協定)告訴你的(第 8 課)。在家中,它常常是 Router(路由器) 192.168.1.1,Router 再轉問 ISP(互聯網服務供應商)的 Resolver。
一次完整的查詢
阿麥第一次打 example.com,而大家都沒有記錄時:
- 阿麥的電腦問 Resolver:「
example.com是什麼 IP Address?」 - Resolver 問 Root Server。Root Server 答:「我不知道,但
.com由這幾部伺服器負責,去問他們。」 - Resolver 問
.com的 TLD 伺服器。它答:「example.com由這幾部 Authoritative Server 負責,去問他們。」 - Resolver 問
example.com的 Authoritative Server。它答:「example.com是192.0.2.80。」 - Resolver 把答案交給阿麥,並把答案記進 Cache(快取)。
整個過程通常只需要幾十毫秒。
圖解:阿麥只問一次,由 Resolver(查查博士)代他走完三個櫃位。Root Server 和 TLD 伺服器只會「指路」,只有 Authoritative Server 才有正式答案。
Cache(快取)與 TTL(存活時間)
如果每次上網都要走完五步,互聯網會慢很多。所以每個人都會把答案暫時記住:
- 你的瀏覽器和作業系統會記住。
- Resolver 會記住,其他用同一部 Resolver 的人也受惠。
- Resolver 也會記住「
.com由誰負責」,下次不用再問 Root Server。
記住多久?每個答案都附帶一個 TTL(存活時間),單位是秒。例如 TTL 3600,表示這個答案可以記住一小時,之後要重新查過。
第 5 課講過 IP 封包的 TTL;DNS 答案的 TTL 是另一樣東西,意思是「這個答案可以快取多少秒」。兩者名字一樣,用途不同。
電話簿上記錄了什麼?
每一條記錄叫 DNS Record(DNS 記錄),常見的有:
| 記錄類型 | 意思 | 例子 |
|---|---|---|
| A Record(A 記錄) | 名字 → IPv4 位址 | example.com → 192.0.2.80 |
| AAAA Record(AAAA 記錄) | 名字 → IPv6 位址 | example.com → 2001:db8::80 |
| CNAME Record(CNAME 記錄) | 名字 → 另一個名字(別名) | www.example.com → example.com |
| MX Record(MX 記錄) | 這個網域的電郵交給哪部伺服器 | example.com 的電郵 → mail.example.com |
DNS 查詢通常用 UDP(用戶資料包協定)送出,Port(連接埠)號碼是 53。第 9 課會解釋這是什麼意思。
4. 動手試試
任務一:自己查電話簿
在電腦上打開「命令提示字元」(Windows)或「終端機」(macOS),輸入:
nslookup example.com
你會見到兩部分:
- Server/Address:你正在用的 Resolver。在家中,它可能就是你的 Router。
- Name/Address:
example.com的 IP Address。可能同時有 IPv4 和 IPv6。
留意: 真實的
example.com是一個由互聯網標準機構管理的示範網站,查到的位址會和本課假設的192.0.2.80不同。這是正常的:本課用192.0.2.80,是為了不指向任何真實的伺服器。
再試試查兩次同一個名字。第二次通常快一點,因為答案已在 Cache 裡。
任務二:沒有 DNS 會怎樣?
在一張紙上寫下你最常去的三個網站名字,再想一想:如果要記住它們的 IP Address,你記得到嗎?這就是 DNS 存在的原因。
小互動
查一個名字的正確次序
第一次查詢 example.com,而大家都沒有 Cache。把五個步驟排好次序。
- Resolver 問 .com 的 TLD 伺服器
- Resolver 把答案 192.0.2.80 交給阿麥,並記進 Cache
- 阿麥的電腦問 Resolver:example.com 是什麼 IP Address?
- Resolver 問 example.com 的 Authoritative Server
- Resolver 問 Root Server
小互動
這是哪一種 DNS 記錄?
把以下五張卡分到正確的記錄類型:
-
1example.com → 192.0.2.80
-
2example.com → 2001:db8::80
-
3www.example.com → example.com
-
4example.com 的電郵交給 mail.example.com
-
5shop.example.com → 192.0.2.81
全部分對了!A 對應 IPv4,AAAA 對應 IPv6,CNAME 是別名,MX 指明電郵伺服器。
5. 比喻的極限
- 不是一本電話簿,而是一整座圖書館。 全世界沒有一部伺服器知道所有答案;DNS 是分散在世界各地、分層負責的系統。
- 一個名字可以有很多個號碼。 大型網站常常有多個 IP Address,不同地方的人可能得到不同答案,好讓大家連到最近的伺服器。
- 號碼可以改變,舊答案可能過時。 網站搬了伺服器,Cache 裡的舊答案要等 TTL 過期才會更新。
- 查查博士只負責查號碼,不負責送信。 DNS 查到 IP Address 後,真正的資料傳送和 DNS 無關。
- 傳統的 DNS 查詢沒有加密。 同一個網絡上的人有機會看到你查了哪些名字;現在有加密的 DNS 查詢方法,但不是所有裝置都預設使用。
6. 小測驗
7. 重點筆記
- DNS(網域名稱系統)把 Domain Name(網域名稱)變成 IP Address,是互聯網的電話簿。
- 網址由右向左讀:Root → TLD(頂級網域,例如
.com)→ 第二層網域 → 子網域。 - Resolver(解析伺服器)代你依次問 Root Server、TLD 伺服器和 Authoritative Server(權威伺服器)。
- 答案會被 Cache(快取)起來,保存多久由 TTL 決定。
- A Record 對應 IPv4,AAAA Record 對應 IPv6;DNS 查詢通常用 UDP Port 53。
下一站
我們一直說 192.168.1.10 是阿麥的位址,Resolver 是 192.168.1.1。但這些設定是誰給他的?家裡這麼多裝置,又怎樣共用一個 Public IP(公共位址)出門?