Arquivo host x DNS
Eu não acho que isso precise de muita explicação, então vou ser breve. O objetivo do arquivo hosts é definir os mapeamentos do host para o endereço IP que não dependem do DNS. O mais importante para um servidor é o próprio nome do dispositivo, porque é tolice que um problema com o seu servidor DNS impeça que o seu dispositivo seja capaz de se referir a si mesmo pelo nome.
Desde que usemos apenas arquivos host, não precisamos usar domínios. DNS não está envolvido, então quem se importa? Infelizmente, à medida que nossa rede cresce, torna-se menos sustentável ter cada dispositivo rastreando independentemente o nome de todos os dispositivos em nossa rede. Isso nos leva a usar o DNS e introduz alguns novos obstáculos logísticos.
Nome do host vs. FQDN
Nomes de host são nomes de dispositivos ou nomes de nós, se você preferir. É um nome de identificação exclusivo que é significativo para o proprietário do dispositivo e não necessariamente significativo ou até mesmo exposto a pessoas que consomem os serviços no dispositivo. Isso é o que a Linode quer dizer quando diz que o nome não precisa ter nada a ver com os serviços que você está hospedando.
Por exemplo, digamos que você tenha uma empresa chamada Contoso e opere um site chamado example.com
. O site está hospedado em seis máquinas, denominadas dalek01
a dalek06
. Tudo o que o mundo exterior precisa saber é que eles podem obter o site que desejam se conectarem www.example.com
em seu navegador da web. Os Lordes de Tempo excessivamente inquisitivos não precisam se preocupar com o fato de que o pedido deles para www.example.com
foi atendido por dalek03
.
Por si só, um nome de host não tem necessariamente qualquer coisa para fazer com o DNS. É apenas o nome do dispositivo e nem tem necessariamente um sufixo de domínio associado a ele. Até agora é simples!
Agora, tornamos as coisas um pouco mais complicadas. Hora da história!
- Sua empresa, a Contoso, possui muitas máquinas de área de trabalho que se comunicam com o cluster dalek em uma rede privada.
- Quando há um problema em um dos servidores, você precisa fazer login no dispositivo específico com o problema. Não podemos nos conectar ao
www.example.com
, porque ele é hospedado por várias máquinas diferentes. Ainda bem que temos um nome exclusivo para o servidor com um problema! - Como temos uma grande rede de dispositivos, é mais comum querermos gerenciá-los com o DNS. Isso significa que precisamos colocar os nomes de host
dalek01
adalek06
em um domínio DNS em algum lugar. Felizmente, possuímoscontoso.com
(em homenagem a nossa empresa), completamente separados dewww.example.com
, que pode ser um de nossos clientes. - Como a Internet não precisa conhecer nossos endereços IP internos, mantemos um domínio DNS privado chamado
corp.contoso.com
. Todas as nossas máquinas desktop são configuradas com um sufixo de pesquisa DNS decorp.contoso.com
. Isso significa que, se criarmos uma entrada de DNS chamadadalek01.corp.contoso.com
, qualquer pessoa em nossa rede poderá acessar essa máquina simplesmente conectando-se adalek01
com seu cliente SSH. Conveniente! -
dalek01
sabe que é chamadodalek01
porque nós o colocamos no arquivo hosts. Queremos que ele saiba que também é chamadodalek01.corp.contoso.com
, mas não queremos que ele dependa do DNS para saber seu próprio nome. Isso seria bobo. Portanto, definimos um alias paradalek01.corp.contoso.com
no arquivo de hosts emdalek01
para que ele conheça todos os seus nomes. - Enquanto isso, as pessoas continuam a usar
www.example.com
, alheio ao fato de que você tem seis servidores denominadosdalek01
adalek06
, o fato de sua empresa ser chamada Contoso (seus clientes à parte) ou de fazer coisas práticas para seus funcionários, você criou registros DNS paradalek01
adalek06.corp.contoso.com
.
Colocando tudo junto
- Seu nome de host é significativo para você e para as pessoas que executam o servidor, não necessariamente para as pessoas que usam seus serviços.
- Os nomes de host não precisam ser armazenados no DNS (ou ter um domínio DNS), a menos que você tenha vários dispositivos compartilhando uma rede privada.
- É bobo que um servidor dependa do DNS para falar consigo mesmo.
- Colocar seus nomes de host no DNS cria a necessidade de definir também esse FQDN em seu arquivo host, para que ele não dependa do DNS para se comunicar usando o FQDN. (como dito, seria bobo)
Espero que isso cubra todas as bases.