DNS 是什麼
DNS = Domain Name System(網域名稱系統)
在系統/伺服器之間進行通訊時,用來把網域名稱和 IP 位址做對應(名稱解析),並用來指示要連到哪一台目標主機的系統。
IP 位址: 123.45.678.9網域名稱: aaa.com
※ IP 位址由數字構成,人類不易辨識,因此才有網域名稱的設計。
使用 DNS 查詢的流程
- PC 向 DNS 快取伺服器(DNS Cache Server)以網域名稱發出查詢
- DNS 快取伺服器向 DNS 根伺服器(DNS Root Server)詢問管理資訊(該網域名稱對應的 IP 位址在哪裡?)
- DNS 根伺服器回覆 DNS 快取伺服器:提供「有管理資訊的 DNS 伺服器」的位置
- DNS 快取伺服器再向「有管理資訊的 DNS 伺服器」查詢該網域名稱對應的 IP 位址
- 有管理資訊的 DNS 伺服器回覆 DNS 快取伺服器:IP 位址
- DNS 快取伺服器回覆 PC:IP 位址
- PC 使用該 IP 位址存取網站,瀏覽器就會顯示網頁
※ DNS 伺服器會把伺服器分散到世界各地,並透過快取(使用 DNS 快取伺服器)來應付大量存取。
DNS 快取伺服器(Full Service Resolver)
一台會暫時保存「網域名稱對應 IP 位址」的伺服器。
- 若過去查詢過 → 回覆先前快取的 IP 位址
- 若沒查詢過,或已超過有效期限(TTL 到期)→ 向 DNS 根伺服器查詢
DNS 快取伺服器的角色:
- 縮短 DNS 查詢處理時間
- 降低 Root DNS Server 的負載
※ 快取(Cache)=暫時保存資料的功能
※ TTL(Time To Live)=DNS 快取伺服器所保存資訊的有效期限
Root DNS Server(最上層的名稱伺服器)
DNS 快取伺服器最一開始會去查詢的伺服器。
全世界共有 13 台(13 組根伺服器系統)。
Name Server(權威 DNS 伺服器/DNS 內容伺服器)
泛指擁有「把網域名稱與 IP 位址對應起來的名冊(Zone File:區域檔)」的伺服器群。
- Root DNS Server 也是 Name Server 的一種
DNS Record(Zone File:區域檔)
存在於權威 DNS 伺服器中。
內容包含:與網域名稱關聯的 IP 位址、以及該如何處理對該網域的請求等「網域相關資訊」。Record 由文字檔(DNS Syntax)構成。
例:
- TTL 記錄:DNS 伺服器更新該記錄的頻率
- DNS Syntax:用來指示 DNS 伺服器要做什麼的字串(可視為命令格式)
Record 類型與內容
類型內容
A
主機的 IP 位址(IPv4)
AAAA
主機的 IP 位址(IPv6)
SOA
Zone(網域)資訊
NS
網域的 DNS 伺服器名稱
CNAME
主機名稱的別名(Alias)
PTR
IP 位址對應的主機名稱(反向查詢)
MX
網域的郵件伺服器名稱
HINFO
主機的附加資訊(硬體/軟體(OS)資訊)
WKS
主機上正在提供的服務資訊(Well Known Services)
TXT
主機的文字資訊
A Record
表示主機的 IP 位址(IPv4)的記錄。
欄位設定值(例)說明Namewww.aaa.com.網域名稱TTL300在快取伺服器上的記錄有效期限TypeA記錄類型Value123.456.789.123IP 位址(IPv4),可設定多個
SOA Record
在 DNS 的父/子伺服器關係中,只有子(權威)端會持有,用來表示該網域 Zone 的起點(權威來源)的記錄。
欄位設定值(例)說明Name@為「@」時表示 Zone 名稱本身TTL300在快取伺服器上的記錄有效期限TypeSOA記錄類型Valueaaa.com. email.aaa.com. 1 7200 900 1209600 86400<MNAME + RNAME + SERIAL + REFRESH + RETRY + EXPIRE + MINIMUM>
各欄位意義:
- MNAME:持有基準資料的 Name Server 名稱
- RNAME:此網域管理者的 Email(其中
@以.取代) - SERIAL:Zone 檔版本號
- REFRESH:刷新 Zone 資訊的時間間隔
- RETRY:刷新失敗時的重試間隔
- EXPIRE:刷新持續失敗時,次要 Name Server 上資料的有效時間
- MINIMUM:Negative Cache(不存在的網域資訊)的保存時間
NS Record
表示網域的 DNS 伺服器名稱的記錄。
父/子 DNS 伺服器雙方都會持有,用來表示「權限委派(Delegation)」的狀態。
【例】子 DNS 伺服器:aaa.com(持有 A Record / IP 的伺服器)
欄位設定值(例)說明Name@為「@」時表示 Zone 名稱本身TTL300在快取伺服器上的記錄有效期限TypeNS記錄類型Valuewww.aaa.com.權限委派的 Name Server(子 DNS 伺服器本身)
【例】父 DNS 伺服器:com(沒有 A Record,將權限委派給子伺服器)
欄位設定值(例)說明Nameaaa子 DNS 伺服器名稱(末尾不加「.」,省略後面的「.com.」)TTL300在快取伺服器上的記錄有效期限TypeNS記錄類型Valuewww.aaa.com.權限委派的 Name Server(子 DNS 伺服器)
CNAME Record
表示主機名稱的別名(Alias)的記錄(Canonical NAME)。
可以把特定主機名稱「轉到」另一個網域。
以下例子表示:
把 http://www.aaa.com 的存取轉到 http://www.bbb.com。
【例】DNS 伺服器:aaa.com
欄位設定值(例)說明Namewww主機名稱(末尾不加「.」,省略後面的「.aaa.com.」)TTL300在快取伺服器上的記錄有效期限TypeCNAME記錄類型Valuewww.bbb.com轉送目的地網域
