การตอบสนองเซิร์ฟเวอร์ DNS และหมดเวลา


17

เราพบปัญหาที่น่าผิดหวังบน LAN ของเรา DNS จะสอบถามเซิร์ฟเวอร์ของเนมเซิร์ฟเวอร์ ISP ของเราเป็นระยะเพื่อบังคับให้เกิดความล่าช้า 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 ms ฉันได้ทำการติดตามแพ็คเก็ตและค้นพบสิ่งที่น่าสนใจ เซิร์ฟเวอร์ DNS กำลังตอบสนอง แต่ไคลเอนต์ละเว้นการตอบสนองเริ่มต้นจากนั้นส่งแบบสอบถามที่เหมือนกันที่สองซึ่งตอบสนองทันที

ดูร่องรอยแพ็คเก็ต หมายเหตุพอร์ตต้นทางที่เหมือนกันกับเคียวรี (62076)

คำถาม: อะไรเป็นสาเหตุให้การสืบค้น DNS แรกล้มเหลว

UPDATE

แหล่งข้อมูล:

ติดตามแพ็คเก็ต:

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

Dtruss (strace สำหรับ mac):

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

ไฟร์วอลล์ Mountain Lion กำลังสุ่มคำขอ DNS จาก apple.stackexchange.com

/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
Andrew B

คุณลองใช้เซิร์ฟเวอร์ชื่อสาธารณะอื่น ๆ เช่น Google DNS
vasco.debian

@ vasco.debian ใช่พฤติกรรมเดียวกัน
dmourati

1
ความแตกต่างที่ฉันเห็นระหว่างคู่การร้องขอการตอบสนองทั้งสองนั้นเป็นความล่าช้าระหว่างการร้องขอและการตอบกลับ ฉันไม่เห็นปัญหาใด ๆ ในเครือข่ายเช่นกัน ทดลองและตรวจสอบว่าเรื่องการหน่วงเวลา - ระบบปฏิบัติการอาจปล่อยแพ็คเกจ udp บางตัวไปยังแอปพลิเคชันด้วยเหตุผลบางอย่างแม้ว่ามันจะแสดงในเครื่องมือวิเคราะห์ก็ตาม แน่นอนว่าไม่ใช่ปัญหากับเครือข่ายหรือการกำหนดค่าทั่วไป "dig" ต้องใช้งานได้ อาจมีบางอย่างผิดปกติกับการปรับจูนเครือข่าย ตรวจสอบการตั้งค่า sysctl สำหรับเครือข่าย เช่นนี้rolande.wordpress.com/2010/12/30/…
GioMac

1
คุณไม่ได้บอกว่าคุณใช้ไฟร์วอลล์บนเครื่องแมคเหรอ?
JustinP

คำตอบ:


3

นี่ดูเหมือนจะเป็นข้อผิดพลาดในไฟร์วอลล์ของ Lion มันเปิดใช้งานในระบบของคุณหรือไม่

ในเธรด MacRumors นี้ ( ปัญหา DNS หลังจากอัปเดตเป็น Mountain Lion (10.8) ) จะมีการกล่าวถึงวิธีแก้ปัญหาที่เป็นไปได้:

ลองลดขนาด MTU

การตั้งค่าระบบ> เครือข่าย> WiFi> ขั้นสูง> ฮาร์ดแวร์> ด้วยตนเอง> MTU: กำหนดเอง> 1300

ทำงานให้ฉัน

คุณสามารถตรวจสอบว่าการลดขนาด MTU ช่วยลดปัญหาของคุณหรือไม่


การเปลี่ยนการตั้งค่าไฟร์วอลล์ทำให้ปัญหาหายไป MTU ไม่มีผลกระทบ ไฟร์วอลล์ต้องถูกปิดใช้งานหรือ "ปิดกั้นการเชื่อมต่อขาเข้าทั้งหมด"
dmourati

การเปลี่ยนไฟร์วอลล์เป็นการตั้งค่าความถี่ลดปัญหา แต่ไม่ได้กำจัดปัญหาทั้งหมด สามารถทำซ้ำ 1/200 ครั้งหรือมากกว่านั้น
dmourati

ฉันจะพิจารณาถึงการสูญเสียแพ็กเก็ตของขนาดนั้นค่อนข้างสมเหตุสมผลเมื่อทำการท่องอินเทอร์เน็ตโดยเฉพาะอย่างยิ่งหากมีการจราจรคับคั่งในเส้นทาง โปรดจำไว้ว่า DNS ใช้ UDP ซึ่งไม่รับประกันการจัดส่งดาตาแกรม ซึ่งเป็นเหตุผลว่าทำไมโปรโตคอล DNS ตัวเองมีการลองและกลไกการหมดเวลาในตัว.
Mels

1
โดยวิธีการที่ฉันรู้ว่าเราไม่ควรที่จะโพสต์ "ขอบคุณ" ความคิดเห็นเกี่ยวกับที่นี่ แต่คุณก็เพิ่มขึ้นฉันชื่อเสียงหก :)
Mels

0

ฉันมีปัญหาที่คล้ายกันเมื่อเร็ว ๆ นี้และพบว่าไฟร์วอลล์ Cisco ASA ไม่ได้รับการกำหนดค่าให้รองรับ EDNS0 ข้อมูลจำเพาะที่อนุญาตให้แพ็กเก็ต DNS UDP มีขนาดใหญ่กว่า 512 ไบต์ เมื่อผู้ดูแลระบบของฉันอนุญาตให้มีขนาดไม่เกิน 4096 ไบต์ปัญหาจะได้รับการแก้ไข ข้อมูลที่ดีที่นี่:

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


ฉันไม่คิดว่าจะมีผลกับที่นี่ การตอบสนองนั้นต่ำกว่า 512 ไบต์สำหรับแบบสอบถาม DNS นี้โดยเฉพาะแม้จะมีสิทธิ์และส่วนเพิ่มเติม
Andrew B
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.