Inclua o nome do domínio ou não em / etc / hosts?

12

Estou configurando um cluster VMWare de nós CentOS. A melhor prática é incluir um nome de domínio após a máquina? Quais são os problemas potenciais de deixar de fora? Um domínio complica ou simplifica a configuração?

Por exemplo, se meu nó estiver em 192.168.1.93 , devo alterar /etc/hosts de

127.0.0.1 localhost.localdomain localhost

para

127.0.0.1 localhost.cluster localhost
192.168.1.93 computernode1.cluster computenode1

ou

127.0.0.1 localhost
192.168.1.93 computenode1

ou

#127.0.0.1 localhost
192.168.1.93 computenode1

ou

192.168.1.93 localhost
192.168.1.93 computenode1
    
por T. Webster 02.06.2013 / 03:24

4 respostas

20

Colocar o nome de domínio em /etc/hosts é opcional e você pode executar um sistema sem nenhum efeito negativo.

A única desvantagem de deixar de fora é que o nome de host completo do sistema não será exibido corretamente. Por exemplo, hostname -f .

A maneira como a detecção do nome completo do host funciona:

  1. Primeiro, obtém o nome do host ou "nome curto". Esta é a saída de uname -n ou hostname .
  2. Em seguida, ele obtém o endereço IP desse nome de host consultando /etc/hosts (ou o que você tem em /etc/resolv.conf e voltando para as últimas fontes, se não for encontrado em /etc/hosts ).
  3. Depois de ter o IP, ele faz uma pesquisa inversa consultando novamente /etc/hosts .
  4. Quando tiver um registro em /etc/hosts , a primeira entrada será usada como o nome completo do host.

Em poucas palavras, se você quiser que o nome de host totalmente qualificado funcione, faça o seguinte:

127.0.0.1 fully.qualified.hostname hostname localhost.localdomain localhost

ou

127.0.0.1 localhost.localdomain localhost
1.2.3.4 fully.qualified.hostname hostname
    
por 02.06.2013 / 04:38
3

Desde que seu host concorde com seu nome de domínio, especificá-lo ou não em /etc/hosts não alterará nada. Outra prática é especificá-lo como o parâmetro domain em /etc/resolv.conf . Não especificar isso poderia simplificar sua vida se, um dia, o administrador da rede o alterar. Especificar isso não muda nada, até onde eu sei.

Você definitivamente deve deixar 127.0.0.1 localhost ou 127.0.0.1 localhost localhost.localdomain em /etc/hosts . Alguns aplicativos podem começar a ter um comportamento realmente estranho, pois localhost é vinculado a qualquer coisa que não seja o endereço de loopback porque essa é uma configuração realmente inesperada.

    
por 02.06.2013 / 04:04
2

Você precisa especificar o nome de domínio totalmente qualificado na primeira posição após o endereço IP.

Como lemos em man 5 hosts :

For each host a single line should be present with the following information:

IP_address canonical_hostname [aliases...]

Se não seguir a regra, algum software poderá quebrar. Por exemplo, o sistema de gerenciamento de configuração do Puppet pode começar a alterar seu host para frente e para trás em cada execução apenas porque você não especificou a parte do domínio ou porque colocou o alias sem domínio na linha antes do FQDN.

    
por 17.01.2016 / 16:16
0

Não tenho certeza se isso é realmente "opcional" (como Patrick indicou acima). Acabei de rastrear um problema com permissões do nfs sendo revertidas para nobody: nobody. Parece que para as permissões funcionarem corretamente com montagens nfs (usando idmapd), o nome de domínio do servidor deve corresponder exatamente ao nome de domínio do cliente. De alguns docs, encontrei - hostname -f menos que o nome do host atual deve ser idêntico entre cliente e servidor OU você precisa especificar um nome de domínio para o cliente em /etc/idmapd.conf , o que significa cada cliente.

Existe uma regra oficial sobre onde especificar o nome do domínio? O comando domainname parece não pegar em / etc / hosts .. então colocar / etc / hosts me incomoda, já que significa que ele é armazenado em vários locais no sistema de arquivos.

    
por 30.07.2018 / 22:20

Tags