none
外部DNS TTL 設5秒,MS-DNS 快取區在一定時間會無法取得? RRS feed

  • 問題

  • 【事由】 Internet DNS 主機代管,一筆 <A>記錄 TTL 設定為「5秒」

    【使用系統】
    (1)Windows 2008 R2 DNS Server 設定「轉寄站」=168.95.1.1 
    (2)Windows 2008 R2 DNS Server 設定「轉寄站」= 8.8.8.8
    (3)Windows 2012 R2 DNS Server 設定「轉寄站」=168.95.1.1
    (4)Windows 2012 R2 DNS Server 設定「轉寄站」= 8.8.8.8
    (5)Linux DNS Server 設定「轉寄站」= 168.95.1.1
    (6) ISP = 中華電信(FTTB/光世代)、速博、亞太、有線電視...等多ISP

    【狀況】
       除了 (5) Linux 之外,(1)~(4) 的所有windows DNS 都有發生如下狀況:

    Step1. 在Server 中,使用nslookup 對 windows-DNS 做 <A> 查詢
    Step2. DNS server 收到後會向轉寄站 168.95.1.1 做一次查詢,並放入「快取區」,該快取保留時間由 168.95.1.1 所轉送告知的5秒鐘(TTL 設定值)。
    Step3. 此時,所有的client 在nslookup 下,其實都是由 windows-DNS 的「快取區」所回應的,並非直接由168.95.1.1 所回應的。
    Step4. 當Windows-DNS 的快取時間到時,可於畫面中看到 <A>記錄 消失。
    或在 nslookup debug 中看到 TTL 倒數=0
    Step5. 直到有client 再次向 windows-DNS 發出詢問,Windows-DNS 才會再向168.95.1.1 要一次記錄並存入快取,如此循環。

    異常點:
    接續step5 這個動作時,windows-DNS向 168.95.1.1 要<A> 這個動作時,原可以正常,經不定次數測試後,會忽然「得不到回應」,
    ,無法產生快取,即回給client 端「找不到」,且此過程類似被「停權」,時間間隔為1分鐘,1分鐘後即又正常可查詢。

    類似停權過程中,於同台windows-DNS 的 cmd 視窗中獨立執行 nslookup ,server 168.95.1.1 ,是可正常向中華電信查詢得到<A>的正解資訊
    也就是說同時二個cmd 視窗執行nslookup ,直接問中華電信168.95.1.1 是正常解析,但透過Windows-DNS 轉寄站出去的,是會「找不到」=
    Non-existent domain

    【問題點】
    Q1.類似「停權」的那1分鐘,是否為windows DNS server 的保護機制? 
    Q2.如是保護機制,是否可修改?

    2016年8月5日 上午 08:49

解答

  • Hi 阿寶,

    您這樣的設定真的是比較特殊的,想詢問一下,如果您單使用區域網路內TTL設定為預設值的client去連線DNS,是否依舊會有您上述的問題?


    請記得將對您有幫助的回覆"標示為解答"以幫助其他尋找解答及參與社群討論的朋友們。

    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    • 已標示為解答 FlyingBread 2016年8月23日 上午 01:58
    2016年8月9日 上午 09:27

所有回覆

  • 曾嘗試過直接建立「該網域』至「條件轉寄站」,IP = 168.95.1.1
    再次嘗試,仍一樣的狀況。

    2016年8月5日 上午 08:51
  • 曾嘗試過「轉寄站」清空,讓windows-DNS自動去問根來解,仍一樣的狀況。
    2016年8月5日 上午 08:52
  • Hi 阿寶,

    從您上述的文字描述,您好像將TTL的設定值改成5秒鐘? (不曉得我是否有誤會您)

    預設的TTL是3600秒,所以想了解一下有什麼特殊的需求會將TTL設定值調整成這樣?

    在這樣的情況下,如果網路的屏寬不夠大,會容易造成DNS 太過忙碌以致於無法回應。

    建議您試著將TTL改成預設值試試看。

    希望上述可以幫助到您。


    請記得將對您有幫助的回覆"標示為解答"以幫助其他尋找解答及參與社群討論的朋友們。

    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    2016年8月9日 上午 03:21
  • Hi
     TTL 的設定值改成 5秒  沒錯!

    原因:遊戲業大都如此!

    之前windows server DNS 設定TTL =30sec ,微軟DNS還撐得住
    因為看到 Linux 的DNS 都撐得到5sec , 所以也讓該記錄變為5sec
    但看來只有windows DNS server 會有這個問題。


    • 已編輯 阿寶 2016年8月9日 上午 08:37
    2016年8月9日 上午 08:36
  • Hi 阿寶,

    您這樣的設定真的是比較特殊的,想詢問一下,如果您單使用區域網路內TTL設定為預設值的client去連線DNS,是否依舊會有您上述的問題?


    請記得將對您有幫助的回覆"標示為解答"以幫助其他尋找解答及參與社群討論的朋友們。

    Please remember to click Mark as Answer on the post that helps you. This can be beneficial to other community members reading the thread.

    • 已標示為解答 FlyingBread 2016年8月23日 上午 01:58
    2016年8月9日 上午 09:27
  • 恆常的5秒TTL不見得很有意義

    假如你想說在某台機/或某個Cluster IP需要下線而讓使用者更快的拿到最新的DNS 解釋時

    你應該設想這動作究竟是計劃性的, 還是非計劃的

    計劃性的改變你可以在當天時間把TTL調低, 例如30秒, 1-5分鐘這樣的暫停已經非常合理

    在動作完成後再把TTL調回正常狀況, 過低的TTL只會令DNS出現非常頻繁的DNS Request

    非計劃性的服務停頓你應該向高可用性方案來調整.

    至於Linux和Windows的效能, 這個不好比較

    例如你的Linux可能是沒有GUI的, 那你也需要用Windows Core來比較才可以知道Windows的真正實力


    邊幫助, 邊鍛鍊

    2016年8月10日 上午 04:29
  • TTL 預設值下「不會」有此狀況。

    因TTL 縮小後造成的。

    2016年8月10日 上午 10:17
  • RE:1-5分鐘這樣的暫停已經非常合理

    可惜現階段的遊戲業無法接受這個服務中斷時間差。

    2016年8月10日 上午 10:22