DNS入門學習:什麼是TTL值?如何設定合適的TTL值?
TTL值是域名解析中的一個重要引數,TTL值設定的合理與否對於域名解析的效率和準確性有著非常重要的影響,因此對於網站管理者而言,瞭解什麼是TTL值以及如何設定合理的TTL值對於做好域名解析管理,確保網站的安全穩定執行至關重要。
TTL是Time To Live的縮寫,翻譯過來就是生存時間,用於DNS解析之中就是指DNS解析記錄(DNS快取)在DNS伺服器上的保留時間。要想了解TTL的原理,需要先弄清楚DNS解析工作中的DNS快取機制。
在實際的域名解析過程中,使用者訪問域名後,並不是每次都需要向權威解析伺服器去請求最新的解析記錄,這樣不但會產生比較大的解析時延,同樣也會對權威解析伺服器造成較大的解析壓力,因此在DNS解析的多個環節中都使用了DNS快取技術用來提高DNS解析的效率。
當使用者第一次訪問域名時,由於DNS伺服器中還不存在DNS快取,所以最終會請求到負責該域名的權威解析伺服器,獲得該域名的解析記錄。DNS伺服器(遞迴解析伺服器)將該結果返回給使用者的同時,也會在自身儲存一段時間,這就是DNS快取,而儲存的這段時間就是TTL值。
在DNS快取失效前即TTL值有效期內,如果有使用者再次請求相同的域名,DNS伺服器不會再請求權威解析伺服器,而是直接從自身快取中找到結果告知使用者,這樣就省去了每次請求權威伺服器的繁瑣過程,解析效率大幅提升。
那既然這樣,是不是TTL值越大越好呢?當然不是,因為TTL值除了和DNS解析的速度有關外,還影響著DNS解析的安全性和準確性。
DNS快取雖然能夠提升解析的速度,但是也存在很大的安全隱患。DNS伺服器在快取了域名解析記錄之後,無法實時監測權威解析伺服器的記錄,這就會導致權威解析伺服器的DNS記錄發生變化時,DNS快取中的記錄不能實時同步更新。如果在這段時間中,有使用者請求域名,DNS伺服器就會從DNS快取中將過期的解析記錄返回給使用者,從而導致解析出錯,站點不可達或者使用者請求到錯誤的伺服器。
此外,DNS快取也為攻擊者利用DNS機制進行攻擊提供了可能。利用DNS伺服器向權威伺服器請求的間隙時間,攻擊者可以將錯誤的解析記錄注入DNS快取之中,當使用者請求域名,DNS伺服器就會不加核實地將DNS快取中錯誤的解析記錄告知使用者,從而將使用者引導至受攻擊者控制的釣魚網站,造成個人資訊的洩露和財產的損失。
因此,從DNS解析安全和準確性來講,TTL值不能設定得太大。那如果TTL設定得太小又有什麼影響呢?
TTL值越小,DNS伺服器就會越頻繁地請求權威伺服器,就能更及時地同步權威伺服器中的解析記錄變化,獲取最新的記錄結果,確保DNS解析的準確性。同時TTL值越小,請求權威伺服器的間隙越小,攻擊者進行DNS快取投毒的可能性越小。
當然TTL值設定得太小,也有一定的弊端。因為TTL值越小,請求權威伺服器越頻繁,對權威伺服器造成的壓力越大,甚至可能造成權威伺服器的線路擁堵和當機。而且TTL值太小,會經常發起全球迭代查詢,經歷多個環節的解析過程,產生較大的解析時延,反而失去了DNS快取的原本作用。
綜上所述,TTL值並沒有適用於所有企業的固定標準,而是要根據網站自身情況而定。如果網站伺服器穩定,輕易不會更換伺服器,那麼就可以設定比較大的TTL值,以解析速度為先。如果網站的解析經常變,伺服器經常換,或者是網站對解析安全要求比較高,那麼可以設定比較小的TTL值,這樣就可以提升DNS解析的安全性和準確性。如果沒有特殊的要求,一般不會單獨設定TTL值,採用服務商預設的TTL值即可。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2990550/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 域名解析TTL是什麼意思 TTL值設定為多少合適?
- 中科三方:DNS解析如何設定合適的TTL值?DNS
- 域名解析中的TTL值設定多少合適?
- 什麼是域名解析TTL?
- 域名解析中“TTL”是什麼意思?
- PING命令 獲取的TTL值 登錄檔位置
- 【Redis】獲取沒有設定ttl的key指令碼Redis指令碼
- ClickHouse 使用TTL
- DNS入門學習:什麼是雲解析?雲解析有哪些特點?DNS
- 入門程式設計學習,適合學python語言嗎?程式設計Python
- TTL和CMOS的區別
- 關於TRACERT和TTL
- ping ,time,TTL詳解
- 什麼是價值?
- 初學Python有什麼開發工具合適?Python入門!Python
- 哪些人適合入門培訓學習UI設計?UI
- 學習程式語言選擇Python怎麼樣?適合入門學習?Python
- 為什麼學習Python?什麼途徑學習Python合適?Python
- 非常適合小白入門的Python學習路線Python
- DNS域名解析的流程是什麼?學習linux主要學什麼DNSLinux
- 什麼樣的人合適學習Python?Python
- 什麼樣的人適合學習UIUI
- java初學者(零基礎如何入門),我適不適合學習JAVA?Java
- Python Django框架是什麼?Python學習入門!PythonDjango框架
- 33-TTL Controller for Finished ResourcesController
- 機器學習最好的入門課程是什麼?機器學習
- 幽默:什麼是價值?
- cookie的值可以設定為中文嗎?為什麼?如果可以怎麼設定?Cookie
- RabbitMQ中三個TTL的探討MQ
- ITSS的核心價值是什麼
- button標籤的type預設值是什麼呢?
- 什麼人適合學習Python?Python是否值得學習?Python
- DNS 是什麼?如何運作的?DNS
- ui設計培訓需要什麼基礎?如何入門學習?UI
- 什麼是linux虛擬機器?如何安裝?Linux學習入門!Linux虛擬機
- 什麼樣的人適合學UI設計?UI
- 非常適合小白入門的Go語言學習路線Go
- javascript值型別是什麼JavaScript型別