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


0
Ilustração estilizada do texto "DNS" em um fundo de circuito azul
jivacore / Shutterstock.com

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

O que é DNS?

DNS é o sistema que traduz um nome de domínio como example.com para o endereço IP numérico de 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 executará uma pesquisa de DNS para determinar o endereço do servidor que deve entrar em contato.

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

Os ISPs geralmente executam servidores DNS. Você provavelmente está contando com o servidor do seu ISP se estiver usando as configurações padrão do roteador e dos dispositivos. Outros servidores DNS públicos estão disponíveis em provedores como Cloudflare e Google.

Por que executar seu próprio DNS?

Executar seu próprio servidor DNS oferece mais controle sobre sua rede. Uma motivação comum é ser capaz de configurar mapeamentos de domínio em nível de rede, como web-server para 192.168.0.101. Configurar seu roteador para usar seu DNS resultaria em qualquer um dos seus dispositivos conectados sendo capaz de acessar 192.168.0.101 através da http://web-server.

Propaganda

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

Um servidor DNS interno também pode melhorar o desempenho e fornecer uma camada extra de resiliência. Interrupções de DNS em larga escala não são inéditas; usar um servidor personalizado com um cache de longa duração para serviços críticos com os quais você interage pode ajudá-lo a evitar o tempo de inatividade do provedor upstream selecionado.

DNS com Dnsmasq

Dnsmasq é um servidor DNS leve incluído na maioria das distribuições Linux. Também é revigorante e simples de configurar.

Antes de começar, vale a pena pensar sobre que funcionalidade você precisa que seu servidor DNS forneça. Neste guia, veremos a configuração de Dnsmasq com cache local, algumas rotas de domínio personalizadas e 8.8.8.8 como nosso provedor de DNS upstream.

O fluxo de roteamento será semelhante a este:

  • O roteador de rede recebe uma solicitação de um de seus dispositivos conectados. O roteador será configurado para usar o host Dnsmasq como seu servidor DNS.
  • O Dnsmasq verificará se há uma rota definida para o nome de domínio, como web-server para 192.168.0.101. Se o pedido fosse para http://web-server/example-pagevai enviar 192.168.0.101 de volta ao roteador.
  • Quando o Dnsmasq não tem uma rota correspondente, ele encaminha 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 acessar a web mais ampla ao usar seu próprio DNS.

Você não precisará fazer nenhuma alteração de configuração em seus dispositivos clientes. Tudo o que está atrás do seu roteador vai acabar fazendo consultas DNS via Dnsmasq. No entanto, é importante notar que todos os sistemas operacionais de desktop e móveis populares suportam a configuração de um servidor DNS, portanto, você pode configurar dispositivos individuais para usar Dnsmasq sem habilitá-lo no nível do roteador.

Começando

Vamos assumir que você já tem uma máquina Linux em funcionamento pronta para hospedar Dnsmasq. O Dnsmasq não exige muitos recursos – se você tiver poucos dispositivos clientes, ele será executado facilmente em um Raspberry Pi.

Propaganda

Seu host deve ter um IP estático atribuído. Daqui em diante, o IP 192.168.0.1 refere-se ao servidor Dnsmasq.

Certifique-se de que o Dnsmasq esteja instalado:

# Assuming a Debian system
apt update
apt install dnsmasq

O arquivo de configuração Dnsmasq geralmente está localizado em /etc/dnsmasq.conf. Este é pré-preenchido com as configurações iniciais. Algumas mudanças precisam ser feitas para que o Dnsmasq funcione efetivamente em um cenário de rede local. Corre sudo nano /etc/dnsmasq.conf para abrir o arquivo, use o atalho de teclado Ctrl + W para localizar e descomentar as seguintes linhas:

#domain-needed
#bogus-priv

Remova o # personagem desde o início de cada linha. Veja o que essas configurações estão habilitando:

  • domain-needed – Isso impede que o Dnsmasq encaminhe nomes locais sem uma parte do domínio para o servidor DNS upstream. Em nossa instalação, isso significa example.com será elegível para resolução por meio do Google, mas example ou web-server não vou. Ele reserva nomes sem ponto para sua rede local.
  • bogus-priv – Impede o encaminhamento de consultas de pesquisa inversa de DNS para o servidor DNS upstream. Significa IPs internos como 192.168.0.101 nunca será exposto ao Google. Não habilitar isso pode vazar acidentalmente a arquitetura de sua rede interna para o provedor upstream.

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

server=8.8.8.8
server=4.4.4.4

Isso instrui o Dnsmasq a encaminhar consultas não resolvidas para 8.8.8.8. Se esse servidor não estiver disponível, 4.4.4.4 será usado em seu lugar. Esses endereços são os resolvedores primários e secundários para o 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 forneça mais pesquisas do cache, reduzindo a latência da rede. Encontre o cache-size linha, descomente e mude seu valor:

cache-size=1000

Salve e feche o arquivo agora.

Mapeamento de nomes de host para IPs

Existem algumas maneiras diferentes de mapear nomes de host para seus endereços IP. O mais simples é adicionar entradas às existentes no seu servidor /etc/hosts Arquivo. O Dnsmasq carrega automaticamente as regras desse arquivo como parte de sua configuração padrão.

Propaganda

Abrir /etc/hosts e adicione suas rotas ao final do arquivo. O endereço IP vem primeiro, seguido pelo nome a ser atribuído:

192.168.0.101 web-server
192.168.0.105 gateway.lan

Essas linhas significam qualquer pedido para http://web-server será direcionado para 192.168.0.101 enquanto http://gateway.lan vai acabar em 192.168.0.5. Salve e feche o arquivo quando terminar de mapear seus dispositivos.

Testando Seu Servidor

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

sudo service dnsmasq restart

Verifique se o servidor está funcionando corretamente:

sudo service dnsmasq status

Você deveria ver active (running) exibido em verde. Caso contrário, verifique as linhas de registro na parte inferior das informações de status para descobrir o que está errado.

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

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

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

Configurando sua rede

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

Propaganda

Depois de encontrar a página de configurações 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 DNS público, como o do Google 8.8.8.8, como o servidor secundário. Isso garante que você ainda terá acesso à Internet se o servidor DNS travar e ficar offline.

Agora todos os dispositivos conectados ao seu roteador farão consultas DNS por meio de sua instância Dnsmasq. Eles poderão alcançar seus dispositivos pelos nomes atribuídos, como web-server e gateway.lane se beneficiar do cache DNS no nível da rede.

Conclusão

DNS é um tópico complexo, mas o Dnsmasq facilita a operação de um servidor básico. Existem muitas outras configurações que você pode explorar assim que tiver a funcionalidade principal funcionando. Eles permitem que você filtre consultas, gerencie retransmissões e proxies, execute scripts quando ocorrerem eventos e configure outros tipos de registro DNS, como resultados MX para servidores de e-mail.

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


Like it? Share with your friends!

0

What's Your Reaction?

hate hate
0
hate
confused confused
0
confused
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win

0 Comments

Your email address will not be published. Required fields are marked *

Choose A Format
Personality quiz
Series of questions that intends to reveal something about the personality
Trivia quiz
Series of questions with right and wrong answers that intends to check knowledge
Poll
Voting to make decisions or determine opinions
Story
Formatted Text with Embeds and Visuals
List
The Classic Internet Listicles
Countdown
The Classic Internet Countdowns
Open List
Submit your own item and vote up for the best submission
Ranked List
Upvote or downvote to decide the best list item
Meme
Upload your own images to make custom memes
Video
Youtube, Vimeo or Vine Embeds
Audio
Soundcloud or Mixcloud Embeds
Image
Photo or GIF
Gif
GIF format