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
Download

Protocolos da Camada de Rede