Elencare i server DNS in Mavericks


10

Come verificare quale server DNS è stato utilizzato per risolvere un determinato nome host all'interno della rete VPN?

Sto usando un client VPN proprietario fornito dalla società e voglio vedere l'indirizzo IP del server DNS, ma

networksetup -getdnsservers <service name>

non elenca alcun server DNS. Tuttavia, posso eseguire il ping di qualsiasi server nella rete interna, quindi il DNS sembra funzionare.

Come funziona la ricerca DNS su OSX con / senza connessioni VPN?

Risposte:


6

Innanzitutto, se networksetup -getdnsservers <service name>non mostra nulla, non hai nulla elencato in Preferenze di Sistema> Netowrk in "Server DNS:".

In secondo luogo, è importante notare che OS X non gestisce il DNS come la maggior parte dei sistemi. Per https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html In sostanza, ciò significa che OS X ha più client DNS a seconda della configurazione. Il risultato di questi molteplici servizi significa che ci sono situazioni in cui l'utilizzo di Safari per accedere a un sito Web ( http://www.example.com ) ti porterà a un indirizzo IP che OS X ha recuperato dal DNS (ad esempio 1.2.3.4) mentre allo stesso tempo, eseguendo uno scavo

$ dig www.example.com  

restituirà risultati diversi. (forse 2.3.4.5)

La ragione di ciò risiede nel modo in cui OS X gestisce il DNS.

Se corri $ man dig, tra le altre cose ottieni:

AVVISO Mac OS X Il comando dig non utilizza il nome host e la risoluzione dell'indirizzo né i meccanismi di routing delle query DNS utilizzati da altri processi in esecuzione su Mac OS X. I risultati delle query relative al nome o all'indirizzo stampati da dig possono differire da quelli rilevati da altri processi che utilizzano i meccanismi nativi di risoluzione dei nomi e degli indirizzi di Mac OS X. I risultati delle query DNS possono anche differire dalle query che utilizzano la libreria di routing DNS di Mac OS X.

Inoltre $man nslookuprestituirà qualcosa di simile

AVVISO Mac OS X Il comando nslookup non utilizza il nome host e la risoluzione dell'indirizzo né i meccanismi di routing delle query DNS utilizzati da altri processi in esecuzione su Mac OS X. I risultati delle query relative a nome o indirizzo stampati da nslookup possono differire da quelli rilevati da altri processi che utilizzano i meccanismi nativi di risoluzione dei nomi e degli indirizzi di Mac OS X. I risultati delle query DNS possono anche differire dalle query che utilizzano la libreria di routing DNS di Mac OS X.

Tutto questo è davvero un modo piuttosto lungo di dire, il modo migliore per vedere quali server DNS vengono utilizzati è guardare Preferenze di Sistema> Rete

Il "Server DNS:" è di solito lì, e "Cerca domini:" ti permetterà di cercare indirizzi incompleti.

Se "Server DNS:" non è presente, OS X proverà a utilizzare l'indirizzo in "Router:" per DNS.

E, oltre a tutto questo divertimento, ci sono utilità e altri processi che potrebbero non utilizzare la libreria di routing DNS di OS X e che colpiranno direttamente il contenuto di /etc/resolv.conf.

La breve risposta breve è questa:

  1. Se passi dal contenuto di Preferenze di Sistema> Rete, stai osservando la stessa cosa che utilizza la maggior parte dei processi.
  2. Il contenuto di Preferenze di Sistema> Rete dovrebbe popolare /etc/resolv.conf, ma non sempre.
  3. Alcuni altri processi (come dig e nslookup) accedono direttamente a /etc/resolv.conf.

Inoltre, se non si utilizzano i client VPN integrati in OS X, è possibile che vengano utilizzati percorsi aggiuntivi e server DNS che networksetup -getdnsservers <service name>non verranno visualizzati. Il tuo client VPN potrebbe avere la possibilità di mostrarti i percorsi e i server DNS, lo so il mio.

So che questo non risponde esattamente alla tua domanda, ma spero che questo ti aiuti a capire che non è sempre facile scoprire quale sia la "verità" sul DNS su un Mac. Generalmente sei sicuro che i contenuti di Preferenze di Sistema> Rete, o i contenuti di networksetup -getdnsservers <service name>siano da dove stai ricevendo il tuo DNS. Tuttavia, se le cose sembrano strane, tieni presente che ci sono anche altre possibilità. Usa scavare per aiutare a determinare se ci sono differenze in corso.

Ultimo, per quei lettori che si chiedono come ottenere la <service name>a networksetup -getdnsservers <service name>, provare a utilizzarenetworksetup -listallnetworkservices

Conto


Grazie per la spiegazione Questo è quello che sospettavo: apparentemente tutto ciò che è nella rete VPN viene cercato tramite il gateway VPN elencato nella tabella di routing ...
Robusta,

Sono stato in grado di rilevare l'indirizzo del server DNS utilizzando tcpdump sull'interfaccia VPN.
Robusta,

8

in OSX Mavericks (10.9 - in realtà 10.6.3 in poi, credo) se vuoi vedere la configurazione DNS attiva:

scutil --dns

La prima voce (risolutore n. 1) è secondo come riferito la configurazione attiva ... anche se ho visto molti casi in cui non è così.

dall'uomo 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, se ciò che vedi qui non corrisponde a quello che ti aspetti (ad esempio, rete> avanzato> dns), potrebbe essere necessario disabilitare / abilitare l'adattatore di rete appropriato per aggiornarlo ...

Altri suggerimenti nel recente OSX:

Con 10.7 o 10.8, i domini di ricerca non si applicano alle ricerche con un punto. vale a dire - www.test non aggiungerà affatto domini di ricerca, dove www lo farà. c'è una correzione:

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>

Ora scarica e ricarica il servizio mDNSResponder: sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

la rete> avanzata> dns config è -PER INTERFACE-. Quindi, se usi wireless e cablato ... devi configurare entrambi.

c'è anche un altro modo - / etc / resolver - un esempio qui: i file / etc / resolver / funzionano in Mountain Lion per la risoluzione DNS? e altro qui: https://www.dforge.net/2013/01/30/osx-domain-specific-dns-servers-etcresolver/

Per quanto riguarda il tentativo di fare un nslookup, è risaputo che nslookup (e ospita e scava) non segue il meccanismo di risoluzione OSX (estremamente unico e confuso). Usa il ping.


Questa dovrebbe essere la risposta accettata. scutil --dnsmostra la configurazione DNS effettiva utilizzata dal sistema operativo.
Nate,

2

Normalmente userei (su ambienti unix, e forse è un po 'vecchia scuola) qualcosa come i seguenti esempi.

Innanzitutto, è possibile cercare un indirizzo IP o l'inserimento di un nome DNS singolarmente e riporterà il server utilizzato per fornire la risposta. È possibile cercare una singola voce nella riga di comando oppure accedere al nslookupprogramma e cercare più voci senza dover immettere nuovamente il comando:

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)

In secondo luogo questo comando (nota che l'ho eseguito su una finestra di Windows, su unix / OS X il comando ipconfig / all è invece ifconfig -a e i risultati di output possono differire leggermente) che elenca i dati di configurazione ip per ciascuna interfaccia sul sistema, porte fisiche, connessioni wireless, VNC ecc., mostrando quali dati DNS e IP sono associati a ciascun percorso fuori dalla macchina, otterrai molte voci indietro, una per ogni porta / adattatore di rete originale e anche varie quantità di porte virtuali a seconda del tuo configurazione, nel mio esempio ho rimosso la maggior parte dei risultati ma ho mostrato il mio adattatore VPN e le voci DNS (ridotte) che ha.

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

Sfortunatamente nslookup risponde che non riesce a trovare server nella mia rete VPN. Inoltre, ifconfig non elenca alcun server DNS per nessuna interfaccia, inclusa quella corrispondente alla VPN.
Robusta,

Forse stai utilizzando file host codificati. I server che stai cercando su Internet o all'interno della tua organizzazione?
stuffe,

downvote a causa dell'output di ipconfig di Windows che non ha un contesto utile in un ambiente OSX - OSX ha il suo ambiente di risoluzione DNS unico (e con molti gusti).
appassionato del

Amico, basta votare, non abbiamo bisogno di sapere perché.
stuffe

1

Che cosa nslookupti dice? Mi dà il mio server DNS sulla seconda riga.

$ 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

Quando accedo al server interno (che appartiene alla VPN), nslookup tenta di utilizzare il mio router wifi come DNS e quindi non riesco a trovare il server: [... ~] $ nslookup> xxxxxxxxxxx.com Server: 192.168.1.1 Indirizzo: 192.168.1.1 # 53
Robusta,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.