Com uma pequena edição no arquivo de configuração /etc/hosts, é possível atribuir um ou mais apelidos às máquinas que o cercam na rede.
Isto permite acessar máquinas remotas por nomes, poupando o trabalho de digitar números IP compridos e difíceis de memorizar.
O conteúdo típico do arquivo /etc/hosts, no Ubuntu 14.04 LTS é:
127.0.0.1 localhost 127.0.1.1 case # 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
Se você tem várias máquinas virtuais em seu sistema, cada qual rodando um serviço e cada uma com seu próprio endereço IP, na rede, é muito mais fácil dar um apelido a cada uma.
Nos meus exemplos, vou usar uma máquina com um IP fixo 192.168.0.113
, apelidada de infinity
.
Veja como fica a edição do meu arquivo /etc/hosts, ao qual vou acrescentar alguns apelidos:
127.0.1.1 ultra # máquina local 192.168.0.113 infinity #servidor ftp, ssh, apache, mysql
Claro que você pode dar mais de um apelido para cada número IP.
Com esta configuração, é possível acessar qualquer serviço hospedado na minha máquina local, por um de seus apelidos (localhost, ultra):
ping localhost
ou
ping ultra
O serviço de FTP, hospedado na máquina chamada infinity, pode ser acessado assim:
ftp 192.168.0.113
ou assim:
ftp infinity
O mesmo se aplica ao SSH:
ssh cowboy@infinity
cowboy@infinity's password: Welcome to Trisquel GNU/Linux 7.0, Belenos (GNU/Linux 3.16.0-31-generic i686) Documentation: http://trisquel.info/wiki/ Last login: Fri May 1 11:09:44 2015 from 192.168.0.112 cowboy@infinity:~$
Se você tem um servidor Apache na máquina, pode acessar do seu navegador, fornecendo o apelido no lugar do endereço IP: http://infinity
ou apenas “infinity/” (veja a imagem).
O mesmo vale pro servidor de impressão CUPS http://infinity:631
:
Há inúmeros outros casos em que você pode simplificar seu acesso a outros dispositivos na rede, através da edição do arquivo de configuração /etc/hosts.
Note que é necessário que os IPs destas máquinas seja fixo — ou você se arrisca a acessar uma máquina diferente com o mesmo apelido, quando houver alguma reinicialização.
Como editar o arquivo /etc/hosts
O arquivo /etc/hosts é um arquivo de texto simples e você deve evitar editá-lo em processadores de texto mais complexos (que não foram feitos para editar código).
O arquivo associa endereços IP a hostnames — um a cada linha.
Veja as regras de edição:
- Cada IP pode ser associado a um apelido ou mais (separados por espaços):
192.168.0.21 cups impressoras serv_imp
- Comentários podem ser feitos com “#”. Tudo o que vier depois deste caractere e até o fim da linha será ignorado.
- Nomes de hosts ou hostnames devem conter apenas caracteres alfanuméricos — mas sempre começando com caracteres alfabéticos.
Após a edição e gravação do arquivo, já é possível usar o novo hostname. Não há necessidade de reiniciar o computador ou qualquer serviço no sistema — exceto em casos em que o arquivo está sendo mantido em cache por alguma aplicação.
O servidor BIND — Berkeley Internet Name Domain Server — implementa o servidor de nomes para sistemas UNIX.
O BIND acrescenta ou substitui as funções do arquivo /etc/hosts e é uma solução mais confiável.
Em que casos o uso do /etc/hosts pode ser o mais indicado
Atualmente, a tabela de hosts foi substituída pelo uso do DNS. Ainda assim, de acordo com o manual, ela é amplamente usada para:
- bootstrapping — Muitos sistemas tem uma pequena tabela hosts, contendo o endereço e o nome para alguns hosts importantes na rede local. Isto é útil quando o DNS ainda não estiver sendo executado, por exemplo, durante a inicialização do sistema.
- NIS — Sites que usam o NIS, confiam na tabela de hosts para guardar sua relação de hosts.
Mesmo podendo usar o DNS, muitos sites NIS, ainda usam esta tabela como backup. - nós isolados — Pequenas redes, com máquinas simples ou sites isolados da rede, usam a tabela de hosts, contida no /etc/hosts em vez do DNS.
Em situações com raras mudanças nas informações locais e a rede não estando conectada à Internet, o DNS oferece pouca vantagem.
O arquivo HOSTS na história
Muito antes de termos tantos dispositivos conectados à Internet, os poucos sites que se encontravam conectados, tinham um arquivo chamado “HOSTS.TXT”, que provia um mapeamento entre os nomes dos hosts e seus endereços na rede, de maneira simples, que dava pra qualquer pessoa ou programa ler.
À medida em que a quantidade de máquinas conectadas à rede foi crescendo, a quantidade de cópias do arquivo HOSTS foi aumentando e foi-se percebendo o quanto mantê-lo atualizado era ineficiente.
Propôs-se que a Stanford Research Institute Network Information Center (NIC) centralizasse o arquivo HOSTS, mantendo=o atualizado, em 1974.
Esta solução funcionou bem por quase uma década.
O aumento constante da quantidade de dispositivos conectados, contudo, passou a exigir que outra solução fosse adotada.
Para ter uma idéia, no fim da década de 80, o arquivo estava se tornando muito grande.
Novos dispositivos entravam na rede, outros mudavam de nome ou deixavam de existir, constantemente.
Alguns sites passavam a noite toda fazendo o download e a sincronização do seu HOSTS.TXT com o arquivo de Stanford. Ao fim do trabalho, ele já estava desatualizado — e era comum vir com erros, que se propagavam pela rede, causando transtornos.
A necessidade de se solucionar estes problemas, levou à concepção do BIND, desde 1983 e implementado pouco antes da década de 1990.
Referência: http://www.livinginternet.com/i/iw_dns_history.htm