DNS概括

DNS

通過域名(通常爲三級:三級.二級.頂級)查找主機ip的過程。

  • 客戶端 -> 發起域名解析 -> 層層查找… -> 根域名服務器(最權威的13個機構,1個主的,12個輔助)
  • 服務端 <- 域名對應IP <- 層層解析… <- 根域名服務器

原理

UDP報文遞歸查詢。任何一級域名服務器均會對結果進行緩存,時間設置爲ttl。ttl越大,網絡開銷越小,準確性越低。


過程

  1. 檢查應用(如瀏覽器)緩存,查看是否存在已解析的ip地址。

    緩存保留的時間由ttl設置。

  2. 檢查操作系統緩存,查看是否有已解析過的結果。

    操作系統會先檢查hosts文件,即本地域名解析配置。域名劫持也由此而來:hosts文件被黑客修改過,指定到他期望的ip地址。

  3. 請求本地域名服務器(LDNS)來解析這個域名。

    這臺服務器一般在你的城市的某個角落,距離你不會很遠,並且這臺服務器的性能都很好,一般都會緩存域名解析結果,大約80%的域名解析到這裏就完成了。

  4. 由本地域名服務器(LDNS)請求根域名服務器(ROOT Server)解析,獲取頂級域名服務器(TLD Server-Top Level Domain)。

    TLD Server是能夠解析【.com】、【.cn】等頂級域名的服務器,分爲兩種:nTLD-國家頂級域名;gTLD-通用頂級域名。

  5. 由本地域名服務器(LDNS)請求頂級域名服務器(TLD Server)解析,獲取命名服務器(Name Server),也叫權限域名服務器。

    Name Server就是網站註冊的域名服務器,即服務商用於維護域名的服務器。

  6. (Name Server)根據映射關係表找到目標ip,返回給LDNS。LDNS緩存並返回給用戶。
  7. 用戶使用ttl值緩存到本地。

服務商和解析商

  • 服務商:提供域名買賣。通常情況下,服務商也有解析的能力,也可能是和他方dns解析商合作。
  • 解析商:可以理解爲(Name Server)dns服務器,存儲【域名/IP】映射關係,可能同步架設在很多地方。

1.當註冊購買了域名時,僅代表擁有了使用權,但尚未設置解析,即不存在域名/IP映射關係,因此無法通過域名直接訪問您的網站,或作爲電子郵箱後綴進行郵件收發。

2.當設置瞭解析(即域名/IP)後,解析商就將解析的配置存儲到指定的dns解析服務器裏,解析服務器可能架設在很多地方,每個地方都會同步一份。例如:購買“xxx.xyz”域名後,在阿里雲設置解析到自己的雲服務器“xxx.xxx.xxx.xxx”,阿里會提示:”當前分配的DNS服務器是:dns9.hichina.com, dns10.hichina.com“,即該解析配置由這兩個dns域名下的服務器負責解析,它們是權限域名服務器。

這兩個dns域名服務器,通過nslookup可以查看到是一個服務器集羣。


指定dns解析

分爲兩個角度:

  1. 服務端解析配置時,指定dns,將決定由誰(命名服務器)能夠解析該域名,通常選擇安全、穩定的dns解析商,阿里域名默認使用阿里系。
  2. 客戶端,指定dns,將選擇從客戶端發起的dns解析線路,

測試:域名解析分析網站


延伸

  1. nslookup查看DNS信息
nslookup 域名 # 查看A記錄
nslookup -q=cname 域名 # 查看cname記錄
nslookup -q=ns 域名 # 查看dns服務器
nslookup -debug 域名 # 查詢過程中會顯示完整的響應包以及其中的交互包

示例:nslookup -q=ns -debug baidu.com

待補充

  • dns負載均衡:dns解析也是一個服務程序,可以實現負載均衡,即可以指定多個ip,通過負載均衡策略指定其中的某個ip。
  • dns劫持
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章