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 -s num Data e hora para -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.