一直對DNS的解析概念很模糊,今日看到一篇關於DNS服務器的講義,認爲講的很詳細,特此整理:linux
什麼是DNS瀏覽器
DNS 全名爲 DOMAIN NAME SYSTEM ,主要做用是把網站域名解析爲對應的IP地址緩存
這個域名與IP地址的對應關係叫作A記錄,英文名叫 address record服務器
A記錄是DNS最重要的功能,DNS服務器還有許多其餘的功能,例如:架構
1)設置CNAME別名記錄(以前沒接觸過,因此不知道是什麼鬼,聽說這個常被CDN加速服務商用到)ide
2)設置MX郵件記錄,在購買或者搭建郵件服務器的時候會用到測試
3)設置PTR記錄,反向解析,即把ip地址解析爲域名,和A記錄功能相反 網站
2. DNS系統架構spa
DNS系統架構相似於一根倒掛着的樹(和linux系統目錄結構相似),頂點是 "." 整個架構以下圖:blog
3.DNS解析流程說明:
第一步:客戶端用戶在瀏覽器輸入www.zipeiyi.com ,客戶端會首先查找本地的DNS緩存及hosts文件,肯定是否有www.zipeiyi.com 與ip地址的對應記錄,第一次解析時是沒有緩存的,而hosts文件也通常爲內部測試臨時所用
第二步:若是第一步無記錄,系統會把瀏覽器的解析請求發給LOCAL DNS(簡稱LDNS),即你客戶端配置的DNS,若是LDNS本地緩存有解析記錄,那麼就會直接返回域名對應的ip地址給客戶端,若是沒有LDNS則會繼續請求其餘DNS服務器
第三步:LDNS會直接從DNS系統的"."開始請求,根DNS在全球一共有13臺,根DNS會告訴LDNS頂級域名com的對應服務器,而後頂級com域名DNS會告訴LDNS zipeiyi.com 對應的dns服務器地址,同理最後找打www.zipeiyi.com 對應的DNS服務器地址。
第四步:最後www.zipeiyi.com對應的dns服務器會把 www.zipeiyi.com 對應的ip地址告訴LDNS
第五步:LDNS會在本地緩存該記錄,並把這個A記錄發給瀏覽器
咱們經過一條命令來完成整個解析過程
dig +trace www.zipeiyi.com