DNS (Domain Name Service)
整理 DNS 概念筆記。
基本概念
名詞
- DNS 全名有三種意思,分別是
Domain Name System
、Domain Name Service
、Domain Name Server
,所以文章或者口語在溝通時,是哪一種要看前後文以及場景。 - Zone Apex / Root Domain / Naked Domain: 網域名稱的根節點. 像是 www.google.com 的 root domain 就是 google.com
- TLD: Top level domain, 就是第一層的名稱,像是
.com
,.org
,.gov
,.edu
,.net
… 等 - TTL: Time to live
- Delegation: 網域代理, 有些網站翻譯成 “授權”. 就是子網域名稱 (sub domain) 交由另一台機器管理.
- DKIM: DomainKeys Identified Mail
DNS 屬性
- A: IPv4 位址, e.g.
192.168.1.1
- AAAA: IPv6 位址, e.g.
2001:0db8:85a3:0:0:8a2e:0370:7334
- CNAME: 全名 Canonical Name, 也可叫
domain name aliases
. 就是 A Record 指定名稱的另一個別名。CNAME 不可以指向 IP 或者 MX record. - MX: 全名是
Mail Exchange
, 指向郵件主機的位址, 位址必須是 A or AAAA record, 不可以是 CNAME. 網域 mail rely 的位址, 一般就是 SMTP. - NS: 指向 DNS Server 位址. 格式與網域名稱相同,是用來設定網域名稱的名稱服務主機。NS 與 SOA 是 Hosted Zone 基本 Record。Route 53 自動產生四筆 NS Record,把上層 NS 指向這四台。
- PTR: IP 與 NS 的反解
- SOA: 全名叫
start of authority
, 提供基本的網域名稱資訊,有七個欄位:- 第一欄:主要的 name server 名稱,像是
dns.example.com
- 第二個欄位:管理者資訊, 因為不可以使用
@
, 所以大多都會用.
取代。很容易誤解的欄位。 - 剩下的五個欄位以十進制數字表示,分別序列編號、更新時間、重試時間、有效時間與 TTL。
- 第一欄:主要的 name server 名稱,像是
- SPF: 全名
Sender Policy Framework (SPF)
, 不過 AWS Route53 文件建議使用TXT
取代此 record. - SRV: 以四個以空白隔開的值。前三個十進制數字表示優先權、權重與通訊埠。第四個值為網域名稱。
- TXT: 用來放至描述、說明等訊息。但是後來被拿來當作設定檔使用,像是前面提到的 SPF 格式、DKIM …等
參考文件:
DNS 限制
- Domain Name 長度限制為 253
- 階層的上限:This tree of subdivisions may have up to 127 levels. see Domain Name System, Network Administration: Domains and Domain Names
- 但是 RFC 沒有明確規範
- 下圖是測試範例
相關工具
nslookup
- 一般 NS/IP 查詢:
nslookup www.google.com
- 查詢 record by type:
set type=${type}
1 | ~$ nslookup |
使用 debug mode: set d2
, 可以清楚地看到 DNS 查詢每一個 SendRequest / Response packet 的內容。
可以用來找尋未知 Record TTL, 通常是要做 DNS 切換時需要.
以下例子是使用 windows 的版本,分別會查詢 ipv4
, ipv6
的資訊。如果網域中有字尾 domain, 那麼就會先查字尾 domain 的 DNS.
1 | C:\Users\rickhwang>nslookup |
不曉得為什麼,unix 版的 debug 資訊都沒有 format 過,只是把 function stack 印出來,不管是 OS X or Linux 都是如此.
1 | ~$ nslookup |
dig
1 | # look up by type |
其他工具
- whois: 查詢 DNS 註冊資訊
- tracert (windows)
- tractroute (unix)
- https://www.internet.nl: 測試 DNSSec, IPv6, HTTPS
清理 DNS Cache
1 | ## Chrome |
延伸閱讀 (站內)
參考資料
相關資料
- Top 10 Dangerous DNS Attacks Types and The Prevention Measures
- [DNS 設定 CAA 記錄授權可簽發的憑證 (AWS ACM)][r11]