Arquivo

Posts Tagged ‘netstat’

Sete comandos para realizar troubleshooting de redes

terça-feira, julho 16, 2013 - 18:59 2 comentários

Bom o texto de hoje é um texto bastante simples, porém podem salvar o dia, pois estarei falando dos comandos PING, TRACERT/PATHPING, NSLOOKUP, DIG, TELNET e para finalizar o NETSTAT. Mesmo não sendo um texto de extrema complexidade ele irá nos auxilidar na resolução de problemas do nosso dia a dia.

PING

O PING é um comando que é utilizado para descobrirmos se uma placa de rede esta respondendo ou não, ou seja, se um computador está ligado ou não. Muitos profissionais da área (até mesmo experientes) acreditam que o PING é uma ferramenta de teste que realiza testes de conectividade, o que na realidade não é, o PING é uma ferramenta de testes de rede. Quando se deseja realizar testes de conexão devemos utilizar outra ferramenta como o TELNET e o NETSTAT.

O PING se limita a camada de rede do modelo OSI e caso no firewall do host de destino existe uma regra que bloqueie o sinal do PING o teste não será realizado.

Utilizando o PING você também realizar consultas de nome a um servidor DNS da sua organização com a seguinte sintaxe:

PING – a IP_DO_COMPUTADOR_REMOTO

Exemplo:

Sintaxe de utilização do comando ping -a

Sintaxe de utilização do comando ping -a

TRACERT/PATHPING

O TRACERT e o PATHPING nada mais são do que versões mais robustas do PING, com o seu uso voltado para a resolução de problemas de roteamento, como quando você não consegue acessar um recurso em outra filial da empresa ou até mesmo a internet.

Ambos os comandos enviam pacotes para cada nó de rede no caminho da origem e destino o que nos permite visualizar em qual é o último roteador dessa rota esta com problema. Além da utilização para resolução de problemas de roteamento os comandos TRACERT e PATHPING nos permitem conhecer a rota que os pacotes dentro da nossa rede tomam entre a origem e o destino, o que nos auxilia na construção da documentação da rede caso não existe.

Como nos exemplos abaixo:

PATHPING

pathping

Sintaxe de utilização do pathping

TRACERT

Sintaxe do comando tracert

Sintaxe do comando tracert

PATHPING x TRACERT

A diferença básica entre o PATHPING e o TRACERT é que o PATHPING ao término das suas requisições ele monta uma estatística sobre o percurso percorrido, já o TRACERT não te nenhuma informação adicional.

NSLOOKUP

O NSLOOKUP é uma ferramenta utilizada para resolução de problemas associados a DNS (sistema de resolução de nomes). O NSLOOKUP realiza consultas a/aos servidores de nomes da sua rede e retorna todos os IPs dos registros do tipo A ou AAAA (IPv6) associados aquele nome. E os registros de CNAME (Alias).

Sintaxe nslookup

Sintaxe nslookup

Sintaxe nslookup Wikipedia, exemplo do uso do alias

Sintaxe nslookup Wikipedia, exemplo do uso do alias

DIG

O comando DIG é um comando Linux e que pode ser instalado no Windows que possui a mesma função do NSLOOKUP e é muito simples de se obter as informações sobre os registros DNS de um determinado endereço.

Uso do comando dig para verificação de registros MX

Uso do comando dig para verificação de registros MX

Uso do dig para registros do tipo A ou AAAA

Uso do dig para registros do tipo A ou AAAA

dig_wikipedia

Comando dig demonstrando um site com registro do tipo CNAME (alias)

A força do DIG esta no seu modelo de relatório que é muito mais detalhado do que o do NSLOOKUP como você pode ver nas imagens anteriores.

Para utilizar o DIG no Windows é necessário ter o BIND instalado, esse pode ser baixado em http://www.isc.org/software/bindnão é necessário instalar o serviço de DNS do DIG no computador apenas os utilitários.

Agora os comandos que eu considero os mais importantes para serem utilizados no dia a dia são o TELNET e o NETSTAT

Inicialmente vamos falar do TELNET. O TELNET é um protocolo de rede que trabalha na Camada 7 do modelo OSI (que é a camada de aplicação), além disso ele também é um programa, que nos dias de hoje ele é usado basicamente para a realização de testes de conectividade. Esses testes indicam se um serviço de rede (FTP, DNS, HTTP e outros) estão em funcionamento ou não.

O seu uso é muito simples: TELNET ip_do_destiono PORTA

As saídas possíveis são:

telnet 445 fechado

Como na porta 445 não há uma aplicação que suporte o TELNET para utilização a tela fica preta, isso quer dizer que a conexão foi realizada com sucesso. Ela também poderá apresentar algum conteúdo e isso quem irá determinar é a aplicação em que estamos realizando o teste.

telnet 23 falha

Já a imagem anterior demonstra uma conexão sem sucesso na porta 23. E isso se deve a alguns fatores que são:

1 – O pacote não chegou ao destino

Nesse caso o TRACERT ou PATHPING ajudarão a descobrir isso porque eles verificam todos os roteadores do caminho entre a origem e o destino. Caso o TRACERT e o PATHPING não apresentrarem falhas poderá existir algum tipo de bloqueio de firewall para o protocolo ICMP Echo Request que é o protocolo utilizado pelo PING

2 – Caso você esteja utilizando o nome do servidor no lugar do IP, podemos estar enfrentando um problema na resolução de nomes onde o NSLOOKUP ou DIG poderão nos ajudar

3 – Existe uma aplicação que realize a escuta nessa porta, porém não há liberação no firewall para essa aplicação. Nesse caso já é a hora de utilizarmos o NETSTAT para sabermos qual status da conexão.

NETSTAT

Normalmente o NETSTAT é utilizado em conjunto com outro aplicativo, que normalmente é o TELNET. A funcionalidade do NETSTAT é a de listar todas as conexões de rede e listar os seus status que podem ser:

Status de conexão TCP/UDP

Descrição

LISTEN

Aguardando uma requisição de conexão de um computador remoto

SYN-SENT

O status indica que o computador local esta esperando pelo sinal de ACK (acknowledgment) a partir do computador remoto. Quando uma conexão não sai do status SYN-SENT isso indica três pontos: 1 – Bloqueio de firewall; 2 – A aplicação não está respondendo naquela porta; 3 – O serviço não esta sendo executado. O ponto mais comum é o ponto número 1 onde existe um bloqueio de firewall

SYN-RECEIVED

O host remoto recebeu a solicitação de conexão e envia um sinal de ACK (acknowledgment) para o host que solicitou a conexão. E o host remoto esta aguardando o último sinal de ACK para estabelecer a conexão.

ESTABLISHED

É o estado em que a conexão se encontra quando há tráfego de dados entre os dois pontos de rede

FIN-WAIT-1

Aguardando por um sinal de ACK para finalizar a conexão, esse estado normalmente tem curta duração de tempo.

FIN-WAIT-2

Aguardando por uma requisição de encerramento de conexão com o host remoto, assim como o FIN-WAIT-1 o FIN-WAIT-2 tem pouco tempo de duração. Muitos estados de FIN-WAIT-2 é um indicador de erro na aplicação remota

CLOSE-WAIT

O computador recebeu uma requisição para encerrar a conexão e esta aguardando por um sinal FIN-WAIT para encerrar a conexão

CLOSING

Estado que indica que a conexão esta sendo finalizada

LAST-ACK

Esse estado existe apenas quando o host recebe o sinal de finalização de conexão antes de receber a solicitação para encerrar a conexão.

TIME-WAIT

Aguratando para a confirmação do recebimento do sinal de ACK

CLOSED

Não existem conexões

Utilização:

A sintax do NETSTAT é extremamente simples, como visto na linha abaixo

Sintax: NETSTAT

netstat

Como podemos ver o comando sem a utilização de parâmetros nos atende para descoberta de portas bloqueados em firewall ou não. Porém o comando ainda pode ser melhorado com a utilização da opção -n. A opção -n faz com que o comando ignore a resolução de nomes e exiba apenas os endereços IP’s do destino e origem, o que em muitos casos facilita a visualização.

netstat-n

Quando o netstsat é utilizado no Windows temos a opção -b. Essa opção faz com que o NETSTAT exiba o nome dos executáveis que iniciaram a conexão. Quando um executável inicia diversos outros aplicativos (como por exemplo SVCHOST) as aplicações filho serão exibidas entre colchetes []. Para a opção -b funcionar é necessário abrir o prompt de comando como administrador.

Sintax: NETSTAT -b

netstat-b

E com isso encerramos o texto espero que ele seja útil para todos assim como é útil para mim!