Retourner aux forums || Retourner au forum Linux.redhat
Linux.redhat : Configurer l'ordre de résolution de noms d'hôtes
Posté par Dabowl_92 () le 13 septembre 2007Je cherche à configurer l'ordre de recherche pour la résolution de nom d'hôte sur un environnement redhat.
Je veux simplement que la machine resolve les noms d'hôtes en se basant sur le fichier /etc/hosts.
L'environnement est configuré comme suit :
Le fichier /etc/resolv.conf est vide
Le fichier /etc/host.conf contient la ligne suivante :
order hosts
Le paramètre host de /etc/nsswitch.conf est le suivant :
hosts: files
Le fichier /etc/hosts contient divers enregistrements permettant l'association IP Nom d'hôte.
Maintenant, si je cherche à résoudre "localhost" avec les commandes host, nslookup ou même dig, j'obtiens un time out, tout simplement parce que ces 3 commandes cherchent à contacter un DNS.
La commande "strace" montre clairement que les commandes host, nslookup font un open sur /etc/resolv.conf, comme il n'y a pas de DNS ça tombe en time out, et ça ne va même pas lire /etc/hosts.
La commande ping a un comportement à peu près équivalent, elle cherche d'abord sur /etc/resolv.conf puis après sur /etc/hosts.
En lisant la page de manuel de la primitive gethostbyname :
Les interrogations du serveur de noms effectuées par gethostbyname() et gethostbyaddr() utilisent les éléments suivants : le serveur de noms named(8), les lignes de /etc/hosts, et l'annuaire Network Information Service (NIS ou YP), suivant le contenu de la ligne order du fichier /etc/host.conf.L'action par défaut consiste à interroger named(8), puis /etc/hosts.
Il semblerait que ce soit le comportement par défaut qui soit utilisé malgré la configuration explicite de mon /etc/host.conf.
L'url suivante mentionne exactement le même problème que moi:
http://www.frameip.com/nntp/fr-comp-reseaux-ip/28619-fr-comp(...)
Quelq'un aurait une idée ?
> Lire le message (10 commentaires, moyenne: 1,8).
/etc/resolv.conf vide
/etc/resolv.conf vide => pas de reseau => pas de resolution.
si tu as du reseau (il en faut meme pour faire un localhost)
tu dois avoir une entrée dans /etc/resolv.conf
ensuite seulement il ira lire /etc/hosts (sans passer par le dns vu que tu lui dis de passer par hosts)
Apprendre par les autres, c'est bien.
Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux
-
[^]Re: /etc/resolv.conf vide
Posté par Dabowl_92 () le 13/09/2007 à 13:25. (lien). Évalué à 1.d'abord merci pour la réponse rapide
Ensuite, je ne trouve pas ça normal qu'un open soit fait en premier sur /etc/resolv.conf, parce que d'après la page de manuel de la primitive gethostbyname, c'est ce que qui se trouve dans /etc/host.conf qui doit faire foi, enfin bon...
Donc d'après toi il faut obligatoirement un enregistrement dans /etc/resolv.conf, soit.
Mais quel enregistrement mettre ? J'ai mis nameserver tout court, le problème reste le même...j'ai mis nameserver et domain etc...
qu'entend précisément par "tu dois avoir une entrée dans /etc/resolv.conf" ?-
[^]Re: /etc/resolv.conf vide
Posté par NeoX () le 13/09/2007 à 14:09. (lien). Évalué à 1.chez moi :
user@machine:~$ cat /etc/resolv.conf
search mon_domaine.tld
nameserver IP_de_mon_dns
user@machine:~$ cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat
group: compat
shadow: compat
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
user@machine:~$ cat /etc/host.conf
# The "order" line is only used by old versions of the C library.
order hosts,bind
multi on
et si mon reseau ne fonctionne pas, ben j'ai quand meme ma resolution localhost qui fonctionne.
et je viens d'essayer, si je vide le resolv.conf mais que j'ai mis mes hotes dans /etc/hosts
avec la syntaxe suivante
IP_de_la_machine nom_complet nom_abrege
et ben je pingue bien cette machine.
le ping localhost qui ne fonctionne pas, ca me fait penser à l'interface lo qui ne serait pas active, ou une erreur de syntaxe dans le fichier /etc/hosts--
Apprendre par les autres, c'est bien.
Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux-
[^]Re: /etc/resolv.conf vide
Posté par Dabowl_92 () le 13/09/2007 à 14:45. (lien). Évalué à 1.Mais je n'ai jamais dit que le ping ne fontionnait pas chez moi !
Ce sont les commandes host, nslookup et dig qui ne fonctionnent pas car elles cherchent absolument à aller causer à un DNS, ça tombe en time out et elles s'arrêtent là !
Le ping fonctionne sauf que la commande cherche d'abord à ouvrir /etc/resolv.conf pour se connecter à un DNS et seulement ensuite fait un open sur le /etc/hosts, et là fort heureusement il résoud bien le nom.
Moi ce que je veux, c'est uniquement résoudre les noms avec /etc/hosts et à aucun moment ne faire appel à un DNS. Il semblerait que la primitive gethostbyname n'ai pas le comportement souhaité...pourtant sous AIX le comportement est normal....
Ensuite, quand tu réalise ton test, pense bien à stopper le name service cache daemon....avec un /etc/init.d/nscd stop parce que la commande ping (et surement d'autres) va voir la socket locale pour tenter de résoudre des noms en cache...
Refait ton test avec les commandes host, nslookup....
Analyse la sortie d'un strace surtout, histoire de voir ta primitive a bien le même comportement....
J'ai peut-être un bug...mon kernel est le suivant 2.4.21-27.ELsmp-
[^]Re: /etc/resolv.conf vide
Posté par NeoX () le 13/09/2007 à 15:24. (lien). Évalué à 3.sans commentaire :
man host :
DESCRIPTION
host is a simple utility for performing DNS lookups. It is normally used to convert names to IP addresses and vice-versa.
When no arguments or options are given, host prints a short summary of its command line arguments and options.
[...]
FILES
/etc/resolv.conf
man nslookup
DESCRIPTION
Nslookup is a program to query Internet domain name servers. Nslookup has two modes: interactive and
non-interactive.
[...]
FILES
/etc/resolv.conf
man dig
DESCRIPTION
dig (domain information groper) is a flexible tool for interrogating DNS name servers.
[...]
FILES
/etc/resolv.conf
${HOME}/.digrc
les 3 outils que tu cites se base clairement sur le fichier /etc/resolv.conf
et c'est normal car ils font, par definition, du traitement de type DNS
et pour en revenir à la question initiale,
es-tu sur que ces 3 outils se basent sur les primitive gethostbyname() et gethostbyaddress() ?--
Apprendre par les autres, c'est bien.
Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux-
[^]Re: /etc/resolv.conf vide
Posté par Dabowl_92 () le 13/09/2007 à 16:09. (lien). Évalué à 1.Effectivement, tu as raison.
La commande nslookup ne tient absolument pas compte du /etc/hosts qu'elle que soit l'implémentation et c'est annoncé clairement.
En revanche la commande host n'a pas le même comportement sous AIX où le fichier /etc/hosts est consulté selon l'ordre de recherche définit....c'est assurément ce qui m'a induit en erreur.-
[^]Re: /etc/resolv.conf vide
Posté par baud123 (Jabber id, page perso, ) le 14/09/2007 à 07:06. (lien). Évalué à 2.Tu installes encore des RHEL 3 ? Prends au moins une RHEL 4 qui a un kernel 2.6 voire une RHEL 5 disponible depuis quelques temps...
-
[^]Re: /etc/resolv.conf vide
Posté par NeoX () le 14/09/2007 à 09:42. (lien). Évalué à 2.
Tu installes encore des RHEL 3 ? Prends au moins une RHEL 4 qui a un kernel 2.6 voire une RHEL 5 disponible depuis quelques temps..
il s'agit peut-etre d'un serveur en prod, et on ne change pas un serveur juste parce que cela fait plaisir ou parce que la derniere version est sortie.--
Apprendre par les autres, c'est bien.
Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux-
[^]Re: /etc/resolv.conf vide
Posté par baud123 (Jabber id, page perso, ) le 14/09/2007 à 18:21. (lien). Évalué à 3.La RHEL 3 est sortie en Octobre 2003 http://distrowatch.com/table.php?distribution=redhat
avec 5 ans de support standard, ce serveur n'aurait plus que 1 an à vivre à moins d'obtenir un support étendu pour le faire vivoter.
Autant prévoir de le faire évoluer dès maintenant tout de même... Ce n'est pas comme un Solaris 8 qui peut-être maintenu en support étendu jusqu'en 2012 ;-) ('fin bon il reste sûrement des AIX 4.3.3patch10 qui traînent hein :/).-
[^]Re: /etc/resolv.conf vide
Posté par baud123 (Jabber id, page perso, ) le 14/09/2007 à 18:29. (lien). Évalué à 3.ah tiens j'aurais cru 5, c'est plutôt 7 d'après http://www.redhat.com/archives/nahant-list/2005-March/msg003(...)
bon sinon ya un kernel 2.4.21-51 d'après https://rhn.redhat.com/errata/RHSA-2007-0671.html (mais bon mieux vaut l'avoir qualifié avant quoi :/)
-
-
-
-
-
-
-
-
Revenir en haut de page || Retourner aux forums || Retourner au forum Linux.redhat



Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.