/ etc / resolver / files ทำงานใน Mountain Lion เพื่อการแก้ปัญหา DNS หรือไม่


31

ทุกคนสามารถบอกฉันได้หรือไม่ว่าการเพิ่มไฟล์ภายใต้ / etc / resolver จะทำงานสำหรับการแก้ปัญหา DNS โดยใช้เซิร์ฟเวอร์ DNS อื่นที่ไม่ใช่ DHCP

ปัญหาของฉันคือฉันต้องการใช้ OpenDNS สำหรับการแก้ปัญหา DNS ภายในบ้านของลูกค้าเพื่อใช้ประโยชน์จากความสามารถในการกรองและป้องกันการหลอกลวง แต่ข้อเสียอย่างใหญ่หลวงก็คือที่นี่ในออสเตรเลียสิ่งต่าง ๆ เช่นเนื้อหาของ Apple จะมีเนื้อหาเซิร์ฟเวอร์โดยใช้จุดส่งมอบตามสหรัฐฯ

สิ่งที่ฉันต้องการทำคือให้ที่อยู่เซิร์ฟเวอร์ DNS ส่งผ่าน DHCP เป็นที่อยู่เราเตอร์ท้องถิ่น (DNSMasq โดยใช้เซิร์ฟเวอร์ OpenDNS DNS) จากนั้นให้วางไฟล์ที่เรียกว่า apple.com ภายใต้ / etc / resolver ด้วยบรรทัดต่อไปนี้ :

nameserver 203.12.160.35

แนวคิดคือว่าคำขอ DNS ใด ๆ ไปยัง apple.com จะได้รับการแก้ไขโดยเซิร์ฟเวอร์ DNS ของ TPG (ISP ของฉัน) แทนที่จะเป็นเราเตอร์ท้องถิ่น DNSMasq daemon โดยใช้เซิร์ฟเวอร์ OpenDNS

ดังนั้นฉันได้ทำสิ่งนี้และผลลัพธ์ของscutil --dnsคือ:

DNS configuration

resolver #1
  search domain[0] : harland
  nameserver[0] : 192.168.10.1
  nameserver[1] : 192.168.10.1
  if_index : 4 (en2)
  reach    : Reachable,Directly Reachable Address

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  order    : 300000

resolver #3
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  order    : 300200

resolver #4
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300400

resolver #5
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300600

resolver #6
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 300800

resolver #7
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  order    : 301000

resolver #8
  domain   : apple.com
  nameserver[0] : 8.8.8.8

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : harland
  nameserver[0] : 192.168.10.1
  nameserver[1] : 192.168.10.1
  if_index : 4 (en2)
  flags    : Scoped
  reach    : Reachable,Directly Reachable Address
macbookair:resolver

ตอนนี้ผลลัพธ์ของ nslookup บน apple.com คือ:

macbookair:resolver ilium007$ nslookup apple.com
Server:     192.168.10.1
Address:    192.168.10.1#53

Non-authoritative answer:
Name:   apple.com
Address: 17.149.160.49
Name:   apple.com
Address: 17.172.224.47

macbookair:resolver 

ดังนั้นฉันไม่ได้ใช้เซิร์ฟเวอร์ TPG DNS - ฉันยังคงแก้ไขปัญหากับ 192.168.10.1 ซึ่งเป็นเราเตอร์ภายในเครื่อง ลำดับของผู้แก้ไขปัญหาสำคัญหรือไม่? กล่าวคือ รายการที่สร้างขึ้นหลังจากฉันวางไฟล์ apple.com ใน / etc / resolver คือ resolver # 8:

resolver #8
  domain   : apple.com
  nameserver[0] : 8.8.8.8

ฉันต้องการวิธีที่จะทำให้งานนี้ - ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม

คำตอบ:


43

คำถามนี้ดูเหมือนจะค่อนข้างเก่า แต่ฉันจะตอบมันต่อไปเพราะฉันมีปัญหาที่คล้ายกัน:

ใช่มันใช้งานได้

คุณปัญหาแรกคือการที่คุณเห็นได้ชัดว่ามีความผิด IP ( 8.8.8.8แทน203.12.160.35) /etc/resolver/apple.comใน ตรวจสอบว่าเนื้อหาของไฟล์นี้เป็นจริง:

nameserver 203.12.160.35

จากนั้นscutil --dnsควรมีรายการเช่นนี้:

resolver #8
  domain   : apple.com
  nameserver[0] : 203.12.160.35

ปัญหาที่สองคือการที่คุณพยายามที่จะตรวจสอบได้โดยใช้nslookupที่ไม่ได้ใช้กลไกการแก้ปัญหา DNS ของ OS X ได้ถ้าคุณดูที่หน้าคนของnslookupคุณจะพบนี้:

Mac OS X NOTICE
   The nslookup command does not use the host name and address resolution or the DNS 
   query routing mechanisms used by other processes running on Mac OS X.  The results of 
   name or address queries printed by nslookup may differ from those found by other
   processes that use the Mac OS X native name and address resolution mechanisms. The 
   results of DNS queries may also differ from queries that use the Mac OS X DNS routing 
   library.

ในการตรวจสอบการกำหนดค่า DNS ของคุณคุณสามารถทำได้

dns-sd -G v4 images.apple.com

และตรวจสอบว่ามันให้ IP เดียวกันกับ

nslookup images.apple.com 203.12.160.35

1
นอกจากนี้ยังเป็นที่น่าสังเกตว่าสิ่งนี้สามารถใช้เพื่อระบุเนมเซิร์ฟเวอร์สำหรับโดเมนระดับบนสุดที่เฉพาะเจาะจง ตัวอย่างเช่นหากไฟล์ชื่อ "dev" การค้นหาทั้งหมดสำหรับ "example.dev" จะถูกส่งไปยังเนมเซิร์ฟเวอร์ดังกล่าว สิ่งนี้มีประโยชน์สำหรับอินทราเน็ตของ บริษัท โดยเฉพาะอย่างยิ่งเมื่อคุณไม่ได้อยู่บน LAN ของ บริษัท (เช่น: เมื่อเชื่อมต่อกับ VPN)
Abhi Beckert

2
Your first problem is that you obviously have the wrong IP (8.8.8.8)ไม่จำเป็น; 8.8.8.8และ8.8.4.4เป็นเซิร์ฟเวอร์ DNS ของ Google วิธีที่พวกเขาได้รับออคเต็ตเหล่านั้นนั้นอยู่เหนือฉัน
Qix

3
ตั้งแต่ 10.10 ดูเหมือนว่าไม่มีไดเร็กทอรี / etc / resolver อยู่
sorin

2
คุณต้องสร้างด้วยตัวเองใน 10.10
Alan Shutko
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.