Daftar server DNS di Mavericks

10

Bagaimana cara memeriksa server DNS mana yang digunakan untuk menyelesaikan nama host tertentu dalam jaringan VPN?

Saya menggunakan klien VPN milik perusahaan yang disediakan dan ingin melihat alamat IP server DNS, tetapi

networksetup -getdnsservers <service name>

sama sekali tidak mencantumkan server DNS. Namun, saya dapat melakukan ping server mana saja di jaringan internal, sehingga DNS tampaknya berfungsi.

Bagaimana cara kerja pencarian DNS di OSX dengan / tanpa koneksi VPN?

Robusta
sumber

Jawaban:

6

Pertama, jika networksetup -getdnsservers <service name>tidak menunjukkan apa-apa, Anda tidak memiliki apa pun yang terdaftar di System Preferences> Netowrk di bawah "Server DNS:".

Kedua, penting untuk dicatat bahwa OS X tidak menangani DNS seperti kebanyakan sistem. Per https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html Pada dasarnya ini berarti bahwa OS X memiliki beberapa klien DNS tergantung pada konfigurasi Anda. Hasil dari beberapa layanan ini berarti bahwa ada situasi di mana menggunakan Safari untuk mengakses situs web ( http://www.example.com ) akan membawa Anda ke alamat IP yang diambil oleh OS X dari DNS (katakanlah 1.2.3.4) sementara pada saat yang sama, melakukan penggalian

$ dig www.example.com  

akan mengembalikan hasil yang berbeda. (mungkin 2.3.4.5)

Alasannya terletak pada cara OS X menangani DNS.

Jika Anda menjalankan $ man digAnda mendapatkan antara lain, berikut ini:

PEMBERITAHUAN Mac OS X PEMBERITAHUAN Perintah penggalian tidak menggunakan nama host dan resolusi alamat atau mekanisme routing kueri DNS yang digunakan oleh proses lain yang berjalan pada Mac OS X. Hasil permintaan nama atau alamat yang dicetak oleh dig mungkin berbeda dari yang ditemukan oleh proses lain yang menggunakan nama asli Mac dan mekanisme resolusi alamat. Hasil kueri DNS mungkin juga berbeda dari kueri yang menggunakan pustaka perutean DNS Mac OS X.

Juga $man nslookupakan mengembalikan sesuatu yang serupa

PEMBERITAHUAN Mac OS X PEMBERITAHUAN Perintah nslookup tidak menggunakan nama host dan resolusi alamat atau mekanisme perutean DNS yang digunakan oleh proses lain yang berjalan pada Mac OS X. Hasil kueri nama atau alamat yang dicetak oleh nslookup mungkin berbeda dari yang ditemukan oleh proses lain yang menggunakan nama asli Mac dan mekanisme resolusi alamat. Hasil kueri DNS mungkin juga berbeda dari kueri yang menggunakan pustaka perutean DNS Mac OS X.

Semua ini sebenarnya cara yang agak panjang untuk mengatakan, cara terbaik untuk melihat server DNS apa yang digunakan adalah dengan melihat System Preferences> Network

Entri "DNS Server:" biasanya ada di sana, dan "Search Domains:" akan memungkinkan Anda untuk mencari alamat yang tidak lengkap.

Jika "DNS Server:" tidak ada, maka OS X akan mencoba menggunakan alamat di "Router:" untuk DNS.

DAN, di atas semua kesenangan ini, ada utilitas dan proses lain yang mungkin tidak menggunakan OS Routing Library OS X, dan mereka akan langsung memukul konten /etc/resolv.conf.

Jawaban singkat singkatnya adalah ini:

  1. Jika Anda melihat isi System Preferences> Network, Anda melihat hal yang sama dengan yang digunakan kebanyakan proses.
  2. Isi System Preferences> Network, harus mengisi /etc/resolv.conf, tetapi tidak selalu.
  3. Beberapa proses lain (seperti menggali dan nslookup) mengakses /etc/resolv.conf secara langsung.

Dan, di atas semua ini - Jika Anda tidak menggunakan klien VPN bawaan untuk OS X, ada kemungkinan bahwa rute tambahan dan server DNS sedang digunakan yang networksetup -getdnsservers <service name>tidak akan ditampilkan. Klien VPN Anda mungkin memiliki kemampuan untuk menunjukkan kepada Anda rute dan server DNS, saya tahu itu milik saya.

Saya tahu bahwa ini tidak secara tepat menjawab pertanyaan Anda, tetapi mudah-mudahan ini membantu Anda menyadari bahwa tidak selalu mudah untuk mengetahui apa "kebenaran" tentang DNS pada Mac. Secara umum Anda aman dengan asumsi bahwa isi System Preferences> Network, atau konten dari networksetup -getdnsservers <service name>mana Anda mendapatkan DNS Anda. Namun jika hal-hal tampak aneh, perlu diingat bahwa ada kemungkinan lain juga. Gunakan dig untuk membantu menentukan apakah ada perbedaan yang sedang terjadi.

Terakhir, bagi para pembaca yang bertanya-tanya bagaimana untuk mendapatkan <service name>di networksetup -getdnsservers <service name>, coba gunakannetworksetup -listallnetworkservices

Tagihan

Wellington
sumber
Terima kasih untuk penjelasannya Itulah yang saya duga: ternyata segala sesuatu yang ada di jaringan VPN sedang dicari melalui gateway VPN yang tercantum dalam tabel routing ...
Robusta
Saya bisa mendapatkan alamat server DNS menggunakan tcpdump pada antarmuka VPN.
Robusta
8

di OSX Mavericks (10.9 - sebenarnya 10.6.3 ke atas, saya percaya) jika Anda ingin melihat konfigurasi DNS aktif:

scutil --dns

Entri -first- (resolver # 1) dilaporkan konfigurasi aktif ... meskipun saya telah melihat banyak kasus di mana itu tidak terjadi.

dari manusia scutil

 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, jika apa yang Anda lihat di sini tidak sesuai dengan yang Anda harapkan (yaitu, jaringan> lanjutan> dns), Anda mungkin perlu menonaktifkan / mengaktifkan adaptor jaringan yang sesuai untuk menyegarkan ...

Kiat lain dalam OSX terbaru:

Dengan 10.7 atau 10.8, domain pencarian tidak berlaku untuk pencarian dengan titik di dalamnya. yaitu - www.test tidak akan menambahkan domain pencarian sama sekali, di mana www akan melakukannya. ada perbaikan:

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>

Sekarang bongkar dan muat ulang layanan mDNSResponder: sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist.jp

jaringan> lanjutan> konfigurasi dns adalah -PER INTERFACE-. Jadi, jika Anda menggunakan nirkabel dan kabel ... Anda harus mengatur keduanya.

ada cara lain juga - / etc / resolver - satu contoh di sini: Apakah / etc / resolver / file berfungsi di Mountain Lion untuk resolusi DNS? dan lainnya di sini: https://www.dforge.net/2013/01/30/osx-domain-specific-dns-servers-etcresolver/

Sedangkan untuk mencoba melakukan nslookup - diketahui bahwa nslookup (dan host dan dig) tidak mengikuti mekanisme resolusi OSX (sangat unik dan campur aduk). Gunakan ping.

tajam
sumber
Ini harus menjadi jawaban yang diterima. scutil --dnsmenunjukkan konfigurasi DNS aktual yang digunakan OS.
Nate
2

Saya biasanya menggunakan (pada lingkungan unix, dan ini mungkin sekolah yang agak tua) sesuatu seperti contoh berikut.

Pertama, Anda dapat mencari alamat IP atau entri nama DNS satu per satu, dan itu akan melaporkan kembali server yang digunakan untuk memberikan jawabannya. Anda dapat mencari satu entri pada baris perintah, atau masuk ke nslookupprogram dan mencari beberapa entri tanpa harus memasukkan kembali perintah:

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)

Kedua perintah ini (perhatikan saya menjalankan ini pada kotak windows, pada unix / OS X perintah ipconfig / all adalah ifconfig -a dan hasil keluaran mungkin sedikit berbeda) yang berisi daftar data konfigurasi ip untuk setiap antarmuka di sistem Anda, port fisik, koneksi nirkabel, VNC dll, menampilkan apa yang terkait dengan DNS dan IP data dengan setiap rute keluar dari mesin, Anda akan mendapatkan banyak entri kembali, satu untuk setiap port / adaptor jaringan asli, dan juga berbagai jumlah port virtual juga tergantung pada Anda konfigurasi, dalam contoh saya, saya menghapus sebagian besar hasil tetapi menunjukkan adaptor VPN saya dan entri DNS (redacted) yang dimilikinya.

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
barang
sumber
Sayangnya nslookup menjawab bahwa ia tidak dapat menemukan server di jaringan VPN saya. Juga, ifconfig tidak mencantumkan server DNS untuk antarmuka apa pun, termasuk yang sesuai dengan VPN.
Robusta
Mungkin Anda menggunakan file host kode keras. Apakah server yang Anda cari di internet atau di dalam organisasi Anda?
Stuffe
downvote karena windows ipconfig output yang tidak memiliki konteks yang berguna dalam lingkungan OSX - OSX memiliki lingkungan resolusi DNS yang unik (dan banyak rasa).
tajam
Bung, pilih saja, kita tidak perlu tahu kenapa.
Stuffe
1

Apa yang nslookupmemberitahu Anda? Ini memberi saya server DNS saya di baris kedua.

$ 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
Volsk
sumber
Ketika saya memasuki server internal (milik VPN), nslookup mencoba menggunakan router wifi saya sebagai DNS dan kemudian tidak dapat menemukan server: [... ~] $ nslookup> xxxxxxxxxxx.com Server: 192.168.1.1 Alamat: 192.168.1.1 # 53
Robusta