Redes – Sabe para que serve o protocolo ARP?

25 Comentários

Como é que os PC’s se descobrem uns aos outros?

No mundo das redes informáticas existem muitos protocolos e tecnologias. Ao longo de alguns artigos que temos vindo a publicar no pplware (ver aqui), temos tentado explicar alguns desses termos/conceitos e funcionamento de várias tecnologias, por forma a que os nossos leitores estejam mais contextualizados com o mundo das redes de dados.

Hoje vamos explicar o que é e para que serve o protocolo ARP.

lan_00

Antes de passar a explicação do protocolo ARP propriamente dito, apenas recordar o que são endereços físicos e endereços lógicos.

Endereços físicos – Um endereço físico é o endereço MAC (Media Access Control) que está associado a um determinado equipamento. Esse endereço é composto por 48 bits (12 caracteres hexadecimais) Saber mais aqui.

Endereços lógicos Os endereços lógicos são os endereços IP (IPv4 ou IPv6) que configuramos num determinado terminal. Saber mais aqui.

O que é e como funciona o protocolo ARP

Recentemente um leitor enviou-me um e-mail com a seguinte questão: “Numa rede ethernet, como é que  os PC’s se descobrem uns aos outros?”. Quem trabalha com redes a resposta seria directa: o protocolo ARP (Address Resolution Protocol – RFC 826) permite que um PC obtenha o endereço físico de uma máquina, usando o endereço IP (da máquina de destino).

Percebido? hum…confuso. Então vamos a três questões essenciais:

1) Quando pretendemos comunicar com outra máquina, o que precisamos de saber?

Endereço IP (ou o nome que depois é traduzido num endereço IP).

2) Qual a informação que é inserida numa frame relativamente ao destinatário?

O MAC Address do PC de destino (endereço físico) é incluído na frame (PDU da camada 2, saber mais aqui).

3) Mas se eu só sei o IP, como descobrir o MAC do PC de destino?

Recorrendo ao protocolo ARP, que permite obter o endereço MAC (do PC de destino) usando o endereço IP (do PC de destino).

Vamos a um exemplo de funcionamento do protocolo ARP

  • Vamos considerar que o PC-A com o endereço IP: 192.168.0.1 quer comunicar com o PC-B que tem o endereço IP: 192.168.0.3 (os PCs estão na mesma rede).
  • O PC-A verifica a sua tabela ARP (podem ver esta informação através do comando arp –a) para saber se já existe alguma informação relativamente ao endereço físico do PC-B. Caso exista, esse endereço é usado.
  • Caso o PC-A não tenha qualquer informação na tabela ARP do PC-B, o protocolo ARP envia uma mensagem de broadcast (para o endereço FF:FF:FF:FF:FF:FF) a “questionar” (ARP Request) a quem pertence o endereço IP (neste caso o endereço IP do PC-B).
  • O PC-B responderá à mensagem ARP enviada pelo PC-A, enviando o seu endereço físico.O PC-A guardará essa informação na sua tabela ARP (que fica guardada na memória RAM do PC)

 

arp_00

Nota: No caso do envio de informação para fora do domínio da rede local,o endereço físico a ser registado na tabela ARP de um PC local será o endereço físico do gateway.

A resolução de endereços físicos em endereços lógicos também é possível, sendo para isso necessário recorrer ao protocolo RARP (Reverse Address Resolution Protocol – RFC 903).

Num próximo artigo apresentaremos uma simulação relativamente ao uso do protocolo ARP por parte dos PCs.

Há alguma dúvida? Para quem não conhecia o protocolo ARP tinha ideia que as coisas funcionavam assim?

Partilhar:
Tags:

Comentários

25

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Freita
    Freita

    muito bom. Acho que poderiam ter dito gue o IP não é o único protocolo de endereçamento lógico. há o IPX, o AppleTalk e outros. o nome Novell vem-me á cabeça não sei porque razao.

    1. Avatar de avalanche
      avalanche

      Talvez pq o ARP seja o sucessor do IPX, ainda do tempo de tipologias em BUS por exemplo…

  2. Avatar de Cláudio Silva
    Cláudio Silva

    Também é possível fazer um Unsolicited ARP, isto é mandar a informação de qual o seu MAC para a rede sem tal ter sido solicitado.

    As entradas ARP em linux têm um timeout. Após uns quantos minutos é automaticamente enviado outro ARP request.

    ARP também pode ser usado para hackar uma rede LAN ao falsificar um entrada ARP. O PC A está a comunicar com B. O PC C manda um ARP para a rede a dizer que agora o IP de B está associado ao MAC de C. O PC A vai passar a mandar pacotes com o IP de B, mas com o MAC de C. Desta forma C passa a receber os pacotes que eram de A para B.

  3. Avatar de t@ndre
    t@ndre

    Já falavas mas é dos processos em IPv6, o ARP já passou de moda

    1. Avatar de Miguel Almeida
      Miguel Almeida

      “o ARP já passou de moda”

      Já? É usado e vai continuar a ser durante muitos anos!

      1. Avatar de Marcos

        Enganaste…

        “In Internet Protocol Version 6 (IPv6) networks, the functionality of ARP is provided by the Neighbor Discovery Protocol (NDP).”

        1. Avatar de manu
          manu

          isso é verdade mas dentro de uma rede empresarial não faz sentido migrar já para IPV6.

        2. Avatar de brunobola
          brunobola

          Não vai continuar a ser usado e por muitos anos…

          http://pt.wikipedia.org/wiki/Address_Resolution_Protocol

          Já agora, o ipv6 vai ser implementado quando ????? pois já se fala á mais de 10 anos e ainda cá andamos…

          1. Avatar de YaBa

            Quando tivermos que fazer a implementação naqueles clientes que a gente sabe é que vai doer 😀 heheheheh
            ptt-t

    2. Avatar de shadowknight
      shadowknight

      o IPv6 foi criado porque está a ficar escasso os numeros de IPs,o IPv4 so suporta 4 bilhoes de endereços, e atribuir IPs diferentes está-se a tornar escasso, dai ter sido criado o IPv6. Por isso é que dentro de empresas nao se justifica utilizar o IPv6.

      1. Avatar de Marcos

        Sim, mas mais cedo ou mais tarde tudo vai passar a IPv6, pois embora existem muitos protocolos compatíveis, há 1 ou outro que não. Dai a que um dia, ter que ser tudo IPv6.

        Como o sub-endereçamento criaram-se sub-redes, para colmatar a falta de IP’s. Antes de isto existir, cada dispositivo tinha que ter um IP diferente na rede global (internet).

        Se isto não tivesse sido inventado, o IPv4 já tinha ido a algum tempo.

  4. Avatar de Cláudio Silva
    Cláudio Silva

    Configuração ARP em linux:

    Enviar pedidos ARP para um determinado IP:

    “sudo arping -c 100 -I eth0 192.168.1.1”
    Este comando envia 100 ARP requests para o ip 192.168.1.1 na interface ETH0.

    ———

    Inserir uma entrada ARP manual, isto é dizer a IP stack que o IP X têm o MAC y:

    arp -s 10.0.0.1 02:8F:4F:AC:27:F1
    Este comando diz que o IP 10.0.0.1 está no MAC 02:8F:4F:AC:27:F1

    ——–

  5. Avatar de Valente
    Valente

    Isto faz-me lembrar os anos 80 em que trabalhava com redes. Apesar de agora, “jovem idoso” me dedicar mais a Androidices, continuo a gostar destas coisas. Faz-me bem, faz trabalhar o meu cérebro…
    Já fui rever o modelo OSI com o link acima referido. Gostei do artigo.

    Continuem, continuem…

  6. Avatar de Pedro Pinto

    Já agora, para quem pretender ver a tabela arp IPv6 pode usar o comando:
    netsh int ipv6 show neigh

  7. Avatar de Paulo Pereira
    Paulo Pereira

    Já agora convém realçar que existe o protocolo RARP se faz precisamente o oposto!!!
    Sabemos o endereço físico e queremos saber o endereço lógico

    Cumprimentos
    Paulo Pereira

  8. Avatar de Ricardo Silva

    Bom dia uma sugestão no seguimento de mais um bom exemplo aqui dado a quem está a querer saber mais sobre redes, seria como acima mencionado o RARP, mas também e se calhar mais usado mas menos conhecido “proxyARP”.
    Cumprimentos

    1. Avatar de Pedro Pinto

      Parece-me interessante. Fica aqui na lista de pendentes.

  9. Avatar de Bobby
    Bobby

    A mim parece-me que percisanto todos de um curso mas é de hardware de comunicacao, Estrutura ETH e em cima os outros protocolos isto para Lan . ETH / TCP.IP ou ETH / IPX.SPX ETH / ICMP etc… bombocas e morangos

    o mac vem no eth 02:8F:4F:AC:27:F1
    as maquinas para comunicar nao necessitam de tcp ip ou outro apenas com eth funciona, agora os sistemas operativos adoptarar os protocolos IP ou IPX para comunicacao.

    1. Avatar de Pedro Pinto

      what????? Acho que é melhores fazeres um Reboot 🙂

      1. Avatar de avalanche
        avalanche

        boa dica..

  10. Avatar de Lianderson
    Lianderson

    OI, uma segunda maquina se conectou ao meu dispositivo móvel, usando o mesmo endereço MAC address, o meu aparelho wi-fi não conseguiu detectar o invasor, como sou programador, consegui identificar, tentei desconectar da minha rede mas ñ consegui, o que faço para desconectar?

  11. Avatar de Margarida
    Margarida

    Só uma pequena questão 🙂

    Fiquei sem perceber porque precisam de saber o MAC address para poderem comunicar visto que já sabem o IP.

    Muito obrigada 🙂

  12. Avatar de Rafael
    Rafael

    Pedro, eu gostaria de uma explicação sobe o comando:

    “arp -aon IP | findstr 0.0:porta”

    Eu usava este comando há um tempo atrás, mas não lembro como funciona…
    Tentei usar ontem, mas não deu o resultado esperado.

    Obrigado

  13. Avatar de IURI
    IURI

    Obrigado pela explicação sobre ARP.