Domain-Name-System
DNS 伺服器響應和超時
我們的 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 請求:
更新 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 個字節,問題就解決了。很棒的資訊在這裡: