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/hostsarchivo:
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/hostses una asignación de IP a nombre de host, ¿por qué esta máquina no puede resolver el nombremongodbde host a IP 192.168.10.10? En cambio, cuando ejecutohost localhost, se puede resolver y muestra:localhost has address 127.0.0.1Mi otra pregunta: según el
/etc/hostsarchivo, el nombre de hostlocalhostdeberí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/hostsno tiene ningún efecto en la resolución de DNS cuando se consultan servidores DNS directamente, que es lo quehosthace. Sin embargo, muchas herramientas y utilidades del sistema usan lalocalhostdefinición, esperando que sea una dirección de bucle invertido, y usan la resolución de nombre del sistema (que se ve/etc/hostsantes de consultar DNS) para resolver nombres en lugar de ir estrictamente a DNS, que puede no estar siempre presente.