寫給 Web 工程師的 DNS 知識入門
- 2019 年 11 月 8 日
- 筆記
你是不是對 DNS 記錄的一些概念不太了解,比如 A 記錄、CNAME、AlIAS 等。。
下面讓我們一起來學習一下~
1 簡介
為了訪問 www.savokiss.com
這個域名,你的電腦需要知道伺服器在網路中的位置。
這意味著:你的電腦必須知道 IP 地址才能跟伺服器進行通訊。
而域名系統 (Domain Name System) 正是為解決這個問題而生。

2 記錄欄位
當你註冊一個域名後,就可以設置多種 DNS 記錄。每種記錄都有一個 Type
,一個 Host
和一個 Value
Type
是提前定義好的Host
可以填根域名 (@) 或者子域名(www)Value
就是一個 IP 地址或者域名

3 A 記錄
A
記錄將一個子域名映射到一個 IPv4 地址。
它常被用於根域名映射,這樣瀏覽器就知道 savokiss.com
這個域名到底指向哪個 IP 地址。
同理,AAAA
記錄則是用於 IPv6 的。

4 CNAME 記錄
CNAME
則是映射一個子域名到另外一個域名。
它也可以指向相同站點的另外一個域名(如將 www 指向根域名)
或者另外一個網站,如 heroku (一個國外的雲應用平台)

5 CNAME 的問題
CNAME
是有一些缺點的。
一旦你為一個子域名定義了 CNAME
指向,就不能為這個子域名再定義其他類型的指向了。
正由於此,你不能把 CNAME
定義在 根域名上。

6 ALIAS 記錄
為了解決上面的問題,可以使用 ALIAS
。
ALIAS
就像是 CNAME
,但卻不是一個標準的 DNS 類型。
你可以使用 ALIAS
將根域名 savokiss.com
指向你的 app 伺服器(如 savokiss.herokudns.com )同時也可以對這個域名使用其他記錄解析。

7 TXT 記錄
TXT
可以讓其他主機讀取額外的資訊,就像留下了一條秘密消息那樣。
TXT
一般用來證明某個域名的所有權,因為只有域名的所有者才可以修改 DNS 記錄。

8 MX 記錄
MX
記錄(即 Mail eXchange),是用來配置郵箱服務的。
MX
記錄是唯一的,你可以設置多個伺服器,並且為每個伺服器配置優先順序。

9 TTL
還有許多其他的記錄類型,但是上面的幾種是最常用的。
對於每種記錄類型,你都可以指定一個 TTL
(即 Time To Live 存活時間)
這個時間告訴 DNS 伺服器需要快取這些記錄值多久。

10 DNS 快取
TTL 基本上代表了從你修改一條記錄開始到終端用戶的生效時間(讓子彈飛一會~)。
DNS 伺服器,ISP 供應商和你的電腦都會快取 DNS 記錄,在 TTL 時間刷新前,快取的都是上一次設置的記錄值。

速查表
最後送上一張 DNS 速查表和 dnspod 上的記錄類型說明,希望本文對你理解 DNS 有幫助~


參考文章
DNS Record Crash Course for Web Developers