En mi máquina Linux, cuando ejecuto hostname
, se muestra mongodb
, pero cuando ejecuto host mongodb
, muestra:
mongodb@mongodb:/var/hadoop/hadoop-1.2.1/bin$ host mongodb
Host mongodb not found: 2(SERVFAIL)
Mi /etc/hosts
archivo:
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
Mi primera pregunta es: dado que
/etc/hosts
es una asignación de IP a nombre de host, ¿por qué esta máquina no puede resolver el nombremongodb
de host a IP 192.168.10.10? En cambio, cuando ejecutohost localhost
, se puede resolver y muestra:localhost has address 127.0.0.1
Mi otra pregunta: según el
/etc/hosts
archivo, el nombre de hostlocalhost
debería haberse resuelto a 192.168.10.10 en lugar de la dirección de bucle invertido 127.0.0.1. ¿Alguien me puede explicar esto?
/etc/hosts
no tiene ningún efecto en la resolución de DNS cuando se consultan servidores DNS directamente, que es lo quehost
hace. Sin embargo, muchas herramientas y utilidades del sistema usan lalocalhost
definición, esperando que sea una dirección de bucle invertido, y usan la resolución de nombre del sistema (que se ve/etc/hosts
antes de consultar DNS) para resolver nombres en lugar de ir estrictamente a DNS, que puede no estar siempre presente.