在設定 DNS 時,選完類型 (A、CNAME、MX…)、主機名稱 (@、subdomainname、service..)、指向(@、IP或網域)

接下來就會看到 TTL 包含了 1/2小時、1小時、12小時、1天、1周…

接下來會說明 TTL 是甚麼? 以及DNS TTL 選擇時間長短 ,差別在哪

TTL ( Time to Live, 存留時間) 是用來記錄 DNS 有效時間的參數值

例如,設定新的DNS時,TTL時間為 600 秒,就表示設定的DNS將會在 10分鐘之後生效

到這裡,通常會誤以為,設定越短越好,其實不然

在世界上,有許多ISP(網路服務供應商)會提供 DNS Server服務

當然,你也可以自己架一台DNS Server,

當你設定好 DNS 之後,你的DNS Server(或者ISP) 就會將你的設定一步步的同步到其他 DNS Server,直到全世界都同步

這裡的 TTL 就是指 其他DNS Server 返回 Query 有效時間,通常當別人的 DNS Server收到你的TTL時,

這筆紀錄會先保持在他們的快取中,當時間倒數達到設定值,才會再向你訪問,做一次更新紀錄

TTL設定的時間若過短,會增加網站主機的負擔,會收到更多 Query,讓主機處理器時間變慢

例如你把TTL設定為0時,你的DNS Server可能就會被操到爆,當其他人訪問你的DNS時,也會因此變慢

談到這裡,回到實際應用的角度來看,怎麼設定DNS TTL 會比較好呢?

其實,還是要看實際的狀況來決定,例如:

如果常受到攻擊 要一直換IP,TTL 設太長的話會影響新設定生效時間,因此可以設定為 600 秒

或者,當你剛新增一組DNS時,就可以先將 DNS TTL 設定短一點,等生效之後,在盡可能的將時間延長

如果是傳產 可以設長的時間,例如常見 86400 (通常 DNS Zone 的 TTL 都是86400秒,即1天)

最後,有些不錯的ISP,可以讓你設定較長的TTL,同時會在擬變更DNS的同時,在數分鐘之內把你的變更提交到其他 DNS Server

讓其他 DNS Server 將你的授權 NS (名稱伺服器)記錄在他們的根區域,在幾分鐘內更新完畢

但有些 ISP 可能會為了避免自家的NS被過度使用,而將NS紀錄設定為 48小時或更久的TTL

因此,在實際變更DNS,哪時會生效,其實誰也說不準