O DNS é o mais poderoso em seu império auto-hospedado, mantendo sua rede segura e facilitando o acesso aos seus aplicativos. Juntamente com algumas regras de firewall apropriadas, isto constitui a base para uma rede doméstica resiliente, mas é um problema sobre o qual a maioria das pessoas não fala.

É uma dor de cabeça para consultas DNS provenientes de dispositivos locais, bem como de seus dispositivos, se estiverem fora da sua rede. Um serviço, vários endereços IP e fazê-los funcionar corretamente pode ser uma tarefa difícil. Nem todo mundo deseja instalar o Tailscale nos dispositivos de seus amigos e familiares, ou espera que eles se lembrem de usá-lo, e a opção mais fácil é configurar um DNS compartilhado para que os nomes de domínio usados ​​pelos seus serviços sejam resolvidos independentemente de sua localização.

Configurar o DNS local foi uma das melhorias mais fáceis que fiz na minha rede doméstica

O controle local abre tantas possibilidades

O problema é que ninguém fala sobre auto-hospedagem

Não é necessariamente DNA, mas também pode ser o que está acontecendo aqui

Problemas de DNS são a ruína de qualquer host próprio e existem algumas pequenas maneiras de corrigi-los, mas é sempre melhor usar as correções recomendadas. Digamos que estamos tentando acessar nosso servidor Jellyfin, então definimos os registros A em nosso registrador de domínio como para fornecer jellyfin.exemplo.com resolve para o mesmo endereço IPindependentemente de onde nossos dispositivos estejam localizados. O problema é que, se estivermos em nossa rede doméstica, o tráfego terá que ir para os servidores de nomes e depois voltar para nossa rede doméstica, causando um hairpin NAT e também latência adicional.

Isso não é bom e a latência adicional é apenas parte do problema. Isso pode quebrar o OAuth se você proteger esses aplicativos dessa maneira ou se precisar hackear as entradas do arquivo host em todos os dispositivos usados ​​para resolvê-los adequadamente. Depois, há a dor de cabeça de manter todas essas pequenas melhorias, e existe uma maneira melhor.

A solução é hospedar automaticamente um servidor DNS com funcionalidade de horizonte dividido

Technitium é meu servidor DNS favorito porque suporta DNS compartilhado, bem como bloqueio de anúncios, zonas e clusters. Você vai precisar Horizonte dividido aplicativo da loja de aplicativos interna e é muito fácil de configurar. Basicamente, permite usar o mesmo nome de domínio para vários endereços IP, dependendo onde vem o pedido. As solicitações da sua rede doméstica serão atendidas a partir do endereço IP local, enquanto as solicitações de dispositivos móveis, etc., serão atendidas a partir do endereço IP público.

Split DNS é a solução para a maioria dos seus problemas de auto-hospedagem

Isso resolve os quatro principais problemas de auto-hospedagem que seriam irritantes de resolver de outra forma

Para que o DNA dividido funcione corretamente, precisamos primeiro de algumas coisas. Um bom esquema de nomenclatura para domínios usados ​​em nossos aplicativos, de preferência com um domínio que você controla, e use um subdomínio FQDN para cada aplicativo, por exemplo. jellyfin.domain.com, ha.domain.com, ou auth.domínio.com. Queremos apenas um domínio por aplicativo porque é mais fácil vincular vários endereços IP e então dividir o DNS funciona conforme o esperado.

Também queremos que cada cliente use nosso próprio servidor DNS hospedado para que nada passe pelo DNS público. Deveria apenas incluem registros A/AAAA para nomes de domínio que hospedamos, por ex. jellyfin.domain.com resolvendo para 10.0.0.20. Qualquer outra resolução de DNS deve ser encaminhada ou resolvida normalmente. Se você já tiver um proxy reverso configurado, use uma entrada curinga interna que concederá acesso automaticamente aos serviços locais quando eles forem adicionados ao proxy.

As duas últimas coisas a ter em mente são que, ao resolver de dentro de sua rede doméstica, IPs privados internos devem ser preferidos para evitar erros de NAT e roteador, e manter um documento em algum lugar com uma lista de zonas internas, nomes de host ignorados e quais serviços de resolução em quais redes para que você tenha um registro se algo der errado.

Vantagens do DNA dividido

O DNA dividido evita problemas antes que se tornem problemas:

  • Evita grampos NAT
  • Permite que você use o mesmo nome de host em LAN, VPN e rede móvel
  • Garante que o serviço correto seja usado ao reutilizar nomes
  • Elimina OAuth e redireciona dores de cabeça

O DNS dividido não leva muito tempo para ser configurado e você pode usar o resolvedor DNS de sua preferência. Prefiro o Technitium porque é fácil realizar outras tarefas, mas você pode fazer a mesma coisa com Pi-hole ou Unbound ou BIND9 ou PowerDNS ou qualquer servidor que desejar.

Com DNA dividido, você pode:

  • Para clientes LAN: homeassistant.example.com → 10.0.0.40 (LAN HA).

  • Para clientes VPN: homeassistant.example.com → 100.x.x.x (Nó da escala caudal).

  • Para clientes da Internet: homeassistant.example.com → Cloudflare/VPS IP.

Isso garante que seus dispositivos sempre obtenham o endereço IP correto com base em sua localização, proporcionando a melhor latência disponível. Também é muito mais fácil de manter em geral porque você só precisa definir o DNS no servidor, em vez de arquivos de hosts espalhados em cada dispositivo. E gosto de usar o OAuth para facilitar a segurança, mas ele falha se não obtiver o domínio de redirecionamento esperado. Com o DNS dividido, o provedor OAuth sempre vê o mesmo nome de domínio, mesmo que o endereço IP mude, facilitando sua vida.

Dividi meu NAS em três servidores e agora meu laboratório doméstico está funcionando melhor do que nunca

Mudei de um servidor grande e vários servidores menores foram benéficos.

O DNS dividido demora um pouco para ser configurado, mas evita muita dor de cabeça

Quando seu servidor DNS está executando DNS dividido, você não precisa mais se preocupar com a origem de suas solicitações de DNS. Já se foram os dias de marcar endereços IP internos e externos; tudo que você precisa é do subdomínio configurado para cada aplicativo auto-hospedado. O servidor DNS direcionará suas solicitações para o destino correto dependendo se o dispositivo está na rede local. A configuração final é certifique-se de que nada possa ignorar seu servidor DNS, então seus domínios sempre serão resolvidos para os serviços corretos.

Link da fonte