第 8 章 IP 服務:DHCP、NAT、NTP 與網管

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 做的叫「疊代查詢」(一層層問下去)
遞迴查詢:你的電腦只問一次,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、網域所有權驗證
查 DNS 的兩個工具
! 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
Cisco 設備上的 DNS 設定
! 讓路由器能用名稱(例如 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 題)