由來
說穿了DNS是用來幫助記憶網路地址的完全是為了遷就人類的記憶思維而設的。
假如您的電話有名字記憶功能您隻需知道對方的名字就可以撥号給友人了我們可以說這電話也具備如DNS的功能了呢但是我們在網路中使用的DNS系統就是這麽簡單嗎非也雜得很呢下面就讓我們一起去探索一下DNS的奧秘
在早期的IP網路世界裡面每台電腦都隻用IP地址來表示不久人們就發現這樣很難記憶於是一些UNIX的使用者就建立一個HOSTS對應表将IP和主機名字對應起來這樣用戶隻需輸入電腦名字就可以代替IP來進行溝通了。如果你安裝了Linux系統在/etc下面就可以找到這個hosts檔案了在NT的系統裡你也可以在winntsystem32driversetc下面找到它。不過這個HOSTS檔是要由管理者手工維護的最大的問題是無法适用於大型網路而且更新也是件非常頭痛的事情。這就是DNS大派用場的時候了。随着互聯網的發展和普及,域名系統作為互聯網的重要基礎設施,對人們的網絡生活有着至關重要的影響。而DNS(域名系統),作為一個分層的,分布式的命名系統,其安全性對整個互聯網設施至關重要。
原理
工作原理
DNS分為Client和Server,Client扮演發問的角色,也就是問Server一個DomainName,而Server必須要回答此DomainName的真正IP地址。而當地的DNS先會查自己的資料庫。如果自己的資料庫沒有,則會往該DNS上所設的的DNS詢問,依此得到答案之後,将收到的答案存起來,并回答客戶。
DNS服務器會根據不同的授權區(Zone),記錄所屬該網域下的各名稱資料,這個資料包括網域下的次網域名稱及主機名稱。
在每一個名稱服務器中都有一個快取緩存區(Cache),這個快取緩存區的主要目的是将該名稱服務器所查詢出來的名稱及相對的IP地址記錄快取緩存區中,這樣當下一次還有另外一個客戶端到次服務器上去查詢相同的名稱時,服務器就不用在到别台主機上去尋找,而直接可以從緩存區中找到該筆名稱記錄資料,傳回給客戶端,加速客戶端對名稱查詢的速度。例如:
當DNS客戶端向指定的DNS服務器查詢網際網路上的某一台主機名稱DNS服務器會在該資料庫中找尋用戶所指定的名稱如果沒有,該服務器會先在自己的快取緩存區中查詢有無該筆紀錄,如果找到該筆名稱記錄後,會從DNS服務器直接将所對應到的IP地址傳回給客戶端,如果名稱服務器在資料記錄查不到且快取緩存區中也沒有時,服務器首先會才會向别的名稱服務器查詢所要的名稱。例如:
DNS客戶端向指定的DNS服務器查詢網際網路上某台主機名稱,當DNS服務器在該資料記錄找不到用戶所指定的名稱時,會轉向該服務器的快取緩存區找尋是否有該資料,當快取緩存區也找不到時,會向最接近的名稱服務器去要求幫忙找尋該名稱的IP地址,在另一台服務器上也有相同的動作的查詢,當查詢到後會回複原本要求查詢的服務器,該DNS服務器在接收到另一台DNS服務器查詢的結果後,先将所查詢到的主機名稱及對應IP地址記錄到快取緩存區中,最後在将所查詢到的結果回複給客戶端。
範例
《Step1》在DNS的客戶端(Reslover)鍵入查詢主機的指令,如:
c:ping網址
pinging網址【192.72.80.36】with32bytesofdata
replyfrom192.72.80.36bytestime<10msttl253
《Step2》而被指定的DNS服務器先行查詢是否屬于該網域下的主機名稱,如果查出改主機名稱并不屬于該網域範圍,之後會再查詢快取緩存區的紀錄資料,查是否有此機名稱。
《Step4》在根網域中,向RootNameServer詢問,RootNameServer記錄了各TopDomain分别是由哪些DNSServer負責,所以他會響應最接近的NameServer為控制CN網域的DNS伺服主機。
《Step5》RootNameServer已告訴LocalDNSServer哪部NameServer負責.cn這個Domain,然後LocalDNS再向負責發出找尋網址的名稱Request。
《Step6》在.cn這個網域中,被指定的DNS服務器在本機上沒有找到此名稱的的紀錄,所以會響應原本發出查詢要求的DNS服務器說最近的服務器在哪裡?他會回應最近的主機為控制com.cn網域的DNS伺服主機。
《Step7》原本被查詢的DNS服務器主機,收到繼續查詢的IP位置後,會再向com.cn的網域的DNSServer發出尋找網址搜尋的要求。
《Step8》com.cn的網域中,被指定的DNSServer在本機上沒有找到此名稱的記錄,所以會回複查詢要求的DNSServer告訴他最接近的服務器在哪裡?他就回應最接近為控制test.com.cn的網域的DNS主機。
《Step9》原本被查詢的DNSServer,在接收到應繼續查詢的位置,在向test.com.cn網域的DNSServer發出尋找網址的要求,最後會在test.com.cn的網域的DNSServer找到網址此主機的IP。
《Step10》所以原本發出查詢要求的DNS服務器,再接收到查詢結果的IP位置後,響應回給原查詢名稱的DNS客戶端。
兩種查詢模式
有兩種詢問原理,分為Recursive和Interactive兩種。前者是由DNS代理去問,問的方法是用Interactive方式,後者是由本機直接做Interactive式的詢問。由上例可以看出,我們一般查詢名稱的過程中,實際上這兩種查詢模式都是交互存在着的。
遞歸式(Recursive):DNS客戶端向DNSServer的查詢模式,這種方式是将要查詢的封包送出去問,就等待正确名稱的正确響應,這種方式隻處理響應回來的封包是否是正确響應或是說是找不到該名稱的錯誤訊息。
交談式(Interactive):DNSServer間的查詢模式,由Client端或是DNSServer上所發出去問,這種方式送封包出去問,所響應回來的資料不一定是最後正确的名稱位置,但也不是如上所說的響應回來是錯誤訊息,他響應回來告訴你最接近的IP位置,然後再到此最接近的IP上去尋找所要解析的名稱,反複動作直到找到正确位置。



















