Arquivos de configuração de rede - Parte I - /etc/hosts

Essa é uma série de artigos que apresentará alguns dos arquivos de configuração de rede dos sistemas Linux para usuários iniciantes.

[ Hits: 15.034 ]

Por: Perfil removido em 23/09/2015


Parte I - /etc/hosts



Essa é uma série de artigos que apresentará alguns dos arquivos de configuração de rede dos sistemas Linux. Esse artigo é baseado no Slackware Current, e pode apresentar pequenas diferenças de localização ou função para outros sistemas, esteja atento. Não sei quantas partes a série vai ter, mas aviso quando acabar.

Conceitos básicos

Um nome de host é algo criativo (mas, não maluco!) usado para diferenciar um host de outro host em uma rede local. Nomes de hosts DEVEM ser coisas simples como: gandalf, frodo, mordor, server-01-ab, monkey2you ou bee-0800. As regras de formação desses nomes também são simples. Um nome de host:
  • DEVE usar letras do código ASCII em minúsculas - [a-z].
  • PODE usar números de [0-9], exceto como primeiro caractere
  • JAMAIS usar caracteres acentuados ou especiais (ã, é, í,ü @, &,#, etc.)
  • NÃO pode haver dois nomes iguais na mesma rede (mesmo domínio)
  • NÃO podem conflitar com nomes da internet (por segurança)
  • DEVEM fazer sentido para humanos normais (por mais que você insista em chamar seu host de ha4k3r-f0da0.com, isso não é normal).
  • Podem ter traços (sinal de menos)

Você pode dizer que o endereço IP já é usado para diferenciar um host de outro host, o que é verdade. Todavia, a sacada sobre os nomes de hosts é que eles tornam seu servidor transparente para o usuário. Assim, se você usa um endereço IPv4 como 192.168.0.100 para seu servidor web da intranet e resolve mudar isso (por uma razão qualquer) para 192.168.0.200 os usuários (que são os navegadores) não vão localizar seu servidor automaticamente; será preciso avisar todos os usuários humanos sobre a mudança de endereço IP do servidor para eles avisarem aos navegadores, e isso dá trabalho, uma coisa que administradores não gostam de fazer, pois exige contato com humanos normais.

Agora, se você chamar seu servidor intranet de gandalf.intranet.bit os navegadores da sua rede continuam localizando seu host independente do endereço IP que ele estiver usando. Isso não é mágica, vejamos como funciona:

A tradução de endereços na internet (e também na intranet) é feita por um serviço de rede chamado DNS - Domain Name Server - que pega o nome de um site como www.vivaolinux.com.br e traduz para um endereço IP (pode ser IPv4 ou IPv6) que é o valor realmente utilizado para fazer a conexão. Sem DNS você não navega na internet, a menos que saiba o IP numérico do site que procura.

Um site público como o Google ou YouTube possui um (ou mais) registro(s) no sistema DNS público que permite que seus nomes sejam localizados por qualquer navegador de internet. Sites públicos são aqueles que estão abertos para os usuários da internet global (mesmo que exijam uma senha de login). Você pode acessar o gmail.com.br do Japão, da África do sul ou de qualquer lugar do Brasil. Isso é possível por causa do DNS. Vamos deixar o DNS de lado um pouco e voltar para o arquivo /etc/host.

O nome de host

Um nome de host (hostname) têm duas partes (gandalf + intranet.bit). A primeira parte é nome do host (gandalf) e a segunda parte é o nome do domínio (intranet.bit). Assim como um nome completo é primeiro nome + o sobrenome da família. Por exemplo, Roberto da Silva Sauro nos diz que: na família Silva Sauro existe um Roberto. O Roberto da família Silva Sauro deve ser único, e não pode haver outro Roberto na mesma família. Pode haver um Roberto de Carvalho ou Roberto Medina, que são de outras famílias (ou domínios, por analogia).

Esse nome completo (do Roberto e do host) é chamado de nome canônico (um jeito chique de falar nome completo). Canônico significa "nome de acordo com as regras". Em computação um nome canônico é chamado de nome FQDN (Full Qualified Domain Name ou Nome de Domínio Totalmente Qualificado).

Agora, para os mais chegados o Roberto da Silva Sauro é chamado de Bebeto. Bebeto é um apelido do Roberto (em computação um apelido é chamado de alias). O alias de um FQDN é seu nome não-qualificado, ou seja, seu nome curto.

Por exemplo, em gandalf.intranet.bit o alias principal é gandalf, mas podem haver outros alias como Mithrandir ou Branco, que são outros nomes pelos quais gandalf também é conhecido na terra média (sua rede local).

Um host na rede local tem um IP interno (chamado de IP privado) que não é roteável pela internet (não pode vazar na internet). Nosso host servidor é fechado para uso apenas pela nossa rede local interna, em outras palavras, nosso host não faz parte da internet. Isso leva a conclusão que nosso host não pode (e não DEVE) ser localizado por qualquer pessoa da internet usando o sistema DNS público da internet. Mas como eu localizo um host na minha rede local por nome? Existem duas opções:

1. Montar um servidor de DNS local, para redes que são realmente grandes com 20 computadores ou mais. Um servidor DNS (BIND) está fora do escopo deste artigo, mas existem vários artigos sobre isso por aí.

2. Usar o arquivo /etc/hosts é a solução para redes pequenas. Logicamente, se essa rede pequena tem um computador em cada um dos dez andares de um prédio, ela se torna fisicamente grande apesar de ter poucos computadores e isso pode ser um problema sério neste caso.

O arquivo /etc/hosts

Esse arquivo é escrito em texto puro (ASCII ou UTF-8), sendo responsável por armazenar uma base de dados estática que associa nomes de hosts com seus endereços IP, na forma de um registro por linha na seguinte sintaxe:

Endereço_IP nome_canônico   \[alias1 alias2 \]

As entradas na linha são separadas por espaço ou tabulações. Linhas que começam com um sinal de hash "#" são comentários de linha e são ignorados. Os nomes de host podem conter traços (sinal de menos) ou pontos, que são separadores de nível.

Antes da invenção do DNS (BIND) era assim que todos os nomes de hosts de servidores da internet era atualizado. Apesar da existência do DNS, o arquivo /etc/hosts ainda é utilizado por questões de compatibilidade, para hosts isolados e para configurar serviços durante o boot, enquanto DNS não está disponível. Uma modificação neste arquivo entra em vigor imediatamente, exceto para sistemas que utilizam algum tipo de cache local de DNS. Diferente de DNS que é dinâmico, as entradas em /etc/hosts precisam ser atualizadas manualmente, por isso não deve ser utilizado em redes grandes. O nome do host nunca deve ser configurado como 127.0.0.1 (localhost), pois alguns programas falham se isso acontecer. A seguir um modelo de /etc/hosts básico:
Linux: Arquivos de configuração de rede - Parte I - /etc/hosts
Referências:
  • Internet RFC 952
  • man hosts(5)

   

Páginas do artigo
   1. Parte I - /etc/hosts
Outros artigos deste autor

Usando classes em conexão e consultas à banco de dados em PHP

Atualizando o kernel do Slackware de forma segura, sem o famoso "kernel panic"

"TORIFICANDO" todo um sistema GNU/Linux utilizando a rede TOR

Recuperar a senha de root iniciando através do init=/bin/bash e alterando o arquivo /etc/shadow

Quero usar o Baiacu em casa, mas será que eu posso?

Leitura recomendada

50 toques antes de instalar o Slackware 14.1

Configurando o driver nVidia no Mandrake 10.1

Configuração de servidor DHCP no Debian Linux

Configurando Linux para Desenvolvimento de Sites

Enlightenment DR17 - A evolução

  
Comentários
[1] Comentário enviado por gpxlnx em 24/09/2015 - 08:14h

Belo Artigo, obrigado por compartilhar.

[2] Comentário enviado por Mc.Eagle em 24/09/2015 - 21:13h


Excelente, todos aqueles que trabalham com administração e manutenção de redes de computadores deveriam dar uma lida.

[3] Comentário enviado por wagnerfs em 24/09/2015 - 22:18h

Parabéns pelo artigo e obrigado por compartilhar o conhecimento.
_________________________
Wagner F. de Souza
Técnico/Instrutor de Informática
"GNU/Linux for human beings."
LPI ID: LPI000297782

[4] Comentário enviado por AlanRabello em 30/09/2015 - 10:12h


Muito BOM!

[5] Comentário enviado por mcnd2 em 30/09/2015 - 22:20h

Muito bom o esclarecimento.
Esperando pelas partes II, III, etc.
Belo trabalho didático.
10!

[6] Comentário enviado por tonyhts em 02/10/2015 - 19:55h

Parabéns! Favoritado...
---
Eu Acredito, que ás vezes são as pessoas que ninguém espera nada que fazem as coisas que ninguém consegue imaginar.

--- Mestre dos Mestres - Alan Turing ---

[7] Comentário enviado por Freud_Tux em 05/10/2015 - 22:08h

Esperando as outras partes :D.


T+

[8] Comentário enviado por franciscorsousa em 10/10/2015 - 10:50h


Artigo muito bom, me ajudou muito.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts