- 使用53端口
- 域名不區分大小寫
- 底層爲UDP協議而不是TCP協議
- 如果很短時間內沒有響應返回,就再次發送記錄
- 重複一定次數後嘗試另一個服務器
- 每次查詢報文都包含一個標識符,並複製到響應中,以防止混淆查詢結果
- 爲什麼瀏覽器上不了網,QQ卻能連上?
- DNS出了故障,而QQ直接通過IP地址連接服務器,無須DNS解析
層次性服務器
- 採用分佈式,層次性數據庫
- 負責管理下級域的DNS服務器需要把自己的IP地址註冊到上級DNS服務器中
-
本地DNS服務器
- 每個用戶通過ISP接入網絡時,該ISP應該提供一臺本地DNS服務器的地址
- 當用戶主機發送DNS請求時,該請求被髮往本地DNS服務器,該服務器代替用戶向上述分層DNS數據庫迭代請求
-
向本地DNS服務器發送消息時,我們當然也需要知道DNS服務器IP地址,不過這個地址是事先設置好的,無須查詢
-
權威DNS服務器
- 每個組織(域名)必須提供可訪問的權威DNS服務器來記錄組織下面的服務器地址
- 當然也可以付費把記錄儲存在服務提供商提供的權威DNS服務器中
- 註冊域名時,需要提供權威權威DNS服務器地址,此時註冊登錄機構將下面記錄插入DNS系統中
(example.com, dns.example.com, NS) (dns.example.com, 212.212.212.1, A)
DNS記錄
- 格式:
(Name, Value, Type, TTL)
TTL
表示生存時間
Type
分類:Type=A
: 表示域名到IP地址的映射(www.example.com, 145.37.92.1, A)
Type=NS
: 表示該域或組織到權威DNS的域名(foo.com, dns.foo.com, NS)
Type=CNAME
: 別名到到規範域名的映射- 一般是多對一映射
(foo.com, relay1.bar.foo.com, CNAME)
別名(CNAME)
-
當一個服務器可以提供多種服務時,爲了方便記憶和管理,可以讓多個別名指向同一個規範域名
- 例如
host.example.com
可以提供web和郵件服務,那麼可以把www.example.com
和@example.com
都指向host.example.com
- 例如
-
當使用CDN服務的時候,服務商提供的就是一個CNAME地址
- CDN服務商可以比較方便更換提供的域名的A記錄,而不用變更所有使用者域名的A記錄
- CDN服務商可以比較方便更換提供的域名的A記錄,而不用變更所有使用者域名的A記錄
-
最上層是常規的DNS解析過程,用戶通過local DNS做遞歸查詢,最終定位到taobao.com權威DNS服務器
-
中間層可以稱爲GSLB(Global Server Load Balancing),作用是提供域名的智能解析,根據一定的策略返回結果
- taobao.com權威DNS服務器會根據不用的域名,CNAME到不同的GSLB做智能調度
- CNAME的作用有點類似請求分發
-
最下層是應用層,提供真正的服務