Domain-Name-System
DNS TTL 如何在鍊式 CNAME 配置中工作?
我有一個看起來像這樣的 DNS 配置:
www.example.com 600 IN CNAME prod.myzone.l2.company.example prod.myzone.l2.company.example 600 IN CNAME ssl-endpoint-12345.hostcorp.example ssl-endpoint-12345.hostcorp.example 60 IN A 192.0.2.4
所以鏈中前兩條 CNAME 記錄的 TTL 為 10 分鐘,最後一條 A 記錄的 TTL 為 1 分鐘
CNAME在
prod.myzone.l2.company.example
多個端點之間進行區域負載平衡,如果我的 DNS 提供商確定目前端點不健康,它會自動更新。出於這個原因,我想盡快將更改傳播到prod.myzone.l2.company.example
CNAME。如果我想減少客戶在
prod.myzone.l2.company.example
更改時看到的整體 TTL,僅減少prod.myzone.l2.company.example
記錄的 TTL 就足夠了,還是我還需要減少www.example.com
記錄上的 TTL?
TTL
for記錄的CNAME
工作方式與其他記錄沒有任何不同。讓我們想像一個遞歸解析器,上面的內容通過它。然後它用以下內容填充其記憶體:
www.example.com CNAME
有效期為 600 秒prod.myzone.l2.company.example CNAME
有效期為 600 秒ssl-endpoint-12345.hostcorp.example A
60s 有效如果有人稍後
ssl-endpoint-12345.hostcorp.example A
直接查詢,則適用 60 秒 TTL。但是如果查詢是 for
www.example.com
,那麼解析器將看到它沒有A
記錄,而是 CNAME,然後重用上述所有內容。上面的 66 秒(例如)
www.example.com
仍然在解析器記憶體中,但ssl-endpoint-12345.hostcorp.example A
不會再存在了,因此解析器必須執行新的 DNS 查詢來獲取該數據並記憶體它。