Informática Numaboa - Linux
Roteamento em redes Linux
Qui 12 Abr 2007 22:39 |
- Detalhes
- Categoria: Como fazer configurações
- Atualização: Domingo, 12 Abril 2009 16:58
- Autor: vovó Vicki
- Acessos: 17182
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 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 ), use o comando 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.