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.