Liste des serveurs DNS dans Mavericks

10

Comment vérifier quel serveur DNS a été utilisé pour résoudre un nom d'hôte particulier dans le réseau VPN?

J'utilise un client VPN propriétaire fourni par l'entreprise et je veux voir l'adresse IP du serveur DNS, mais

networksetup -getdnsservers <service name>

ne répertorie aucun serveur DNS. Cependant, je peux cingler n'importe quel serveur du réseau interne, donc DNS fonctionne apparemment.

Comment fonctionne la recherche DNS sur OSX avec / sans connexions VPN?

Robusta
la source

Réponses:

6

Tout d'abord, si networksetup -getdnsservers <service name>ne montre rien, vous n'avez rien répertorié dans Préférences Système> Netowrk sous "Serveurs DNS:".

Deuxièmement, il est important de noter que OS X ne gère pas le DNS comme la plupart des systèmes. Par https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man5/resolver.5.html Cela signifie essentiellement que OS X a plusieurs clients DNS en fonction de votre configuration. Le résultat de ces multiples services signifie qu'il existe des situations où l'utilisation de Safari pour accéder à un site Web ( http://www.example.com ) vous amènera à une adresse IP qu'OS X a récupérée du DNS (disons 1.2.3.4) tout en en même temps, effectuer une fouille

$ dig www.example.com  

renverra des résultats différents. (peut-être 2.3.4.5)

La raison en est la façon dont OS X gère le DNS.

Si vous exécutez, $ man digvous obtenez entre autres les éléments suivants:

AVIS Mac OS X La commande dig n'utilise pas la résolution du nom d'hôte et de l'adresse ou les mécanismes de routage des requêtes DNS utilisés par d'autres processus exécutés sur Mac OS X. Les résultats des requêtes de nom ou d'adresse imprimées par dig peuvent différer de ceux trouvés par d'autres processus qui utilisent les mécanismes de résolution des noms et adresses natifs de Mac OS X. Les résultats des requêtes DNS peuvent également différer des requêtes qui utilisent la bibliothèque de routage DNS Mac OS X.

Aussi $man nslookupretournera quelque chose de similaire

AVIS Mac OS X La commande nslookup n'utilise pas la résolution du nom d'hôte et de l'adresse ou les mécanismes de routage des requêtes DNS utilisés par d'autres processus exécutés sur Mac OS X. Les résultats des requêtes de nom ou d'adresse imprimées par nslookup peuvent différer de ceux trouvés par d'autres processus qui utilisent les mécanismes de résolution des noms et adresses natifs de Mac OS X. Les résultats des requêtes DNS peuvent également différer des requêtes qui utilisent la bibliothèque de routage DNS Mac OS X.

Tout cela est vraiment une façon assez longue de dire, la meilleure façon de voir quels serveurs DNS sont utilisés est de regarder les Préférences Système> Réseau

Les entrées "Serveur DNS:" sont généralement là, et "Domaines de recherche:" vous permettra de rechercher des adresses incomplètes.

Si "Serveur DNS:" n'est pas présent, OS X essaiera d'utiliser l'adresse dans "Routeur:" pour DNS.

ET, en plus de tout ce plaisir, il existe des utilitaires et d'autres processus qui n'utilisent peut- être pas la bibliothèque de routage DNS OS X, et ils toucheront directement le contenu de /etc/resolv.conf.

La réponse courte et courte est la suivante:

  1. Si vous vous fiez au contenu des Préférences Système> Réseau, vous regardez la même chose que la plupart des processus utilisent.
  2. Le contenu des Préférences Système> Réseau doit remplir /etc/resolv.conf, mais pas toujours.
  3. Certains autres processus (comme dig et nslookup) accèdent directement à /etc/resolv.conf.

Et, en plus de tout cela - Si vous n'utilisez pas les clients VPN intégrés à OS X, il est possible que des routes et des serveurs DNS supplémentaires soient utilisés qui networksetup -getdnsservers <service name>ne s'afficheront pas. Votre client VPN peut avoir la possibilité de vous montrer les routes et les serveurs DNS, je sais que le mien le fait.

Je sais que cela ne répond pas précisément à votre question, mais j'espère que cela vous aidera à réaliser qu'il n'est pas toujours facile de découvrir quelle est la «vérité» concernant DNS sur un Mac. En règle générale, vous êtes sûr de supposer que le contenu de Préférences Système> Réseau, ou le contenu de, networksetup -getdnsservers <service name>est l'endroit d'où vous obtenez votre DNS. Cependant, si les choses semblent étranges, gardez à l'esprit qu'il existe également d'autres possibilités. Utilisez creuser pour déterminer s'il y a des différences.

Enfin, pour les lecteurs qui se demandent comment obtenir le <service name>dans networksetup -getdnsservers <service name>, essayez d' utilisernetworksetup -listallnetworkservices

Facture

TheWellington
la source
Merci pour l'explication. C'est ce que je soupçonnais: apparemment, tout ce qui se trouve dans le réseau VPN est recherché via la passerelle VPN répertoriée dans la table de routage ...
Robusta
J'ai pu attraper l'adresse du serveur DNS en utilisant tcpdump sur l'interface VPN.
Robusta
8

dans OSX Mavericks (10.9 - en fait 10.6.3, je crois) si vous voulez voir la configuration DNS active:

scutil --dns

La première entrée (résolveur # 1) serait la configuration active ... bien que j'aie vu de nombreux cas où ce n'est pas le cas.

de man 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, si ce que vous voyez ici ne correspond pas à ce que vous attendez (par exemple, réseau> avancé> DNS), vous devrez peut-être désactiver / activer l'adaptateur réseau approprié pour qu'il se rafraîchisse ...

Autres conseils dans OSX récent:

Avec 10.7 ou 10.8, les domaines de recherche ne s'appliquent pas aux recherches contenant un point. ie - www.test n'ajoutera pas du tout les domaines de recherche, où www le fera. il y a un correctif:

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>

Maintenant, déchargez et rechargez le service mDNSResponder: sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

la configuration réseau> avancée> dns est -PER INTERFACE-. Donc, si vous utilisez le sans fil et le filaire ... vous devez configurer les deux.

il y a aussi une autre façon - / etc / resolver - un exemple ici: Est-ce que / etc / resolver / files fonctionne dans Mountain Lion pour la résolution DNS? et plus ici: https://www.dforge.net/2013/01/30/osx-domain-specific-dns-servers-etcresolver/

Quant à essayer de faire un nslookup - il est bien connu que nslookup (et host et dig) ne suit pas le mécanisme de résolution OSX (extrêmement unique et mélangé). Utilisez ping.

enthousiaste
la source
Cela devrait être la réponse acceptée. scutil --dnsaffiche la configuration DNS réelle que le système d'exploitation utilise.
Nate
2

J'utiliserais normalement (sur des environnements Unix, et c'est peut-être un peu old school) quelque chose comme les exemples suivants.

Premièrement, vous pouvez rechercher une adresse IP ou une entrée de nom DNS individuellement, et il rendra compte du serveur qui a été utilisé pour fournir la réponse. Vous pouvez rechercher une seule entrée sur la ligne de commande, ou entrer dans le nslookupprogramme et rechercher plusieurs entrées sans avoir à ressaisir la commande:

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)

Deuxièmement, cette commande (notez que je l'ai exécutée sur une boîte Windows, sur unix / OS X, la commande ipconfig / all est à la place ifconfig -a et les résultats de sortie peuvent légèrement différer) qui répertorie les données de configuration ip pour chaque interface sur votre système, les ports physiques, connexions sans fil, VNC, etc., affichant les données DNS et IP associées à chaque itinéraire hors de la machine, vous obtiendrez de nombreuses entrées en retour, une pour chaque port / adaptateur réseau authentique, ainsi que diverses quantités de ports virtuels en fonction de votre configuration, dans mon exemple, j'ai supprimé la plupart des résultats, mais j'ai montré mon adaptateur VPN et les entrées DNS (expurgées) qu'il possède.

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
stuffe
la source
Malheureusement, nslookup répond qu'il ne peut pas trouver de serveurs dans mon réseau VPN. De plus, ifconfig ne répertorie aucun serveur DNS pour aucune interface, y compris celui qui correspond au VPN.
Robusta
Vous utilisez peut-être des fichiers hôtes codés en dur. Les serveurs que vous recherchez sur Internet ou au sein de votre organisation?
stuffe
downvote en raison de la sortie de ipconfig de windows qui n'a pas de contexte utile dans un environnement OSX - OSX a son propre environnement de résolution DNS unique (et très aromatisé).
KEEN
Mec, vote juste, on n'a pas besoin de savoir pourquoi.
stuffe
1

Qu'est-ce que ça nslookupvous dit? Cela me donne mon serveur DNS sur la deuxième ligne.

$ 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
la source
Lorsque j'entre sur le serveur interne (qui appartient au VPN), nslookup essaie d'utiliser mon routeur wifi comme DNS et ne trouve pas le serveur: [... ~] $ nslookup> xxxxxxxxxxx.com Serveur: 192.168.1.1 Adresse: 192.168.1.1 # 53
Robusta