我們之前有提到,DNS 會幫我們把 Domain name 指向 IP address,其實 DNS 的本質就像電話簿,裡面有各項紀錄 (Record),如果我們有了名字(相當於 DNS 的 domain name),就可以知道對方的聯絡方式,例如電話(相當於 DNS 的 IP address),如下表:
名稱 | 聯絡方式 | |
---|---|---|
真實世界 | 必勝客 | 28825252 |
網路世界 | trendmicro.com | 216.104.20.24 |
DNS record 就會幫我們紀錄每個網域名稱對應到的聯絡資訊,但有時候不一定是 IP address,有可能是另一個網域 (CNAME),還有其他不同類型的紀錄,常見的如下:
常見類型
Mail 相關
通常我們最需要瞭解的,就是 A Record、CNAME Record,但其他也還有一些還算常見的 Record 類型,以下我們就來一一介紹吧~
TYPE | NAME | VALUE | TTL |
---|---|---|---|
A | example.com | 12.34.56.78 | 7200 |
所謂的 A Record,就是將 domain 指向 IP address 的紀錄,A Record 會有 4 個描述欄位,基本上大部分的 DNS Record 都採用上述 4 個欄位來描述該 Record:
那上述提到 A Record 只能指向 IPv4 address,那 IPv6 呢?
所以 DNS 也有一個 Record 類型是來描述 IPv6 的 address,也就是 AAAA Record (quad A Record),就可以幫助我們解決想要指向 IPv6 address 的問題
TYPE | NAME | VALUE | TTL |
---|---|---|---|
CNAME | bar.example.com | foo.example.com | 32600 |
CNAME Record,也就是 Conical Name Record,中文翻做「真實紀錄名稱」,Conical 有「規範」的意思
CNAME 的 NAME 的部分,就是我們的輸入的 domain name,VALUE 就是我們要指向的另一個 domain name
通常 CNAME 的用途有以下 3 種:
TYPE | NAME | VALUE | TTL |
---|---|---|---|
CNAME | www.example.com | example.com | 32600 |
通常,我們的網址結構如下:
由上圖所示:
所以,如果要讓 user 從 www.example.com 進入我們的 server,就需要另外設定 CNAME
TYPE | NAME | VALUE | TTL |
---|---|---|---|
CNAME | ftp.example.com | example.com | 32600 |
當我們只有一台 server,但會利用此 server 提供多項服務時,就可以在原 server domain 前加入描述功能的 sub domain,以方便做功能的區分,但實際上都是導向同一個 server
TYPE | NAME | VALUE | TTL |
---|---|---|---|
CNAME | hello.benson-chen.com | d70ti4o1uqq3e.cloudfront.net | 32600 |
在 AWS Cloudfront,也就是 AWS 提供的 CDN 服務中,會先給一個預設的 domain name,如上述就是 d70ti4o1uqq3e.cloudfront.net,這樣的話,我們就不用知道 CDN Server 的 IP address,可以將我們的 domain 指向到這個 domain name,就可以讓 user 優先從我們的 CDN 存取資源了
NS Record - 是哪台機器管理你家的 DNS 資訊
SRV Record - 更細節的 record
Mail related