5 comandos básicos úteis para troubleshooting de redes

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 echo request 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.