Internet Control Message Protocol ICMP Introdução • O principal protocolo da camada de rede é o IP. Além do IP, a Internet possui outros protocolos de controle que são usados na Camada de Rede. – ICMP usado pelos roteadores para relatar algum evento inesperado durante o processamento do pacote. – Comunica mensagens de erro e outras condições que requerem atenção. – RFC 792 contém a especificação oficial do ICMP. André Luiz Silva 2 Deficiências do IP • O IP fornece serviço de entrega de datagrama não confiável e sem conexão e atua na Camada de Rede dos roteadores que são dispositivos críticos. • Para não degradar o desempenho do IP, algumas funcionalidades deixaram de ser implementadas. – Mensagens de erro. – Mecanismos de consulta. André Luiz Silva 3 ICMP • O ICMP (Internet Control Message Protocol) foi criado para compensar essas deficiências. • Podemos encará-lo como um parceiro do IP. André Luiz Silva 4 Características do ICMP • Atua na camada de rede, porém, as mensagens que ele gera não passam diretamente para a camada de enlace, como era de se esperar. Ao invés disto, são encapsuladas dentro o campo de dados do IP antes de seguirem para a camada mais baixa. • O valor do campo protocolo no datagrama IP é 1 para indicar que o campo de dados IP é na verdade uma mensagem ICMP. André Luiz Silva 5 Nota Nota: O ICMP sempre reporta mensagens de erro ao host de origem. André Luiz Silva 6 Campos do protocolo ICMP Tipo (8 bits) Código (8 bits) Checksum (16 bits) Conteúdo dependente do tipo e do código André Luiz Silva 7 Campos do protocolo ICMP • Os quatro primeiros bytes tem o mesmo formato em todas as mensagens e informam o erro que gerou o ICMP. Isto permite inclusive, que o programa associado ao ICMP determinar qual protocolo de camada de transporte será utilizado. • Existem 15 valores diferentes para o campo Tipo identificando os diferentes tipos de mensagens. • Algumas mensagens usam também o campo Código para especificar uma determinada condição. • O campo Checksum cobre a mensagem ICMP inteira e utiliza o mesmo algoritmo usado para o cabeçalho IP. André Luiz Silva 8 Encapsulamento André Luiz Silva 9 Tipos de mensagens ICMP • Mensagens de erro. • Mecanismos de consulta. André Luiz Silva 10 Mensagens de erro • O que acontece se o roteador tiver que descartar um datagrama, por: – Não obter uma rota para o destino final. – O TTL expirado. – Descarte de fragmentos de um datagrama por não ter recebido todos os fragmentos no tempo esperado. • Torna-se necessário notificar o host origem pois o IP não possui mecanismos nativos para a resolução desses problemas. André Luiz Silva 11 Outras mensagens • A lista completa das mensagens ICMP é mantida on-line em www.iana.org/assignments/icmpparameters. André Luiz Silva 12 Principais tipos de mensagens ICMP André Luiz Silva 13 Exemplo de Redirect • Pacote, em R1, sendo enviado pela mesma interface de chegada. HOST R1 R2 ICMP redirect Datagrama IP André Luiz Silva 14 Comando • Mostra as estatísticas relacionadas aos pacotes ICMP recebidos e enviados pelo sistema. Digite: netstat –p icmp -s André Luiz Silva 15 Mecanismos de consulta • O IP também carece de mecanismos de consulta. – Determinar se outro host está ativo na rede. André Luiz Silva 16 Destino inalcançável e Tráfego • Destino inalcançável (Destination unreachable). – Quando um roteador não consegue rotear um datagrama por inconsistências nas rotas. • Tráfego (Source quench). – Solicita ao host que diminua a velocidade de envio. André Luiz Silva 17 Tempo excedido e Problema nos parâmetros • Tempo excedido. – Roteador recebe o datagrama com o valor do campo TTL igual a zero. – Os fragmentos gerados não chegam todos dentro do tempo limite. • Em ambos os casos mensagens ICMP são enviadas para a origem. • Problema nos parâmetros. – Erros nos cabeçalhos de um datagrama. • Erros de ambigüidades. André Luiz Silva 18 Redirecionamento • Redirecionamento. – Roteadores utilizam tabelas dinâmicas. – Hosts utilizam tabelas estáticas. • Tabelas menores nos hosts melhora o desempenho. • Existem mais hosts do que roteadores atuando nas redes. • Mensagens ICMP de redirecionamento são enviadas de volta ao host de origem. André Luiz Silva 19 Mensagens de consulta • Solicitação e resposta de eco. • Solicitação e resposta de Time-Stamp. – O tempo em que um datagrama viaja entre os roteadores. – Registra o tempo de chegada da solicitação e o tempo de saída da resposta. • Solicitação e anunciação do roteador. – Hosts precisam conhecer o endereço de pelo menos um roteador para poder enviar pacotes para a rede local. – Roteadores se anunciando na rede. André Luiz Silva 20 Address Resolution Protocol ARP Introdução • Embora cada máquina na Internet possua um ou mais endereços IP, estes não são suficientes para enviar pacotes. – O endereço IP atua na Camada de Rede. • Interfaces de rede Token Ring ou Ethernet tem os seus próprios esquemas de endereçamento. – A Camada de Enlace não compreende os endereços da Camada de Rede. • Assim como, Uma rede como a Ethernet pode ser utilizada por diferentes protocolos de camada de rede. – Computadores usando TCP/IP e computadores usando algum outro software de rede (IPX), podem compartilhar o mesmo sistema de cabos ethernet. André Luiz Silva 22 Tipos de endereços • Por quê dois endereços diferentes? • O IP e o MAC? – Cada tecnologia utiliza o modo de endereçamento que julgou mais eficiente. André Luiz Silva 23 Endereço MAC (1) • O endereço MAC (do inglês Media Access Control) é o endereço físico da estação, ou melhor, da interface de rede. • É um endereço de 48 bits, representado em hexadecimal. • Este endereço é utilizado na camada 2 (Enlace) do Modelo OSI. – Exemplo: 00:00:5E:00:01:03 • Os três primeiros octetos são destinados à identificação do fabricante, os três posteriores são fornecidos pelo fabricante. – Qual é o endereço hexadecimal para broadcast? • Os fabricantes solicitam ao IEEE, um bloco de endereços. André Luiz Silva 24 Endereço MAC (2) • Os endereços MAC são endereços locais. • Precisam ser únicos apenas localmente, dentro de um domínio de broadcast. • Não precisam ser globalmente únicos. • É necessário mapear o endereço físico ao endereço lógico, quando surge a necessidade de comunicação. Mapeamento • Como os endereços de Camada de Rede, o IP, são mapeados para endereços de Camada de Enlace, por exemplo, os endereços MAC (Ethernet)? – Estático. – Dinâmico. André Luiz Silva 26 Mapeamento Estático • Mapeamento Estático. • O administrador mapeia o endereço físico ao estático. – Troca de adaptadores. – Nas redes Apple (LocalTalk) os endereços físicos mudam sempre que o computador é ligado. Mapeamento Dinâmico • O host utiliza um protocolo que atua em modo broadcast para determinar o endereço físico. • O host que precisa determinar o endereço físico envia um ARP de consulta. – Este pacote inclui o endereço físico da origem, o endereço lógico da origem e o endereço lógico do destino. • Como o host não conhece o endereço lógico de destino, ele transmite o ARP em modo broadcast, para poder alcançar todos os hosts do segmento. Diagrama exemplo André Luiz Silva 29 Operação 1. 2. 3. 4. 5. 6. 7. Host origem conhece o IP do host destino. O IP solicita ao ARP a criação de uma mensagem de solicitação. A mensagem é passada para a camada de enlace aonde um quadro é montado utilizando o endereço físico do host de origem e preenchendo o campo Endereço destino com 1s. Os hosts recebem o quadro e o descartam, excetuando-se o host alvo. O host alvo responde a solicitação em modo unicast, através de um pacote de resposta. O host origem recebe a resposta e a coloca em uma tabela cache. O IP agora é encapsulado no quadro ethernet e enviado em modo unicast. Nota • Uma solicitação ARP acontece sempre em modo broadcast. A resposta ARP é dada no modo unicast. Cenários • Situação 1. O host de origem deseja transmitir um pacote para outro host na mesma rede. • Situação 2. O host de origem deseja transmitir um pacote para outro host localizado em outra rede. – Pacote entregue primeiro ao roteador apropriado. • Situação 3. O host de origem é um roteador que recebeu um datagrama destinado a um host localizado na outra rede. – Proxy ARP. Protocolo Campos do protocolo (1) • Hardware Type (tipo do hardware): composto de dois octetos, especifica o tipo de hardware utilizado na rede física. Se for 1, é rede Ethernet. • Protocol Type (tipo do protocolo): composto de dois octetos, especifica o endereço do protocolo utilizado no nível superior do emissor. O IPv4 possui o número 0800H. • HLEN e PLEN (Tamanho do endereço físico e tamanho do protocolo): – Composto de um octeto cada um, habilitam o ARP para ser usado com redes arbitrárias porque eles especificam o comprimento dos endereços do hardware e dos protocolos do nível superior. Para o IPv4 o valor deste campo é 4. • Operation (operação) : especifica se o datagrama é um pedido ARP (request 1 ) ou uma resposta ARP (reply 2), ou ainda um RARP (request 3, reply 4). Campos do protocolo (2) • SHA (Sender Hardware Address). Possui tamanho variável. Endereço físico (Ethernet) de quem envia o pacote. • SPA (Sender Protocol Address). Possui tamanho variável. Endereço lógico (IP) de quem envia o pacote. • THA (Target Hardware Address). Possui tamanho variável. Endereço físico desejado. Na operação de request vai em branco, e, quem responder preenche este campo. • TPA (Target Protocol Address). Possui tamanho variável. Endereço lógico da máquina desejada. Cache ARP • O sistema operacional mantém na memória uma tabela para a correspondência entre os endereços lógicos e os endereços físicos. • Desta maneira, evita congestionar a rede com requisições em modo broadcast. • Esta tabela temporária chama-se Cache ARP. Assim, quando uma máquina precisa comunicar-se com outra, basta consultar o cache. Duração do Cache ARP • Com o passar do tempo, os registros são automaticamente removidos. – As implementações derivadas de Berkeley tem um timeout de 20 minutos para uma entrada completa e 3 minutos para uma incompleta. • Porém, antes de deletar o cache, o ARP envia uma nova requisição, desta vez em modo unicast, com o objetivo de verificar se a conexão ainda está presente. Exemplo de Cache ARP Comandos ARP • arp -a – Mostra as associações de endereços existentes no cache. • arp -d <número_IP> – Deleta o número IP especificado no cache. • arp -s <número_IP> <endereço_físico> – Adiciona uma entrada estática ao cache ARP. Otimizações • Renovação do cache em modo unicast. • ARP gratuito. – Host envia pacote com o seu próprio endereço IP. • Verifica se existe outra máquina com o mesmo IP. • Atualiza o cache das outras máquinas. • Proxy ARP. – Roteador responde ao brodcast como se fosse a máquina que esta na outra rede. André Luiz Silva 40