web-dev-qa-db-fra.com

Le serveur DNS ne peut pas résoudre le nom localhost

J'essaie de configurer un serveur Apache sur mon RHEL6.4 VM et je ne peux pas parce que dnsmasq ne peut pas reconnaître le nom d'hôte pour une raison quelconque:

nslookup rhel64.example.com
Server:         xxx.xxx.xx.1
Address:        xxx.xxx.xx.1#53

server can't find rhel64.exmple.com: NXDOMAIN

/etc/hosts:

xxx.x.x.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

/etc/resolv.conf:

; generated by /sbin/dhclient-script
search novalocal example.com
nameserver xxx.xxx.xx.1

S'il vous plaît laissez-moi savoir s'il y a quelque chose que vous devez voir pour résoudre mon problème. Je ne peux pas utiliser un serveur DNS différent.

Vous recherchez un moyen de faire dnsmasq résoudre le nom d'hôte sans changer de serveurs DNS.

3
pt18cher

Je m'attendrais à ce que l'adresse IP de votre serveur soit corrigée. Votre /etc/hosts Devrait contenir

127.0.0.1  localhost
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
xxx.x.x.1  rhel64.example.com rhel64

localhost ne doit jamais indiquer une adresse autre que 127.0.0.1 ou :: 1. Ajoutez des hôtes supplémentaires avec des adresses fixes à /etc/hosts Selon les besoins.

Pour les adresses dynamiques, assurez-vous de définir le domaine correct dans /etc/dnsmasq.conf Et assurez-vous que le nom d'hôte est envoyé dans la demande. Vérifiez le fichier dnsmasq.leases Qui doit être dans le répertoire /var/lib Essayez de vérifier. Le domaine doit être spécifié comme celui-ci.

domain=example.com

Sinon, vous pouvez fournir des adresses fixes dans le fichier dnsmasq.conf Ou /etc/ethers. Une ligne comme celle-ci créera l'adresse MAC aa.bb.cc.dd.ee.ff Sur 192.0.2.1. Le nom DNS serait spécifié dans /etc/hosts Comme indiqué ci-dessus.

 aa.bb.cc.dd.ee.ff     192.0.2.1

EDIT: Les diagnostics que j'utiliseriez incluent.

Exécution getent sur l'hôte avec Dnsmasq en cours d'exécution.

 getent hosts rhel64

Cela devrait renvoyer la valeur que vous avez entrée dans le fichier d'hosts ou renvoyée par DNS. Si cela fonctionne, essayez d'utiliser la commande Host pour rechercher l'adresse. Utilisez nslookup si les hôtes n'est pas disponible. Essayez ces commandes. (Il semble que vos serveurs dnsmasq et Apache sont sur le même hôte.

 hosts rhel64.
 hosts rhel64.example.com.
 hosts rhel64.  localhost
 hosts rhel64.example.com.  localhost
 hosts rhel64.  rhel64. 
 hosts rhel64.example.com.  rhel64.
 hosts rhel64.  rhel64.example.com.
 hosts rhel64.example.com.  rhel64.example.com.

Quelle commande échoue et comment elle échoue devrait vous aider à déterminer le problème. Vous pouvez également veiller à ce que DNSMASQ achète sur toutes les adresses IP.

Lors du diagnostic du problème: les demandes de rhel64. Sont pour le nom d'hôte non qualifié avec un domaine et des demandes de rhel64.example.com. Sont pour un nom pleinement qualifié. Le point final sur les noms indique au résolveur de ne pas essayer les domaines de la liste de recherche. Le deuxième nom d'hôte si spécifié remplace les serveurs de noms énumérés dans /etc/resolv.conf. Dans ce cas, j'ai utilisé les serveurs de /etc/resolv.conf, L'adresse localehost (127.0.0.1 ou :: 1), l'adresse du nom d'hôte, comme étant levée de DNS et l'adresse du nom pleinement qualifié tel que regardé. à partir du nom de coup. Les deux derniers serveurs ne fonctionneront pas si le look initial du nom a échoué.

 netstat -an | grep :53

Edit: Lors de la lecture de votre message, je remarque que vous obtenez votre adresse à partir de DHCP, les notes sur la définition d'une adresse IP fixe s'appliquent aux serveurs DHCP de style UNIX. Ils doivent être appliqués sur le serveur DCHP qui est probablement le routeur de xxx.x.x.1, qui ne serait pas votre adresse de vos serveurs. Vous devriez être capable d'obtenir l'adresse IP du Current avec la commande ifconfig ou la commande newer ip addr. Ceci est l'adresse qui doit être assortie à votre nom d'hôte dans le fichier/etc/hosts.

Si vous n'avez pas accès au routeur, vous pouvez essayer d'obtenir DHCP pour mettre à jour le service DNS pour vous. Ajoutez l'entrée suivante à notre fichier de configuration DHCP: option fqdn.fqdn rhel64.example.com; ou option fqdn.fqdn rhel64;

Après avoir ajouté l'entrée, vous devrez redémarrer le processus dhclient. Essayez les commandes

Sudo dhclient -r
Sudo dhclient

Sinon, vous devrez redémarrer l'interface ou l'ensemble de la configuration de réseautage.

4
BillThor