什麼是DNS快取?DNS快取有哪些作用?

youbingke發表於2022-09-16

什麼是DNS快取?

當我們第一次訪問某個網站時,DNS在返回對應的IP地址後,系統會將這個記錄臨時儲存下來,併為其設定一個有效期限(TTL),在有效期限內再次訪問該網站,系統會直接將該結果返回,而無需求助DNS系統進行全球查詢。這個臨時儲存下來的記錄就是DNS快取。如果超過DNS快取的有效期限再次對該網站,系統會自動再次詢問DNS伺服器以獲得最新的結果。

DNS快取有什麼作用?

DNS域名解析採用的是UDP協議通訊,受外部網路環境的影響較大,尤其是在有丟包的情況下會產生較高的時延,嚴重影響使用者上網體驗,而DNS快取機制就是在這種背景下產生的。

DNS快取可以在使用者發起請求時,直接將記錄結果返回,不需要委託遞迴伺服器進行全球查詢,這樣就極大提升了DNS域名解析效率,減小了多次查詢所帶來的時延問題。此外,由於不必每次都請求權威解析伺服器進行查詢,所以快取機制還能大幅節省權威伺服器的效能消耗,減輕權威伺服器的請求壓力。

DNS快取的缺點

DNS快取雖然能夠在一定程度上提升域名解析的速度,但同樣也存在一些弊端,如DNS快取需要消耗一定的系統資源,增加了域名系統的複雜性。此外TTL值的設定對於平衡DNS解析速度和精度產生了較大影響。如果TTL值較短,能夠在較短時間內重新整理最新解析記錄,但會對解析伺服器造成較大壓力;如果TTL過大,則可能導致地址變更時,使用者無法及時獲得最新記錄,從而導致站點不可達或者訪問到錯誤網站,影響正常業務開展,並增加DNS被劫持的風險。

DNS快取使用中的問題

由於DNS快取機制存在以上弊端,所以如果DNS快取設定使用不當,反而會適得其反出現以下幾個方面的問題給使用者正常訪問帶來負面影響。

(1)快取重新整理不受控

當域名發生變更時,無法重新整理全球遞迴伺服器快取和客戶端上DNS快取中的記錄,在快取TTL值是小錢,客戶發起請求仍會按照快取記錄的原有對映關係發起請求,只有當遞迴伺服器和客戶端上的快取失效後,才會重新發起請求。在此過程中,因為域名解析到錯誤IP會產生很大的安全風險。

(2)解析權和快取值被修改

一些小運營商出於成本考慮,經常會將域名轉發到其他運營商進行解析,並將收到的域名快取值修改為較大值,這樣就會帶來兩個方面問題:

一是,權威DNS接收到的請求 IP 地址不是客戶所在運營商 IP 地址,客戶的請求可能會被引導至錯誤的線路,導致客戶訪問慢;

二是,企業域名發生改變後將等待更長的超時時間才能正常訪問業務,同樣會給客戶帶來較差的體驗。

因此,為了消除DNS快取帶來的種種問題,企業在設定域名解析時應做好解析速度和安全性之間的平衡,設定好合適的TTL值,而對於客戶端來說,經常性地清理DNS快取,保證實時獲取最新解析記錄,則可以有效避免上述問題。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2915041/,如需轉載,請註明出處,否則將追究法律責任。

相關文章