本文解決如果幾個問題:
1油挥、什么是DNS域名解析
2、域名解析過程
3、如何搭建本地DNS服務(wù)器
什么是DNS域名解析
在互聯(lián)網(wǎng)上深寥,所有的地址都是ip地址攘乒,但是這些ip地址太難記了,所以出現(xiàn)了域名惋鹅,域名解析就是把域名指向網(wǎng)站空間IP则酝,讓人們通過注冊的域名可以方便地訪問到網(wǎng)站的一種服務(wù)。
域名解析工作由DNS服務(wù)器完成闰集,DNS(Domain Name System沽讹,域名系統(tǒng))。
域名解析過程概述
在瀏覽器中輸入域名后武鲁,關(guān)于域名解析妥泉,都做了什么?
瀏覽器輸入域名回車——瀏覽器檢查緩存(有直接訪問洞坑,無下一步)——查找操作系統(tǒng)緩存(有直接訪問盲链,無下一步)——LDNS——公網(wǎng)上去解析(過程復(fù)雜)——LDNS接收解析結(jié)果并緩存下來——解析結(jié)果返回給用戶——用戶打開網(wǎng)站
注:LDNS 本區(qū)域的域名服務(wù)器
如何搭建本地DNS服務(wù)器LDNS?
Linux搭建DNS服務(wù)器攻略:
http://www.cnblogs.com/renfanzi/p/5686489.html
域名解析過程詳解
當(dāng)用戶在瀏覽器中輸入www.abc.com時,DNS解析將會有近10個步驟迟杂,這個過程大體描述如下:
第一步
瀏覽器會檢查緩存中有沒有這個域名對應(yīng)的解析過的IP地址刽沾,如果緩存中有,這個解析過程就將結(jié)束排拷。
瀏覽器緩存域名也是有限制的侧漓,不僅瀏覽器緩存大小有限制,而且緩存的時間也有限制监氢,通常情況下幾分鐘到幾小時不等布蔗,域名被緩存的時間限制可以通過TTL屬性來設(shè)置。
這個緩存時間太長和太短都不好浪腐,如果緩存時間太長纵揍,一旦域名被解析到的IP有變化,會導(dǎo)致被客戶端緩存的域名無法解析到變化后的IP地址议街,以致改域名不能正常解析泽谨,這段時間內(nèi)有可能會有一部分用戶無法訪問網(wǎng)站。如果設(shè)置太短特漩,會導(dǎo)致用戶每次訪問網(wǎng)站都要重新解析一次域名吧雹。
第二步
如果用戶的瀏覽器緩存中沒有,瀏覽器會查找操作系統(tǒng)緩存中是否有這個域名對應(yīng)的DNS解析結(jié)果涂身。
其實操作系統(tǒng)也會有一個域名解析的過程雄卷,在windows中可以通過C:\Windows\System32\drivers\etc\hosts文件來設(shè)置,你可以將任何域名解析到任何能夠訪問的IP地址蛤售。如果你再這里指定了一個域名對應(yīng)的IP地址丁鹉,那么瀏覽器會首先使用這個IP地址妒潭。
在linux中這個配置文件是/etc/hosts,修改這個文件可以達(dá)到同樣的目的鳄炉,當(dāng)解析到這個配置文件中的某個域名時杜耙,操作系統(tǒng)會在緩存中緩存這個解析結(jié)果,緩存的時間同樣是受這個域名的失效時間和緩存空間的大小控制的拂盯。
例如:我們在測試時經(jīng)常將一個域名解析到一臺測試服務(wù)器上佑女,這樣不用修改任何代碼,就能測試到單獨服務(wù)器上的代碼的業(yè)務(wù)邏輯是否正確谈竿。
正是因為這種本地DNS解析的規(guī)程团驱,所以黑客就有可能通過修改你的域名解析來把特定的域名解析到他指定的IP地址上,導(dǎo)致這些域名被劫持空凸。
這導(dǎo)致早期的Windows版本中出現(xiàn)過很嚴(yán)重的問題嚎花,而且對于一般沒有太多電腦知識的用戶來說,出現(xiàn)問題后很難發(fā)現(xiàn)呀洲,即使發(fā)現(xiàn)也很難自己解決紊选,所以Windows7中將hosts文件設(shè)置成了只讀的,防止這個文件被輕易修改道逗。
前面這2個步驟都是在本機(jī)完成的兵罢,所以在圖中沒有表示出來,到這里還沒涉及真正的域名解析服務(wù)器滓窍,如果在本機(jī)中卖词,仍然無法完成域名的解析,就會真正請求域名服務(wù)器來解析這個域名了吏夯。
第三步
如何此蜈、怎么知道域名服務(wù)器呢?在我們的網(wǎng)絡(luò)配置中都會有"DNS服務(wù)器地址"這一項噪生,這個地址就用于解決前面所說的裆赵,如果兩個過程無法解析時要怎么辦,操作系統(tǒng)會吧這個域名發(fā)送給這里設(shè)置的LDNS杠园,也就是本區(qū)域的域名服務(wù)器顾瞪。這個DNS通常都提供給你本地互聯(lián)網(wǎng)接入的一個DNS解析服務(wù),例如你是在學(xué)校接入互聯(lián)網(wǎng)抛蚁,那么你的DNS服務(wù)器肯定在你的學(xué)校,如果你是在一個小區(qū)接入互聯(lián)網(wǎng)的惕橙,那這個DNS就是提供給你接入互聯(lián)網(wǎng)的應(yīng)用提供商瞧甩,即電信或者聯(lián)通,也就是桐城所說的SPA弥鹦,那么這個DNS通常也會在你所在城市的某個角落肚逸,通常不會很遠(yuǎn)爷辙。
在window下可以通過ipconfig查詢這個地址
在linux下可以通過命令 cat /etc/resolv.conf 查看
這個專門的域名解析服務(wù)器性能都會很好,它們一般都會緩存域名解析結(jié)果朦促,當(dāng)然緩存時間是受域名的失效時間控制的膝晾,一般緩存空間不是影響域名失效的主要因素。大約80%的域名解析都到這里已經(jīng)完成了务冕,所以LDNS主要承擔(dān)了域名的解析工作血当。
第四步
如果LDNS仍然沒有命中,就直接到Root Server域名服務(wù)器請求解析
第五步
根域名服務(wù)器返回給本地域名服務(wù)器一個所查詢的主域名服務(wù)器(gTLD Server)地址禀忆。gTLD是國際頂級域名服務(wù)器臊旭,如.com、.cn箩退、.org等离熏,全球只有13臺左右。
第六步
本地域名服務(wù)器(Local DNS Server)再向上一步返回的gTLD服務(wù)器發(fā)送請求戴涝。
第七步
接受請求的gTLD 服務(wù)器查找并返回此域名對應(yīng)的Name Server域名服務(wù)器的地址滋戳。
這個Name Server通常就是你注冊域名的服務(wù)器,例如你再某個域名服務(wù)提供商申請的域名啥刻,那么這個域名解析任務(wù)就由這個域名提供商的服務(wù)器來完成奸鸯。
第八步
Name Server域名服務(wù)器會查詢存儲的域名和IP的映射關(guān)系表,正常情況下郑什,都根據(jù)域名得到目標(biāo)IP記錄府喳,連同一個TTL值返回給DNS Server域名服務(wù)器。
TTL值
全稱是"生存時間(Time To Live)"蘑拯,簡單的說它表示DNS記錄在DNS服務(wù)器上緩存時間钝满。
第九步
返回該域名對應(yīng)的IP 和TTL值,Local DNS Server會緩存這個域名和IP的對應(yīng)關(guān)系申窘,緩存的時間由TTL值控制
第十步
把解析的結(jié)果返回給用戶,用戶根據(jù)TTL值緩存在本地系統(tǒng)緩存中剃法,域名解析過程結(jié)束。
在實際的DNS解析過程中贷洲,可能不止這10個步驟,如Name Server也可能有多級优构,或者有一個GTM來負(fù)載均衡控制,這都有可能影響域名解析的過程钦椭。