Documente Academic
Documente Profesional
Documente Cultură
Objetivos
Caractersticas ICMP:
No enviada uma mensagem ICMP para mensagens ICMP de erro
Definicao
O protocolo ICMP (Internet Control Message Protocol) um protocolo que permite gerir as
informaes relativas aos erros nas mquinas conectadas.
Dado os poucos controlos que o protocolo IP realiza, permite no corrigir estes erros mas d-los
a conhecer aos protocolos das camadas vizinhas. Assim, o protocolo ICMP utilizado por todos
os switchs, que o utilizam para assinalar um erro (chamado Delivery Problem).
As mensagens ICMP geralmente so enviadas automaticamente em uma das seguintes situaes:
expirado)
O Gateway no consegue retransmitir os pacotes na frequncia adequada (i.e. Gateway
congestionado)
O Roteador ou Encaminhador indica uma rota melhor para a mquina a enviar pacotes.
ICMP
Cada mensagem possui um campo tipo e um campo cdigo que indica o tipo da
Campos
Tipo
Existem diversos tipos de mensagem, cada uma para determinada situao;
Cdigo
Indica uma especificidade do tipo da mensagem, cada tipo pode possuir variaes;
Cheksum
Tipos de Mensagem
fragmentos;
Todos os fragmentos so descartados e enviado uma mensagem time exceeded
origem;
ICMP Redirect
Um router por algum motivo pode no ser a melhor escolha para encaminhar
determinado datagrama;
Descoberta do melhor caminho (redirect);
Routers podem indicar s estaes a existncia de rotas melhores, fornecendo o endereo
Outras Mensagens:
Redirect
Source Quench
Ping e
Traceroute.
(em ping) at o sistema no ter a capacidade de administrar suas prprias funes. Esse ataque
significativo, principalmente contra usurios do Microsoft Windows 95.
O ICMP - Internet Control Message Protocol - um protocolo que faz parte da pilha TCP/IP,
enquadrando-se na camada de rede (nvel 3), a mesma camada do protocolo IP - Internet
Protocol. O seu uso mais comum feito pelos utilitrios ping e traceroute. O ping evia pacotes
ICMP para verificar se um determinado host est disponvel na rede. O traceroute faz uso do
envio de diversos pacotes UDP ou ICMP e, atravs de um pequeno truque, determina a rota
seguida para alcanar um host.
Ping
Quando queremos determinar se um determinado host est disponvel na rede interna ou mesmo
na Internet, frequentemente utilizamos o utilitrio ping como um dos primeiros recursos de
troubleshooting. O fato de um host no responder ao ping no quer dizer que ele esteja realmente
fora da rede, pois este servio pode estar desabilitado neste host por questes de segurana.
O comando, provavelmente j conhecido pelo leitor, :
ping <host>
Exemplo:
[root@malkovich linux-2.6.3]# ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
64 bytes from 192.168.0.1: icmp_seq=1 ttl=127 time=4.22 ms
64 bytes from 192.168.0.1: icmp_seq=2 ttl=127 time=1.02 ms
64 bytes from 192.168.0.1: icmp_seq=3 ttl=127 time=1.01 ms
64 bytes from 192.168.0.1: icmp_seq=4 ttl=127 time=1.99 ms
64 bytes from 192.168.0.1: icmp_seq=5 ttl=127 time=1.03 ms
9
--- 192.168.0.1 ping statistics --5 packets transmitted, 5 received, 0% packet loss, time 4002ms
rtt min/avg/max/mdev = 1.019/1.857/4.221/1.241 ms
A resposta acima indica que o host 192.168.0.1 est disponvel. No final algumas estatsticas de
tempo e percentual de respostas positivas e negativas so apresentadas.
chamado de cliente o host que inicia a comunicao, ou seja, a partir do qual o usurio executa
o comando de teste de disponibilidade. Servidor o alvo do teste, pois este deve possuir um
servio habilitado para ser capaz de receber o pacote do cliente e respond-lo.
O cliente envia primeiro um pacote do tipo ICMP Echo Request, ou simplesmente ICMP Echo.
Abaixo est a captura deste pacote na rede. Note o tipo do protocolo no cabealho IP (ICMP) e o
tipo do pacote no cabealho ICMP (Echo request).
Internet Protocol, Src Addr: 192.168.0.2 (192.168.0.2), Dst Addr: 192.168.0.1 (192.168.0.1)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
10
Total Length: 84
Identification: 0x0000 (0)
Flags: 0x04
Fragment offset: 0
Time to live: 64
Protocol: ICMP (0x01)
Header checksum: 0xb955 (correct)
Source: 192.168.0.2 (192.168.0.2)
Destination: 192.168.0.1 (192.168.0.1)
Internet Control Message Protocol
Type: 8 (Echo (ping) request)
Code: 0
Checksum: 0x5905 (correct)
Identifier: 0x9409
Sequence number: 0x0001
Data (56 bytes)
Quando o servidor recebe este pacote ele responde com um pacote do tipo ICMP Echo Reply.
Internet Protocol, Src Addr: 192.168.0.1 (192.168.0.1), Dst Addr: 192.168.0.2 (192.168.0.2)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
Total Length: 84
Identification: 0xa078 (41080)
Flags: 0x00
Fragment offset: 0
Time to live: 127
Protocol: ICMP (0x01)
Header checksum: 0x19dd (correct)
Source: 192.168.0.1 (192.168.0.1)
Destination: 192.168.0.2 (192.168.0.2)
Internet Control Message Protocol
Type: 0 (Echo (ping) reply)
Code: 0
Checksum: 0x6105 (correct)
Identifier: 0x9409
Sequence number: 0x0001
Data (56 bytes)
11
Este processo se repete at que o usurio cancele o ping com um <CONTROL><C>. O utilitrio
ento calcula as estatsticas e as exibe na tela. O usurio tambm pode controlar, atravs de
opes do comando, quantos pacotes devem ser enviados, o intervalo de tempo entre eles, e o
tamanho do pacote. Na verdade a rea de dados do pacote no carrega nenhuma informao til,
entretanto, pode ser aumentada para testar a rede com pacotes de tamanhos diferentes. Existe
atualmente um limite para o tamanho do pacote, pois um pacote muito grande pode provocar o
reboot de alguns sistemas Windows, sendo este o conhecido ping of death, ou ping da morte.
Traceroute
Um dos campos do cabealho IP chamado TTL - Time to Live - e determina por quantas
passagens em roteadores este pacote pode sobreviver. A cada passagem em um roteador ou host
este campo decrementado de 1. Este mecanismo utilizado para evitar que pacotes percorram a
rede eternamente, rodando de um lado para outro.
Echo Request possui um TTL igual a 64. Se um pacote possui um TTL de 1 e este deve passar
por um roteador antes de alcanar o seu destino final, este roteador ir descart-lo ao verificar o
TTL do pacote e retornar um pacote ICMP do tipo ICMP Time Exceeded para o host que o
enviou. Neste pacote de resposta o roteador se identifica como origem da mensagem Time
Exceeded. nessa caracterstica do protocolo que o utilitrio traceroute se baseia para traar uma
rota entre dois pontos da rede.
Suponha que o host 1 esteja separado do host 2 por dois roteadores, chamados router A e router
B. A partir do host 1 executado um traceroute para o host 2. O utilitrio cria um pacote UDP
destinado ao host 2, mas configura o seu TTL para 1. O router A recebe este pacote e, apesar de
saber para onde rotear o pacote, ao decrementar o TTL este torna-se 0 (zero) o que siginifica que
este pacote deve ser descartado, retornando um ICMP Time Exceeded para o host 1. Quando o
traceroute recebe esta resposta ele tem o endereo do primeiro roteador no caminho entre os dois
hosts. O primeiro roteador mostrado para o usurio.
12
Em seguida, o traceroute cria outro pacote UDP, com o TTL de 2. O pacote sobrevive ao
primeiro roteador mas descartado no segundo. Quando recebe o ICMP Time Exceeded do
segundo roteador temos o endereo dele, que tambm mostrado na sada do traceroute. O passo
seguinte um pacote com TTL de 3 o qual alcana o host 2. Os pacotes UDP so sempre
enviados com uma porta de destino invlida, o que fora que o host 2, ao receber o pacote,
retorne um pacote ICMP Destination Unreachable. O traceroute sabe ento que o caminho
completo foi descoberto e mostra ao usurio o endereo do host 2, indicando que o trace foi
finalizado.
Como ilustrao, executei um traceroute do IP 192.168.1.2 (host virtual A) para o IP 192.168.0.1
(host C). Como roteador entre essas duas mquinas est um Linux (host B) com os IP
192.168.1.1 e 192.168.0.2.
Portanto, o caminho do pacote deve ser A <-> B <-> C.
O comando foi executado a partir de A:
13
mostrado abaixo o primeiro pacote enviado pelo host A e descartado pelo roteador B.
Internet Protocol, Src Addr: 192.168.1.2 (192.168.1.2), Dst Addr: 192.168.0.1 (192.168.0.1)
Version: 4
Header length: 20 bytes
Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00)
Total Length: 38
Identification: 0x827f (33407)
Flags: 0x00
Fragment offset: 0
Time to live: 1
Protocol: UDP (0x11)
Header checksum: 0xb4f4 (correct)
Source: 192.168.1.2 (192.168.1.2)
Destination: 192.168.0.1 (192.168.0.1)
User Datagram Protocol, Src Port: 33406 (33406), Dst Port: 33435 (33435)
14
que o ICMP pode enviar : Destination Unreachable, o qual, por sua vez pode ser dos seguintes
tipos:
Echo Reply
Destination Unreachable
Source Quench
Redirect Message
Echo Request
11
Time Exceeded
12
Parameter Problem
13
Timestamp Request
14
Timestamp Reply
15
16
17
18
Network Unreachable
Host Unreachable
Protocol Unreachable
Port Unreachable
10
11
12
16
13
14
15
Retardamento de origem
Uma mensagem de excluso de origem ICMP tem um campo de tipo de cdigo 0 e 4. Mensagens
de retardamento de origem so enviadas quando o destino capaz de processar trfego to rpido
quanto a fonte est enviando a ele. O ICMP de retardamento de origem informa a fonte para
reduzir a taxa em que ele est enviando dados. O destino vai continuar a gerar ICMPs de
retardamento de origem at que a fonte est enviando a uma velocidade aceitvel.
Redirecionar mensagem
Um dispositivo intermedirio ir gerar uma mensagem de redirecionamento ICMP quando ele
determina que uma rota est sendo solicitada pode ser acessada localmente ou atravs de um
caminho melhor. Redirecionar mensagem ICMPs so tipo 5 e so definidos posteriormente pelos
seguintes valores de campo de cdigo:
Type 5
Code
Value Description
----- ----------0
Tempo excedido
17
Se um roteador ou host descartar um pacote devido a um tempo limite, ele ir gerar um tempo
excedido tipo 11 ICMP. O ICMP de tempo excedido ter um valor de cdigo de 0 ou 1. Um
cdigo gerado quando a contagem de saltos de um datagrama excedida e o pacote ser
descartado. 1 Cdigo gerado quando o reassemble de um pacote fragmentado excede o valor de
tempo limite.
Problema de parmetro
Quando um host ou dispositivo intermedirio descarta um datagrama devido incapacidade de
processo, gerado um 12 ICMP. Causas comuns de ICMP so informaes de cabealho
danificado ou falta de opes. Se o motivo do ICMP uma opo ausente necessria, o ICMP
ter um cdigo de valor 1. Se o valor do cdigo for 0, o campo de ponteiro ir conter o octeto de
cabealho do datagrama descartado em que o erro foi detectado.
18
Conclusao
19
Referncia
SOARES, Luiz F.; LEMOS, Guido e COLCHER, Srgio. Redes de Computadores: Das LANs,
MANs e WANs s Redes ATM, Ed. Campus.ROSS, Keith e KUROSE, JAMES. Redes de
Computadores e a Internet: Uma nova abordagem, Ed. Addison Wesley.
TORRES, Gabriel. Redes de Computadores, Ed. Nova Terra.
TENENBAUM, Andrew. S.. Redes de computadores, Ed. Campus. 4 Edio.
20
anexos
21
22