nslookup fonctionne avec /etc/resolv.conf, ping et ssh ne le font pas

12

Dans notre réseau universitaire local, j'ai (obtenu par DHCP) la configuration suivante dans /etc/resolv.conf:

search a.domain.com b.domain.com domain.com
nameserver x.x.x.x
nameserver y.y.y.y

Les paramètres sont également les mêmes dans les Préférences Système. Le problème suivant se produit:

nslookup server

fonctionne et utilise l'un des serveurs de noms pour demander correctement server.a.domain.com. Si j'essaye de cingler cependant,

ping server

échoue avec l'hôte inaccessible.

ping server.a.domain.com

travaux. L'ajout manuel d'un serveur avec l'adresse IP obtenue par nslookup à / etc / hosts fait également fonctionner le ping, mais cette "solution" contourne les serveurs de noms et n'est donc pas idéale (et je devrais également ajouter environ 20 autres entrées). Une idée de ce qui cause ça? Pourquoi le ping n'utilise-t-il pas les résultats de nslookup / les domaines de recherche?

ssh server

échoue également, ce qui est le vrai problème / inconvénient.

J'ai déjà ajouté AlwaysUseSearchDomains à mDNSResponder, mais ce correctif ne fait que résoudre le problème lors de l'utilisation de server.foo.

J'utilise OS X Lion 10.7.3.

tholu
la source
Les paquets Ping peuvent être bloqués par l'équipement réseau. Même chose avec les paquets ssh - ils peuvent ne pas vouloir que vous fassiez ce que vous faites.
Thorbjørn Ravn Andersen
Voir la solution ci-dessous, ce n'était pas le problème.
tholu
"Hôte inaccessible" signifie un problème de connectivité réseau (ou ICMP bloqué), pas un problème de résolution DNS
Daniel Serodio

Réponses:

2

Eh bien, avez-vous lu les commentaires en haut de /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.

La bonne solution consiste à ajouter les domaines de recherche via le panneau Réseau dans les Préférences Système comme décrit ici .

Old Pro
la source
J'ai fait. Les domaines de recherche sont automatiquement entrés dans le panneau Réseau dans les Préférences Système par configuration DHCP (et sont donc grisés et non modifiables). Les mêmes valeurs / configurations exactes sont / se trouvent dans /etc/resolv.conf.
tholu
Je ne sais pas quoi te dire alors. J'obtiens mes paramètres Ethernet et WiFi via DHCP et je peux changer mes domaines de recherche via le panneau Préférences Système.
Old Pro
Les domaines de recherche sont corrects dans les Préférences Système et /etc/resolv.conf - le problème est que ping et ssh ne l'utilisent pas. S'ils utilisaient la sortie de nslookup, tout fonctionnerait bien, mais d'une manière ou d'une autre, ils ne le font pas. Ils recherchent cependant / etc / hosts.
tholu
J'ai ajouté manuellement les domaines de recherche (bien qu'ils soient grisés) un par un via les Préférences Système et maintenant cela fonctionne. Merci!
tholu
4

J'ai eu le même problème. La solution que j'ai utilisée était de créer un répertoire / etc / resolver. Dans ce répertoire, créez un fichier nommé pour chaque domaine que vous souhaitez résoudre. À l'intérieur de chaque fichier, il devrait y avoir deux lignes

nameserver 10.0.100.2
domain  home.cainmanor.com

Le fichier ci-dessus serait nommé / etc / resolver / home. Il peut être nécessaire de le nommer home.cainmanor.com, mais je ne peux pas le tester pour le moment.

Bonne chance!

Greg Cain
la source
Je l'ai fait fonctionner en définissant les domaines de recherche via les préférences système un par un, en remplaçant évidemment les paramètres DHCP qu'OS X n'a ​​pas réussi à analyser correctement. Je n'ai pas pu essayer votre solution, mais merci!
tholu
Cette approche fonctionne bien lorsque votre client VPN d'entreprise fait la mauvaise chose en ce qui concerne les préférences système transitoires.
Peter
1

Je crois que le problème réside dans la configuration des domaines de recherche: ping / ssh essaie d'utiliser gethostbyname2()ce qui échoue parce que named ne fonctionne plus (dans Lion au moins) et /etc/resolv.confavec les domaines de recherche configurés est donc ignoré. /etc/hostsest le dernier recours gethostbyname2()et donc ssh fonctionne à nouveau avec des entrées correctes dans /etc/hosts. Doit être corrigé par Apple à mon humble avis.

L'ajout manuel des domaines de recherche un par un l'a corrigé, voir la solution ci-dessus.

tholu
la source
Lorsque j'ajoute un domaine de recherche à ma connexion WiFi (qui est configurée via DNS) dans OS 10.7.3 via le panneau Préférences Système -> Réseau, il est utilisé par ping et ssh comme je m'y attendais. Je ne touche pas /etc/resolv.conf ou / etc / hosts manuellement / directement, mais les changements des Préférences Système se reflètent automatiquement dans /etc/resolv.conf. OS X fait beaucoup de choses différemment des autres systèmes Unix et c'est l'un d'entre eux.
Old Pro
1
Merci, cela l'a fait fonctionner en ajoutant manuellement les domaines de recherche un par un, voir mon commentaire sur votre solution suggérée ci-dessus.
tholu
L'ajout de domaines de recherche n'a pas résolu les problèmes ... Quelqu'un d'autre a-t-il obtenu une autre solution?
Comment les avez-vous ajoutés?
tholu
1

Je reçois ce problème de temps en temps, lorsque mon Mac Book Pro (OS X version 10.10.1) s'est endormi. Réveillez-le et je ne peux pas utiliser ssh en utilisant le nom d'hôte des machines sur mon réseau (et le ping ne fonctionne pas non plus). nslookup fonctionne très bien. Je ne vois aucun message pertinent dans / var / log. Laissez-le juste quelques minutes et bon, ça marche à nouveau .....

Ian Ellis
la source
0

J'ai répondu à cela ailleurs, car c'était une solution simple pour moi, et je n'ai trouvé la réponse qui a fonctionné pour moi nulle part ailleurs.

Après avoir redémarré mDNSResolver des dizaines de fois comme recommandé sur d'autres threads:

sudo killall -HUP mDNSResponder

J'ai finalement essayé autre chose. J'ai désactivé le Wi-Fi et supprimé tous mes réseaux préférés. Ensuite, j'ai rétabli la connexion Wi-Fi et tout a bien fonctionné:

  1. Menu Apple -> Préférences Système -> Wi-Fi (à gauche)
  2. «Désactiver le Wi-Fi» puis sélectionnez «Avancé»
  3. Supprimez la connexion Wi-Fi avec laquelle vous rencontrez des problèmes (ou toutes si vous le souhaitez). Pour ce faire, sélectionnez le réseau Wi-Fi que vous souhaitez supprimer et appuyez sur "-"
  4. Cliquez sur «Appliquer» et «OK»
  5. Rétablissez le Wi-Fi.
  6. Sélectionnez votre réseau Wi-Fi et reconnectez-vous.

C'est ce qui a finalement fonctionné pour moi. Cela aurait probablement dû être la première chose que j'essayais, mais je suis un gars Linux et je regarde d'abord les correctifs de la console.

Joel Griffiths
la source