1) Normalmente, o seu sistema usaria o servidor DNS no seu 'resolv.conf'. Se você visitar www.yahoo.com, seu sistema entrará em contato com o DNS, o DNS retornará o endereço IP desse endereço e seus sistemas saberão qual endereço IP corresponde ao endereço www.yahoo.com.
2) Ele usa hosts
antes de tentar resolver um endereço porque hosts
file é usado para substituir qualquer endereço que você esteja tentando resolver. ou seja: você já tem provavelmente uma entrada lá, 127.0.0.1 localhost
diz ao sistema que se você está tentando entrar em contato com o host com o nome "localhost" ele irá fazê-lo usando o endereço 127.0.0.1, neste caso sua interface lopback na sua eth0.
3) Depois que o sistema souber que um endereço de um host está procurando diretamente em seu hosts
ou entrando em contato com os servidores DNS em 'resolv.conf', ele examinará a tabela de roteamento para ver qual das regras explica o que fazer com o tráfego com destino para o endereço IP obtido.
Ie: Imagine que você tenha 2 computadores em sua rede com nomes de host de "Ubuntu-One" e "Ubuntu-Two", cada computador provavelmente terá isso atribuído no arquivo host
:
127.0.0.1 localhost Ubuntu-One
para o computador Ubuntu-One
127.0.0.1 localhost Ubuntu-Two
para o computador Ubuntu-Two
Isso é feito automaticamente e é a razão pela qual você pode resolver 'localhost' e 'Ubuntu-One "e" Ubuntu-Two "em cada terminal respectivo.
Tente executar ping no Ubuntu-Two do Ubuntu-One e o Ubuntu-One entrará em contato com os servidores DNS no seu arquivo resolv.conf
, os servidores dirão "não conheço nenhum IP relacionado a esse endereço" e seu PC responderá " Nome do host desconhecido ". Adicione a linha <IPADDRESSFROMUBUNTU-TWO Ubuntu-Two
ao arquivo hosts
do Ubuntu-One e tente voltar a pingar o sistema verá que no arquivo hosts o endereço IP do Ubuntu-Two é xxxx, então verificará sua tabela de roteamento para ver qual regra se aplica a esse intervalo de IP ou IP e entrará em contato com o host usando o gateway especificado (ou nenhum). É por isso que hosts
é sempre resolv.conf
.