W naszej sieci LAN mamy frustrujący problem. Okresowo zapytania DNS do naszych serwerów nazw ISP przekraczają limit 5 sekund. Nawet jeśli ominę /etc/resolv.conf
, używając bezpośredniego kopania na jednym z naszych serwerów DNS, nadal mam problem. Oto przykład:
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
Innym razem zapytania odpowiadają natychmiast, jak w mniej więcej 20 ms. Zrobiłem śledzenie pakietów i odkryłem coś interesującego. Serwer DNS jest reagowanie ale klient ignoruje odpowiedzi wstępnej, a następnie wysyła drugi identyczny kwerendy, która jest natychmiast odpowiedziała na.
Zobacz śledzenie pakietów . Zanotuj identyczne porty źródłowe do zapytań (62076).
Pytanie: co powoduje niepowodzenie pierwszego zapytania DNS?
AKTUALIZACJA
Zasoby:
Śledzenie pakietów:
http://www.cloudshark.org/captures/8b1c32d9d015
Dtruss (strace dla Mac):
https://gist.github.com/dmourati/6115180
Zapora Mountain Lion losowo opóźnia żądania DNS od apple.stackexchange.com:
/apple/80678/mountain-lion-firewall-is-randomly-delaying-dns-requests
AKTUALIZACJA 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
źródło
dtruss
wynik wygląda na obcięty. Nigdy nie widzimy wywołań systemowych, które zapisują wyjście programu do STDOUT.Odpowiedzi:
Wygląda to na błąd w zaporze Lion. Czy jest włączony w twoim systemie?
W tym wątku MacRumors ( problemy z DNS po aktualizacji do Mountain Lion (10.8) ) omówiono możliwe obejście:
Czy możesz sprawdzić, czy zmniejszenie rozmiaru MTU zmniejsza Twój problem?
źródło
Ostatnio miałem podobny problem i stwierdziłem, że zapora sieciowa Cisco ASA nie została skonfigurowana do obsługi EDNS0, specyfikacji, która zezwala na pakiety DNS UDP większe niż 512 bajtów. Gdy mój administrator fw zezwolił na maksymalnie 4096 bajtów, problem został rozwiązany. Świetne informacje tutaj:
http://www.petenetlive.com/KB/Article/0000312.htm
źródło