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/hostsarquivo:
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/hostsestá mapeando do IP para o nome do host, por que esta máquina não pode resolver o nome do hostmongodbpara o IP 192.168.10.10? Em vez disso, quando executohost localhost, ele pode ser resolvido e mostra:localhost has address 127.0.0.1Minha outra pergunta: de acordo com o
/etc/hostsarquivo, o nome do hostlocalhostdeveria 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/hostsnão tem qualquer efeito sobre a resolução de DNS ao consultar servidores DNS diretamente, que é o quehostfaz. No entanto, muitas ferramentas e utilitários do sistema usam alocalhostdefinição, esperando que seja um endereço de loopback, e usam a resolução de nomes do sistema (que é/etc/hostsexaminada antes de consultar o DNS) para resolver nomes em vez de ir estritamente para o DNS, que nem sempre está presente.