Hostnames - O que são eles?

50

Recentemente eu fui "forçado" a realizar algum trabalho de administração de sistemas, enquanto isso não é algo que eu absolutamente adoro fazer, eu tenho lido, experimentado e aprendido muito.

Existe um aspecto fundamental da configuração do servidor que não consegui compreender - hostnames .

No Ubuntu, por exemplo, deve-se definir o nome do host assim (de acordo com a Biblioteca de Linode ):

echo "plato" > /etc/hostname
hostname -F /etc/hostname

Arquivo: / etc / hosts

127.0.0.1        localhost.localdomain        localhost
12.34.56.78      plato.example.com            plato

Eu assumo que plato é um nome arbitrário e que plato.example.com é o FQDN.

Agora minhas perguntas são:

  • É obrigatório?
  • Para que finalidade?
  • Onde é necessário / usado?
  • Por que não consigo definir "localhost" como o nome do host de cada máquina?
  • Preciso configurar uma entrada de DNS para o plato.example.com FQDN?
  • O plato.example.com deve ser usado como entrada de DNS reverso para o meu IP?

Além disso, existem algumas "melhores práticas" para escolher nomes de host? Eu vi pessoas usando letras gregas, nomes de planetas e até figuras mitológicas ... O que acontece quando ficamos sem cartas / planetas?

Me desculpe se essa é uma pergunta idiota, mas nunca fiquei muito entusiasmado com as configurações de rede.

    
por Alix Axel 28.01.2011 / 14:10

7 respostas

26

Atualmente, um sistema pode ter várias interfaces, cada uma com vários endereços, e cada endereço pode até ter várias entradas de DNS associadas a ele. Então, o que significa um "nome do host do sistema"?

Muitos aplicativos usarão o nome do host do sistema como um identificador padrão quando se comunicarem em outro lugar. Por exemplo, se você estiver coletando mensagens do syslog em um servidor central, todas as mensagens serão marcadas com o nome do host do sistema de origem. Em um mundo ideal, você provavelmente ignoraria isso (porque você não necessariamente quer confiar no cliente), mas o comportamento padrão - se você nomear todos os seus sistemas como "localhost" - resultaria em um monte de mensagens de log que você não seria capaz de se associar a um sistema específico.

Como outras pessoas apontaram, o nome do host do sistema também é um identificador útil se você estiver acessando remotamente um número de sistema. Se você tem cinco janelas anexadas a um sistema chamado "localhost", você terá dificuldades em mantê-las em dia.

Na mesma linha, tentamos fazer com que o nome do host do sistema corresponda ao nome do host que usamos para acesso administrativo a um sistema. Isso ajuda a evitar confusão ao se referir ao sistema (em e-mail, conversas, documentação, etc.).

Em relação ao DNS:

Você deseja ter entradas de DNS para frente e reverso adequadas para seus aplicativos, a fim de evitar confusão. Você precisa de alguma entrada direta (nome - > endereço IP) para que as pessoas possam acessar seu aplicativo convenientemente. Ter a correspondência de entrada inversa é útil por diversos motivos - por exemplo, ajuda a identificar corretamente o aplicativo se você encontrar o endereço IP correspondente em um log.

Note que aqui eu estou falando sobre "aplicativos" e não "sistemas", porque - particularmente com servidores web - é comum ter múltiplos endereços IP em um sistema, associados a diferentes hostnames e serviços.

Tentar manter o nome nos mapeamentos ip no seu arquivo /etc/hosts rapidamente se torna difícil à medida que você gerencia um número crescente de sistemas. É muito fácil para o arquivo de hosts locais ficar fora de sincronia com relação ao DNS, potencialmente levando a confusão e, em alguns casos, mau funcionamento (porque algo tenta ligar a um endereço IP que não existe mais no sistema, por exemplo).

    
por 28.01.2011 / 14:33
10

Você pode definir cada nome de host como "localhost", mas é muito útil ter alix@plato ~ $ em seu prompt de comando ao gerenciar máquinas sobre ssh. Gerenciar servidores remotamente pode se tornar muito confuso se você não o fizer.

Ter um FQDN correto é importante para quando você hospeda um servidor da Web ou um servidor de email. Esses tipos de aplicativos de servidor gostam de saber "quem" eles estão sendo executados.

Para escolher um bom esquema de nomenclatura, eu o encaminho para esta pergunta muito popular .

Um FQDN torna-se útil somente quando é significativo para outro computador. Existem três níveis para isso:

  • Um computador em sua rede local possui uma entrada em seu arquivo de hosts que aponta para essa máquina
  • Você tem um servidor DNS em execução na sua rede local e todos os computadores locais que o usam como servidor DNS agora conhecem plato pelo nome.
  • Você registra um nome de domínio e agora o mundo inteiro sabe para qual máquina o nome plato.alixaxel.com aponta.

Ao enviar e-mails ou servir páginas da web para o mundo externo, o terceiro é o que você deseja ter. Para a maioria dos outros casos, você pode se contentar com um DNS local ou até mesmo editar arquivos de hosts.

Nesse caso, você pode criar apenas um nome de domínio (plato.alixnetwork poderia estar bem como um FQDN) para uso em sua rede local. O único valor agregado de ter a parte "alixnetwork" (o nome de domínio) é a conveniência quando você tem outra rede local da qual deseja distingui-la.

    
por 28.01.2011 / 14:21
8

Uma visão geral básica. Hostname são apenas ponteiros; você pode atribuir um nome específico para ser o nome de host referenciado pela máquina, mas pode ter vários. Alguns serviços, correio e HTTP notáveis dependem de nomes de domínio para saber onde os serviços devem ser localizados e como chegar até eles.

Há muito tempo, todos esses nomes (que, novamente, são apenas ponteiros para endereços IP) foram mantidos em um arquivo chamado hosts . À medida que o sistema crescia, eles não conseguiam manter o arquivo sincronizado em todos os computadores relevantes que participavam das várias redes interconectadas. Então o sistema DNS foi inventado. Quando você faz uma pesquisa de nome, ele ainda verifica primeiro o arquivo hosts, depois o sistema DNS. O Windows também pode verificar outros sistemas como o WINS ou o NetBIOS.

Quando você insere uma entrada em um arquivo hosts , não a atribui ao computador. Atribuir um nome de host como aquele usado pelo computador é feito nos arquivos de configuração (nos sistemas * nix) e nas Propriedades do Sistema nos sistemas Windows (o sistema Windows também pode ter sufixos específicos do NIC).

As entradas no arquivo hosts , como o sistema DNS, são apenas um mapeamento de um nome de host para um endereço IP. Para usar o hostname 'localhost' (não há nada especial sobre isso, é um nome de host como todo o resto) ele deve ser mapeado para a interface de loopback (assim ele sempre apontará para o computador local). Para garantir que isso funcione, todos os computadores vêm com esse mapeamento padrão em seu arquivo hosts , mas ele poderia ser removido, se você não quisesse usar esse nome de host.

Além disso, como outros notaram, é muito útil atribuir um nome de host a um computador. Quando conectado ao computador, você pode fazer com que ele exiba seu nome de host quando você fizer login, ou como seu prompt, ou qualquer outro número de outros lugares. Isso facilita a identificação do computador ao qual você está conectado. Se você configurar esse nome de host no DNS ou colocá-lo em todos os arquivos hosts , poderá se conectar ao computador referenciando seu nome de host em vez de precisar saber seu endereço IP o tempo todo. (Ainda mais útil se o computador estiver usando DHCP, pois o endereço pode mudar. Se o computador atualizar o DNS, o registro DNS apontará para o novo endereço IP; você ainda pode se conectar sem saber o novo endereço IP porque sabe o nome DNS ).

Existem muitos outros usos de hosts e DNS, mas suspeito que você tenha mais perguntas do que respostas se ler tudo isso.

    
por 28.01.2011 / 14:41
5

Sempre o host deve receber um nome significativo. O nome do host pode ter vários propósitos:

1- Ajuda-o a reconhecer em que está a trabalhar atualmente.

2- Usar nomes configurados em /etc/hosts e / ou registros DNS é mais fácil do que memorizar muitos endereços IP.

3- Localhost é um nome reservado para se referir à máquina atual (endereço 127.0.0.1).

4- Os registros DNS são úteis para tornar seus servidores acessíveis publicamente.

A escolha de um nome adequado para cada servidor ajuda muito em sua administração. Além disso, ajuda seus clientes a acessar seus servidores.

    
por 28.01.2011 / 14:19
2

Assim como uma nota lateral: Trabalhar corretamente e reverter a resolução de DNS é a pedra angular absoluta de todas as instalações de TI neste planeta. Nunca subestime a necessidade de um DNS bem mantido e resolução de nome de host apropriada!

    
por 28.01.2011 / 14:40
1

Disclaimer: a questão principal é sobre sistemas Linux, então sinta-se livre para ignorar esta resposta se você não estiver interessado no lado do Windows do problema.

De qualquer forma, nos sistemas Windows, além de todos os pontos mencionados em outras respostas, o nome do host é realmente usado pelo O.S. propriamente dito, para fins de rede e autenticação; especificamente:

  • Cada sistema, seja ou não um membro do domínio, é obrigado a ter um nome único na mesma rede (ou seja, na mesma sub-rede IP), caso contrário, um conflito de nomes ocorrerá e vários serviços (principalmente compartilhamento de arquivos e impressão) não funcionarão.
  • Todos os sistemas que são membros do mesmo domínio do Active Directory precisam ter um nome exclusivo, independentemente dos limites da rede.
  • Em um ambiente de domínio, o nome do host de um sistema atua como uma entidade de segurança e pode ser usado para autenticação remota (basta considerá-lo como uma conta de usuário para a máquina); Ele pode receber permissões e direitos de acesso e pode ser colocado em grupos para fins de segurança. Isso afeta todos os processos em execução no sistema usando as contas de usuário LocalSystem e NetworkService integradas, que podem se autenticar em outros sistemas usando as credenciais do sistema em que estão sendo executadas; isso permite f.e. um processo em execução como NetworkService no SystemA para acessar uma pasta compartilhada no SystemB concedendo permissões na pasta para a conta de usuário do SystemA.
por 14.10.2015 / 16:22
-1

Muitos sites e / ou supostos 'admins' agora informam que o atributo 'hostname' contém o FQDN da instância do SO, o que 'quebra' qualquer resolução que acrescente o 'nome de domínio' a ele:

hostname
system1.domain1.org

ping hostname
- cannot resolve system1.domain1.org.domain1.org

    
por 02.12.2017 / 01:16