Para qual IP o nome do host deve ser resolvido?

4

Qual IP deve hostname machine.example.com resolver em /etc/hosts ?

  • Para o host local (127.0.0.X),
  • para uma rede local (10.X.X.X ou 192.168.X.X),
  • ou para o servidor externo IP visível de fora (X.X.X.X)?
por Vladislav Rastrusny 20.04.2011 / 09:54

5 respostas

4

Tudo depende das suas necessidades!

Em um caso normal, eu sugeriria usar o IP que causa menos esforço. Por exemplo:

127.0.0.1 fará com que o tráfego se mova somente dentro da pilha TCP.

Se você colocar seu endereço de LAN, o tráfego em potencial pode ser enviado pelo seu computador e, em seguida, pelo seu roteador / switch.

Se você inserir o endereço IP público, o tráfego poderá deixar o seu nic, através do roteador, retornar do seu ISP para o seu roteador e, em seguida, voltar ao seu nic.

Na realidade, as várias peças do kit devem ser inteligentes o suficiente para não fazer as coisas chegarem tão longe, mas poderiam potencialmente.

Por outro lado, pode ser vantajoso para uma máquina contatar a si mesma como se fosse um servidor público, mas na minha experiência isso é apenas para propósitos de desenvolvimento, onde por exemplo uma pilha LAMP básica para web dev tem o banco de dados na mesma máquina que o servidor da Web, mas no caso de produção seria separado. Pode ser bom certificar-se de que tudo funciona mais como o caso de produção, fazendo com que ele fale sobre os IPs que não são do host local ...

    
por 20.04.2011 / 10:45
1

Como sua máquina tem um IP público, é bom apontar o nome do host para ela.

    
por 20.04.2011 / 09:58
1
Em geral, eu concordo com o @BParker em que há cenários em que cada um é mais útil, e que geralmente torná-lo um alias de localhost seria o uso mais eficaz de recursos que revelam algum tipo de ambiente de teste.

No entanto, eu também gostaria de sugerir que a solução mais gerenciável é não ter essa entrada e confiar no DNS. A menos que você configure seu DNS para fazer truques especiais para respostas locais, isso geralmente lhe dará o endereço roteavel do mundo para uma máquina, mas lhe dará a flexibilidade de gerenciar serviços de rede sem procurar entradas vagas em cada máquina. Se você tiver serviços que se conectam com o melhor dos nomes machine.domain.com ou service.domain.com , você pode alterar onde os serviços são hospedados e mover máquinas sem ter que reprogramar seu software ou fazer alterações nos arquivos /etc/hosts espalhados.

    
por 20.04.2011 / 11:00
1

Isso costumava ser escrito na parte superior do arquivo hosts para alguma distribuição do Linux:

# By the way, Arnt Gulbrandsen <[email protected]> says that 127.0.0.1
# should NEVER be named with the name of the machine.  It causes problems
# for some (stupid) programs, irc and reputedly talk. :^)

Os endereços IP são realmente ligados a interfaces, não a máquinas, então, de acordo com a teoria, deve haver um nome diferente por interface - use um domínio privado ou subdomínio para colocar os endereços internos.

Qualquer pilha de rede meio decente reconhecerá como tal um endereço que tenha sido configurado em uma interface local, e retornará pacotes de loop bem antes de atingir o driver da interface de rede, sem falar na própria rede; 127.0.0.1 não deve ser mais rápido de todo. Se você não estiver convencido, faça o ping de 127.0.0.1, depois o seu endereço local e compare os RTTs. No meu sistema, ambos são igualmente rápidos e uma ordem de grandeza mais rápida que o ping no gateway local.

    
por 20.04.2011 / 11:49
-2

Senso comum:

se você tem um domínio externo, que bom localhost ou rede local fazem? Nenhum.

Mesmo internamente, se eu inserir machine.example.com, não sou niterested em localhost.

    
por 20.04.2011 / 10:02

Tags