Laboratório: Protocolo ARP
Protocolo ARP
Relação entre a camada rede e a camada enlace
Quando um computador deseja enviar um datagrama IP a um destinatário conectado à sua rede local, ele entrega o datagrama a interface de rede para ela mapear o endereço IP no endereço físico do computador destino[1].
O endereço físico também é conhecido como endereço de MAC e corresponde ao endereço Ethernet de 48 bits, representado na forma de seis bytes hexadecimais, por exemplo:
00:19:21:55:61:d0
O protocolo ARP, permite encontrar o endereço físico a partir do endereço IP da máquina alvo. Para tal, o protocolo usa um mecanismo de difusão (broadcast) na rede local, enviando uma solicitação a todas as máquinas da rede, sendo que a máquina alvo responde indicando o par endereço IP/endereço físico.
O endereço MAC de difusão na rede local é:
ff:ff:ff:ff:ff:ff
A figura abaixo ilustra o funcionamento do protocolo ARP.
Protocolo ARP e memória cache
Para melhorar a performance do protocolo no mapeamento dos endereços IP em endereços físicos, cada máquina possui uma memória (cache) com as últimas consultas realizadas, evitando múltiplos broadcasts. Ainda como refinamento, junto com o broadcast, a estação solicitante envia seu par endereço IP/endereço físico, permitindo que todas as máquinas da rede incluam este par em suas caches locais.
Quando um hardware é trocado, a máquina que sofreu a mudança se anuncia na rede com o novo par endereço IP/endereço físico, logo após sua entrada em operação.
Laboratório para verificar tabela arp
Comando ifconfig
O comando ifconfig, mostra a configuração de rede de uma máquina Linux, incluindo o endereçamento IP e endereço físico de cada interface de rede:
evandrocantu@NBP-EVANDRO:~$ ifconfig eth0 Link encap:Ethernet Endereço de HW a0:1d:48:f7:80:dd UP BROADCAST MULTICAST MTU:1500 Métrica:1 pacotes RX:0 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:0 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) lo Link encap:Loopback Local inet end.: 127.0.0.1 Masc:255.0.0.0 endereço inet6: ::1/128 Escopo:Máquina UP LOOPBACK RUNNING MTU:65536 Métrica:1 pacotes RX:8832 erros:0 descartados:0 excesso:0 quadro:0 Pacotes TX:8832 erros:0 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:0 RX bytes:1165815 (1.1 MB) TX bytes:1165815 (1.1 MB) wlan0 Link encap:Ethernet Endereço de HW 28:e3:47:10:b8:88 inet end.: 192.168.1.111 Bcast:192.168.1.255 Masc:255.255.255.0 endereço inet6: fe80::2ae3:47ff:fe10:b888/64 Escopo:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Métrica:1 pacotes RX:1836344 erros:0 descartados:0 excesso:0 quadro:782674 Pacotes TX:1115596 erros:402 descartados:0 excesso:0 portadora:0 colisões:0 txqueuelen:1000 RX bytes:2672690020 (2.6 GB) TX bytes:92660319 (92.6 MB) IRQ:19
Contudo, para verificar a relação entre os endereços IP e os endereços físicos de outras máquinas da rede local, é necessário contar com o apoio do protocolo ARP.
Comando arp
O comando arp, com parâmetro -a, mostra todas as entradas ARP armazenadas na memória cache de uma máquina Linux, como no exemplo abaixo, relacionando endereços IP e endereços físicos.
evandrocantu@NBP-EVANDRO:~$ arp -a ? (192.168.1.1) em 00:1c:f0:52:05:4a [ether] em wlan0
- O exemplo mostra o comando executado na máquina do professor, mostrando o endereço IP do roteador padrão da rede e seu endereço físico.
- Exercício
Para visualizar a modificação da tabela ARP, execute o comando ping em outras máquinas da rede local, e em seguida, execute novamente o comando arp para verificar se a nova máquina entrou na tabela.
Observe que a tabela arp é dinãmica, incluindo novos pares endereço IP/endereço físico a cada novo acesso a uma máquina e também retirando pares da tabela após decorrido um tempo de vigência do dado.
Referências
- ↑ KUROSE, J.F; ROSS K. W. Redes de Computadores e a Internet: Uma abordagem top-down, São Paulo: Pearson, 2010.
--Evandro.cantu (discussão) 11h45min de 6 de outubro de 2014 (BRT)