O servidor DNS (Domain Name System) foi criado para traduzir nomes de domínio em endereços IP e vice-versa, a fim de possibilitar o envio de pacotes de dados aos computadores de destino. Cada vez que inserimos um endereço no navegador da web, o o equipamento é responsável por enviar uma consulta ao servidor DNS cadastrado, solicitando o endereço IP que está associado ao nome de domínio pesquisado, esta pesquisa leva tempo e se for realizada em cada processo de acesso, o servidor DNS pode lidar com um grande número de solicitações que podem eventualmente causar seu colapso e seu resultado conseqüente é o acesso negado.
Para evitar isso, existe o cache DNS que é responsável por salvar localmente o endereço IP desse domínio para pular o processo de busca no próximo acesso, mas em vez disso é redirecionado levando este valor local e assim liberamos a carga para o servidor e ao mesmo tempo acessamos muito mais rápido. Mas o problema é que ter muito cache DNS hospedado pode afetar o desempenho do próprio navegador, por isso é recomendado seu lançamento, veremos como fazer esta tarefa no Linux.
1. Limpe o cache DNS usando systemd-resolve no Linux
O Ubuntu e outras distribuições baseadas em Debian usam o comando systemd-resolve, este comando é um daemon DNS integrado ao systemd e é um serviço do sistema que fornece resolução de nome de rede para aplicativos locais.
Este comando implementa um resolvedor de stub DNS / DNSSEC de validação e cache, bem como um resolvedor LLMNR e MulticastDNS. Os aplicativos locais podem enviar solicitações de resolução de nome de rede por meio de três interfaces:
- A API nativa com recursos completos do sistema resolvido é exposta no barramento.
- A API glibc getaddrinfo que é definida pelo RFC3493 e suas funções de resolução relacionadas, incluindo gethostbyname.
- Um ouvinte de stub DNS local é oferecido no endereço IP 127.0.0.53 na interface de loopback local, a partir daí os programas que geram solicitações de DNS diretamente, ignorando APIs locais, podem usar este stub para se conectar ao systemd resolvido
Passo 1
Para usar este comando, veremos primeiro as estatísticas de cache DNS no sistema:
sudo systemd-resolve -statistics
PROLONGAR
Passo 2
Agora, para limpar o cache DNS, executamos:
sudo systemd-resolve --flush-cachres
PROLONGAR
etapa 3
Como podemos ver, quando executamos as estatísticas novamente, o cache DNS foi limpo. Este é o método mais comum. Outras opções de uso para distribuições diferentes são:
No caso de usar RedHat ou ArchLinux
sudo systemctl restart nscd
2. Limpe o cache DNS usando dnsmasq ou nomeado no Linux
A seguir, veremos duas outras opções para limpar o cache
Limpe o cache DNS com DnsmasqDnsmasq é freqüentemente usado em servidores DNS locais ou roteadores, para limpar o cache DNS com este comando, devemos executar:
sudo systemctl restart dnsmasq
Limpe o cache DNS com BINDEste comando BIND é usado para servidores DNS especialmente projetados para tarefas específicas e para limpar o cache DNS, basta executar:
sudo systemctl restart nomeado
Simples assim, limpamos o cache DNS do Linux, melhorando assim o desempenho de nossos equipamentos através do terminal.