天天看點

DNS域名解析(讀書筆記)

網際網路上都是通過URL來釋出和請求網絡資源的,而URL中的域名需要解析成IP位址,才能與主機建立連接配接,而将域名解析成IP位址就是DNS的責任。

當在一個用戶端上輸入一個URL時,DNS解析一般會有将近十個步驟:

1.首先浏覽器會檢查緩存中是否有該URL對應的ip位址的解析,如果緩沖中有該解析,解析過程就将結束。浏覽器緩存域名也是有限制的,大小與時間都有限制,域名被緩存的時間限制由TTL屬性來控制。緩存時間太大時,一旦域名被解析的ip位址有變化時,以緻該域名不能被正确解析,通路不到伺服器也就是對應的網站。

2.如果浏覽器中沒有該URL的緩存ip位址,接下來就回去本地的作業系統檔案中檢視是否有域名所對應的ip位址的緩存,windows下的該檔案在C:\Windows\System32\drivers\etc\hosts可以設定,可以配置任何域名所對應的ip位址。很多病毒或者黑客都會使用該方式進行URL攔截,是以在windows7中已将該檔案設定為隻讀。

前面這兩個步驟都是在本機中進行檢查有無該URL的緩存,如果本機中無法完成域名的解析,接下來就會真正的請求DNS伺服器來解析該域名了

3.在網絡配置中,會有DNS伺服器這一項(windows可以在dos視窗中輸入ipconfig/all來檢視),作業系統會把該域名發送到這個LDNS(Local dns伺服器),LDNS通常都提供本地網際網路提供的DNS解析服務,一般該伺服器都是營運商提供在各個城市中的某個位置。這個專門的域名解析服務一般性能都很好,有着很好的緩存功能來緩存解析過的結果。緩存時間是有時間限制的,一般在LDNS限制緩存時間長短的不是緩存空間的大小影響的,一般是受到該域名的失效時間控制的。大約80%的域名伺服器解析到該出就能解析完成,是以dns主要承擔了域名解析的工作。

4.如果在LDNS域名解析仍然沒有命中,那麼LDNS會請求到Root Server(根)伺服器進行解析。

5.根域名伺服器會傳回給LDNS一個頂級域名伺服器位址(gTLD(Generic top-level domain) Server)。dTLD是頂級域名伺服器,如com cn org等

6.LDNS會向上一步傳回的gTLD發送請求

7.gTLD會根據域名查找該域名所對應Name Server域名伺服器。Name Server就是注冊域名時的伺服器,一般在某個域名服務商下注冊域名時,該域名服務商就會有提供的域名伺服器

8.LDNS會向該Name Server域名伺服器發送請求,Name Server伺服器會根據域名到映射關系表中查找到該域名所對應的ip位址,并将該映射關系以及一個TTL值傳回給LDNS

9.LDNS接受傳回的域名與ip位址的映射,并将該映射緩存到LDNS伺服器中,緩存時間由傳回的TTL值決定

10.将解析的結果傳回給使用者,使用者根據TTL值将該域名以及ip位址的映射關系緩存到本地作業系統中。域名解析結束。

實際的DNS解析可能更複雜些,不止這十步,例如Name Server也存在多級,或者有一個GTM來負載均衡,這些都有可能映射域名解析的過程。