www.30abysses.com / TWY / 2017 / 05 / 08 / CS:DNS入門筆記


BALANCE and EQUILIBRIUM



CS:DNS入門筆記

除了在測試環境中架設管理過DNS(Domain Name System),在實戰環境中我只有 初級使用者的經驗,這篇文章記錄一些實驗、學習心得。(參考文件連結記載於這 篇文章未尾)。

基本原理

網路上有不少關於DNS基本運作原理的的相關文章,以關鍵字去 Google 就能找 到許多資料,例如:

進階觀念

視專案需求不同,對DNS的要求也會改變,可以從以下幾個角度考量:

就我觀察到的趨勢,各家網路服務商都是在往「提昇『滿足管理、客製化需求的能 力』,吸收『部署、維護的花費』」的方向在走,是故就個人、中小型專案而言, 能當作各家服務品質參考指標的就是「速度、可靠性」。

理論上來說, Anycast DNS (相對於 Unicast DNS )在負載平衡、可靠性、速 度上佔優,但其部署、維護的花費也較高。除了從本地端使用 ping, traceroute 等指令來測試DNS伺服器的速度外,網路上有免費工具可以從世 界各地測試網路速度,例如:

這個網站整理了世界各地提供線上 traceroute 工具的網頁清單:

值得注意的是,如此測出來的數據只適合作為參考指標(而非絕對指標),最後還 是要實地測試專案的整體效能,才能針對瓶頸改善,滿足實務上的需求。

Start of Authority (SOA)

SOA (Start of Authority) ,如其名所述,是一網域名稱DNS資訊的起點;當 你從域名註冊商(domain name registrar) 設定網域名稱的DNS主機資訊時,就 是在設定該網域的 SOA 紀錄,而一個網域的 SOA 紀錄可以 nslookup, dig 這些指令查詢(或使用網路上各式的免費DNS分析工具),例如:

$ dig example.com SOA

; <<>> DiG 9.10.3-P4-Ubuntu <<>> example.com SOA
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60805
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;example.com.                   IN      SOA

;; ANSWER SECTION:
example.com.            3600    IN      SOA     sns.dns.icann.org. noc.dns.icann.org. 2017042703 7200 3600 1209600 3600

;; Query time: 12 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Tue May 09 12:35:34 PDT 2017
;; MSG SIZE  rcvd: 97

$ nslookup -querytype=SOA stackoverflow.com
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
stackoverflow.com
        origin = ns-cloud-e1.googledomains.com
        mail addr = cloud-dns-hostmaster.google.com
        serial = 1
        refresh = 21600
        retry = 3600
        expire = 259200
        minimum = 300

Authoritative answers can be found from:

可以看到 example.com 的 SOA 是 sns.dns.icann.orgstackoverflow.com 的 SOA 是 ns-cloud-e1.googledomains.com

結論

今日的個人、中小專案開發者大約只需要照著各網路服務商提供的文件,就能搞定 SOA 與各種DNS設定、管理;而佈署、維護這些雜務則多是由網路服務商(收費 )代辦,讓開發者能專注於診斷分析效能瓶頸,滿足專案需求。

參考文件

Overview

Authoritative vs. Recursive

Anycast vs. Unicast

DNS Record Types

The most common types of records stored in the DNS database are for Start of Authority (SOA), IP addresses (A and AAAA), SMTP mail exchangers (MX), name servers (NS), pointers for reverse DNS lookups (PTR), and domain name aliases (CNAME). Although not intended to be a general purpose database, DNS can store records for other types of data for either automatic lookups, such as DNSSEC records, or for human queries such as responsible person (RP) records.

https://en.wikipedia.org/wiki/Domain_Name_System

Online Tools

Local Tools

nslookup -querytype=SOA example.com

dig example.com any


[ Contact us | facebook | hello@30abysses.com | 聯絡我們 ]


CS:DNS入門筆記 by TW Yang <twy@30abysses.com>
is licensed under a Creative Commons Attribution 4.0 International License (CC-BY-4.0).

Creative Commons License (CC-BY-4.0)