DNS:把人看得懂的名字翻成 IP
「網路壞了」的客訴裡,有很大一部分其實是 DNS 壞了。
約 12 分鐘
DNS(Domain Name System,網域名稱系統)把 www.example.com 翻譯成 93.184.216.34。它用 UDP 53(查詢)與 TCP 53(區域傳送、以及回應超過 512 位元組時)。
一次查詢實際發生的事
你的電腦 本地 DNS 根 → TLD → 權威 │ │ │ ── www.example.com? ─►│ │ │ ── 誰管 .com? ────────► [根伺服器] │ │ ◄── .com 的伺服器在這 ── │ │ │ │ ── example.com 在哪? ─► [.com TLD] │ │ ◄── 權威伺服器在這 ───── │ │ │ │ ── www 的 A 紀錄? ────► [權威伺服器] │ │ ◄── 93.184.216.34 ───── │ ◄── 93.184.216.34 ────│ │ │ (順便快取起來,TTL 到期前不必再問) 你的電腦做的叫「遞迴查詢」(問一次拿到答案) 本地 DNS 做的叫「疊代查詢」(一層層問下去)
常見的紀錄類型
| 類型 | 用途 | 例子 |
|---|---|---|
| A | 網域名稱 → IPv4 位址 | example.com → 93.184.216.34 |
| AAAA | 網域名稱 → IPv6 位址 | example.com → 2606:2800:220:: |
| CNAME | 別名,指向另一個名稱 | www → example.com |
| MX | 郵件伺服器 | 收信要往哪送 |
| NS | 這個網域由哪些 DNS 伺服器負責 | |
| PTR | 反解:IP → 名稱 | 郵件伺服器驗證常用 |
| TXT | 任意文字 | SPF、網域所有權驗證 |
! Windows / macOS / Linux 都有 nslookup
C:\> nslookup www.example.com
Server: dns.google
Address: 8.8.8.8
Non-authoritative answer: ← 代表這是快取來的,不是權威伺服器直接回的
Name: www.example.com
Address: 93.184.216.34
! 指定用某台 DNS 伺服器查(排錯時很有用)
C:\> nslookup www.example.com 1.1.1.1
! 查特定類型的紀錄
C:\> nslookup -type=MX example.com! 讓路由器能用名稱(例如 ping google.com)
R1(config)# ip domain-lookup
R1(config)# ip name-server 8.8.8.8
R1(config)# ip domain-name example.com
! 手動建立名稱對應(小型環境或測試用)
R1(config)# ip host SW1 192.168.1.2
! 讓路由器自己當簡易 DNS 伺服器
R1(config)# ip dns server
R1# show hosts立即測驗這一節(1 題)