Domain-Name-System

DIG 從不同的伺服器返回不同的結果

  • December 10, 2015

昨天,我的一個域名過期了,所以我的一個網站關閉了。我很清楚 dns 記憶體,但我認為我想念一些東西。

我的網站並非到處都是(感謝 dns 記憶體)。但是,例如 Google dns 伺服器給出的結果與兩台伺服器不同。怎麼會 ?

我的 DNS 具有 .paris 副檔名(巴黎啟動)

在我的電腦上,它執行良好。這是探勘的結果:

dig @8.8.8.8 mydomain.paris

; <<>> DiG 9.8.3-P1 <<>> @8.8.8.8 mydomain.paris
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 189
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;mydomain.paris.         IN  A

;; ANSWER SECTION:
mydomain.paris.      27  IN  A   104.25.219.14
mydomain.paris.      27  IN  A   104.25.218.14

;; Query time: 75 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec  9 19:47:52 2015
;; MSG SIZE  rcvd: 63

從另一台伺服器,它不工作:

dig @8.8.8.8 mydomain.paris

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> @8.8.8.8 mydomain.paris
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 61073
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;mydomain.paris.         IN  A

;; AUTHORITY SECTION:
paris.          1799    IN  SOA a.nic.fr. hostmaster.nic.paris. 2222333866 3600 1800 3600000 5400

;; Query time: 18 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Wed Dec  9 20:02:24 2015
;; MSG SIZE  rcvd: 90

這兩次,我都在查詢 Google 的 DNS 伺服器。我怎麼會得到不同的結果?即使使用dig @命令也有記憶體嗎?為什麼我得到答案,但AUTHORITY SECTION在第一種情況下沒有,而AUTHORITY SECTION在第二種情況下只有一個但沒有答案?是什麼AUTHORITY SECTION

非常感謝 :)

對於 Google (8.8.8.8) 和許多提供商一樣,解析服務在多個節點上實現負載平衡,並且由於每個節點都維護自己的記憶體,因此對顯然相同名稱伺服器的後續查詢實際上可能來自不同的節點並產生不同的 (記憶體)結果。(不同的錯誤,不同的 TTL 值等)

@dig 使用它來選擇特定的名稱伺服器,而不是您的預設名稱伺服器/etc/resolv.conf,僅此而已,僅此而已,它不能確定該名稱伺服器上的記憶體。

為了避免記憶體結果,您可以使用該dig +trace選項,這將使 dig 使用跟踪、迭代查詢來解析正在查找的名稱。它將遵循來自根伺服器的引用,顯示來自用於解析查找的每個伺服器的答案。

關於 AUTHORITY 部分:記憶體結果不具有權威性,不會包含權威數據。

RFC 2308要求記憶體錯誤(NXDOMAIN) 確實包含權限部分;“它必須將記憶體的 SOA 記錄添加到響應的授權部分,其 TTL 會根據它儲存在記憶體中的時間量而遞減。這允許 NXDOMAIN / NODATA 響應正確超時。”

引用自:https://serverfault.com/questions/742121