Pular para o conteúdo principal

5 comandos básicos úteis para troubleshooting de redes

· 8 min para ler
Ludmila Silva
Cloud & DevOps Engineer

Na rotina profissional das diversas funções de T.I. que estão relacionadas diretamente ou não à infraestrutura, lidamos com uma série de problemas relacionados as redes. Seja desde um site ou aplicação fora do ar até a falta de comunicação entre dispositivos, esses "pequenos" inconvenientes podem se tornar uma dor de cabeça caso não sejam contornados e solucionados (principalmente se você lida com usuários).

Por isso, é sempre bom ter algumas cartas na manga para detectar, isolar e resolver problemas de maneira mais efetiva. A ideia aqui não é que você seja um analista de redes, mas que possa usar ferramentas simples para ajudar na solução ou para que você possa solucionar o problema. Muitas vezes o "feijão com arroz" nos salva bastante.

Para ajudar, reuni aqui alguns comandos básicos que são extremamente úteis no dia-a-dia:

1. Ping

O reizinho dos comandos, o ping permite testar a conectividade de rede entre dispositivos. Ele utiliza uma e_cho r_eques_t_ do protocolo ICMP, inserida em um datagrama IP, para testar essa conectividade.

Seja com um nome de domínio ou um endereço IP, o comando envia pacotes ICMP para o endereço IP do destino. Se o destino estiver acessível, serão mostradas respostas com os bytes, tempo de resposta e a medição do TTL (o tempo de vida do pacote dentro da rede). Além disso, ele informa os pacotes enviados, recebidos e perdidos.

Ping no Windows

Se o destino não estiver acessível, será mostrada na tela a mensagem "Host de destino inacessível."

Aqui estão alguns exemplos de uso do ping:

## Consulta básica do ping - com domínio de um site
ping google.com

## Consulta com IP (exemplo com DNS do Google)
ping 8.8.8.8

## No Windows: quantidade de pacotes enviados (no caso, para 6)
ping -n 6 google.com

## No Windows: tempo de espera da resposta (timeout)
ping -w 10 google.com

## Pings contínuos - sem interrupção
ping -t google.com

Para interromper o processo do ping, você deve usar o comando Ctrl+C.

Ping no Linux

Caso de uso:

  • Você pode usar o ping para identificar se uma máquina ou dispositivo na rede local, como uma impressora ou notebook, por exemplo, está conectada e respondendo. Se "pingou", isso já oferece um bom ponto de partida.

2. Traceroute

Outro comando simples e bastante útil é o traceroute no Linux, ou tracert no Windows. Ele permite validar os "saltos" (hops) até o destino - ou seja, por cada roteador que o pacote passa para chegar ao seu destino.

Exemplos do comando:

### Traceroute
traceroute google.com

### Esconder os nomes de dispositivos na tela
traceroute -n google.com

### Especificar o número de saltos
traceroute -m 10 google.com

Em alguns casos, você pode não obter a resposta mesmo sabendo que o dispostivo final está ativo. Isso pode ocorrer por causa de regras de firewall ou outros bloqueios dos equipamentos que estão no caminho.

Casos de uso:

  • Quando pessoas alegam lentidão ao acessar determinado site ou servidor, seja interno ou externo. Você pode usar o traceroute para identificar em qual trecho está ocorrendo uma alta latência ou perda de pacotes;
  • Com os resultados, você pode demonstrar que os problemas de conexão não são sua culpa ou da empresa - principalmente se o serviço acessado está fora da rede interna. É o famoso "não foi possível resolver seu problema, mas podemos fazer com que ele não seja nosso problema" =)

3. MTR

O My Traceroute, ou MTR, é um comando que funciona como uma combinação do ping e do traceroute. Ele apresenta os saltos até o destino e outras informações como latência e perda de pacotes. Isso permite ter uma ideia do que ocorre em tempo real.

Com isso, o MTR possibilita identificar conexões ruins ou a perda de pacotes com mais clareza. No Linux, ele é executado via terminal. No Windows, usa-se uma aplicação chamada WinMTR, que pode ser baixada aqui.

Sintaxe do mtr no Linux:

## Uso padrão
mtr google.com

## Limitar para endereços IPv4
mtr -4 google.com

## Usar em modo relatório
mtr -r google.com

Pode acontecer de não obter a resposta pelo fato de existir algum firewall ou regra de segurança que não permite esse acesso. Isso pode aparecer como uma omissão no tempo de resposta também.

Casos de uso:

  • Se você estiver experimentando latência ou desconexões ao jogar online ou usar um serviço na internet, pode usar o mtr para verificar a qualidade da conexão com o servidor do jogo ou serviço.
  • Em situações que poderia usar o ping e o traceroute junto, com objetivo de ter análises com mais detalhes de latência e perda de pacotes até chegar ao destino.

4. Nslookup

O nslookup permite consultas para servidores DNS. Com ele, é possível consultar qual IP responde por um domínio. Além disso, ele possibilita consultar um registro DNS (tipo A, MX, txt, entre outros) do domínio em questão.

## Consultar o IP de um domínio
nslookup google.com

## Consultar um registro DNS específico
nslookup -q=MX google.com

nslookup -q=A google.com

nslookup -q=ns google.com

nslookup -q=txt google.com

nslookup -type=mx google.com

## Pesquisa reversa
nslookup `<IP_do_servidor>`

## Consultar todos os registros
nslookup -type=any google.com

## Modo interativo - abre um prompt
nslookup

> google.com
> exit

5. Dig

Já o dig faz praticamente as mesmas funções do nslookup, mas fornece um relatório com mais detalhes.

## Retornar o registro A (IP)
dig google.com

## Retornar os registros MX, txt, e outros
dig google.com MX

dig google.com txt

dig google.com cname

dig google.com NS

dig google.com A

## Obter o máximo de informações
dig google.com any

## Respostas curtas
dig google.com +short

## Respostas detalhadas
dig google.com +noall +answer

## Pesquisa reversa
dig `<IP_do_servidor>`

Para utilizar o dig no Windows, é necessário instalar o BIND, o qual você pode encontrar aqui.

Caso de uso:

  • Quando quiser saber 0 nome de domínio associado a um endereço IP, você pode usar a pesquisa reversa (resolução de DNS reverso);
  • Em alguns casos, pode ocorrer de um site ser acessado pelo IP do servidor, mas não estar acessível pelo nome de domínio. Uma das possibilidades é que haja um problema com a resolução de nomes de domínio. Por isso, o nslookup e o dig podem ser usados para identificar quais servidores DNS respondem por determinado domínio e auxiliar na resolução do problema;
  • Uma empresa migrou seus e-mails para um serviço de hospedagem diferente do qual utilizavam. No entanto, os emails não estavam funcionando após a alteração dos registros DNS e propagação dos mesmos. Com o nslookup e o dig você pode verificar se o usuário  manteve os registros DNS de email (MX) do provedor antigo e inseriu os novos, resultando em um conflito, por exemplo (e acredite, isso é bem comum).

Menção honrosa: ipconfig

Ficou na dúvida sobre qual endereço IP está atribuído a sua máquina? Então, use o ipconfig (Windows) ou ifconfig (Linux e MacOS)! Esse comando exibe as configurações de rede

No Windows:

## Apresentar as informações de rede
ipconfig

## Apresentar mais detalhes das configurações de rede
ipconfig /all

## Limpar o cache de resolução DNS
ipconfig /flushdns

No Linux:

## Apresentar as informações de rede
ifconfig

## Apresentar todas as informações
ifconfig -a

No Linux, o ifconfig também permite configurar, ativar ou desativar as interfaces de rede, por exemplo. No final do texto, há um link com a documentação do comando para que você possa explorar mais.

Caso de uso:

  • Para saber o IP da sua máquina, basta um ipconfig ou ifconfig
  • Caso necessite saber o endereço MAC de um pc, o ipconfig /all fornecerá as informações necessárias.
  • Você está acessando um site e recebe uma página de erro como retorno. Pelo 4G, o site abre normalmente. Você já limpou o cache do navegador, mas o problema persiste. O que fazer? Bem, rodar o ipconfig /flushdns pode ser uma mão na roda.

Dicas para troubleshooting

Para finalizar, nada melhor que algumas dicas rápidas para organizar o pensamento na hora da resolução de problemas (sejam de rede ou quaisquer outros):

  1. Defina qual é o problema real - geralmente, quando um usuário ou nós mesmos relatamos o problema, na verdade está falando dos sintomas causados pelo problema real;
  2. Junte todas as informações relevantes: relatos, testes, prints. Aqui, por exemplo, cabe saber os IPs envolvidos, URLs e outras informações iniciais. O ping e o tracert podem ser muito importantes nesse momento;
  3. Analise cuidadosamente as informações runidas, de forma a eliminar opções que não se adequam ao problema, e proponha hipóteses sobre a causa e formas de solução. As hipóteses seriam os caminhos que você vai percorrer para a solução do problema;
  4. Teste a(s) hipótese(s) formuladas sobre o problema, ou seja, coloque suas ideias a prova;
  5. Se testou e resolveu, ótimo! Se não resolveu, volte a análise das informações reunidas;
  6. Por fim, documente o processo de solução - isso facilita a resolução quando o mesmo problema ocorrer novamente.