Na minha máquina Linux, quando eu corro hostname
, ele mostra mongodb
, mas quando eu corro host mongodb
, ele mostra:
mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)
Meu /etc/hosts
arquivo:
192.168.10.10 mongodb
192.168.10.10 localhost
127.0.0.1 localhost
#127.0.0.1 localhost
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Minha primeira pergunta é: Como
/etc/hosts
está mapeando do IP para o nome do host, por que esta máquina não pode resolver o nome do hostmongodb
para o IP 192.168.10.10? Em vez disso, quando executohost localhost
, ele pode ser resolvido e mostra:localhost has address 127.0.0.1
Minha outra pergunta: de acordo com o
/etc/hosts
arquivo, o nome do hostlocalhost
deveria ter sido resolvido para 192.168.10.10 em vez do endereço IP de loopback 127.0.0.1. Alguém pode me explicar isso?
/etc/hosts
não tem qualquer efeito sobre a resolução de DNS ao consultar servidores DNS diretamente, que é o quehost
faz. No entanto, muitas ferramentas e utilitários do sistema usam alocalhost
definição, esperando que seja um endereço de loopback, e usam a resolução de nomes do sistema (que é/etc/hosts
examinada antes de consultar o DNS) para resolver nomes em vez de ir estritamente para o DNS, que nem sempre está presente.