DNS 서버 응답 및 시간 초과


17

LAN에서 실망스러운 문제가 발생했습니다. 주기적으로 DNS는 ISP 이름 서버에 5 초 지연을 요구합니다. /etc/resolv.confDNS 서버 중 하나에 직접 파기를 사용하여 우회하더라도 여전히 문제가 발생합니다. 예를 들면 다음과 같습니다.

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

다른 경우에는 쿼리가 20ms 정도와 같이 즉시 응답합니다. 패킷 추적을 수행하고 흥미로운 것을 발견했습니다. DNS 서버 응답하지만 클라이언트가 초기 응답을 무시한 다음 두 번째로 동일한 쿼리를 보내면 즉시 응답합니다.

패킷 추적을 참조하십시오 . 쿼리와 동일한 소스 포트를 확인하십시오 (62076).

질문 : 첫 번째 DNS 쿼리가 실패하는 원인은 무엇입니까?

최신 정보

자원:

패킷 추적 :

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

Dtruss (Mac 용 추적) :

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

Mountain Lion 방화벽은 apple.stackexchange.com의 DNS 요청을 임의로 지연시킵니다.

/apple/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

dtruss출력이 잘립니다. 프로그램 출력을 STDOUT에 쓰는 시스템 호출은 결코 볼 수 없습니다.
앤드류 B

Google DNS와 같은 다른 공개 이름 서버를 사용해 보셨습니까?
vasco.debian

@ vasco.debian 예, 같은 동작입니다.
dmourati

1
이 두 요청-응답 쌍 사이의 차이점은 요청과 응답 간의 지연입니다. 네트워크에서도 아무런 문제가 없습니다. 지연이 중요한지 실험하고 확인하십시오-OS가 분석기에 표시되어 있음에도 불구하고 어떤 이유로 udp 패키지를 애플리케이션에 떨어 뜨릴 수 있습니다. 확실히, 네트워크 나 일반 구성에 문제가되지는 않습니다. "dig"가 작동해야합니다. 네트워크 스택 조정에 문제가있을 수 있습니다. 네트워크의 sysctl 설정을 확인하십시오. 이 rolande.wordpress.com/2010/12/30/…
GioMac

1
Mac에서 방화벽을 실행하고 있는지 말하지 않습니까?
JustinP

답변:


3

이것은 Lion의 방화벽에있는 버그 인 것 같습니다. 시스템에서 활성화되어 있습니까?

이 MacRumors 스레드 ( Mountain Lion (10.8)로 업데이트 한 후 DNS 문제 )에서 가능한 해결 방법이 설명됩니다.

MTU 크기를 줄이십시오.

시스템 환경 설정> 네트워크> WiFi> 고급> 하드웨어> 수동> MTU : 사용자 정의> 1300

나를 위해 일했다.

MTU 크기를 줄이면 문제가 완화되는지 확인할 수 있습니까?


방화벽 설정을 변경하면 문제가 해결되었습니다. MTU는 효과가 없었습니다. 방화벽을 비활성화하거나 "모든 들어오는 연결을 차단"해야합니다.
dmourati

방화벽을 설정 중 하나로 변경하면 문제 빈도가 줄어들었지만 문제가 완전히 해결되지는 않았습니다. 1/200 회 정도 재현 할 수 있습니다.
dmourati

인터넷을 통과 할 때, 특히 경로에 혼잡 한 홉이있는 경우 해당 크기의 패킷 손실이 상당히 합리적이라고 생각합니다. DNS는 데이터 그램 전달을 보장하지 않는 UDP를 사용합니다. 이것이 바로 DNS 프로토콜 자체에 재시도 및 시간 초과 메커니즘이 내장되어있는 이유입니다.
Mels

1
그런데, 여기에 대한 의견 "감사"우리가 게시물에 안 알고,하지만 당신은 내 평판 육겹 : 증가
멜스

0

최근에 비슷한 문제가 발생하여 Cisco ASA 방화벽이 512 바이트보다 큰 DNS UDP 패킷을 허용하는 사양 인 EDNS0을 지원하도록 구성되지 않았 음을 발견했습니다. 내 fw 관리자가 최대 4096 바이트를 허용하면 문제가 해결되었습니다. 여기에 좋은 정보가 있습니다 :

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


나는 그것이 여기에 적용되지 않는다고 생각합니다. 권한 및 추가 섹션이 있더라도이 특정 DNS 쿼리에 대한 응답은 512 바이트 미만입니다.
앤드류 B
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.