Trabalho de Redes Protocolo ICMP Prof.: Kleber Manrique Trevisani Aluno: Marco Antonio Macelan Pront.: 1380265 1 Protocolo ICMP O ICMP (Internet Control Message) é um protocolo integrante do Protocolo IP, definido pela RFC 792, este permite que roteadores enviem mensagens de erro ou controle para outros roteadores ou host; o ICMP oferece comunicação entre o software IP (Internet Protocol) em uma maquina e o software IP (Internet Protocol) em outra. As mensagens ICMP são transmitidas em datagramas IP, conforme podemos ver a seguir: A mensagem ICMP em si é mostrada na figura a seguir. Ela contém os campos Tipo, Código, Checksum e Conteúdo: Abaixo segue o formado do pacote ICMP e o significado de cada campo. TYPE (8 bits): identifica o tipo mensagem, por exemplo, se o valor for 8 é uma requisição (echo request). Se o conteúdo for 0 é uma reposta (echo reply). CODE (8 bits): utilizado em conjunto com o campo TYPE para identificar o tipo de mensagem ICMP que está sendo enviada. CHECKSUM (16 bits): verifica a integridade do pacote ICMP. 2 MESSAGE CONTENTS (Tamanho Variável): contém o conteúdo da mensagem ICMP. Classes de Mensagens ICMP As mensagens ICMP podem ser divididas em duas grandes classes: Mensagens de Erro: Usadas para informar a um dispositivo transmissor que um erro ocorreu durante a transmissão do datagrama. Geralmente os erros são relacionados à estrutura do datagrama em si, ou problemas encontrados durante o tráfego dos pacotes através da rede. Mensagens de Informação (Consultas / Query): São mensagens que permitem aos dispositivos trocarem informações entre si e realizarem determinados tipos de testes e diagnósticos. Existem algumas regras específicas que governam a forma como as mensagens de erro são geradas. Mensagens ICMP de erro NÃO são geradas nos seguintes casos: Como resposta a outra mensagem de erro. Isso evita o surgimento de loops infinitos de mensagens de erro. Porém, mensagens de erro podem ser geradas em resposta a mensagens de informação. Resposta a datagramas de Broadcast ou Multicast. Resposta a datagramas cujo endereço IP de origem não seja um endereço unicast. Em resposta a fragmentos de datagramas IP, exceto o primeiro – os demais fragmentos de um datagrama não geram mensagens de erro. Vejamos os tipos e códigos de mensagens ICMP existentes. A tabela a seguir é baseada nos dados contidos na página “Parâmetros ICMP” da IANA: Tipo 0 Motivos do destino Inalcançável 3 Código Descrição Echo Reply (Resposta de Eco, usado pelo comando 0 ping) Destino Inalcançável 0 1 2 3 4 5 6 7 Rede de destino inalcançável Host de destino inalcançável Protocolo de destino inalcançável Porta de destino inalcançável Fragmentação requerida, e bit DF configurado Falha na rota de origem Rede de destino desconhecida Host de destino desconhecido 3 8 9 10 11 12 13 14 15 4 0 5 Host de origem isolado Rede proibida administrativamente Host proibida administrativamente Rede inalcançável para TOS Host inalcançável para TOS Comunicação proibida administrativamente Violação de precedência de Host Corte de precedência em efeito Fonte saciável (source quench) – Controle de fluxo elementar Redirecionamento Redirecionamento para rede 1 Redirecionamento para host 2 Redirecionamento para tipo de serviço e rede 3 7 8 9 10 11 Redirecionamento para tipo de serviço e host Reservado (Não atribuído) 0 0 0 Echo Request (Requisição de Eco, usado pelo comando ping) Cod. Tempo Excedido 0 1 Cod. do motivo do Redirecionamento 0 Cod. Problema com parâmetro 12 13 14 15 16 17 18 19 20-29 0 1 2 0 0 0 0 0 0 Anúncio de roteador Solicitação de roteador Tempo Excedido TTL igual a 0 durante o trânsito TTL igual a 0 durante reconstrução Problema com parâmetros: Cabeçalho IP mal formado Ponteiro indica o erro Faltando opção requerida Comprimento errado Timestamp Resposta do Timestamp Pedido de informação Resposta de informação Requisição de máscara de endereço Resposta de máscara de endereço Reservado para segurança Reservado para experimentos de robustez 4 30 31 32 33 34 35 36 37 38 39 40 41 42-252 253 254 255 Traceroute (deprecado) Erro de Conversão de Datagrama (deprecado) Redirecionamento de Host Móvel (deprecado) IPv6 Where-are-you (deprecado) IPv6 I-am-here (deprecado) Requisição de Registro Móvel (deprecado) Resposta de Registro Móvel (deprecado) Requisição de Nome de Domínio (deprecado) Resposta de Nome de Domínio (deprecado) SKIP (deprecado) Photuris (deprecado) (RFC 2521) Mensagens ICMP para protocolos de mobilidade experimentais (RFC 4065) Não atribuídos Experimento 1 RFC 3692 Experimento 2 RFC 3692 Reservado As mensagens mostradas na tabela anterior podem ser categorizadas em dois grandes grupos: Perguntas e Erros. Os tipos de mensagens que são perguntas são as de números de tipo 0, 8, 9, 10, 13, 14, 15, 16, 17 e 18. As demais mensagens são mensagens de erro. Funcionamento e Uso do Ping O Ping é baseado em duas mensagens, o echo request e echo reply. Quando você entra no prompt de comandos do Windows e, por exemplo, digita “ping 192.168.0.1 (meu roteador) ou ping http://www.ifsp.edu.br/”, na realidade seu computador está enviando mensagens de “echo request” ao roteador ou servidor da pagina do Instituto Federal de São Paulo onde está hospedada. Ao receber essa mensagem de “echo request” nosso host ou servidor responde seu computador com um “echo reply”. Caso o servidor não responda seu computador indicará um timeout (tempo de resposta expirado), indicando que não houve resposta.Veja na figura abaixo um exemplo de ping enviado do host com endereço IP 192.168.0.102 para um roteador e um ping do IP 5 192.168.0.102 para um IP 192.168.15.1. Veremos a seguir uma figura capturada pelo Wireshark onde mostra o comando ping no ip 192.168.15.1. Aqui abaixo temos uma captura que o ICMP retorna tipo=8 e código =0, conforme a tabela “porta de destino inalcançável”. 6 Na tela da figura abaixo você vai ver um exemplo do “tracert” que é o comando do Windows para o “traceroute” para o site www.ifsp.edu.br (200.133.214.203). Aqui abaixo temos uma captura que o ICMP retorna tipo=11 e codigo =0, conforme a tabela “porta de destino inalcançável”. 7 Aqui abaixo temos uma captura que o ICMP retorna tipo=3 e código =3, conforme a tabela “porta de destino inalcançável”. 8 Bibliografia: Comer, Douglas, 1949 –Interligação de redes com TCP/IP, vol. 1 princípios, protocolos e arquitetura / Dopuglas E. Comer - Rio de Janeiro: Elsevier, 2006 – 9ª reimpressão Internet Control Message Protocol (ICMP) Parameters. Disponível em: http://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml - Acesso em: 25/03/2016 Protocolo ICMP, Ping e Traceroute - Disponível em : http://www.dltec.com.br/blog/cisco/protocolo-icmp-ping-e-traceroute/ - Acesso em: 27/03/2016 Curso de Redes – Protocolo ICMP – Internet Control Message Protocol. Disponível em: http://www.bosontreinamentos.com.br/redes-computadores/curso-de-redesprotocolo-icmp-internet-control-message-protocol/. - Acesso em: 27/03/2016 9