Como Dan mencionou, você pode usar o arquivo /etc/hosts
do sistema para realizar o que deseja. Isso não é "configurar um TLD" de maneira significativa, pois, na verdade, não tem nada a ver com o DNS. /etc/hosts
é (... normalmente ...) referenciado pelo seu sistema antes que verifica com o DNS. O arquivo hosts
simplesmente mapeia nomes para endereços e não sabe nada sobre domínios. Então, se você colocar isso em /etc/hosts
:
127.0.0.1 localhost apple.com
E então faça isso:
curl http://apple.com/
curl
tentará se conectar a 127.0.0.1
. Mas se você fizer isso:
curl http://www.apple.com/
Seu sistema irá (... provavelmente ...) referir-se ao DNS, porque www.apple.com
não foi encontrado no arquivo hosts
. Como a maioria dos softwares usa os recursos de resolução de nomes de sistemas (controlados por /etc/nsswitch.conf
), isso funcionará para quase tudo. É simples, mas existem algumas desvantagens:
- Se você tiver mais de uma máquina, será necessário manter o arquivo
hosts
atualizado em todas elas. - Você não pode fornecer nada além do mapeamento de nome para endereço usando o arquivo
hosts
. Portanto, nenhum registroMX
ouSRV
, nenhum registroCNAME
e assim por diante.
A próxima solução mais fácil é usar dnsmasq , que é uma ferramenta muito bacana que fornece DNS, DHCP, e serviços TFTP - em outras palavras, praticamente tudo que você precisa para uma pequena rede. Usando dnsmasq
, você pode:
- Crie seu próprio TLD para uso na sua rede,
- Forneça o endereço IP do seu servidor de nomes local automaticamente aos clientes via DHCP,
- Substituir respostas de servidores DNS públicos (assim, você pode substituir "www.google.com" por um servidor interno de sua preferência, por exemplo).
dnsmasq
está muito bem documentado, mas se você tiver perguntas específicas depois de ver a documentação, volte e verei o que posso fazer.
Aqui está um exemplo bem curto ... se você executar isto:
dnsmasq -C /dev/null --local=/localnet/ -s localnet -E
O -C /dev/null
está lá para garantir que estamos começando com uma configuração "vazia", pois não sei o que pode estar no seu local /etc/dnsmasq.conf
. Esta linha de comando, dnsmasq
, disponibilizará quaisquer entradas no seu arquivo /etc/hosts
via DNS no domínio "localnet". Por exemplo, se eu tivesse o seguinte no meu arquivo hosts
:
10.10.10.10 fluff
10.10.10.11 nutella
Eu poderia fazer isso em um sistema que foi configurado para usar minha dnsmasq
instance para o DNS:
$ host fluff.localnet
fluff.localnet has address 10.10.10.10
E eu também posso usar nomes não qualificados:
$ host nutella
nutella has address 10.10.10.11
Você pode ficar bastante chique com dnsmasq
e provavelmente é mais do que suficiente para uma rede doméstica. Se você precisasse atender a uma população maior - e fornecer serviço DNS redundante, exibições dentro / fora, ACLs e assim por diante -, então você procuraria algo como BIND , mas isso não é necessário para o que você está fazendo (ou para o que eu estou fazendo, para esse assunto - eu uso dnsmasq
em casa).