รายการเซิร์ฟเวอร์ DNS ใน Mavericks


10

จะตรวจสอบเซิร์ฟเวอร์ DNS ใดที่ใช้แก้ไขชื่อโฮสต์เฉพาะภายในเครือข่าย VPN ได้อย่างไร

ฉันใช้ไคลเอนต์ VPN ที่ บริษัท เป็นเจ้าของและต้องการดูที่อยู่ IP ของเซิร์ฟเวอร์ DNS แต่

networksetup -getdnsservers <service name>

ไม่มีรายชื่อเซิร์ฟเวอร์ DNS ใด ๆ เลย อย่างไรก็ตามฉันสามารถ ping เซิร์ฟเวอร์ใด ๆ ในเครือข่ายภายในได้ดังนั้น DNS จึงทำงานได้

การค้นหา DNS ทำงานบน OSX ด้วย / ไม่มีการเชื่อมต่อ VPN ได้อย่างไร

คำตอบ:


6

ก่อนอื่นถ้าnetworksetup -getdnsservers <service name>ไม่แสดงอะไรเลยคุณไม่มีรายการใด ๆ ในการตั้งค่าระบบ> Netowrk ภายใต้ "DNS Servers:"

ประการที่สองเป็นสิ่งสำคัญที่จะต้องทราบว่า OS X ไม่ได้จัดการ DNS เหมือนกับระบบส่วนใหญ่ ต่อhttps://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html เป็นหลักซึ่งหมายความว่า OS X มีไคลเอ็นต์ DNS หลายตัวขึ้นอยู่กับการกำหนดค่าของคุณ ผลลัพธ์ของบริการที่หลากหลายเหล่านี้หมายความว่ามีสถานการณ์ที่การใช้ Safari ในการเข้าถึงเว็บไซต์ ( http://www.example.com ) จะนำคุณไปยังที่อยู่ IP ที่ OS X ได้รับจาก DNS (เช่น 1.2.3.4) ในขณะที่ ในเวลาเดียวกันการขุด

$ dig www.example.com  

จะให้ผลลัพธ์ที่แตกต่าง (อาจ 2.3.4.5)

เหตุผลนี้อยู่ในแนวทางที่ OS X จัดการ DNS

หากคุณเรียกใช้$ man digคุณได้รับเหนือสิ่งอื่นใดต่อไปนี้:

ประกาศของ Mac OS X คำสั่ง dig ไม่ใช้ชื่อโฮสต์และการแก้ไขที่อยู่หรือกลไกการกำหนดเส้นทางการสืบค้น DNS ที่ใช้โดยกระบวนการอื่นที่ทำงานบน Mac OS X ผลลัพธ์ของการสอบถามชื่อหรือที่อยู่ที่พิมพ์โดยขุดอาจแตกต่างจากกระบวนการอื่น ๆ ที่ใช้เนทิฟเนทิฟของ Mac OS X และกลไกการแก้ไขที่อยู่ ผลลัพธ์ของการสืบค้น DNS อาจแตกต่างจากแบบสอบถามที่ใช้ไลบรารีการกำหนดเส้นทาง Mac OS X DNS

ก็$man nslookupจะคืนสิ่งที่คล้ายกัน

ประกาศของ Mac OS X คำสั่ง nslookup ไม่ได้ใช้ชื่อโฮสต์และการแก้ไขที่อยู่หรือกลไกการกำหนดเส้นทางการสืบค้น DNS ที่ใช้โดยกระบวนการอื่นที่ทำงานบน Mac OS X ผลลัพธ์ของการสอบถามชื่อหรือที่อยู่ที่พิมพ์โดย nslookup อาจแตกต่างจากกระบวนการอื่น ๆ ที่ใช้เนทิฟเนทิฟของ Mac OS X และกลไกการแก้ไขที่อยู่ ผลลัพธ์ของการสืบค้น DNS อาจแตกต่างจากแบบสอบถามที่ใช้ไลบรารีการกำหนดเส้นทาง Mac OS X DNS

ทั้งหมดนี้เป็นวิธีที่ค่อนข้างยาวในการพูดวิธีที่ดีที่สุดในการดูว่าเซิร์ฟเวอร์ DNS ใดกำลังใช้อยู่คือดูการตั้งค่าระบบ> เครือข่าย

โดยปกติแล้วจะมี "DNS Server:" เข้ามาและ "ค้นหาโดเมน:" จะช่วยให้คุณค้นหาที่อยู่ที่ไม่สมบูรณ์

หาก "เซิร์ฟเวอร์ DNS:" ไม่มีอยู่ OS X จะพยายามใช้ที่อยู่ใน "เราเตอร์:" สำหรับ DNS

และเหนือสิ่งอื่นใดคือความสนุกมีสาธารณูปโภคและกระบวนการอื่น ๆ ที่อาจไม่ได้ใช้ไลบรารีการกำหนดเส้นทาง OS X DNS และพวกเขาจะกดปุ่มเนื้อหาของ /etc/resolv.conf โดยตรง

คำตอบสั้น ๆ คือ:

  1. หากคุณไปตามเนื้อหาของการตั้งค่าระบบ> เครือข่ายคุณกำลังดูสิ่งเดียวกันกับที่กระบวนการส่วนใหญ่ใช้
  2. เนื้อหาของการตั้งค่าระบบ> เครือข่ายควรเติม /etc/resolv.conf แต่ไม่เสมอไป
  3. กระบวนการอื่น ๆ (เช่น dig และ nslookup) กำลังเข้าถึง /etc/resolv.conf โดยตรง

และเหนือสิ่งอื่นใดทั้งหมด - หากคุณไม่ได้ใช้ไคลเอนต์ VPN ที่ติดตั้งไว้ใน OS X เป็นไปได้ว่ามีการใช้เส้นทางและเซิร์ฟเวอร์ DNS เพิ่มเติมซึ่งnetworksetup -getdnsservers <service name>จะไม่แสดง ไคลเอนต์ VPN ของคุณอาจมีความสามารถในการแสดงเส้นทางและเซิร์ฟเวอร์ DNS ฉันรู้ว่าของฉันทำ

ฉันรู้ว่าสิ่งนี้ไม่ได้ตอบคำถามของคุณอย่างแม่นยำ แต่หวังว่านี่จะช่วยให้คุณรู้ว่าการ "ความจริง" เกี่ยวกับ DNS บน Mac นั้นไม่ใช่เรื่องง่ายเสมอไป โดยทั่วไปแล้วคุณจะปลอดภัยถ้าสมมติว่าเนื้อหาของการตั้งค่าระบบ> เครือข่ายหรือเนื้อหาของnetworksetup -getdnsservers <service name>ที่คุณจะได้รับ DNS จาก อย่างไรก็ตามหากสิ่งต่าง ๆ ดูประหลาดโปรดจำไว้ว่ามีความเป็นไปได้อื่น ๆ ด้วย ใช้ขุดเพื่อช่วยตรวจสอบว่ามีความแตกต่างที่เคลื่อนไหว

ที่ผ่านมาเพื่อให้ผู้อ่านผู้ที่สงสัยว่าจะได้รับ<service name>ในการnetworksetup -getdnsservers <service name>ลองใช้networksetup -listallnetworkservices

บิล


ขอบคุณสำหรับคำอธิบาย นั่นคือสิ่งที่ฉันสงสัยว่า: อะไรก็ตามที่อยู่ในเครือข่าย VPN กำลังถูกค้นหาผ่านเกตเวย์ VPN ที่แสดงรายการในตารางเส้นทาง ...
Robusta

ฉันสามารถจับที่อยู่ของเซิร์ฟเวอร์ DNS โดยใช้ tcpdump บนอินเทอร์เฟซ VPN
Robusta

8

ใน OSX Mavericks (10.9 - จริงแล้ว 10.6.3 ขึ้นไปฉันเชื่อว่า) หากคุณต้องการดูการกำหนดค่า DNS ที่ใช้งานอยู่:

scutil --dns

รายการ -first- (resolver # 1) มีรายงานว่ามีการกำหนดค่าที่ใช้งานอยู่ ... ถึงแม้ว่าฉันจะได้เห็นเคสจำนวนมากที่ไม่ใช่เคส

จากคนวิ่งหนี

 The --dns option reports the current DNS configuration.  The first listed
 resolver(5) configuration is considered to be the "default" configura-
 tion.  Additional "supplemental" configurations follow.  Those containing
 a "domain" name will be used for queries matching the specified domain.
 Those without will be used as a "default" configuration in addition to
 the first listed.

IME หากสิ่งที่คุณเห็นที่นี่ไม่ตรงกับที่คุณคาดหวัง (เช่นเครือข่าย> ขั้นสูง> dns) คุณอาจต้องปิดการใช้งาน / เปิดใช้งานอะแดปเตอร์เครือข่ายที่เหมาะสมเพื่อให้รีเฟรช ...

เคล็ดลับอื่น ๆ ใน OSX ล่าสุด:

ด้วย 10.7 หรือ 10.8 การค้นหาโดเมนจะไม่มีผลกับการค้นหาที่มีจุดอยู่ในโดเมน ie - www.test จะไม่ต่อท้ายโดเมนการค้นหาเลยโดยที่ www จะ มีการแก้ไข:

sudo vim /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Add <string>-AlwaysAppendSearchDomains</string>after line 16
    <key>ProgramArguments</key>
    <array>
        <string>/usr/sbin/mDNSResponder</string>
        <string>-launchd</string>
        <string>-AlwaysAppendSearchDomains</string>
    </array>

ตอนนี้ยกเลิกการโหลดและโหลดบริการ mDNSResponder: sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl load -w /System/LaunchDaemons/com.apple.mDNSResponder.plist

เครือข่าย> ขั้นสูง> การกำหนดค่า dns คือ -PER INTERFACE- ดังนั้นหากคุณใช้ระบบไร้สายและแบบใช้สาย ... คุณต้องติดตั้งทั้งคู่

มีวิธีอื่นเช่นกัน - / etc / resolver - ตัวอย่างหนึ่งในที่นี่: / etc / resolver / files ทำงานใน Mountain Lion สำหรับการแก้ไข DNS หรือไม่ และอีกมากมายที่นี่: https://www.dforge.net/2013/01/30/osx-domain-specific-dns-servers-etcresolver/

สำหรับการพยายามทำ nslookup - เป็นที่ทราบกันดีว่า nslookup (และโฮสต์และขุด) ไม่ปฏิบัติตามกลไกการแก้ปัญหา OSX (ที่ไม่เหมือนใครและสับสนมาก) ใช้ ping


นี่ควรเป็นคำตอบที่ยอมรับได้ scutil --dnsแสดงการกำหนดค่า DNS ที่แท้จริงที่ระบบปฏิบัติการใช้
เนท

2

ปกติฉันจะใช้ (ในสภาพแวดล้อมยูนิกซ์และนี่อาจเป็นโรงเรียนเก่า) สิ่งที่เหมือนตัวอย่างต่อไปนี้

ประการแรกคุณสามารถค้นหาที่อยู่ IP หรือรายการชื่อ DNS เป็นรายบุคคลและจะรายงานกลับเซิร์ฟเวอร์ที่ใช้เพื่อให้คำตอบ คุณสามารถค้นหารายการเดียวในบรรทัดคำสั่งหรือป้อนnslookupโปรแกรมและค้นหาหลายรายการโดยไม่ต้องป้อนคำสั่งอีกครั้ง:

nslookup

Default Server:  redacted.organisation.com
Address:  10.47.xxx.xxx

> ibm.com
Server:  redacted.organisation.com
address:  10.47.xxx.xxx

Non-authoritative answer:
Name:    ibm.com
Address:  129.42.38.1

> sun.com (etc etc, use quit or exit to get out)

ประการที่สองคำสั่งนี้ (หมายเหตุฉันรันสิ่งนี้บนกล่อง windows บน unix / OS X คำสั่งipconfig / allแทนifconfig -aและผลลัพธ์ผลลัพธ์อาจแตกต่างกันเล็กน้อย) ซึ่งแสดงรายการข้อมูล ip config สำหรับแต่ละอินเตอร์เฟสบนระบบของคุณพอร์ตทางกายภาพ การเชื่อมต่อไร้สาย, VNCs ฯลฯ , แสดงว่าข้อมูล DNS และ IP ใดที่เชื่อมโยงกับแต่ละเส้นทางออกจากเครื่อง, คุณจะได้รับข้อมูลจำนวนมากหนึ่งรายการสำหรับแต่ละพอร์ต / อะแดปเตอร์เครือข่ายของแท้, และพอร์ตเสมือนจำนวนมากขึ้นอยู่กับ ในตัวอย่างของฉันฉันลบผลลัพธ์ส่วนใหญ่ แต่แสดงอะแดปเตอร์ VPN ของฉันและรายการ DNS (ที่ทำซ้ำ) ที่มี

C:\Users\dawilkin>ipconfig /all

Windows IP Configuration

   Host Name . . . . . . . . . . . . : XXX-XXXXX
   Primary Dns Suffix  . . . . . . . : XX.XXXXX.com
   Node Type . . . . . . . . . . . . : Hybrid
   IP Routing Enabled. . . . . . . . : No
   WINS Proxy Enabled. . . . . . . . : No
   DNS Suffix Search List. . . . . . : XXX.com
                                       XX.XXX.com
                                       XX.XXX.com
                                       XXX.co.uk
                                       XXX.com

Ethernet adapter Local Area Connection 2:

   Connection-specific DNS Suffix  . : XXX.com
   Description . . . . . . . . . . . : Cisco AnyConnect VPN Virtual Miniport Ada
pter for Windows x64
   Physical Address. . . . . . . . . : 00-XX-9A-XX-XX-00
   DHCP Enabled. . . . . . . . . . . : No
   Autoconfiguration Enabled . . . . : Yes
   IPv4 Address. . . . . . . . . . . : 10.47.XX.XX(Preferred)
   Subnet Mask . . . . . . . . . . . : 255.255.240.0
   Default Gateway . . . . . . . . . : 10.47.XX.X
   DNS Servers . . . . . . . . . . . : 10.47.XX.X
                                       10.31.XX.X
   NetBIOS over Tcpip. . . . . . . . : Enabled

Ethernet adapter Local Area Connection:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Intel(R) 82579LM Gigabit Network Connecti
on
   Physical Address. . . . . . . . . : 3C-97-XX-XX-XX-3C
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

Wireless LAN adapter Wireless Network Connection 3:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :
   Description . . . . . . . . . . . : Microsoft Virtual WiFi Miniport Adapter #
2
   Physical Address. . . . . . . . . : A4-4E-31-42-33-41
   DHCP Enabled. . . . . . . . . . . : Yes
   Autoconfiguration Enabled . . . . : Yes

น่าเสียดายที่ nslookup ตอบว่าไม่พบเซิร์ฟเวอร์ในเครือข่าย VPN ของฉัน นอกจากนี้ ifconfig จะไม่แสดงรายการเซิร์ฟเวอร์ DNS ใด ๆ สำหรับอินเทอร์เฟซใด ๆ รวมถึงเซิร์ฟเวอร์ที่สอดคล้องกับ VPN
Robusta

บางทีคุณอาจกำลังใช้ไฟล์โฮสต์ที่มีการเข้ารหัสยาก เซิร์ฟเวอร์ที่คุณค้นหาบนอินเทอร์เน็ตหรือภายในองค์กรของคุณหรือไม่
stuffe

downvote เนื่องจากเอาต์พุต ipconfig ของ windows ซึ่งไม่มีบริบทที่เป็นประโยชน์ในสภาพแวดล้อม OSX - OSX มีสภาพแวดล้อมการแก้ปัญหา DNS เฉพาะ (และหลายรส) เป็นของตัวเอง
คม

เพื่อนเพิ่งโหวตเราไม่จำเป็นต้องรู้ว่าทำไม
stuffe

1

สิ่งที่ไม่nslookupบอกคุณ? มันให้เซิร์ฟเวอร์ DNS ของฉันในบรรทัดที่สอง

$ nslookup stackexchange.com
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   stackexchange.com
Address: 198.252.206.16

เมื่อฉันเข้าสู่เซิร์ฟเวอร์ภายใน (ซึ่งเป็นของ VPN), nslookup พยายามใช้เราเตอร์ไร้สายของฉันเป็น DNS จากนั้นไม่พบเซิร์ฟเวอร์: [... ~] $ nslookup> xxxxxxxxxxx.com เซิร์ฟเวอร์: 192.168.1.1 ที่อยู่: 192.168.1.1 # 53
Robusta
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.