136 votes

Le DNS ne se résout pas sur Mac OS X

Certains de mes collègues ont des problèmes sur leurs Macs - la résolution DNS ne fonctionne pas dans Mac OS X. Ils utilisent Snow Leopard 10.6.8. Ils peuvent utiliser le DNS dans une machine virtuelle Windows 7 (VMware Fusion 3.1.3) fonctionnant sous OS X. Les ordinateurs sont des MacBook Pros 15", modèle début 2011.

Les choses qu'ils ont essayées et qui n'ont pas fonctionné :

  • activer/désactiver l'aéroport
  • Redémarrage de
  • utilisation d'une connexion filaire au lieu du wifi
  • supprimer les informations de connexion et les ajouter à nouveau
  • Désactiver le pare-feu de Mac
  • en utilisant une IP statique
  • paramétrage manuel des serveurs DNS
  • redémarrage de mDNSResponder
  • les corrections de cette autre question

EDIT réponse à la réponse de Martín :

- Pouvez-vous faire un ping sur le DNS que vous voulez utiliser ?

$ ping apple.com
ping: cannot resolve apple.com: Unknown host

- Quelle(s) est/sont l'adresse(s) IP du/des DNS que vous voulez utiliser ?

C'est un serveur DNS d'entreprise qui est donné avec DHCP, il fonctionne bien pour d'autres personnes. J'ai également essayé le 8.8.4.4 de Google et le 205.171.3.65 (que j'ai trouvé dans le DNS Benchmark de GRC comme étant le plus rapide).

- Avez-vous essayé d'utiliser 8.8.8.8 (google) ou l'un des OpenDNS 208.67.222.222 ou 208.67.220.220 ?

Cela ne fonctionne pas, voir la sortie de Google Chrome :

Le serveur de www.apple.com est introuvable, car la recherche DNS a échoué. Le DNS est le service réseau qui traduit le nom d'un site Web en son adresse Internet. Cette erreur est le plus souvent due à l'absence de connexion à l'Internet ou à une mauvaise configuration du réseau. Elle peut également être causée par un serveur DNS qui ne répond pas ou par un pare-feu empêchant Google Chrome d'accéder au réseau.

- Pouvez-vous faire un ping sur ces hôtes ?

$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes 64 bytes from
8.8.8.8: icmp_seq=0 ttl=58 time=3.925 ms

- créer un utilisateur vierge

Un compte d'utilisateur invité a été créé, le problème de DNS était toujours présent lors de l'utilisation de le compte invité.

- nslookup et dig fonctionnent bien

$ nslookup www.apple.com 8.8.8.8
Server:  8.8.8.8
Address: 8.8.8.8#53

Non-authoritative answer:
www.apple.com canonical name = www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net canonical name = www.apple.com.edgekey.net.
www.apple.com.edgekey.net canonical name = e3191.c.akamaiedge.net.
Name: e3191.c.akamaiedge.net
Address: 184.24.141.15

$ dig @8.8.8.8 www.apple.com
; <<>> DiG 9.6.0-APPLE-P2 <<>> @8.8.8.8 www.apple.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11298
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION: ;www.apple.com.   IN A
;; ANSWER SECTION:
www.apple.com.  1041 IN CNAME www.isg-apple.com.akadns.net.
www.isg-apple.com.akadns.net. 38 IN CNAME www.apple.com.edgekey.net.
www.apple.com.edgekey.net. 8794 IN CNAME e3191.c.akamaiedge.net.
e3191.c.akamaiedge.net. 17 IN A 184.24.141.15
;; Query time: 4 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Tue Oct 4 09:25:28 2011
;; MSG SIZE  rcvd: 158

- J'ai également vidé le cache DNS, mais cela n'a pas aidé.

sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder

EDIT 2 :

$ cat /etc/resolv.conf
#
# 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.
#
domain {redacted}.com
nameserver 8.8.8.8
nameserver 208.67.222.222

0 votes

Ça m'arrive aussi sur le lion.

0 votes

Cela se produit pour moi sur Mavericks, 10.9.4.

0 votes

Cela ressemble à un problème historique qui a pourri la vie des utilisateurs et des administrateurs de réseau de Leopard à Yosemite. Si quelqu'un rencontre encore ce problème, veuillez signaler clairement si vous avez plus d'une interface active et si, de plus, vous obtenez sa configuration à partir d'un serveur DHCP (de différents côtés). Pourquoi ? Je n'ai jamais vu un tel problème sur aucun autre Unix et sur aucun de mes Macs (j'en ai beaucoup), mais aucun d'entre eux n'a plus d'une interface qui parle vers une source d'information DNS.

5voto

codeguru Points 1278

J'ai eu un problème très, très similaire, sauf que les symptômes étaient légèrement différents.

Mon utilisateur ne pouvait résoudre aucun nom (NAS local, Google, etc.) mais un utilisateur invité sur le même iMac (OS X 10.7.4) fonctionnait bien.

Le vidage et le redémarrage de mDNSResponder comme indiqué ont fonctionné pendant un certain temps. Alors qu'il continuait à fonctionner lorsque l'iMac était mis en mode veille, il n'y avait pas de problème. toujours échoue une fois redémarré.

Lorsque le rinçage/redémarrage a cessé de fonctionner, j'ai cherché d'autres raisons/solutions et j'ai découvert que le problème était lié à mon pare-feu. Je ne sais pas ce que dans les paramètres de mon pare-feu (OS X) en était la cause, mais si je rétablis les paramètres du pare-feu, cela fonctionne.

Pour restaurer les paramètres par défaut, j'ai utilisé :

sudo cp /usr/libexec/ApplicationFirewall/com.apple.alf.plist /Library/Preferences/com.apple.alf.plist

Évidemment, toute règle personnalisée aura été supprimée lors de cette restauration.

Je voulais partager ma version de ce problème, car il me cause des ennuis depuis des mois et cet article est la meilleure collection de solutions possibles sur le net !

4voto

markdorison Points 6767

J'ai rencontré ce problème sur Yosemite (10.10). Il s'avère qu'un démon de clé, discoveryd a été tué car il consommait trop de CPU.

2014/10/22 3:50:07.000 PM kernel[0]: process discoveryd[49] thread 1251 caught burning CPU! It used more than 50% CPU (Actual recent usage: 68%) over 180 seconds. thread lifetime cpu usage 90.016372 seconds, (74.516637 user, 15.499735 system) ledger info: balance: 90007570271 credit: 90007570271 debit: 0 limit: 90000000000 (50%) period: 180000000000 time since last refill (ns): 131905306167 

Bizarrement, le redémarrage n'a pas provoqué de redémarrage.

J'ai redémarré manuellement le service avec :

sudo launchctl kickstart -k system/com.apple.networking.discoveryd

et maintenant tout va bien.

1 votes

C'était aussi la solution pour moi sur Yosemite. Quelques détails : host, dig, et Chrome fonctionnaient bien, mais ping, telnet, ssh, firefox, et safari ne pouvaient pas résoudre les noms d'hôtes. Cette solution a résolu mon problème.

0 votes

C'est ennuyeux, cela arrive tout le temps pour moi. Je dois redémarrer le service.

3voto

Lukasz Madon Points 139

Désactiver et réactiver le Wi-Fi a aidé.

MacBook Pro avec 10.9.1

Surtout si vous désactivez le wifi et que vous redémarrez. Le délai supplémentaire et le fait de commencer sans connexion IP/réseau garantissent que la demande de réintégration du réseau a plus de chances d'aboutir.

1 votes

Bien que la question ait besoin d'être modifiée, elle indique toujours (au moment de la rédaction de ce commentaire) que les travailleurs ont déjà essayé d'éteindre et de rallumer le Wi-Fi. Peut-être pourrions-nous rétracter cette réponse ?

0 votes

Je n'ai pas assez de réputation pour ajouter un commentaire à un post sur la désactivation puis la réactivation du wifi, mais cela a fonctionné pour moi. Retirer la réponse serait stupide.

0 votes

+1 pour la suggestion de réessayer. Les réponses multiples aident beaucoup de gens, et chaque routeur a des temps morts et des comportements différents.

3voto

rexford Points 121

J'ai eu apparemment le même problème que le PO. En utilisant l'outil networksetup, j'ai découvert que pour le nom de réseau donné, un mauvais DNS était configuré :

networksetup -getdnsservers <networkname>

a listé 192.168.0.1 comme DNS. En utilisant scutil --dns j'ai obtenu des résultats comparables, listant que le résolveur #2 a utilisé le nameserver [0] : 192.168.0.1.

En utilisant la commande

networksetup -setdnsservers <networkname> 192.168.188.1 8.8.8.8

J'ai pu reconfigurer le DNS pour le réseau donné et résoudre les noms des machines locales et globales lorsqu'elles sont connectées au VPN.

3voto

Score_Under Points 121

Dans mon cas, tout le reste allait bien : mDNSResponder était en cours d'exécution et fonctionnait, host / nslookup a fonctionné, les deux /etc/resolv.conf y networksetup a signalé les bons serveurs DNS, etc. Malgré tout cela, la résolution DNS en général (par exemple avec ping ) a inévitablement cessé de fonctionner à un moment donné, quelques heures après le démarrage.

Ce problème spécifique est peut-être un peu improbable, mais je vais quand même le documenter ici en tant que réponse.

Je n'ai remarqué que lorsque la machine a commencé à ralentir, mais il y avait un grand nombre de processus identiques en cours d'exécution . sensu-client en particulier.

Nous l'avions configuré dans launchd avec ce fichier plist :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
  <dict>
  <key>KeepAlive</key>
  <true/>
  <key>RunAtLoad</key>
  <true/>
  <key>WorkingDirectory</key>
  <string>/etc/sensu</string>
  <key>UserName</key>
  <string>root</string>
  <key>Label</key><string>org.sensuapp.sensu-client</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/bin/sensu-client</string>
      <string>-d/etc/sensu/conf.d/</string>
      <string>-b</string>
    </array>
  </dict>
</plist>

Le site -b pour sensu-client le fait passer en arrière-plan, agissant comme un démon. Cependant, toutes les launchd voit que le processus d'origine s'est terminé, donc (conformément à l'approche de la KeepAlive ), il le redémarre. Cela laisse des milliers de processus bifurqués en arrière-plan, et même dans ce cas, launchd ne sera pas conscient du fait qu'il est en cours d'exécution.

Je crois que ces plusieurs milliers de processus (tous sensu-client (le logiciel pour lequel nous avions écrit une configuration launchd) peut avoir fait simultanément des demandes à mDNSResponder, ce qui a entraîné un problème d'accès aux données. déni de service local du cache DNS . En tuant ces processus et en corrigeant le plist donné à launchd, le problème a été résolu.

Le correctif plist consistait simplement à supprimer le -b (background / daemonise) de l'invocation sensu-client. Notez que ce n'est pas la faute de sensu ; cette plist a été écrite par un ancien administrateur système de cette société.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X