互聯網使用URL 來發布和請求資源,而URL中的域名須要解析從IP地址才能與遠程主機創建鏈接,如何將域名解析成IP地址就屬於DNS域名解析的工做瀏覽器
1、從輸入www.xxx.com時,DNS解析會有如下幾個步驟:緩存
1.用戶輸入URL,瀏覽器檢查自身有沒有緩存該域名的IP地址。服務器
瀏覽器緩存域名有時間限制,這個時間能夠由TTL限制,太長或者過短都很差,太長了,若是被解析的域名的IP發生變化,則會致使沒法正常解析;若是過短,則會致使用戶每一次訪問網站都要解析域名負載均衡
2.若是沒有,瀏覽器檢查操做系統緩存中是否有這個DNS解析結果。網站
操做系統也會有一個域名解析過程,在WINDOWS中,能夠經過C:\Windows\System32\drivers\etc\hosts文件來設置,能夠將任何域名解析到任何能訪問的IP地址上,若是在這裏指定了一個域名的ip地址,那麼瀏覽器會首先使用這個IP地址。正是由於有這種本地DNS解析的過程,因此黑客就有可能經過修改你的域名解析來把特定的某個域名解析到它但願的IP上,致使域名劫持。spa
3.若是緩存中尚未,則操做系統會把這個域名發送給LDNS(Local DNS)即本地域名服務器。操作系統
咱們得網路配置中都會有DNS服務器地址,這個DNS服務器地址就是本地區的域名服務器。這個DNS服務器一般提供給你本地互聯網接入的一個DNS解析服務。例如你在學校接入互聯網,那麼你的DNS服務器在你的學校;你在小區接入互聯網,你的DNS服務器由通訊提供商(電信、移動...)提供。blog
4.若是LDNS中尚未,則只能去Root Server域名服務器中請求解析了。這樣的狀況比較罕見,由於全球只有13臺左右這樣的服務器。dns
目前世界上的整個互聯網有幾個DNS根域名服務器。ip
5.根域名服務器會返回一個本地域名服務器所查域的主域名服務器(gTLD Server)地址。
gTLD是國際頂尖域名服務器,如.com、.cn、.org等等
6.LDNS向gTLD發送請求。
7.gTLD接受此請求,返回一個此域名對應的Name Server域名服務器的地址。這個Name Server一般就是你註冊的域名服務器。
假如你在某個域名服務提供商申請的域名,那麼這個域名解析的任務就由這個域名提供商的服務器來完成。
8.Name Server返回該域名對應的IP和TTL值,而後Local DNS Server會緩存這個對應關係,緩存時間由TTL控制。
9.解析結果返回LDNS SERVER。LDNS SERVER根據TTL值緩存此對應關係
10.解析結果返回用戶。用戶根據TTL值緩存此對應關係。
在實際的DNS解析過程當中可能還不止這10個步驟,如Name Server可能有多級,或者有一個GTM來負載均衡控制,這都會影響域名解析的過程。
大體過程以下圖:
2、清除本地緩存的域名
Windows下能夠經過 ipconfig /flushdns命令來刷新本機的DNS緩存
在JAVA應用中JVM也會緩存DNS的解析結果,這個和緩存是在InetAddress類中完成的
3、幾種域名解析方式
域名解析記錄主要分爲:A 記錄、MX記錄、CNAME 記錄、NS記錄和 TXT記錄
A記錄:A 表明的是Address,用來指定域名對應的IP地址。域名能夠多對一可是不能一對多。
MX記錄:Mail Exchange,就是講某個域名下的郵件服務器指向本身的Mail Server。
CNAME記錄:別名解析。將一個域名設置一個或者多個別名。
NS記錄:爲某個域名指定DNS解析服務器。
TXT記錄:爲某個主機名或者域名設置文字說明。