DNS是什麼?
因特爾域名系統DNS是Domain Name System(域名系統)的縮寫,互聯網的入口服務,監聽53端口。提供域名到IP地址的映射,或反之
將域名和IP地址相互映射的一個分佈式數據庫,能夠更方便地訪問互聯網。是分佈式、C/S結構的服務
DNS是一個倒樹形結構的分佈式服務。主要定義在RFC1034/1035上
其中RFC1034為域名的概念和設施, RFC1035為域名的概念和設施。
為什麼需要DNS?
IP地址難以記憶與理解IPv4地址形如192.168.1.1,而IPv6地址形如x:x:x:x:x:x:x:x的128位地址,非常難以記憶和理解,平時我們上網只要在瀏覽器上輸入域名地址如wwww.baidu.com,由DNS系統翻譯成所對應的IP地址更加方便一些。郵件投遞需要尋址 (MX)域身份鑑定 (DomainKey, SPF)負載均衡(輪詢、最小連接)
通過配置多條A記錄實現訪問輪詢,也通過配置權重來進行負載均衡。CDN、GSLB
CDN和GSLB主要利用DNS的CNAME記錄來流量的接入與調度。
什麼是域(zone)與域名(domain)?
“.”是域,是所有其他域的起始點宇宙大爆炸:混沌初開,乾坤乃定com.、com.cn.、cn、net.是域mospan.cn.、mospx.com.也是域blog.mospan.cn.、www.mospx.com.是域名domain = host(主機名) + zone標準的域名與主機名,只包括字母、數字、短橫線和點域名的最大長度為255個字符,單個label最大為63個字符
DNS基本概念
DNS報文格式
DNS報文如上圖所示,其他左圖為報文完整格式,後圖區域數據展開形式。
DNS RR(資源記錄集)
通過dig工具探測典型結果如上圖所示,包含多條的域名、生存時間TTL、記錄類型、記錄數據rdata組成。
其中TTL為該記錄可緩存的時間秒數。
詳見:https://ephen.me/2016/dns-rr/
ends-client-subnet
正常情況下,DNS服務器只能獲取到跟它通信的客戶端(一般是local DNS)IP來進行區域解析,edns機制是允許在報文中攜帶用戶真實IP來進行區域解析。
例如: 假設202.106.0.1是北京聯通用戶,它配置的DNS解析服務器為8.8.8.8,在不支持edns情況下,授權DNS將根據8.8.8.8來解析到國外去,如果支持了edns會根據202.106.0.1來解析到國內服務器中來,這樣解析更加準確。
詳見:http://www.cnblogs.com/cobbliu/p/3188632.html
DNS解析過程
在瀏覽器中輸入域名後DNS域名解析過程如下:
瀏覽器DNS緩存中搜索在操作系統DNS緩存中搜索讀取系統hosts文件,查找其中是否有對應的ip向本地配置的首選DNS服務器發起域名解析請求本地DNS收到請求後,查找自己的緩存,如找到則直接響應給客戶端如未找到,則授權DNS服務器進行迭代查找,最終構造完整的響應給客戶端。
DNS組織機構
ICANN(互聯網名稱與數字地址分配機構)IP地址分配協議標識符的指派通用頂級域名(gTLD)管理國家和地區頂級域名(ccTLD)系統的管理根服務器系統的管理Registry: 註冊局。
維護區數據、委託註冊機構提供註冊服務。(CNNIC)Registrar: 註冊機構。
代表註冊局提供註冊服務。(萬網、新網)Registrant: 域名所有者。託管機構: 為域名所有者提供域名託管服務。(dnspod、XNS)根服務器。全球有13個根服務器,每個根服務器由不同的機構管理,每個服務器都有若干的鏡像,使用anycast技術提供就近訪問。大部分服務器在美國,北京和香港有根的鏡像服務器。根區的內容由ICANN管理, 除了現有的TLD,ICANN已經開放了頂級域的註冊。全球有13臺根服務器(242節點)。
a.root-servers.net. ~~ m.root-servers.net.。美國10臺
A(Verisign, 6); B(ISI, 1)C(Cogent, 6); B(UMD, 1)E(NASA, 1); B(ISC, 49)G(DOD, 6); H(US Army, 2)J(Verisign, 70); H(ICANN, 39)歐洲2臺
J(RIPE NCC, 18); H(SE, 33)日本1臺
M(WIDE, 6)