J'ai quelques domaines locaux résolus en 127.0.0.1
dans mon fichier /etc/hosts
. Et tout allait bien pour une période de temps, mais maintenant, quand je cours:
nslookup test.local
Il en résulte:
Server: 192.168.1.3
Address: 192.168.1.3#53
** server can't find test.local: NXDOMAIN
Le 192.168.1.3
est notre DNS réseau et il n'est pas supposé connaître mon domaine local test.local
. Après quelques recherches, j'ai découvert que le fichier /etc/nsswitch.conf
contient des informations sur la priorité des sources DNS à interroger. Mais il n'y avait pas de problème là! Voilà le mien:
# /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 mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Alors, est-ce que quelqu'un sait pourquoi mon fichier hosts
n'est pas inclus dans la recherche DNS?
nslookup
ne fait que une résolution DNS correcte , qui est très différente du sous-système Name Service Switch que vos autres applications utilisent; c'est-à-dire nslookup
ignore /etc/hosts
et mDNS.
Pour tester de telles résolutions locales, utilisez quelque chose qui utilise NSS. ping <hostname>
par exemple. Voici une démonstration simple basée sur une entrée /etc/hosts
sur mon réseau.
$ nslookup bert
Server: 8.8.8.8
Address: 8.8.8.8#53
** server can't find bert: NXDOMAIN
$ ping bert
PING bert (10.10.0.4) 56(84) bytes of data.
64 bytes from bert (10.10.0.4): icmp_seq=1 ttl=64 time=0.352 ms
64 bytes from bert (10.10.0.4): icmp_seq=2 ttl=64 time=0.407 ms
Notez qu'il existe des serveurs DNS et des mandataires pouvant intégrer un fichier /etc/hosts
. Dans ces cas, nslookup
peut renvoyer un résultat provenant d'une source locale.
Je suppose que vous voulez la résolution de nom du fichier /etc/hosts
pour l'hôte spécifique (mysite.com).
Un autre problème courant pouvant être à l'origine de ce problème est que vous pouvez avoir plusieurs entrées sur le fichier /etc/hosts
pour la même adresse IP, par exemple:
1.1.1.1 Host1.domain1.com
1.1.1.1 Host2.domain2.com
Dans certaines implémentations, la résolution du nom peut être transmise au DNS. Une solution rapide, tout groupe en 1 rangée
1.1.1.1 Host1.domain1.com Host2.domain2.com
Une autre chose courante que je vois est le moment où quelqu'un (généralement moi) inverse l'adresse IP avec le nom d'hôte dans /etc/hosts
- par exemple:
mysite.com 10.2.3.4
À première vue, cela semble normal ... Voici ma solution environ 50% du temps:
10.2.3.4 mysite.com