Você está na página 1de 41

O Protocolo ARP

Endereo Fsico
Cada interface de rede (NIC network interface card) vem com um identificador nico de fbrica. Este identificador o endereo fsico ou endereo de hardware da interface. Para garantir que no haver conflitos de endereos, fabricantes de placas de rede p.ex., Ethernet devem ser registrados junto a uma autoridade central. O cdigo identificador do fabricante chamado de OUI - Organizationally Unique Identifier. O tamanho (nmero de bits) do endereo fsico varia conforme a tecnologia de rede.

Endereo Fsico

(cont.)

O tamanho (nmero de bits) do endereo fsico varia conforme a tecnologia de rede. No caso da tecnologia Ethernet:
Os endereos tm 48 bits (6 bytes), representados por seis nmeros hexadecimais, separados por : Os 3 primeiros bytes definem o identificador do fabricante Os 3 ltimos bytes so definidos pelo fabricante, de forma nica Exemplo: 3COM = 02:60:8C:03:1D:91; IBM = 08:00:5A:07:4B:95; Cisco = 00:60:2F

Endereo Fsico

(cont.)

Endereo MAC
Tecnologias como Ethernet e Token Ring possuem esquemas prprios de endereamento no nvel de enlace. Normalmente, os protocolos do nvel MAC usam endereos fsicos na formatao das suas primitivas. Logo, no nvel MAC, para que um frame possa enviado de uma mquina a outra em um enlace de dados, o endereo fsico da estao destino deve ser conhecido. Endereo MAC = Endereo Ethernet = endereo fsico
Mac Header

Frame Ethernet
MAC Trailer Preamble (7 Bytes) SOFD (1 Byte) Destination Addr (6 Bytes) Source Addr (6 Bytes) Type (2 Bytes) Information (N Bytes) FCS (4 Bytes)

Problema
Num ambiente de rede geralmente se conhece o endereo de rede da mquina destino (ex: endereo IP) mas no o seu endereo fsico (ex: endereo Ethernet). Infelizmente, no existe nenhuma conexo ou relacionamento entre endereos Ethernet e endereos IP/Internet. Pior, endereos IP s fazem sentido numa arquitetura especfica, no caso, a arquitetura TCP/IP.

Problema

(cont.)

Host A quer se comunicar com host B. Host A conhece o endereo IPB mas no sabe o endereo fsico de B.

Resoluo de Endereos
Como ento um host obtm o endereo fsico de uma mquina destino quando ele necessita enviar um pacote atravs de uma rede fsica conhecendo apenas o endereo IP destino? A resposta usar um Protocolo de Resoluo de Endereos. A resoluo de endereos prov o mapeamento entre duas diferentes formas de endereos: endereos IP de 32 bits e qualquer tipo de endereo fsico usado no enlace de dados.

O Protocolo ARP Na arquitetura TCP/IP, a funo de resoluo de endereos desempenhada pelo protocolo ARP. ARP = Address Resolution Protocol O ARP foi originalmente usado em redes Ethernet, mas o seu projeto genrico, podendo ser usado em outros tipos de tecnologias de rede tais como Token-Ring e FDDI.

O Protocolo ARP O ARP faz o mapeamento dinmico entre endereos IP de 32 bits e endereos de hardware usados pelas vrias tecnologias de enlace.
No caso da tecnologia Ethernet, endereos IP de 32 bits so mapeados em endereos MAC de 48 bits (6 bytes).

O mecanismo de traduo de endereos implementado pelo ARP baseado no uso de broadcast.

Broadcast ARP
ARP Broadcast Who has IP address 200.241.16.8?

Host

ARP Response I do! 200.241.16.8

ARP Request / Reply


ARP Request

Recall that a broadcast is forwarded by all bridges (bridges create a single logical network), but is not forwarded by routers (routers connect logically separate networks).

ARP Reply

Cache ARP
Para manter o nmero de broadcasts a um nvel mnimo, os hosts que usam o ARP mantm um cache de mapeamentos Internet-Ethernet j resolvidos pois, assim, no precisam usar o ARP toda hora que se quiser transmitir um pacote. Antes de transmitir um pacote o host sempre examina o seu cache ARP, buscando verificar se j existe mapeamento anterior para o endereo destino. Para que o cache no cresa demasiadamente, entradas so removidas se no forem usadas dentro de um certo perodo de tempo. O cache ARP tambm chamado de Tabela ARP.

O Cache ARP

(cont.)

IP Address 223.1.2.1 223.1.2.2 223.1.2.3 223.1.2.4

Ethernet Address 08-00-39-00-2f-c3 08-00-5a-21-a7-22 08-00-28-00-38-a9 08-00-10-99-ac-54

Cache ARP

(cont.)

Trfego adicional na rede evitado fazendo o emissor do ARP Request incluir o seu prprio mapeamento Internet-Ethernet na primitiva. Isso feito para que o host destino possa adicionar esse mapeamento no seu cache. Como o ARP Request inicial uma mensagem do tipo broadcast, todos os computadores da rede vo receb-lo, e sero capazes de aprender esse mapeamento e armazen-lo nos seus respectivos cache.

Resumindo
O cache ARP (ou Tabela ARP) uma estrutura que mantm os mais recentes mapeamentos de endereos IP em endereos fsicos. Quando o host origem A recebe a resposta do host destino B, ele guarda no seu cache o endereo IP (IB) e o endereo fsico (FB) de B. Quando B recebe o broadcast de A pedindo seu endereo fsico, B guarda no seu cache os valores de IA e FA. O mapeamento endereo IP x endereo fsico residir no cache por um certo perodo. Esse tempo denominado de TTL (Time To Live).

Resoluo de Endereos Locais


1.

2.

3.

4.

5.

O IP verifica se o endereo destino da rede local. A tabela ARP examinada para ver se j existe armazenado o endereo fsico da mquina destino. No existindo nenhum mapeamento, o ARP constri uma mensagem de ARP Request. Os endereos IP e fsico da mquina origem so includos na mensagem de Request. O Request enviado a todas as mquinas da rede local (via mecanismo de broadcast).

Resoluo de Endereos Locais

(cont.)

Cada mquina da rede recebe a mensagem e compara o endereo IP da pergunta com o seu prprio endereo IP. Se forem diferentes a mquina ignora o Request. A mquina cujo endereo IP igual ao endereo contido no Request responde afirmativamente. A mquina destino envia diretamente para a mquina origem uma mensagem de ARP Reply, informando o seu endereo fsico.

Resoluo de Endereos Locais

(cont.)

A mquina destino tambm altera a sua tabela ARP, incluindo o endereo IP e fsico da mquina origem. A mquina origem recebe o reply e inclui o endereo IP e fsico da mquina destino na sua tabela ARP.

ARP Request / Reply


Example ARP Request
IP Address (32 bits)
Sender Receiver

Ethernet Address (48 bits) 08-00-39-00-2f-c3 00-00-00-00-00-00

223.1.2.1 223.1.2.2

Example ARP Response

IP Address (32 bits)


Sender Receiver

Ethernet Address (48 bits) 08-00-5A-21-a7-22 08-00-39-00-2f-c3

223.1.2.2 223.1.2.1

Exemplo

Resoluo de Endereos Remotos


O IP verifica que endereo destino o de uma mquina remota (externa rede local). A tabela de rotas da mquina local ento examinada em busca de uma rota para a rede destino. Caso no exista nenhuma rota, identificado o endereo IP do roteador default. Em ambos os casos, a mquina origem busca na sua tabela ARP pelo mapeamento endereo IP x endereo fsico do roteador especificado.

Resoluo de Endereos Remotos

(cont.)

Se no existir nenhum mapeamento, uma mensagem ARP Request enviada na rede (broadcast). A mensagem contm o endereo IP do roteador, ao invs do endereo da mquina destino. O roteador responde com o seu endereo fsico. A mquina origem envia o pacote de dados ao roteador para que esse possa entreg-lo rede destino.

Resoluo de Endereos Remotos

(cont.)

No roteador, o IP verifica se o endereo destino local ou remoto. Se for remoto, o processo anterior repetido.
O roteador verifica a sua tabela de roteamento por uma rota para o gateway especificado e usa o ARP (cache ou broadcast) para obter o endereo fsico deste gateway.

Se for local, o roteador usa o ARP para obter o endereo fsico da mquina destino, via exame do cache ARP ou via broadcast. Finalmente, o pacote enviado diretamente mquina destino.

Resoluo de Endereos Remotos

(cont.)

Encapsulamento do Pacote ARP Assim como o IP, o pacote ARP encapsulado no campo de dados do frame Ethernet, logo aps o cabealho. No caso do frame estar carregando um pacote ARP, o campo type que especifica o tipo de dado contido no frame possui o valor 0x0806 (para um ARP Request ou ARP Reply).

Encapsulamento do Pacote ARP

(cont.)

Pacote ARP em um frame Ethernet

Encapsulamento do Pacote ARP

(cont.)

Formato do Pacote ARP

Descrio dos Campos


HwType (2) ProType (2) HLEN (1) PLEN (1) Operation (2) SenderHA (6) SenderIP (4) TargetHA (6) TargetIP (4)

Tipo de interface/endereo de hardware. No caso do Ethernet o valor 1. Especifica o cdigo do protocolo que est sendo mapeado (0800H se for o IP). Tamanho do endereo de hardware (6 bytes se for Ethernet). Tamanho do endereo do protocolo de alto nvel (4 bytes se for o IP). Tipo da mensagem; 0001=request; 0002=response Endereo de hardware do n origem. Endereo IP do n origem. Endereo de hardware do n destino. Endereo IP do n destino.

Exemplo 1
0001 08 00 06 04 00 01 02 07 01 00 53 23 80 24 04 12 00 00 00 00 00 00 80 24 04 0B Ethernet IP Tamanho do endereo fsico Ethernet Tamanho do endereo IP Mensagem de request Endereo de hardware do n fonte Endereo IP do n fonte Endereo de hardware do n destino. Endereo IP do n destino.

Exemplo 2 ARP Trace (Frame 1)


IP = 128.1.0.2 NIC = WstDig488C11 IP = 128.1.0.6 NIC = WstDigEE8C11 IP = 128.1.0.5 NIC = WstDigE38C11

A
ARP Request From Client A is Broadcast to All Nodes

Protocol Analyzer

IP = 128.1.0.3 NIC = WstDigE38C11

IP = 128.1.0.1 NIC = WstDigE58C11

Exemplo 2 ARP Trace (Frame 2)


IP = 128.1.0.2 NIC = WstDig488C11 IP = 128.1.0.6 NIC = WstDigEE8C11

(cont.)

IP = 128.1.0.5 NIC = WstDigE38C11

ARP Response From Client E is sent back to Node A

Protocol Analyzer

IP = 128.1.0.3 NIC = WstDigE38C11

IP = 128.1.0.1 NIC = WstDigE58C11

Exemplo 2 ARP Trace

(cont.)

Qual o endereo destino do frame 1? Qual o pedao de informao chave no frame 2? Que protocolos de enlace e rede esto sendo usados?

ARP Trace (Frame 1)


A R P : A R P : A R P : A R P : A R P : A R P : A R P : A R P : A R P : A R P : A R P : A D D R 0 0 0 0 0 0 1 0 0 0 2 0 0 0 3 0 -A R P / R A R Pf r a m eH a r d w a r et y p e=1( 1 0 M bE t h e r n e t ) P r o t o c o lt y p e=0 8 0 0( I P ) L e n g t ho fh a r d w a r ea d d r e s s=6b y t e s L e n g t ho fp r o t o c o la d d r e s s=4b y t e s O p c o d e1( A R Pr e q u e s t ) S e n d e r ' sh a r d w a r ea d d r e s s=W s t D i g 4 8 8 C 1 1 S e n d e r ' sp r o t o c o la d d r e s s=[ 1 2 8 . 1 . 0 . 2 ] T a r g e th a r d w a r ea d d r e s s=0 0 0 0 0 0 0 0 0 0 0 0 T a r g e tp r o t o c o la d d r e s s=[ 1 2 8 . 1 . 0 . 1 ] H E X A S C I I F FF FF FF FF FF F0 00 0 0 80 00 60 40 00 10 00 0 0 00 00 00 00 00 08 00 1 0 00 00 00 00 00 00 00 0 C 04 88 C1 10 80 60 00 1 . . . . . . . . . H . . . . . . C 04 88 C1 18 00 10 00 2 . . . . . . . . . H . . . . . . 0 00 10 00 00 00 00 00 0 . . . . . . . . . . . . . . . . 0 00 00 00 0 . . . . . . . . . . . .

ARP Trace (Frame 2)


ARP: ARP: ARP: ARP: ARP: ARP: ARP: ARP: ARP: ARP: ARP:

- - - - - - - - - - - - - - - - Frame 2 - - - - - - - - - - - - - - - - ----- ARP/RARP frame ----Hardware type = 1 (10Mb Ethernet) Protocol type = 0800 (IP) Length of hardware address = 6 bytes Length of protocol address = 4 bytes Opcode 2 (ARP reply) Sender's hardware address = WstDigE58C11 Sender's protocol address = [128.1.0.1] Target hardware address = WstDig488C11 Target protocol address = [128.1.0.2]

ADDR 0000 0010 0020 0030

HEX 00 00 08 00 00 00 00 00

C0 06 C0 00

48 04 48 00

8C 00 8C 00

ASCII 11 00 02 00 11 80 00 00

00 00 01 00

C0 C0 00 00

E5 E5 02 00

8C 8C 00 00

11 11 00 00

08 06 00 01 ...H............ 80 01 00 01 ................ 00 00 00 00 ...H............ ............

Observaes
Observe que os papis de fonte e destino se invertem na resposta. Note que o uso do ARP no exclusivo do TCP/IP, j que o segundo campo identifica o protocolo que est usando o ARP. Observe tambm que, como o request original do ARP um broadcast, qualquer mquina da rede poderia usar a informao contida na mensagem ARP para alterar as entradas da sua tabela ARP. Entretanto, usualmente, uma mquina faz a alterao somente quando ela o destino da mensagem ARP.

Manipulando a Tabela ARP


A maior parte dos sistemas operacionais de rede prov um comando que permite ao administrador examinar/alterar o cache ARP. No Windows:
> arp s 157.55.85.212 00-aa-00-62-c6-09 > arp a
%Adds a static entry %Displays the arp table Interface: 205.169.85.250 on Interface 0x1000002 Internet Address Physical Address Type 205.169.85.250 00-60-08-3b-92-06 dynamic

Manipulando a Tabela ARP

(cont.)

> arp -a nomad-eth0.jvnc.net (128.121.50.50) at 0:0:c:2:85:11 r2d2.jvnc.net (128.121.50.2) at 8:0:20:a:2c:3f minie.jvnc.net (128.121.50.141) at 8:0:20:7:b5:da > telnet mickey.jnvc.net > > arp -a nomad-eth0.jvnc.net (128.121.50.50) at 0:0:c:2:85:11 r2d2.jvnc.net (128.121.50.2) at 8:0:20:a:2c:3f minie.jvnc.net (128.121.50.141) at 8:0:20:7:b5:da mickey.jvnc.net (128.121.50.143) at 8:0:20:7:53:8f >

Observaes Gerais
A tabela ARP mantm entradas estticas e dinmicas.
Entradas dinmicas so adicionadas e apagadas automaticamente. Entradas estticas permanecem na tabela at que o computador seja reiniciado.

A tabela ARP sempre mantm o endereo de broadcast de hardware (FF FF FF FF FF FF) para a sub-rede local como uma entrada permanente. Esta entrada permite a uma mquina aceitar uma mensagem broadcast do ARP. Este endereo no mostrado quando visualizamos a tabela.

Observaes Gerais

(cont.)

Na implementao do TPC/IP da Microsoft, cada entrada na tabela ARP tem um tempo de vida potencial de 10 minutos. Se ela no for usada em 2 minutos ela apagada; do contrrio ela apagada aps 10 minutos. Se o cache atingir a sua capacidade mxima, a entrada mais velha apagada para que a mais nova seja includa. Ambos os valores podem ser alterados via comando de configurao (parmetro ARPCacheLife).