1. 程式人生 > >DNS記錄型別

DNS記錄型別

7. TTL值 TTL(Time-To-Live)原理:TTL是IP協議包中的一個值,它告訴網路路由器包在網路中的時間是否太長而應被丟棄。有很多原因使包在一定時間內不能被傳遞到目的地。例如,不正確的路由表可能導致包的無限迴圈。一個解決方法就是在一段時間後丟棄這個包,然後給傳送者一個報文,由傳送者決定是否要重發。TTL的初值通常是系統預設值,是包頭中的8位的域。TTL的最初設想是確定一個時間範圍,超過此時間就把包丟棄。由於每個路由器都至少要把TTL域減一,TTL通常表示包在被丟棄前最多能經過的路由器個數。當記數到0時,路由器決定丟棄該包,併發送一個ICMP報文給最初的傳送者。 簡單的說,TTL就是一條域名解析記錄在DNS伺服器中的存留時間。當各地的DNS伺服器接受到解析請求時,就會向域名指定的NS伺服器發出解析請求從而獲得解析記錄;在獲得這個記錄之後,記錄會在DNS伺服器中儲存一段時間,這段時間內如果再接到這個域名的解析請求,DNS伺服器將不再向NS伺服器發出請求,而是直接返回剛才獲得的記錄,而這個記錄在DNS伺服器上保留的時間,就是TTL值。 
TTL值設定的應用:
一是增大TTL值,以節約域名解析時間,給網站訪問加速。 一般情況下,域名的各種記錄是極少更改的,很可能幾個月、幾年內都不會有什麼變化。我們完全可以增大域名記錄的TTL值讓記錄在各地DNS伺服器中快取的時間加長,這樣在更長的一段時間內,我們訪問這個網站時,本地ISP的DNS伺服器就不需要向域名的NS伺服器發出解析請求,而直接從快取中返回域名解析記錄。 二是減小TTL值,減少更換空間時的不可訪問時間。 更換空間99.9%會有DNS記錄更改的問題,因為快取的問題,新的域名記錄在有的地方可能生效了,但在有的地方可能等上一兩天甚至更久才生效。結果就是有的人可能訪問到了新伺服器,有的人訪問到了舊伺服器。僅僅是訪問的話,這也不是什麼大問題,但如果涉及到了郵件傳送,這個就有點麻煩了,說不定哪封重要信件就被髮送到了那已經停掉的舊伺服器上。 
為了儘可能的減小這個各地的解析時間差,合理的做法是: 第一步,先檢視域名當前的TTL值,我們假定是1天。 第二步,修改TTL值為可設定的最小值,可能的話,建議為1分鐘,就是60。 第三步,等待一天,保證各地的DNS伺服器快取都過期並更新了記錄。 第四步,設定修改新記錄,這個時候各地的DNS就能以最快的速度更新到新的記錄。 第五步,確認各地的DNS已經更新完成後,把TTL值設定成您想要的值。 一般作業系統的預設TTL值如下: TTL=32 Windows 9x/Me TTL=64 LINUX TTL=128 Windows 200x/XP TTL=255 Unix