Arquitetura TCP/IP - INF

Propaganda
Arquitetura TCP/IP
Parte IV – Mapeamento de endereços IP em
endereços físicos (ARP)
Fabrízzio Alphonsus A. M. N. Soares
Tópicos
●
Problema de resolução de endereço
●
Mapeamento direto
●
Associação dinâmica
●
ARP (Address Resolution Protocol)
–
Formato do pacote, algoritmo e cache
–
Proxy ARP, ARP Probe, ARP Announcement e
ARP spoofing
Justificativa
●
●
É necessário usar endereços (físicos) de
hardware para comunicar em uma rede
Aplicações usam apenas endereços
Internet
Exemplo genérico
●
●
●
Computadores A e B na mesma rede (física)
Aplicação em A gera um pacote para aplicação
em B
Software do protocolo em A deve usar o
endereço de hardware de B ao enviá-lo um
pacote, logo:
–
Software do protocolo precisa de um mecanismo
que mapeie um endereço IP para endereço de
hardware equivalente
–
Também é conhecido como problema de
resolução de endereço
Resolução de endereço
●
●
●
É realizada em cada rede (física) ao longo
do caminho percorrido por um pacote na
Internet
Duas abordagens
–
Mapeamento direto
–
Associação dinâmica
Escolha depende do tipo de hardware
Mapeamento direto
●
Fácil de entender
●
Eficiente
●
●
Apenas funciona quando o endereço de
hardware é menor que o endereço IP
Consiste em atribuir um endereço IP que
codifica o endereço de hardware
Exemplo de mapeamento direto
●
Hardware: ProNET (token ring) ou ARCnet
(token passing)
●
Endereço de hardware: 8 bits
●
Supondo que a rede 200.150.50.0/24 seja usada
●
●
Se uma interface tem um endereço de hardware
N, o endereço IP 200.150.50.N pode ser
associada à mesma
Resolver um endereço IP significar extrair o
endereço de hardware do último byte
Associação dinâmica
●
●
●
Necessária quando endereço de hardware é
maior que o endereço IP (ex.: Ethernet)
Permite ao equipamento A encontrar
endereço de hardware do equipamento B
–
A sabe endereço IP de B
–
A sabe que B está na mesma rede física
o
Solução: difunde (broadcast) a consulta e obtém
a resposta
–
Associação dinâmica é usada ao longo de apenas
uma rede física por vez
Address Resolution Protocol
(ARP)
●
●
●
Padrão para resolução dinâmica de
endereços na Internet
Exige suporte a difusão (broadcast) em
hardware
Projetado para redes locais
–
ARP é usado para mapear endereços dentro
de uma única rede física, não entre múltiplas
redes
Funcionamento do ARP
A
X
B
Y
A difunde uma requisição (consulta) em busca de B
A
X
B
Y
B, e somente B, responde à requisição
Funcionamento ARP (cont.)
●
●
●
●
●
Equipamento A difunde uma requisição com o
endereço IP de B
Todos equipamentos na rede física recebem a
difusão
Apenas o equipamento B responde com seu
endereço físico
Equipamento A adiciona endereço físico de B à
sua tabela (ARP)
Equipamento A entrega diretamente o pacote
para B
Formato do pacote ARP
●
●
HardwareType - Especifica o tipo do hardware.
–
Os tipos conhecidos são definidos pela
RFC Assigned Numbers, que recebe uma
atualização de tempos em tempos.
–
O hardware ethernet recebeu o número 1.
Protocol Type - Especifica o tipo do protocolo ao
qual o endereço lógico se refere.
–
A RFC Assigned Numbers especifica que o
tipo deve ser o mesmo que os do MAC
Ethernet. No caso do IP, 0800h.
Formato do pacote ARP
●
●
●
●
●
HardwareLen - Determina o comprimento em
bytes do endereço de hardware (físico).
ProtocolLen - Determina o comprimento em
bytes do endereço de protocolo (lógico).
Operation - Tipo da operação. Para o ARP, só
existem duas: Pergunta e Resposta.
SenderHardwareAddr - Endereço físico de
quem está enviando o pacote.
SenderProtocolAddr - Endereço lógico de quem
está enviando o pacote.
Formato do pacote ARP
●
●
TargetHardwareAddr
Endereço
físico
desejado. Na operação de request, vai em
branco. (Quem responder preenche este campo)
TargetProtocolAddr - Endereço lógico desejado.
Formato do pacote ARP
Hardware
IP
Exemplo: IP (versão 4) em uma rede Ethernet
HARDWARE TYPE: 1 (Ethernet)
PROTOCOL TYPE: 080016 (IP – versão 4)
HLEN: 6 (bytes – Ethernet)
PLEN: 4 (bytes – IPv4)
OPERATION: 1 (requisição ARP) ou 2 (resposta ARP)
Observações sobre o formato do
pacote ARP
●
Campos de comprimento variável, os
quais dependem dos tipos dos endereços,
logo o ARP pode ser usado com:
–
Endereço de hardware arbitrário
–
Endereço de protocolo arbitrário (qualquer
versão do IP e até outros que não o IP)
ARP: exemplo
enviar datagrama
(3) ARP request
(4) ARP reply
(1)
(2)
IP
ARP
(3)
(5)
Ethernet driver
ARP request (Eth. broadcast)
Ethernet driver
Ethernet driver
(4)
ARP
ARP
IP
Retenção de associações
●
●
Por questões de desempenho o ARP
precisa evitar o envio de uma requisição
para cada pacote a ser enviado
Solução:
–
Manter uma tabela de associações
–
O endereço é resolvido uma vez e usado
várias
Cache ARP
●
Tabela ARP é implementada como uma
memória cache
–
Entradas são adicionadas dinamicamente
–
Entradas “envelhecem” e são removidas
●
–
Minimiza entradas desatualizadas
Entradas
mudam
dinamicamente
e
são
atualizadas
Otimizações do ARP
●
Algumas operações simples podem
melhorar
significativamente
o
aproveitamento da rede com relação a
pacotes ARP:
–
Como o pedido de ARP inclui os endereços
lógico e físico do requisitante, a
máquina
que
responde
pode
imediatamente guardar esta informação
em seu ARP Cache, pois provavelmente
precisará dela em breve.
Otimizações do ARP
–
Como o pedido é enviado em broadcast,
todas as que recebem o pacote podem
aproveitar o tempo que dispenderam
para analisar a informação guardando-a
no seu Cache. Assim, se em algum
momento for necessário falar com
aquele host, a informação já estará
presente. Isso é bastante viável pois as
tabelas de ARP não são muito grandes,
em geral.
Otimizações do ARP
–
Assim que uma máquina é inicializada na
rede, esta pode gerar um ARP broadcast
anunciando seu endereço para as
outras, adiantando o processo de
detecção,
e
consequentemente,
a
comunicação. Isso só é vantajoso se a
comunicação for iniciada pelo host
remoto, pois em caso contrário, de
qualquer forma, será necessário um
ARP para pedir o endereço remoto.
Algoritmo para processamento de
requisições ARP
1.Extrai o par de informações da origem (IPA,HwA)
e atualiza a entrada na tabela ARP se esta
existir
2.Se o destino é o próprio equipamento então:
2.1. Adiciona o par (IPA,HwA) à tabela ARP se esta
entrada não estiver presente
2.2. Preenche o destino com endereço de hardware
2.3. Troca as entradas de origem e destino
2.4. Muda o campo OPERATION para resposta (2)
2.5. Envia a resposta ARP de volta a origem
Características do algoritmo
●
Se A envia uma requisição ARP para B, B
adiciona informação sobre A (item 2.1.)
–
●
B provavelmente enviará um pacote para A
Se A envia uma requisição ARP para B,
outros equipamentos também recebem
informação sobre A e podem atualizá-la,
mas não a adicionam (item 1.)
–
Evita que o cache fique “entupido” sem
necessidade
Encapsulamento ARP
●
A mensagem ARP é transportada dentro
da parte reservada ao pacote de rede em
um quadro, ou seja, sua área de dados
Proxy ARP ou promiscuous ARP
●
●
●
Usado para que múltiplas redes físicas
compartilhem um único prefixo de rede
Funcionamento:
–
Um proxy (geralmente, um roteador)
responde aos pedidos ARP em nome de outro
equipamento
–
Utiliza uma tabela especial para encaminhar
os pacotes para a rede correta
Exemplos de uso: VPN, switches nível-3 e
suporte a estações móveis (home agent)
Proxy ARP – exemplo
●
●
Host A precisa enviar
pacotes para host C e
D
–
Seu prefixo de rede
indica que esses
equipamentos estão na
mesma rede física,
logo a é uma entrega
direta
–
No entanto, há um
roteador separando A
de C e D
Solução: implementar
proxy ARP no roteador
ARP Probe
●
●
Requisição ARP com configuração
especial:
–
SENDER IP: 0.0.0.0
–
SENDER HA: endereço HA do host de origem
–
TARGET IP: endereço IP do host de origem
–
TARGET HA: 00:00:00:00:00:00
–
Significado da requisição: “Este é o endereço
IP que eu desejo utilizar”
Útil para verificar se o endereço IP já está
em uso, com intuito de escolher outro
Gratuitous ARP ou ARP
Announcement
●
●
●
Requisição ARP com configuração especial:
–
SENDER IP: endereço IP do host de origem
–
SENDER HA: endereço HA do host de origem
–
TARGET IP: endereço IP do host de origem
–
TARGET HA: 00:00:00:00:00:00
–
Significado da requisição: “Este é o endereço IP que
eu estou utilizando agora”
Útil para verificar se o endereço IP já está em
uso, com intuito de indicar um conflito
Permite atualizar mais rapidamente tabelas
–
Por exemplo, se a interface de um host é substituída,
o HA muda, mas o IP pode continuar
ARP spoofing ou ARP poisoning
●
●
Consiste em enviar mensagens ARP falsas,
assumindo ser outro host
Embora usado para ataques do tipo man-in-themiddle e denial-of-service, tem usos legítimos:
–
Redirecionamento de hosts para fins de registro
ou autenticação/autorização
–
Serviços de redundância em rede
●
Exemplo: um servidor X falha e outro servidor Y
assume se anunciando com o mesmo IP, porém com
outro HA
ARP spoofing – exemplo
Download