iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0
自我挑戰組

為了成為更好的前端,我開始在乎的那些事系列 第 19

[Day 19] 網路常識 - (5) 什麼是 DNS record? 跟 DNS 有什麼關係?

  • 分享至 

  • xImage
  •  

什麼是 DNS record? 為什麼需要它?

我們之前有提到,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),還有其他不同類型的紀錄,常見的如下:

 

常見類型

  • A Record & AAAA Record - 名稱指向 IP
  • CNAME Record - 名稱指向名稱
  • SOA Record - 負責人是誰
  • NS Record - 是哪台機器管理你家的 DNS 資訊
  • SRV Record - 更細節的 record

Mail 相關

  • MX Record - 收信處
  • PTR Record - IP 指向名稱
  • TXT Record - 純文字

通常我們最需要瞭解的,就是 A Record、CNAME Record,但其他也還有一些還算常見的 Record 類型,以下我們就來一一介紹吧~

 

常見 Record 類型

A Record & AAAA Record - 將名稱指向 IP address

TYPE NAME VALUE TTL
A example.com 12.34.56.78 7200

 

所謂的 A Record,就是將 domain 指向 IP address 的紀錄,A Record 會有 4 個描述欄位,基本上大部分的 DNS Record 都採用上述 4 個欄位來描述該 Record:

  • TYPE: Record 類型
  • NAME: 輸入的 domain name
  • VALUE: domain name 指向的 IPv4 address
  • TTL: Time To Live,也就是此 DNS record cache 的存活時間,以秒為單位

 

那上述提到 A Record 只能指向 IPv4 address,那 IPv6 呢?

所以 DNS 也有一個 Record 類型是來描述 IPv6 的 address,也就是 AAAA Record (quad A Record),就可以幫助我們解決想要指向 IPv6 address 的問題

 

CNAME Record - 名稱指向名稱

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 種:

  • subdomain 的指向
  • CDN domain 的指向

 

Subdomain 的指向

  1. WWW (World Wide Web) 的指向
TYPE NAME VALUE TTL
CNAME www.example.com example.com 32600

 

通常,我們的網址結構如下:

https://ithelp.ithome.com.tw/upload/images/20231004/20148944NfDQI2edH9.png

由上圖所示:

  • com. 的部分是 Top Level Domain 的部分
  • example. 的部分是 2nd Level Domain 的部分
  • www. 的部分是 sub domain 的部分

所以,如果要讓 user 從 www.example.com 進入我們的 server,就需要另外設定 CNAME

 

  1. 多功能的單一伺服器的設定
TYPE NAME VALUE TTL
CNAME ftp.example.com example.com 32600

https://ithelp.ithome.com.tw/upload/images/20231005/20148944sNWrKhBhh0.png

當我們只有一台 server,但會利用此 server 提供多項服務時,就可以在原 server domain 前加入描述功能的 sub domain,以方便做功能的區分,但實際上都是導向同一個 server

 

CDN 的指向

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 存取資源了

 

SOA Record - 負責人是誰

  • NS Record - 是哪台機器管理你家的 DNS 資訊

  • SRV Record - 更細節的 record

  • Mail related

    • MX Record - 收信處
    • PTR Record - IP 指向名稱
    • TXT Record - 純文字
      • email domain white list,讓設定的 domain 不會被擋
      • DNS 資訊都是公開的,可利用 Google public DNS 查詢

上一篇
[Day 18] 網路常識 - (4) 什麼是 DNS? 跟前端有什麼關係? - DNS 在前端的應用
下一篇
[Day 20] 網路常識 - (6) 什麼是 CDN?
系列文
為了成為更好的前端,我開始在乎的那些事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言