Entender o nome do host e / etc / hosts

5

Em / etc / hostname, tenho myname .

Em / etc / hosts, tenho:

127.0.0.1   localhost.localdomain   localhost myname
::1     localhost.localdomain   localhost myname

Eu tenho uma vaga compreensão do que realmente é um nome de host e para que ele é usado.

Essas perguntas mais precisas podem me ajudar a entender melhor:

  1. Qual é o nome do meu host no exemplo acima? myname ou outra coisa? Se eu tivesse, em vez disso, myname.domain.com em /etc/hostname , qual seria o nome verdadeiro do meu host?

  2. No exemplo, o comando hostname retorna myname , enquanto o comando hostname -f retorna localhost.localdomain . Eu tinha em mente que /etc/hosts era apenas um mapeamento entre nomes e endereços IP. Parece servir outra função aqui. O que é um fqdn e para que é usado? Como é recuperado? Por que é localhost.localdomain ?

  3. Se eu tivesse myname.domain.com em /etc/hostname , hostname -f retornaria myname.domain.com . Por quê?

  4. Por que o fqdn não termina com um ponto nesses arquivos?

  5. São hostname -d e dnsmydomain equivalentes?

  6. Em que contexto eu posso usar meu hostname ( myname ) e quando eu tenho que usar meu fqdn ( localhost.localdomain )?

por Gradient 25.02.2015 / 20:53

3 respostas

5

  1. /etc/hostname contém o nome da máquina, conforme conhecido pelos aplicativos que são executados localmente. /etc/hosts e DNS associam nomes a endereços IP. myname pode ser mapeado para qualquer endereço IP que a máquina possa acessar, mas o mapeamento para 127.0.0.1 é não-estético.
  2. Não /etc/hosts , mas /bin/hostname serve outra função com -f .
  3. Porque /etc/hosts pode substituir o bom senso . Edite-o com cuidado e não deixe lixo depois de patches e experiências temporários.
  4. Ambos os estilos (⋯ . TLD . e co . TLD ) são aceitáveis. O primeiro é inequívoco, enquanto o último é onipresente.
  5. Não sabe o que dnsmydomain é, mas é improvável. Buscar algo em /etc/hosts não é tecnicamente "DNS".
  6. Lembre-se do ponto 1. Hostname - para aplicativos que são executados localmente; também para protocolos de rede tão peculiares como o SMB (samba). FQDN (se não for um fakery ou um espaço reservado como localhost.localdomain ) - para acessar a máquina de fora. O FQDN deve poder ser resolvido onde é usado.
por 12.09.2015 / 23:45
3

Eu absolutamente odeio quando alguém me diz para ler o manual, mas neste caso, por favor, dê uma olhada na página de manual para hostname e mais, se não todas as suas perguntas devem ser respondidas. Está escrito muito melhor do que eu poderia explicar.

Para fornecer alguma ajuda, alguns dos trechos que aparecem em suas perguntas são: - Seu nome de host é o que você vê em / etc / hosts. - O FQDN retornado é baseado no que o resolvedor retorna, portanto, por que você vê o valor em / etc / hosts sendo retornado, pois o resolvedor verifica primeiro o arquivo hosts e, em seguida, faz qualquer consulta DNS necessária.

O que eu não acredito é tocado na man page do nome do host (baseado na minha releitura da man page) é por isso que as entradas nos arquivos não terminam com um ponto.

Essa convenção é usada ao lidar com registros DNS. Os arquivos hostname e hosts não são registros DNS. Se você estivesse configurando essas entradas em bind para serem resolvidas para pesquisas de DNS, então o uso de um ponto pode entrar em jogo (confira este bom recurso: link ).

Além disso, lembre-se de que todos esses valores não são transmitidos do sistema. Portanto, se você quiser que outro sistema acesse com base no FQDN, ele será baseado no arquivo de hosts desse outro sistema ou na falta de entradas de hosts com base nas pesquisas de DNS que o sistema externo faz no FQDN para permitir que ele seja resolvido. sistema.

    
por 25.02.2015 / 21:25
1

Em resposta a

What if my IP is dynamic (DHCP) and changes from time to time? which address should I use as myname in /etc/hosts?

Deixem-me salientar, primeiro, que / etc / hosts é uma definição estática de nome para mapeamento de endereço para o host no qual ele está instalado, e é SOMENTE usado pelo host para converter o nome em endereço IP.

Portanto, existem dois pontos de vista a serem considerados - o host 'myname' e todos os outros.

Para esse host 'myhost', faça referência ao host atual usando 'localhost' (que é definido em / etc / hosts como 127.0.0.1) ou inclua 'myname' na linha / etc / hosts, que define o localhost assim que 'myname' sempre mapeia para, bem, localhost. Assim:

127.0.0.1 localhost myname

Então não importa qual endereço IP a INTERFACE recebe, você sempre terá um endereço que funcione (um bônus adicional é que você não precisa acessar o hardware para falar de 'myname' para 'myname' ').

Agora, para permitir que outros hosts localizem 'myhost' quando 'myhost' tiver um endereço IP dinâmico, você deverá usar o DNS e esse servidor DNS deverá manipular os mapeamentos atribuídos pelo DHCP. (Bem, ok, há outras soluções que eu posso pensar, mas tudo o que vem à mente se encaixa na categoria "além de bobo", IMHO. Bem, ok, há coisas que você pode fazer para o host para que ele diga o DNS onde está, mas essa é uma questão digna de um fluxo de perguntas / respostas completamente diferente aqui, IMHO)

    
por 29.05.2018 / 23:49