A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Linux

Roteamento em redes Linux

Qui

12

Abr

2007


22:39

(10 votos, média 4.80 de 5) 


ARP

ARP é o Protocolo de Resolução de Endereço (Address Resolution Protocol), descrito na RFC 826. Este protocolo é usado por máquinas de rede para resolver a localização/endereço do hardware de uma outra máquina pertencente à mesma rede local. As máquinas da Internet geralmente são conhecidas pelos seus nomes que podem ser traduzidos para um endereço IP. É desta forma que uma máquina na rede tico.com.br consegue se comunicar com outra máquina que esteja na rede teco.com.br. Um endereço IP, no entanto, não informa a localização física de uma máquina - é aí que entra o ARP.

Vamos a um exemplo bem simples. Suponha que você tenha uma rede composta por várias máquinas. Uma delas é a tico, com endereço IP 10.0.0.1; a outra é a teco, com o endereço 10.0.0.2. Imagine que a tico queira enviar um ping para a teco para ver se ela está viva, só que não tem a mínima idéia de onde ela possa estar. O jeito é pedir socorro para o ARP enviando uma solicitação. Esta solicitação ARP é como se fosse um "berro" na rede do tipo "Teco (10.0.0.2), cadê ocê?". Cada uma das máquinas que compõem a rede vão ouvir o grito, mas apenas a teco (10.0.0.2) vai responder. O ARP, ouvindo a resposta, envia uma mensagem para a tico dizendo "Tico (10.0.0.1), estou aqui em 00:60:94:E9:08:12". Com esta dica, a tico consegue se comunicar com a teco até sua "memória" (o cache ARP) se esgotar, o que leva cerca de 15 minutos em sistemas Unix.

A historinha até que é legal, mas o melhor é conferir se é verdadeira. É possível ver o ARP/cache de vizinhos/tabela das suas máquinas com o comando atencao ip neigh show (a tradução de neighbour é vizinho). Usando este comando na tico (10.0.0.1) a resposta é a seguinte:

$ ip neigh show
10.0.0.2 dev eth0 lladdr 00:60:08:3f:e9:f9 REACHABLE
10.0.0.10 dev eth0 lladdr 00:06:29:21:73:c8 REACHABLE

Observação: REACHABLE significa ALCANÇÁVEL. A máquina tico (10.0.0.1) sabe onde encontrar a teco (10.0.0.2), como também sabe que o "ticotecogate" (o gateway) tem o endereço 10.0.0.10. Agora, que tal adicionar mais uma máquina no cache do ARP?

$ ping -c 1 superdotada
PING superdotada (10.0.0.3) from 10.0.0.1 : 56(84) bytes of data.
64 bytes from 10.0.0.3: icmp_seq=0 ttl=255 time=0.9 ms

--- superdotada ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.9/0.9/0.9 ms

$ ip neigh show
10.0.0.3 dev eth0 lladdr 00:06:29:21:80:20 REACHABLE
10.0.0.2 dev eth0 lladdr 00:60:08:3f:e9:f9 REACHABLE
10.0.0.10 dev eth0 lladdr 00:06:29:21:73:c8 REACHABLE

Como resultado da tentativa de fazer contato com a superdotada, o endereço/localização do hardware da superdotada foi adicionado ao cache ARP/vizinhos. Enquanto a entrada para a superdotada não expirar (pela ausência de comunicação entre as duas), a tico sabe onde achar a superdotada e não precisa enviar uma nova solicitação para o ARP.

Da mesma forma que podemos adicionar uma "dica" no ARP, também é possível tirá-la do cache. Para suprimir a superdotada (afinal, está atrapalhando a tico e a teco smile ), use o comando atencao ip delete neigh:

$ ip neigh delete 10.0.0.3 dev eth0
$ ip neigh show
10.0.0.3 dev eth0 FAILED
10.0.0.2 dev eth0 lladdr 00:60:08:3f:e9:f9 REACHABLE
10.0.0.10 dev eth0 lladdr 00:06:29:21:73:c8 STALE

O ip neigh show nos mostra que a tico "esqueceu" como achar a superdotada, ou seja, vai precisar de uma nova solicitação ARP para encontrá-la. Além do mais, o "ticotecogate" mudou seu estado para "STALE" (envelhecido). Isto significa que a localização mostrada ainda é válida, mas precisa ser confirmada na primeira transação que envolver esta máquina.

Informações adicionais