大家好
DNS是 server 2012 R2,最近user常常反應某一個外部網址常常解析到錯的IP,因為那個外部網址有時候會換IP,導致無法連線,但是如果在外部網路的話就沒有問題,
這樣表示內部的DNS解析有問題。
這個外部網址是一個CNAME record,打開DNS管理介面的cache loopup,
依照這個record找到這個IP,發現他的TTL竟然是10幾個小時。
如果去問8.8.8.8,發現這這個IP的TTL只有30秒,實在差太多了,
難怪公司的DNS都會問到錯的IP。
每次遇到這個問題就是手動去DNS管理介面清除cache,可是最近太常發生了,實在很煩。
DNS server我有設定轉寄站,會去問168.95.1.1。
請教大家我該怎麼處理這個問題呢? 謝謝
請試試改這個 Regkey:
在 Server 端:
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters
Key: MaxCacheTtl
Type: REG_DWORD
在 Client 端:
Path: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters
Key: MaxCacheTtl
Type: REG_DWORD
如果這個參數不存在的話, 請自建一個, 然後設一個比較小的值,
例如: 60 秒
它的預設值是 0x15180 = 86400 秒 = 1 天,
更糟的是, 他會覆蓋原本 DNS 來源的 TTL,
不管原始設多短, 都會被他給蓋掉, 所以我痛恨 MS DNS...
很簡單!
你把forwarders(轉送168.95.1.1這部份)給取消掉!
讓你的DNS(cache-only?)server, 老實地從 root-server 開始查起, 遵循原本就該走的正常流程就好.
有的Public DNS為了某些考量, 會刻意忽略原本的TTL, 使得它們的cache時間超乎預期.
( Bind須稍改源碼再編譯, Unbound直接用 cache-min-ttl, 都可以做得到, MS-DNS則如R大神講的 )
godaddy已有很好的解釋
DNS 傳播時間會受哪些因素影響?
裡面提到--有些 ISP 會略過 TTL 設定,且每隔二至三天才更新其快取記錄
這就是造成你所提狀況的原因.
關於forwarders, 很多教學都會說可指定到上游或ISP提供的DNS服務器,就連一些UNIX bind套件裡的example/comment也都還有, 說是可以取得DNS cache的好處, 卻從未提及可能的壞處.
時至今日, 恐怕有很大部份網管也都這麼做!
但在步入21世紀以後, 頻寬已逐漸足夠, 沒有必要去設這個,
soho或中小單位用用無妨, 然而每秒查詢量上萬的大單位還這麼做, 就很不妥當!
就是說同樣的設定, 不同的環境/時空背景, 未必都適用.
你好,
我想請教一個問題,如果www.abc.com設定CNAME指到xyz.com,
TTL設定24小時。xyz.com的A record,TTL設定30秒。
那DNS cache這個IP的時間到底是24小時還是30秒呢?
30秒啊!
www.abc.com. 86400 CNAME xyz.com.
指的是www.abc.com對應到xyz.com這件事的TTL是24h, 瞭解?
反過來, 如果是這樣呢?
www.abc.com. 20 CNAME xyz.com.
windows dns client 對於這筆的有效時間會是20秒
某一個外部網址(host.domain_a)常常解析到錯的IP
你會設定forward嗎?
使用nslookup查出該domain_a的NS主機IP(xx.yy.zz.gg)
並在你的DNS主機上,設定forward (查詢domain_a,就去問xx.yy.zz.gg)
這樣就不用管host.domain_a的新IP是否變動囉!