Resolução de Problemas de Conectividade de Rede

LinuxBeginner
Pratique Agora

Introdução

A conectividade de rede é um aspecto fundamental de qualquer ambiente de computação moderno. Embora muitas coisas possam dar errado, um dos problemas mais comuns é a falha na resolução do Sistema de Nomes de Domínio (DNS). DNS é o serviço que traduz nomes de domínio amigáveis para humanos (como www.google.com) em endereços IP que os computadores usam para se conectar uns aos outros. Se o DNS não estiver funcionando, você pode estar conectado à internet, mas ainda assim incapaz de acessar quaisquer websites.

Este laboratório fornece uma abordagem estruturada e prática para diagnosticar e resolver um problema de rede relacionado a DNS. Você aprenderá uma sequência de comandos para testar sua conexão, identificar o problema de DNS, corrigir a configuração e confirmar que sua conexão foi totalmente restaurada.

Ao final deste laboratório, você estará equipado com uma lista de verificação confiável de etapas iniciais de solução de problemas para lidar com desafios de conectividade DNS em um sistema Linux.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Confirmar o Problema Fazendo Ping em um Nome de Domínio

Ao solucionar problemas, o primeiro passo é sempre confirmar o problema. Uma maneira comum de testar a conectividade com a internet é usando o comando ping. Vamos tentar pingar um domínio bem conhecido, google.com. Usaremos a opção -c 4 para enviar apenas quatro pacotes.

Execute o seguinte comando no seu terminal:

ping -c 4 google.com

Você verá uma mensagem de erro indicando uma falha na resolução de nomes.

ping: google.com: Temporary failure in name resolution

Este erro nos diz que o sistema não conseguiu traduzir o nome de domínio google.com para um endereço IP. Isso sugere fortemente um problema com o DNS.

Isolar o Problema Fazendo Ping em um Endereço IP

Suspeitamos de um problema de DNS, mas precisamos confirmar se nossa conexão básica com a internet ainda está funcionando. Podemos fazer isso pingando um endereço IP público diretamente, o que ignora o processo de resolução de nomes DNS. Usaremos o IP do servidor DNS público do Google, 8.8.8.8.

Execute o seguinte comando:

ping -c 4 8.8.8.8

Desta vez, o ping deve ser bem-sucedido. Você verá respostas do servidor.

PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=116 time=1.23 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=116 time=1.28 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=116 time=1.30 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=116 time=1.25 ms

--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.230/1.265/1.301/0.026 ms

Como conseguimos pingar um endereço IP, mas não um nome de domínio, confirmamos agora que o problema está na resolução de DNS.

Inspecionar e Corrigir Configurações de DNS

Agora que sabemos que o DNS é o problema, vamos verificar o arquivo de configuração de DNS. No Linux, este é tipicamente o /etc/resolv.conf. Este arquivo informa ao sistema quais servidores DNS usar.

Vamos visualizar seu conteúdo:

cat /etc/resolv.conf

A saída mostrará o nameserver que foi configurado pelo nosso script de instalação.

nameserver 192.0.2.1

O endereço IP 192.0.2.1 é reservado para fins de documentação e testes; ele não aponta para um servidor DNS real. Esta é a causa do nosso problema.

Para corrigir isso, precisamos substituir o nameserver incorreto por um válido. Usaremos o servidor DNS público do Google, 8.8.8.8. Podemos sobrescrever o arquivo usando os comandos echo e tee. Isso requer privilégios de sudo.

echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf

Agora, visualize o arquivo novamente para confirmar a alteração.

cat /etc/resolv.conf

A saída agora deve mostrar o nameserver correto.

nameserver 8.8.8.8

Com um nameserver válido configurado, estamos um passo mais perto de resolver o problema.

Limpar o Cache DNS Local

Seu sistema mantém um cache temporário de nomes de domínio consultados recentemente para acelerar solicitações futuras. Após alterar as configurações de DNS, é uma boa prática limpar este cache para garantir que o sistema use as novas configurações imediatamente e não dependa de dados antigos, potencialmente incorretos, em cache.

Em sistemas Linux modernos, você pode usar o comando resolvectl, que faz parte do systemd-resolved, para gerenciar o cache DNS. Para limpar os caches, execute o seguinte comando. Ele requer privilégios de sudo.

sudo resolvectl flush-caches

Este comando não produzirá nenhuma saída se for bem-sucedido. Para verificar se o cache foi limpo, você pode verificar as estatísticas do cache usando o comando statistics.

resolvectl statistics

Procure pela linha Current Cache Size na saída. Após a limpeza, este valor deve ser 0, confirmando que o cache foi esvaziado. Observe que outras estatísticas, como Hits e Misses, manterão seus valores anteriores.

...
Cache
  Current Cache Size: 0
          Cache Hits: 24
        Cache Misses: 67
...

Limpar o cache DNS é uma etapa importante para garantir que seu sistema não esteja usando registros DNS desatualizados.

Confirmar Resolução de DNS e Conectividade

Agora que corrigimos a configuração do servidor DNS e limpamos o cache local, é hora de verificar a correção. Vamos repetir o mesmo comando da Etapa 1 que falhou anteriormente.

Vamos tentar fazer o ping para google.com novamente.

ping -c 4 google.com

Desta vez, o comando deve ser bem-sucedido. Você verá o nome de domínio ser resolvido para um endereço IP e receberá respostas do servidor. (Nota: O endereço IP exato para google.com pode variar).

PING google.com (142.250.189.238) 56(84) bytes of data.
64 bytes from nuq04s39-in-f14.1e100.net (142.250.189.238): icmp_seq=1 ttl=119 time=4.43 ms
64 bytes from nuq04s39-in-f14.1e100.net (142.250.189.238): icmp_seq=2 ttl=119 time=4.43 ms
64 bytes from nuq04s39-in-f14.1e100.net (142.250.189.238): icmp_seq=3 ttl=119 time=4.40 ms
64 bytes from nuq04s39-in-f14.1e100.net (142.250.189.238): icmp_seq=4 ttl=119 time=4.43 ms

--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 4.400/4.421/4.434/0.012 ms

Sucesso! Você diagnosticou e resolveu com sucesso um problema de conectividade DNS.

Resumo

Parabéns por completar este laboratório! Você percorreu com sucesso um procedimento padrão para solucionar e resolver um problema de rede comum relacionado a DNS em um sistema Linux.

Neste laboratório, você aprendeu como:

  • Usar ping para testar a conectividade e diferenciar entre uma falha de rede geral e um problema específico de DNS.
  • Inspecionar a configuração do servidor DNS do seu sistema em /etc/resolv.conf.
  • Corrigir uma configuração de DNS inválida para restaurar a resolução de nomes.
  • Limpar o cache DNS local usando resolvectl flush-caches para remover entradas desatualizadas.
  • Confirmar que a correção está funcionando ao fazer o ping com sucesso em um nome de domínio.

Estas habilidades fundamentais formam uma base sólida para lidar com muitos problemas comuns de rede. Você pode agora aplicar este processo lógico, passo a passo, sempre que suspeitar de problemas de DNS no futuro.