web-dev-qa-db-fra.com

Comment la recherche DNS est-elle configurée pour OSX Mountain Lion?

Si je cat mon resolv.conf, je vois ce message:

#
# Mac OS X Notice
#
# This file is not used by the Host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#

J'essaie d'ajouter une entrée DNS. J'ai modifié mon fichier d'hôtes et vidé le cache DNS, mais le nom ne se résout pas si j'utilise Host servername. J'ai pensé que Host n'était peut-être pas configuré pour regarder le fichier hosts. Comment puis-je obtenir la résolution de ma nouvelle entrée, et qu'est-ce qu'OSX utilise sinon resolv.conf?

33
Ben Flynn

L'outil Host ne fait pas simplement résoudre les noms (comme dans, en utilisant le résolveur de noms système) mais en fait interroge les serveurs DNS (comme dans, envoyer des paquets à udp/53 et éventuellement tcp/53): il ne connaît pas et n'utilise pas le fichier local hosts.

Si vous souhaitez tester le résolveur du système d'exploitation (comme dans gethostbyname () et des fonctions libc similaires), vous pouvez essayer d'envoyer une requête ping au nom que vous avez ajouté à /etc/hosts et il honorera ce que vous avez mis dans ce fichier.

De plus, comme vous l'avez déjà découvert, la recherche DNS sur Mac OSX n'utilise pas /etc/resolv.conf, et la manière correcte de configurer les serveurs DNS interrogés se trouve dans l'interface utilisateur de configuration réseau et/ou networksetup. Honnêtement, je ne sais pas si vous pouvez configurer l'ordre dans lequel les sources sont essayées, mais le comportement standard est d'essayer /etc/hosts premiers serveurs DNS et après cela.

17
Luke404

Les résolveurs DNS peuvent être ajoutés dans OS X via la commande networksetup:

Sudo networksetup -setdnsservers Wi-Fi 8.8.8.8 8.8.4.4

Insérez le nom de la connexion réseau comme il convient. Ces résolveurs apparaîtront dans resolv.conf car ils sont générés automatiquement, mais les modifications directes apportées à resolv.conf n'entraîneront pas leur utilisation. Je suppose que les résolveurs sont stockés dans une liste quelque part; Je vais chercher et faire rapport.

Modifié pour ajouter: il semble que le fichier XML plist stockant les serveurs DNS soit /Library/Preferences/SystemConfiguration/preferences.plist.

Le fichier Host dans/private/etc/hosts devrait fonctionner pour forcer la résolution de noms particuliers (/ etc est un lien symbolique vers/private/etc). Pouvez-vous vérifier votre syntaxe et que vous éditez le bon fichier?

26
phoebus