? ? ? ?互聯(lián)網(wǎng)都是通過URL來(lái)發(fā)布和請(qǐng)求資源的缨称,而URL中的域名需要解析成IP地址才能與遠(yuǎn)程主機(jī)建立連接官辽,如何將域名解析成IP地址就屬于DNS解析的工作范疇蝶棋。目前世界上的整個(gè)互聯(lián)網(wǎng)有幾個(gè)DNS根域名服務(wù)器赐稽,任何一臺(tái)根服務(wù)器壞掉,后果都會(huì)非常嚴(yán)重党瓮。
1.DNS域名解析過程
第一步:瀏覽器會(huì)檢查緩存中有沒有這個(gè)域名對(duì)應(yīng)的解析過的IP地址详炬,如果緩存中有這個(gè)解析過程就將結(jié)束。瀏覽器緩存域名也是有限制的麻诀,不僅瀏覽器緩存大小有限制痕寓,而且緩存的時(shí)間也有限制傲醉,通常情況下為幾分鐘到幾小時(shí)不等蝇闭,域名被緩存的時(shí)間限制可以通過TTL屬性來(lái)設(shè)置。這個(gè)緩存時(shí)間太長(zhǎng)和太短都不好硬毕,如果緩存時(shí)間太長(zhǎng)呻引,一旦域名被解析到的IP有變化,會(huì)導(dǎo)致被客戶端緩存的域名無(wú)法解析到變化后的IP地址吐咳,以致該域名不能正常解析逻悠,這段時(shí)間內(nèi)有可能會(huì)有一部分用戶無(wú)法訪問網(wǎng)站碰缔。如果時(shí)間設(shè)置太短乏盐,會(huì)導(dǎo)致用戶每次訪問網(wǎng)站都要重新解析一次域名。
第二步:如果用戶的瀏覽器緩存中沒有拦赠,瀏覽器會(huì)查找操作系統(tǒng)緩存中是否有這個(gè)域名對(duì)應(yīng)的DNS解析結(jié)果沪羔。其實(shí)操作系統(tǒng)也會(huì)有一個(gè)域名解析的過程饥伊,在Windows中可以通過C:\Windows\System32\drivers\ect\hosts文件來(lái)設(shè)置,你可以將任何域名解析到任何能夠訪問的IP地址。如果你在這里制定了一個(gè)域名對(duì)應(yīng)的IP地址琅豆,那么瀏覽器會(huì)首先使用這個(gè)IP地址愉豺。正是因?yàn)橛羞@種本地DNS解析的規(guī)程,所以黑客就有可能通過修改你的域名解析來(lái)把特定的域名解析到它指定的IP地址上茫因,導(dǎo)致這些域名被劫持蚪拦。
這導(dǎo)致在早期的Windows版本中出現(xiàn)過很嚴(yán)重的問題,而且對(duì)于一般沒有太多計(jì)算機(jī)知識(shí)的用戶來(lái)說冻押,出現(xiàn)問題后很難發(fā)現(xiàn)驰贷,即使發(fā)現(xiàn)也很難自己解決,所以Windows7中將hosts文件設(shè)置成了只讀的洛巢,防止這個(gè)文件被輕易修改饱苟。
在Linux中這個(gè)配置文件是/etc/hosts,修改這個(gè)文件可以達(dá)到同樣的目的狼渊,當(dāng)解析到這個(gè)配置文件中的某個(gè)域名時(shí)箱熬,操作系統(tǒng)會(huì)在緩存中緩存這個(gè)解析結(jié)果,緩存的時(shí)間同樣是受這個(gè)域名的失效時(shí)間和緩存的空間大小控制狈邑。
第三步:在網(wǎng)絡(luò)配置中都會(huì)有“DNS服務(wù)器地址”這一項(xiàng)城须,這個(gè)地址就用于解決前面所說的如果兩個(gè)過程無(wú)法解析時(shí)要怎么辦,操作系統(tǒng)會(huì)把這個(gè)域名發(fā)送給這里設(shè)置的LDNS米苹,也就是本地區(qū)的域名服務(wù)器糕伐。這個(gè)DNS通常都提供給你本地互聯(lián)網(wǎng)接入的一個(gè)DNS解析服務(wù)。
這個(gè)專門的域名解析服務(wù)器性能都會(huì)很好蘸嘶,它們一般都會(huì)緩存域名解析結(jié)果良瞧,當(dāng)然緩存時(shí)間是受域名的時(shí)效時(shí)間控制的,一般緩存空間不是影響域名失效的主要因素训唱。大約80%的域名解析都到這里就已經(jīng)完成了褥蚯,所以LDNS主要承擔(dān)了域名的解析工作。
第四步:如果LDNS仍然沒有命中况增,就直接到Root Server域名服務(wù)器請(qǐng)求解析赞庶。
第五步:根域名服務(wù)器返回給本地域名服務(wù)器一個(gè)所查詢域的主域名服務(wù)器(gTLD Server)地址。gTLD是國(guó)際頂級(jí)域名服務(wù)器澳骤,如.com歧强、.cn、.org等
第六步:本地域名服務(wù)器(Local DNS Server)再向上一步返回的gTLD服務(wù)器發(fā)送請(qǐng)求为肮。
第七步:接受請(qǐng)求的gTLD服務(wù)器查找并返回此域名對(duì)應(yīng)的Name Server域名服務(wù)器的地址摊册,這個(gè)Name Server通常就是你注冊(cè)的域名服務(wù)器。
第八步:Name Server域名服務(wù)器會(huì)查詢存儲(chǔ)的域名和IP的映射關(guān)系表颊艳,在正常情況下都根據(jù)域名得到目標(biāo)IP記錄茅特,連同一個(gè)TTL值返回給DNS Server域名服務(wù)器蟆沫。
第九步:返回該域名對(duì)應(yīng)IP和TLL值,LocalDNS Server會(huì)緩存這個(gè)域名和IP的對(duì)應(yīng)關(guān)系温治,緩存的時(shí)間由TTL值控制饭庞。
第十步:把解析的結(jié)果返回給用戶,用戶根據(jù)TTL值緩存在本地系統(tǒng)緩存中熬荆,域名解析過程完成舟山。