Domain-Name-System

DNS 伺服器響應和超時

  • March 10, 2021

我們的 LAN 遇到了一個令人沮喪的問題。週期性地,對我們的 ISP 域名伺服器的 DNS 查詢超時,強制延遲 5 秒。即使我/etc/resolv.conf通過直接探勘到我們的一台 DNS 伺服器來繞過,我仍然會遇到問題。這是一個例子:

mv-m-dmouratis:~ dmourati$ time dig www.google.com @209.81.9.1 

; <<>> DiG 9.8.3-P1 <<>> www.google.com @209.81.9.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14473
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;www.google.com.            IN  A

;; ANSWER SECTION:
www.google.com.     174 IN  A   74.125.239.148
www.google.com.     174 IN  A   74.125.239.147
www.google.com.     174 IN  A   74.125.239.146
www.google.com.     174 IN  A   74.125.239.144
www.google.com.     174 IN  A   74.125.239.145

;; AUTHORITY SECTION:
google.com.     34512   IN  NS  ns2.google.com.
google.com.     34512   IN  NS  ns1.google.com.
google.com.     34512   IN  NS  ns3.google.com.
google.com.     34512   IN  NS  ns4.google.com.

;; ADDITIONAL SECTION:
ns2.google.com.     212097  IN  A   216.239.34.10
ns3.google.com.     207312  IN  A   216.239.36.10
ns4.google.com.     212097  IN  A   216.239.38.10
ns1.google.com.     212096  IN  A   216.239.32.10

;; Query time: 8 msec
;; SERVER: 209.81.9.1#53(209.81.9.1)
;; WHEN: Fri Jul 26 14:44:25 2013
;; MSG SIZE  rcvd: 248


real    0m5.015s
user    0m0.004s
sys 0m0.002s

其他時候,查詢會立即響應,例如在 20 毫秒左右。我做了一個數據包跟踪並發現了一些有趣的東西。DNS 伺服器正在響應,但客戶端忽略初始響應,然後發送第二個相同的查詢,該查詢立即得到響應。

請參閱數據包跟踪。請注意與查詢 (62076) 相同的源埠。

問題:是什麼導致第一次 DNS 查詢失敗?

更新

資源:

數據包跟踪:

http://www.cloudshark.org/captures/8b1c32d9d015

Dtruss(Mac 的 strace):

https://gist.github.com/dmourati/6115180

Mountain Lion 防火牆隨機延遲來自 apple.stackexchange.com 的 DNS 請求:

https://apple.stackexchange.com/questions/80678/mountain-lion-firewall-is-randomly-delaying-dns-requests

更新 2

System Software Overview:

 System Version:   OS X 10.8.4 (12E55)
 Kernel Version:   Darwin 12.4.0
 Boot Volume:  Macintosh HD
 Boot Mode:    Normal
 Computer Name:    mv-m-dmouratis
 User Name:    Demetri Mouratis (dmourati)
 Secure Virtual Memory:    Enabled
 Time since boot:  43 minutes

Hardware Overview:

 Model Name:   MacBook Pro
 Model Identifier: MacBookPro10,1
 Processor Name:   Intel Core i7
 Processor Speed:  2.7 GHz
 Number of Processors: 1
 Total Number of Cores:    4
 L2 Cache (per Core):  256 KB
 L3 Cache: 6 MB
 Memory:   16 GB

Firewall Settings:

 Mode: Limit incoming connections to specific services and applications
 Services:
 Apple Remote Desktop: Allow all connections
 Screen Sharing:   Allow all connections
 Applications:
 com.apple.java.VisualVM.launcher: Block all connections
 com.getdropbox.dropbox:   Allow all connections
 com.jetbrains.intellij.ce:    Allow all connections
 com.skype.skype:  Allow all connections
 com.yourcompany.Bitcoin-Qt:   Allow all connections
 org.m0k.transmission: Allow all connections
 org.python.python:    Allow all connections
 Firewall Logging: Yes
 Stealth Mode: No

這似乎是 Lion 防火牆中的一個錯誤。它在您的系統上啟用了嗎?

在這個 MacRumors 執行緒(更新到 Mountain Lion (10.8) 後的 DNS 問題)中,討論了一種可能的解決方法:

嘗試減小 MTU 大小。

系統偏好設置 > 網路 > WiFi > 高級 > 硬體 > 手動 > MTU:自定義 > 1300

為我工作。

您能否檢查減小 MTU 大小是否可以緩解您的問題?

我最近遇到了類似的問題,發現 Cisco ASA 防火牆未配置為支持 EDNS0,該規範允許 DNS UDP 數據包大於 512 字節。一旦我的韌體管理員允許最多 4096 個字節,問題就解決了。很棒的資訊在這裡:

http://www.petenetlive.com/KB/Article/0000312.htm

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