當乙個使用者在瀏覽器中輸入www.abc.com時,dns解析將會有將近10個步驟:
第1步,瀏覽器會檢查快取中有沒有這個網域名稱對應的解析過的ip位址,如果快取中有,這個解析過程就將結束。瀏覽器快取網域名稱也是有限制的,不僅瀏覽器快取大小有限制,而且快取的時間也有限制,通常情況下為幾分鐘到幾小時不等,網域名稱被快取的時間限制可以通過ttl屬性來設定。這個快取時間太長和太短都不好,如果快取時間太長,一旦網域名稱被解析到的ip有變化,會導致被客戶端快取的網域名稱無法解析到變化後的ip位址,以致該網域名稱不能正常解析,這段時間內有可能會有一部分使用者無法訪問**。如果時間設定太短,會導致使用者每次訪問**都要重新解析一次網域名稱。
第2步,如果使用者的瀏覽器快取中沒有,瀏覽器會查詢作業系統快取中是否有這個網域名稱對應的dns解析結果。其實作業系統也會有乙個網域名稱解析的過程,在windows中可以通過c:\windows\system32\drivers\etc\hosts檔案來設定,你可以將任何網域名稱解析到任何能夠訪問的ip位址。如果你在這裡指定了乙個網域名稱對應的ip位址,那麼瀏覽器會首先使用這個ip位址。例如,我們在測試時可以將乙個網域名稱解析到一台測試伺服器上,這樣不用修改任何**就能測試到單獨伺服器上的**的業務邏輯是否正確。正是因為有這種本地dns解析的規程,所以黑客就有可能通過修改你的網域名稱解析來把特定的網域名稱解析到它指定的ip位址上,導致這些網域名稱被劫持。
這導致早期的windows版本**現過很嚴重的問題,而且對於一般沒有太多電腦知識的使用者來說,出現問題後很難發現,即使發現也很難自己解決,所以windows 7中將hosts檔案設定成了唯讀的,防止這個檔案被輕易修改。
在linux中這個配置檔案是/etc/named.conf,修改這個檔案可以達到同樣的目的,當解析到這個配置檔案中的某個網域名稱時,作業系統會在快取中快取這個解析結果,快取的時間同樣是受這個網域名稱的失效時間和快取的空間大小控制的。
前面這兩個步驟都是在本機完成的,所以在圖1-10中沒有表示出來。到這裡還沒有涉及真正的網域名稱解析伺服器,如果在本機中仍然無法完成網域名稱的解析,就會真正請求網域名稱伺服器來解析這個網域名稱了。
第3步,如何、怎麼知道網域名稱伺服器呢?在我們的網路配置中都會有"dns伺服器位址"這一項,這個位址就用於解決前面所說的如果兩個過程無法解析時要怎麼辦,作業系統會把這個網域名稱傳送給這裡設定的ldns,也就是本地區的網域名稱伺服器。這個dns通常都提供給你本地網際網路接入的乙個dns解析服務,例如你是在學校接入網際網路,那麼你的dns伺服器肯定在你的學校,如果你是在乙個小區接入網際網路的,那這個dns就是提供給你接入網際網路的應用提供商,即電信或者聯通,也就是通常所說的spa,那麼這個dns通常也會在你所在城市的某個角落,通常不會很遠。在windows下可以通過ipconfig查詢這個位址
在windows中查詢dns server
在linux下可以通過如下方式查詢配置的dns server
在linux中下查詢dns server
這個專門的網域名稱解析伺服器效能都會很好,它們一般都會快取網域名稱解析結果,當然快取時間是受網域名稱的失效時間控制的,一般快取空間不是影響網域名稱失效的主要因素。大約80%的網域名稱解析都到這裡就已經完成了,所以ldns主要承擔了網域名稱的解析工作。
第4步,如果ldns仍然沒有命中,就直接到root server網域名稱伺服器請求解析。
第5步,根網域名稱伺服器返回給本地網域名稱伺服器乙個所查詢域的主網域名稱伺服器(gtld server)位址。gtld是國際頂級網域名稱伺服器,如.com、.cn、.org等,全球只有13臺左右。
第6步,本地網域名稱伺服器(local dns server)再向上一步返回的gtld伺服器傳送請求。
第7步,接受請求的gtld伺服器查詢並返回此網域名稱對應的name server網域名稱伺服器的位址,這個name server通常就是你註冊的網域名稱伺服器,例如你在某個網域名稱服務提供商申請的網域名稱,那麼這個網域名稱解析任務就由這個網域名稱提供商的伺服器來完成。
第8步,name server網域名稱伺服器會查詢儲存的網域名稱和ip的對映關係表,正常情況下都根據網域名稱得到目標ip記錄,連同乙個ttl值返回給dns server網域名稱伺服器。
第9步,返回該網域名稱對應的ip和ttl值,local dns server會快取這個網域名稱和ip的對應關係,快取的時間由ttl值控制。
第10步,把解析的結果返回給使用者,使用者根據ttl值快取在本地系統快取中,網域名稱解析過程結束。
在實際的dns解析過程中,可能還不止這10個步驟,如name server也可能有多級,或者有乙個gtm來負載均衡控制,這都有可能會影響網域名稱解析的過程。
DNS網域名稱解析步驟
下面就還以www.baidu,com這個 來分析一下dns的解析過程。第一步 當瀏覽器拿到輸入的www.baidu.com後,首先會去瀏覽器的dns快取中去查詢是否有對應記錄,如果查詢到記錄就可以直接返回ip位址,完成解析。第二步 如果瀏覽器沒有快取,那就再去查詢作業系統的快取,同樣的,如果查詢到記...
網域名稱解析過程 網域名稱解析過程
0x01相關資訊 閘道器 閘道器實質上是乙個網路通向其他網路的ip位址。要實現兩個網路之間的通訊,則必須通過閘道器。如果網路a中的主機發現資料報的目的主機不在本地網路中,就把資料報 給它自己的閘道器,自己的閘道器通過尋找路由指向,再由閘道器 給網路b的閘道器,網路b的閘道器再 給網路b的某個主機。i...
伺服器網域名稱解析步驟總結
1網域名稱註冊 阿里或美橙進行即將註冊的網域名稱查詢,查詢是否已經被註冊。未被註冊,則可以選擇註冊。阿里有註冊資訊保護,可以保護隱私,註冊的資訊不能被外界檢視 2網域名稱備案 阿里的伺服器,有代備案的功能。ps 備案必須有伺服器 3網域名稱解析 在阿里的控制台,選擇萬網,在網域名稱後面有個解析。在解...