Aula Prática 1 - Utilitários de Rede

No Windows existem alguns comandos que permitem o diagnóstico de problemas de configuração de rede. Nesta aula estudaremos os comandos ping, tracert, route, netstat, ipconfig e telnet.


- Ping

A função do comando ping é verificar a conectividade IP entre dois hosts. Quando o comando ping é executado em um host, este gera uma mensagem ICMP Echo Request que é inserida em um datagrama IP endereçado ao host destino. O host destino por sua vez, quando recebe uma mensagem ICMP Echo Request, responde com uma mensagem ICMP Echo Reply, inserida em um datagrama IP endereçada ao host solicitante. O nome do comando ping é uma analogia ao jogo de ping-pong, onde a bolinha "vai e volta".

O comando ping também auxilia na verificação da integridade da pilha TCP/IP do próprio host. Para isso, é executado o comando ping para o endereço 127.0.0.1, que é a interface de loopback.

A sintaxe do comando ping é:

C:\>ping /?

Uso: ping [-t] [-a] [-n num] [-l tamanho] [-f] [-i TTL] [-v TOS]
          [-r num] [-s num] [[-j lista_hosts] | [-k lista_hosts]]
          [-w tempo_limite] lista_destino

Opções:
    -t              Dispara contra o host especificado até ser interrompido.
                    Para ver estatísticas e continuar, pressione CTRL-Break;
                    para terminar, pressione CRTL-C.
    -a              Resolve endereços para nomes de host.
    -n num          Número de requisições de eco a enviar. O valor padrão é 4.
    -l tamanho      Envia o tamanho do buffer.
    -f              Ativa o sinalizador de não-fragmentação no pacote.
    -i TTL          Define o tempo de vida.
    -v TOS          Define o tipo de serviço.
    -r num          Rota dos pacotes para  saltos.
    -s num          Data e hora para  saltos.
    -j lista_hosts  Rota ampliada de origens definida em .
    -k lista_hosts  Rota restrita de origens definida em .
    -w tempo_limite Tempo limite em milissegundos a aguardar para cada resposta.



C:\>

Abaixo temos um exemplo da execução do comando ping para o endereço www.uol.com.br e os resultados obtidos.

C:\>ping www.uol.com.br

Disparando contra www.uol.com.br [200.221.2.45] com 32 bytes de dados:

Resposta de 200.221.2.45: bytes=32 tempo=26ms TTL=119
Resposta de 200.221.2.45: bytes=32 tempo=24ms TTL=119
Resposta de 200.221.2.45: bytes=32 tempo=29ms TTL=119
Resposta de 200.221.2.45: bytes=32 tempo=27ms TTL=119

Estatísticas do Ping para 200.221.2.45:
    Pacotes: Enviados = 4, Recebidos = 4, Perdidos = 0 (0% de perda),
Aproximar um número redondo de vezes em milissegundos:
    Mínimo = 24ms, Máximo = 29ms, Média = 26ms

C:\>

Observe que o endereço www.uol.com.br foi traduzido para o seu respectivo endereço IP pelo serviço de resolução de nomes DNS. Esse endereço IP foi inserido no campo "Endereço Destino" do datagrama no qual foi inserida a mensagem ICMP Echo Request. Como padrão, o comando ping envia 4 mensagens ICMP Echo Request para o host destino, mas esse número pode ser alterado com a utilização de parâmetros adicionais, vistos na sintaxe do comando.

As respostas do comando ping apresentam o endereço IP do host que está respondendo ao comando ping, o tempo decorrido entre o envio da mensagem ICMP Echo Request e o recebimento da resposta ICMP Echo Reply em milisegundos e o tempo de vida do datagrama que contém a mensagem ICMP Echo Reply.

Como já foi visto nas aulas teóricas, o campo TTL ou "Time to Live" do cabeçalho do datagrama IP possui oito bits, suportando como valor máximo 255. Porém, na prática, o valor padrão do TTL utilizado depende do sistema operacional, podendo ser 255, 128 ou 64. Em cada nó intermediário no trajeto entre o host origem e o destino, o TTL é decrementado em uma unidade. Caso o valor do TTL chegue a zero em algum nó intermediário, o datagrama é descartado e esse nó envia uma mensagem ICMP Time to Live Exceeded para o nó origem. Essa implementação evita que por algum problema de configuração ou roteamento um datagrama fique "eternamente" trafegando entre dois nós.

No exemplo acima podemos perceber que o datagrama de resposta passou por 128 - 119 = 9 nós intermediários, antes da chegada ao host solicitante. Isso significa que, para que a mensagem ICMP Echo Request chegue até o host www.uol.com.br, é necessário que ela seja inserida em um datagrama IP com o TTL configurado no mínimo com o valor 10. Veja abaixo um exemplo do envio do comando ping ao mesmo endereço, porém com campo TTL configurado com um valor inferior a 10, e observe a mensagem de resposta:

C:\>ping www.uol.com.br -i 9

Disparando contra www.uol.com.br [200.221.2.45] com 32 bytes de dados:

Resposta de 200.221.30.33: O tempo de vida expirou em trânsito.
Resposta de 200.221.30.33: O tempo de vida expirou em trânsito.
Resposta de 200.221.30.33: O tempo de vida expirou em trânsito.
Resposta de 200.221.30.33: O tempo de vida expirou em trânsito.

Estatísticas do Ping para 200.221.2.45:
    Pacotes: Enviados = 4, Recebidos = 4, Perdidos = 0 (0% de perda),
Aproximar um número redondo de vezes em milissegundos:
    Mínimo = 0ms, Máximo = 0ms, Média = 0ms

C:\>

Questão 1: Determine com o comando ping o endereço IP, o tempo médio de ida e volta e o número de nós intermediários para os seguintes endereços:

  - Portal Yahoo: www.yahoo.com
  - Museu do Louvre: www.louvre.fr
  - Casa Branca: www.whitehouse.gov

Questão 2: Execute comando ping para o endereço www.embratel.com.br utilizando os parâmetros de forma que seja possível:

  - Efetuar 10 disparos de mensagens ICMP Echo Request, ao invés de 4;
  - Efetuar infinitos disparos de mensagens ICMP Echo Request, ao invés de 4;
  - Utilizar TTL inferior ao mínimo necessário.

Observe que, por questões de segurança, alguns administradores de rede podem implementar sistemas de segurança que bloqueiem a chegada de mensagens ICMP. Nesse caso, os hosts configurados nessas redes não responderão aos comandos ping enviados.


- Tracert

O comando tracert tem por função exibir os nós intermediários pelos quais um datagrama IP trafega, no percurso até o seu endereço destino. Ele é muito utilizado para verificar a localização de um eventual ponto de falha em uma rede IP.

A sintaxe do comando tracert é:

C:\>tracert

Uso: tracert [-d] [-h nmax_saltos] [-j lst_hosts] [-w tempo_limite] destino

Opções:
-d       p;          Não resolver endereços para nomes de hosts.
-h nmax_saltos    ; Número máximo de saltos para a procura do destino.
-j lst_hosts    &nnbsp;  Rota ampliada de origens usada com a lista lst_hosts.
-w tempo_limite    p;Tempo de espera em milissegundos para cada resposta.

C:\>

Uma premissa do protocolo IP é o fato de que a rota completa até o endereço destino não é conhecida pelos nós intermediários ou pelo nó origem. Cada nó conhece apenas o próximo salto, sendo o datagrama dessa forma encaminhado de nó em nó até o endereço destino. Porém, o comando tracert consegue apresentar a rota completa até um host destino utilizando o campo TTL do datagrama IP.

Ao executar o comando tracert em um host, este envia uma mensagem ICMP Echo Request em um datagrama com TTL igual a 1. Essa mensagem expira logo no primeiro nó, e este envia uma mensagem ICMP Time to Live Exceeded para o host origem. A partir dessa mensagem recebida, o tracert obtém o endereço IP do primeiro nó intermediário. O processo se repete com TTL igual a 2, 3 e assim por diante, até alcançar o nó destino.

Veja abaixo um exemplo de utilização do comando tracert para traçar a rota até o endereço www.uol.com.br:

C:\>tracert www.uol.com.br

Rastreando a rota para www.uol.com.br [200.221.2.45]
com no máximo 30 saltos:

  1   <10 ms   <10 ms   <10 ms  200-207-39-129.dsl.telesp.net.br [200.207.39.129]
  2    15 ms    16 ms    16 ms  200-207-57-1.dsl.telesp.net.br [200.207.57.1]
  3    16 ms    15 ms    16 ms  ATM-1-0-0-1-br-cas-ce-rc1.bbone.telesp.net.br [200.207.37.129]
  4    16 ms    15 ms    16 ms  FastEthernet-2-0-0-br-cas-ce-rc1.bbone.telesp.net.br [200.207.240.1]
  5    15 ms    32 ms    31 ms  200-204-20-209.dsl.telesp.net.br [200.204.20.209]
  6    16 ms    31 ms    31 ms  200-148-160-177.bbone.tdatabrasil.net.br [200.148.160.177]
  7    15 ms    32 ms    31 ms  P-5-1-te-br-spo-ib-rc1.bbone.tdatabrasil.net.br[200.153.4.198]
  8    16 ms    31 ms    31 ms  200-148-160-134.bbone.tdatabrasil.net.br [200.148.160.134]
  9    16 ms    31 ms    16 ms  fr2-border4.ix.uol.com.br [200.221.30.33]
 10    15 ms    16 ms    31 ms  hugo.uol.com.br [200.221.2.45]

Rastreamento concluído.

C:\>

A saída do traceroute indica para cada nó intermediário (também conhecido como hop), o tempo de ida e volta de três mensagens ICMP em milisegundos e o endereço do roteador correspondente. Montando a sequência de 1 até o final, podemos ver por onde o pacote IP foi roteado até o destino.

Questão 3: Verifique a rota para cada cada um dos endereços abaixo utilizando o comando tracert:

  - Portal Yahoo: www.yahoo.com
  - Museu do Louvre: www.louvre.fr
  - Casa Branca: www.whitehouse.gov

Veja abaixo um exemplo de saída de traceroute em uma rede mal configurada ou com problemas de rota. Os pacotes ficam trafegando entre os IPs 172.16.150.93 e 172.16.150.94. O traceroute tem um limite de 30 nós intermediários como padrão, mas esse valor pode ser alterado com a utilização de parâmetros adicionais.

C:\>tracert 10.202.0.10

Rastreando a rota para SERGIO [10.202.0.10] 
com no máximo 30 saltos:

  1   <10 ms   <10 ms   <10 ms  10.201.0.1
  2     2 ms     1 ms   <10 ms  192.168.202.2
  3    20 ms    20 ms    21 ms  172.16.129.121
  4    41 ms    41 ms    42 ms  172.16.150.94
  5    20 ms    20 ms    21 ms  172.16.150.93
  6    41 ms    41 ms    42 ms  172.16.150.94
  7    20 ms    20 ms    21 ms  172.16.150.93
  8    41 ms    41 ms    42 ms  172.16.150.94
  9    20 ms    20 ms    21 ms  172.16.150.93
 10    41 ms    41 ms    42 ms  172.16.150.94
 11    20 ms    20 ms    21 ms  172.16.150.93
 12    41 ms    41 ms    42 ms  172.16.150.94
 13    20 ms    20 ms    21 ms  172.16.150.93
 14    41 ms    41 ms    42 ms  172.16.150.94
 15    20 ms    20 ms    21 ms  172.16.150.93
 16    41 ms    41 ms    42 ms  172.16.150.94
 17    20 ms    20 ms    21 ms  172.16.150.93
 18    41 ms    41 ms

C:\>^C

C:\>

- Route

O comando route é utilizado para listar, adicionar ou remover regras da tabela de roteamento de um computador. Esta tabela de roteamento é consultada pelo protocolo IP para determinar para onde deve ser encaminhado cada datagrama IP transmitido.

Na figura a seguir podemos verificar a existência de 5 colunas: "Endereço de rede", "Máscara", "Ender. gateway", "Interface" e "Custo".

C:\>route print

Rotas ativas:

  Endereço de rede          Máscara   Ender. Gateway        Interface   Custo
          0.0.0.0          0.0.0.0       10.201.0.1     10.201.160.5       1
       10.201.0.0      255.255.0.0     10.201.160.5     10.201.160.5       1
     10.201.160.5  255.255.255.255        127.0.0.1        127.0.0.1       1
   10.255.255.255  255.255.255.255     10.201.160.5     10.201.160.5       1
        127.0.0.0        255.0.0.0        127.0.0.1        127.0.0.1       1
        224.0.0.0        224.0.0.0     10.201.160.5     10.201.160.5       1
  255.255.255.255  255.255.255.255     10.201.160.5          0.0.0.0       1

C:\>

Usando as informações da coluna " Endereço de rede " e "Máscara", o computador descobre em qual regra o endereço destino do datagrama se enquadra. Identificada a regra, o datagrama é direcionado para o respectivo "Gateway", através da respectiva "Interface".

A primeira regra da tabela exemplo apresentada indica a regra do "Default Gateway". Esta regra é a que determina para onde um datagrama deve ser enviado quando ele não se enquadra em nenhuma outra regra. No nosso caso, o gateway padrão é 10.201.0.1, acessível através da interface 10.201.160.5, que é o ip local da placa de rede do computador exemplo.

Temos ainda uma regra para o endereço de loopback (127.0.0.1), outra para a própria rede que o computador participa (10.201.0.0) e outras regras usadas para broadcast e multicast.

A coluna "Custo" indica qual é o custo para se alcançar o endereço destino, sendo de grande utilidade quando um destino pode ser alcançado por dois caminhos distintos.

Questão 4: Descubra utilizando o comando ROUTE qual é o "Default Gateway" de seu computador. Observe que em todo tracert que você executa, o primeiro salto é feito exatamente neste gateway.


- NetStat

O comando netstat mostra as conexões ativas com a máquina em questão. Além disso existe uma opção para mostrar o conteúdo da tabela de roteamento. Veja abaixo a sintaxe do netstat do windows:

C:\>netstat  /?

Exibir estatísticas de protocolo e conexões de rede TCP/IP atuais.

NETSTAT [-a] [-e] [-n] [-s] [-p proto] [-r] [intervalo]

  -a            Exibe todas as conexões e portas de escuta.
  -e            Exibe estatísticas Ethernet.  Isso pode ser combinado à
                opção -s.
  -n            Exibe endereços e números de porta em formato numérico.
  -p proto      Exibe conexões para o protocolo especificado por proto; proto
                pode ser tcp ou udp.  Se usado com a opção -s para exibir
                estatísticas por protocolo, proto pode ser tcp, udp ou ip.
  -r            Exibe o conteúdo da tabela de roteamento.
  -s            Exibe estatísticas por protocolo.  Por padrão, as estatísticas
                são mostradas para TCP, UDP e IP; a opção -p pode ser usada
                para especificar um subconjunto do padrão.
 Intervalo      Exibe novamente uma estatística selecionada, fazendo pausas de
                intervalos de segundos entre cada tela.  Pressione CTRL+C para
                interromper a nova exibição das estatísticas.  Caso omitido,
                netstat imprimirá as informações de configuração uma vez.

C:\>

Use o netstat para mostrar todas as conexões e portas de escuta da sua máquina (LISTENING). A saída é mostrada em 4 colunas. Na primeira está o protocolo, na segunda o endereço da conexão na porta local. A terceira coluna mostra o endereço na máquina remota (o endereço da máquina e a porta TCP da conexão) e a quarta coluna mostra o estado da conexão (ESTABLISHED, LISTENING, CLOSE_WAIT, etc).

Use a opção -r para mostrar o conteúdo da tabela de roteamento da sua estação. Essa tabela mostra para qual endereço cada pacote deve ser enviado em função do seu endereço IP. Desta forma, a máquina garante que o pacote será entregue para a máquina de destino corretamente.


- IPConfig

O IPConfig é um comando utilizado para informar ou alterar a configuração atual de rede da máquina. Veja abaixo a sintaxe do comando ipconfig:

C:\>ipconfig /?

Configuração de IP do Windows 2000

USO:
   ipconfig [/? | /all | /release [adaptador] | /renew [adaptador]
            | /flushdns | /registerdns
            | /showclassid adaptador
            | /setclassid adaptador [id_classe_a_ser_definida] ]

   adaptador    Padrão ou nome completo com '*' e '?' para 'correspondência',
              * corresponde a qualquer caractere; ? corresponde a um caractere.
   Opções
       /?           Exibe esta mensagem de ajuda.
       /all         Exibe as informações completas de configuração.
       /release     Libera o endereço IP para o adaptador especificado.
       /renew       Renova o endereço IP para o adaptador especificado.
       /flushdns    Limpa o DNS Resolver Cache.
       /registerdns Atualiza todas as concessões do DHCP e registra novamente os  nomes DNS
       /displaydns  Exibe o conteúdo do DNS Resolver Cache.
       /showclassid Exibe todas as identificações de classe do DHCP aceitas para o adaptador.
       /setclassid  Modifica a identificação de classe do DHCP.

O padrão é a exibição apenas dos endereços IP, da máscara de sub-rede e 
do padrão para cada adaptador ligado ao TCP/IP.

No caso de Release e Renew, se não for especificado um nome de adaptador, todas as concessões
de endereço IP para todos os adaptadores ligados ao TCP/IP serão liberadas ou renovadas.

Para SetClassID, se não for especificada uma identificação de classe, a identifi
cação de classe será removida.

Exemplos:
    > ipconfig                       ... Mostra as informações.
    > ipconfig /all                  ... Mostra as informações detalhadas
    > ipconfig /renew                ... Renova todos os adaptadores
    > ipconfig /renew EL*            ... Renova adaptadores denominados como EL...
    > ipconfig /release *ELINK?21*   ... Libera todos os adaptadores correspondentes,
                                         por exemplo, ELINK-21, meu_adaptadorELELINKi21.

C:\>

Abaixo temos o resultado da execução do comando IPCONFIG sem nenhum parâmetro adicional. No resultado podem ser visualizados o endereço IP, a máscara de sub-rede e o gateway padrão configurados no host.

C:\>IPCONFIG

Configuração de IP do Windows 2000

Ethernet adaptador Conexão de rede local:

        Sufixo DNS específico de conexão . :
        Endereço IP. . . . . . . . . . . . : 10.201.10.1
        Máscara de sub-rede. . . . . . . . : 255.255.0.0
        Gateway padrão . . . . . . . . . . : 10.201.0.1

C:\>

Questão 5: Execute o comando IPCONFIG no seu computador de modo a permitir a visualização de configurações adicionais de rede.