Como executar seu próprio servidor DNS em sua rede local

Executar seu próprio servidor DNS é uma ótima maneira de acelerar a capacidade de resposta da rede, reduzir a dependência da infraestrutura pública e se beneficiar de recursos adicionais, como roteamento de nome de host. Veja como configurar um servidor DNS em uma máquina Linux usando Dnsmasq.

índice

  1. O que é DNS?
  2. Por que executar seu próprio DNS?
  3. DNS com DNSmasq
  4. Começar
  5. Mapeando nomes de host para IP
  6. teste seu servidor
  7. Configuração de rede
  8. Conclusão

O que é DNS?

DNS é o sistema que traduz um nome de domínio como example.com para o endereço IP numérico do seu servidor. Isso pode parecer 127.0.0.1 . Sempre que você fizer uma solicitação de rede usando um nome de domínio, seu sistema realizará uma pesquisa de DNS para determinar o endereço do servidor a ser contatado.

Isso adiciona sobrecarga a cada solicitação que você faz. Embora seu dispositivo armazene em cache as respostas de DNS, as visitas a novos domínios passarão por uma viagem de ida e volta de DNS antes do início da solicitação real. Isso ocorre no nível da pilha de rede do sistema operacional, que é invisível para o usuário.

Os ISPs geralmente executam servidores DNS. Você provavelmente confia no servidor do seu ISP se usar as configurações padrão em seu roteador e dispositivos. Outros servidores DNS públicos estão disponíveis por meio de provedores como Cloudflare e Google.

Por que executar seu próprio DNS?

A execução de seu próprio servidor DNS oferece mais controle sobre sua rede. Um motivo comum é poder configurar mapeamentos de domínio em toda a rede, como web-server para 192.168.0.101 . Configurar seu roteador para usar seu DNS faria com que qualquer dispositivo conectado pudesse fazer login em 192.168.0.101 usando http://web-server .

Ter seu próprio servidor DNS permite que você centralize suas configurações em um local em vez de aplicá-las individualmente a /etc/hosts em cada dispositivo. Eles se aplicarão a tudo que você conectar à sua rede, incluindo hardware incorporado que não oferece outra maneira de personalizar sua pilha de roteamento.

Um servidor DNS interno também pode melhorar o desempenho e fornecer um nível adicional de resiliência. Interrupções de DNS em grande escala não são desconhecidas; Usar um servidor personalizado com um cache de longa duração para os serviços críticos com os quais você interage pode ajudá-lo a superar o tempo de inatividade no provedor upstream selecionado.

DNS com DNSmasq

Dnsmasq é um servidor DNS leve incluído na maioria das distribuições Linux. Também é muito fácil de configurar.

Antes de começar, vale a pena pensar sobre qual funcionalidade seu servidor DNS deve fornecer. Neste guia, veremos como configurar o Dnsmasq com cache local, alguns caminhos de domínio personalizados e o Google 8.8.8.8 como nosso provedor de DNS upstream.

O fluxo de roteamento ficará assim:

  • O roteador de rede recebe uma solicitação de um de seus dispositivos conectados. O roteador será configurado para usar o host Dnsmasq como servidor DNS.
  • Dnsmasq verifique se você tem uma rota definida para o nome de domínio, como web-server para 192.168.0.101 . Se a solicitação foi para http://web-server/example-page , envie 192.168.0.101 de volta ao roteador.
  • Quando o Dnsmasq não tiver uma rota correspondente, ele encaminhará a solicitação de DNS para o Google 8.8.8.8 , permitindo a resolução na Internet pública. Isso garante que você ainda possa alcançar a web mais ampla ao usar seu DNS.

Você não precisará fazer alterações de configuração nos dispositivos clientes. Qualquer coisa atrás do seu roteador acabará fazendo consultas DNS por meio do Dnsmasq. No entanto, vale a pena notar que todos os sistemas operacionais de desktop e móveis populares suportam a configuração de um servidor DNS, para que você possa configurar dispositivos individuais para usar o Dnsmasq sem habilitá-lo no nível do roteador.

Começar

Vamos supor que você já tenha uma máquina Linux em funcionamento pronta para hospedar o Dnsmasq. O Dnsmasq não consome muitos recursos: se você tiver alguns dispositivos clientes, ele funcionará facilmente em um Raspberry Pi.

Seu host deve receber um IP estático. A partir daqui, o IP 192.168.0.1 refere-se ao servidor Dnsmasq.

Certifique-se de que o Dnsmasq esteja instalado:

 # Assumindo um sistema Debian apt update apt install dnsmasq

O arquivo de configuração Dnsmasq geralmente está localizado em /etc/dnsmasq.conf . Isso é pré-carregado com a configuração inicial. Algumas alterações são necessárias para que o Dnsmasq funcione efetivamente em um cenário de rede local. Execute sudo nano /etc/dnsmasq.conf para abrir o arquivo e, em seguida, use o atalho de teclado Ctrl + W para localizar e descomentar as seguintes linhas:

 #domínio necessário #bogus-priv

Exclua o caractere # do início de cada linha. Veja o que essas configurações permitem:

  • domain-needed – Isso impede que o Dnsmasq encaminhe nomes locais sem uma parte de domínio para o servidor DNS upstream. Em nossa instalação, isso significa que example.com estará qualificado para resolução por meio do Google, mas example ou web-server não. Reserve nomes sem ponto para sua rede local.
  • bogus-priv – Impede que consultas de pesquisa DNS reversa sejam encaminhadas para o servidor DNS upstream. Isso significa que IPs internos como 192.168.0.101 nunca serão expostos ao Google. Não habilitá-lo pode vazar involuntariamente sua arquitetura de rede interna para seu provedor upstream.

Para configurar seu servidor DNS upstream, adicione uma nova linha ao seu arquivo de configuração:

 servidor=8.8.8.8 servidor=4.4.4.4

Isso diz ao Dnsmasq para encaminhar consultas não resolvidas para 8.8.8.8 . Se esse servidor não estiver disponível, 4.4.4.4 será usado. Esses endereços são os resolvedores primários e secundários do serviço DNS do Google.

Em seguida, ajuste o tamanho do cache. O padrão é um valor relativamente baixo de 150 solicitações em cache. Aumentar isso permitirá que o Dnsmasq execute mais pesquisas do cache, reduzindo a latência da rede. Encontre a linha cache-size , descomente e altere seu valor:

 cache-size=1000

Salve e feche o arquivo agora.

Mapeando nomes de host para IP

Existem várias maneiras de mapear nomes de host para seus endereços IP. O mais simples é adicionar entradas ao arquivo /etc/hosts do seu servidor existente. O Dnsmasq carrega automaticamente as regras desse arquivo como parte de sua configuração padrão.

Abra /etc/hosts e adicione seus caminhos ao final do arquivo. O endereço IP vem primeiro, seguido do nome a ser atribuído:

 192.168.0.101 servidor web 192.168.0.105 gateway.lan

Essas linhas significam que qualquer solicitação de http://web-server será direcionada para 192.168.0.101 enquanto http://gateway.lan terminará em 192.168.0.5 . Salve e feche o arquivo quando terminar de mapear seus dispositivos.

teste seu servidor

Reinicie o Dnsmasq para aplicar todas as alterações:

 sudo service dnsmasq restart

Verifique se o servidor está funcionando corretamente:

 status dnsmasq do serviço sudo

Você deve ver active (running) exibido em verde. Se isso não acontecer, verifique as linhas de log na parte inferior das informações de status para descobrir o que está errado.

Agora você está pronto para testar seu servidor. Você pode tentar pesquisas de DNS manuais com a ferramenta de dig . Você pode precisar instalar o pacote dnsutils primeiro.

 dig google.com @localhost dig gateway.lan @localhost

Ambos os comandos devem exibir um endereço IP na ANSWER SECTION . No caso de gateway.lan , o resultado deve ser 192.168.0.5 de acordo com a regra de roteamento definida em /etc/hosts . A parte @localhost dos controles instrui o dig para consultar seu servidor DNS local.

Configuração de rede

A última etapa é configurar o roteador de rede para realizar pesquisas de DNS por meio do servidor Dnsmasq. As etapas para isso variam dependendo do equipamento de roteamento que você está usando.

Depois de encontrar a página de configuração correta, defina o IP do seu servidor ( 192.168.0.1 neste guia) como o servidor DNS primário do roteador. É uma boa ideia configurar um provedor de DNS público, como o do Google. 8.8.8.8 , como servidor secundário. Isso garante que você ainda terá acesso à Internet se o servidor DNS falhar e ficar offline.

Agora, todos os dispositivos conectados ao seu roteador consultarão o DNS por meio de sua instância Dnsmasq. Eles poderão se comunicar com seus dispositivos por meio de nomes atribuídos, por exemplo web-server E gateway.lan e aproveitar o cache DNS em toda a rede.

Conclusão

O DNS é um tópico complexo, mas o Dnsmasq facilita o funcionamento de um servidor básico. Existem muitas outras configurações que você pode explorar depois de colocar o básico em funcionamento. Eles permitem filtrar consultas, gerenciar retransmissões e proxies, executar scripts quando ocorrem eventos e definir outros tipos de registros DNS, como resultados MX para servidores de e-mail.

Dnsmasq geralmente não precisa de muita intervenção manual uma vez que está ativo. Você pode monitorar os logs usando service dnsmasq status ou systemctl status dnsmasq . Agora você está pronto para aproveitar seu servidor DNS auto-hospedado, maximizando o desempenho e permitindo que você use nomes de domínio internos para acessar dispositivos na rede local.

  • O que é um endereço MAC e como ele funciona?
  • Como mover alterações para outro branch no Git

descubra mais conteúdo

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

O que é uma carga fantasma?

O que é um DNS local?

O DNS ou Domain Name System pertence à família de protocolos da Internet e é usado para resolver nomes de domínio, ou seja, para determinar o endereço IP do servidor onde está hospedado o domínio que queremos acessar.

Como configurar um servidor DNS local?

Criar uma zona DNS

  1. No Gerenciador de Servidores, clique em IPAM.
  2. No painel de navegação, em MONITORAR E GERENCIAR, clique em Servidores DNS e DHCP.
  3. Encontre o servidor onde você deseja adicionar uma zona e clique com o botão direito do mouse no servidor.
  4. A caixa de diálogo Criar zona DNS é aberta.

Como saber meu DNS local?

Para fazer isso, pressione a combinação de teclas Windows + R e digite o comando cmd.exe. Um terminal do Windows é então iniciado. Agora, digite o comando ipconfig /all e ele mostrará muitos dados sobre sua conexão.

Como funciona um servidor DNS local?

Basicamente, o DNS é o equivalente da Internet a uma lista telefônica. O DNS mantém um diretório de nomes de domínio e converte esses nomes em endereços de protocolo de Internet (IP). A maneira como o DNS funciona é como ativar a seção de contatos do seu smartphone.

Ir arriba