Digamos que eu tenha várias máquinas (ou VMs) em uma LAN interna (classe 10.0 ou 192.168), que precisam se comunicar entre si, mas em vez de configurar um arquivo um tanto dinâmico e tedioso para manter atualizado o arquivo /etc/hosts (como novo VMs são adicionadas de vez em quando), gostaria de configurar um servidor DNS interno. Todas as minhas máquinas de teste e VMs estão executando Linux. Tenho algumas perguntas a esse respeito:
- Posso configurar o servidor DNS? Posso usar um domínio falso (digamos "example.com", pois está reservado) como meu domínio conhecido internamente na rede privada?
- Posso configurar o servidor DNS para que o /etc/resolv.conf aponte para este servidor para resolver todos os endereços IP da máquina para hosts neste domínio privado/falso? No entanto, para um domínio existente real/real, o servidor DNS deve apontar ou buscar endereços IP resolvidos de um servidor DNS real em cascata (como um servidor DNS público)? Este último é para acesso à Internet pública em geral a partir das máquinas de teste, através de um NAT-Proxy.
- Eu poderia fazer algo dessa natureza, digamos, TinyDNS? Acho o Bind um pouco intimidante e talvez um exagero para minhas necessidades.
Responder1
A resposta curta é sim e não importa se o seu domínio é real ou falso. Geralmente, é melhor usar algo que você possui (ou um subdomínio de algo que você possui) para evitar possíveis problemas no futuro. Usar um domínio real de sua propriedade também torna possível obter certificados reais (publicamente confiáveis) para nomes nesse domínio sem a necessidade de criar uma PKI interna.
Praticamente qualquer software DNS pode oferecer suporte ao que você está tentando fazer. Ele atuará como um servidor DNS "autoritário" e "recursivo". Será oficial para a example.com
zona (ou qualquer outra) e a recursão é a parte que permite que consultas para as quais não é oficial sejam resolvidas na Internet.
Portanto, seus clientes apontam apenas para o seu servidor DNS no resolv.conf. Consultas sobre qualquer coisa são example.com
resolvidas usando seus registros. Consultas sobre qualquer outra coisa farão com que o servidor DNS busque respostas na Internet, (provavelmente) as armazene em cache e as retorne como respostas "não autorizadas" ao cliente.
Responder2
eu usodnsmasqpara fins semelhantes. Eu tenho ele rodando em um Raspberry Pi. Ele serve como servidor DNS local para minha rede, para que todos os clientes o consultem. Se o domínio não estiver em seu banco de dados local ou cache, ele faz uma consulta a um servidor DNS da Internet (fiz alguns testes para ver qual tinha o tempo de resposta mais rápido e os selecionei).
Com esta configuração, você pode ter domínios reais e “falsos”. Por exemplo, ao trabalhar em um site, posso alterar o endereço IP do domínio real para um endereço local de trabalho em andamento no servidor dnsmasq. Quando termino e quero acessar o site real na Internet, basta remover a configuração. (Lembre-se de que esta é uma rede pequena sobre a qual tenho controle total. Em um cenário mais complicado, você não gostaria de mudar as coisas dessa maneira).
No dnsmasq, você pode fazer:
address=/myfakedomain.com/10.16.1.20
para redirecionar consultas de myfakedomain.com para o endereço IP especificado. Você pode até fazer coisas como:
address=/plex/10.16.1.55
para permitir que os usuários digitem palavras-chave e acessem serviços na rede.
Eu também o uso como meu servidor DHCP, e essa é uma maneira de garantir que ele seja fornecido como o servidor DNS primário da rede.
Responder3
Tente usar esta solução:https://github.com/mocktools/ruby-dns-mock É fácil imitar qualquer tipo de registro DNS!