O que exatamente é um endereço MAC usado para?
Cada peça de hardware em sua rede local possui um endereço MAC além do endereço IP atribuído a ele pelo roteador ou servidor local. O que exatamente é esse endereço MAC para?
A sessão de perguntas e respostas de hoje nos é oferecida por cortesia do SuperUser - uma subdivisão do Stack Exchange, um agrupamento de sites de perguntas e respostas conduzido pela comunidade..
A questão
O leitor do SuperUser Vishnu Vivek está curioso sobre os endereços MAC e sua função:
Eu entendo que os endereços IP são hierárquicos, de modo que os roteadores da Internet saibam em qual direção encaminhar um pacote. Com endereços MAC, não há hierarquia e, portanto, o encaminhamento de pacotes não seria possível. Então, endereços MAC não são usados para transferência de pacotes.
Eu não acho que fica lá sem motivo. Então minha pergunta é, onde exatamente um endereço MAC entra em jogo durante uma transferência de pacotes?
Onde de fato? Qual é a função específica do endereço MAC?
A resposta
O colaborador do SuperUser, Werner Henze, oferece algumas dicas sobre a função do endereço MAC:
Quais são os endereços MAC usados para?
Endereços MAC são os princípios básicos de baixo nível que fazem o seu trabalho de rede baseado em Ethernet.
Cada uma das placas de rede tem um endereço MAC exclusivo. Os pacotes enviados na ethernet são sempre provenientes de um endereço MAC e enviados para um endereço MAC. Se um adaptador de rede estiver recebendo um pacote, ele estará comparando o endereço MAC de destino do pacote com o endereço MAC do próprio adaptador. Se os endereços corresponderem, o pacote será processado, caso contrário, será descartado.
Existem endereços MAC especiais, um por exemplo é ff: ff: ff: ff: ff: ff, que é o endereço de broadcast e endereça cada adaptador de rede na rede.
Como os endereços IP e os endereços MAC funcionam juntos?
IP é um protocolo usado em uma camada acima da ethernet. Outro protocolo, por exemplo, seria o IPX.
Quando seu computador deseja enviar um pacote para algum endereço IP x.x.x.x, a primeira verificação é se o endereço de destino está na mesma rede IP que o próprio computador. Se x.x.x.x estiver na mesma rede, o IP de destino poderá ser acessado diretamente, caso contrário, o pacote precisará ser enviado para o roteador configurado..
Até agora as coisas parecem ter piorado, porque agora temos dois endereços IP: um é o endereço de destino do pacote IP original, o outro é o IP do dispositivo para o qual devemos enviar o pacote (o próximo salto, ou o final destino ou o roteador).
Como a ethernet usa endereços MAC, o remetente precisa obter o endereço MAC do próximo salto. Existe um protocolo especial ARP (protocolo de resolução de endereços) usado para isso. Uma vez que o remetente tenha recuperado o endereço MAC do próximo salto, ele escreve o endereço MAC de destino no pacote e envia o pacote.
Como funciona o ARP??
O próprio ARP é um protocolo acima da ethernet, como IP ou IPX. Quando um dispositivo deseja saber o endereço MAC de um determinado endereço IP, ele envia um pacote ao endereço MAC de transmissão perguntando “Quem tem o endereço IP yyyy?” Todos os dispositivos recebem esse pacote, mas somente aquele com o endereço IP yyyy responderá com um pacote "Sou eu". O dispositivo solicitante recebe a resposta e agora sabe que o endereço MAC de origem é o endereço MAC correto a ser usado. É claro que o resultado será armazenado em cache, para que o dispositivo não precise resolver o endereço MAC sempre.
Roteamento
Eu quase me esqueci de mencionar: não há roteamento baseado em endereços MAC. Endereços Ethernet e MAC de baixo nível só podem alcançar todos os mesmo rede (cabeada ou sem fio). Se você tem duas redes com um roteador entre você não pode ter um dispositivo na rede A enviar um pacote para o endereço MAC de um dispositivo na rede B. Nenhum dispositivo na rede A tem o endereço MAC do dispositivo na rede B, então um pacote para este endereço MAC será descartado por todos os dispositivos na rede A (também pelo roteador).
O roteamento é feito no nível de IP. Basta ver que o roteador está apenas fazendo o que descrevi acima na seção “Como os endereços IP e os endereços MAC funcionam juntos?”. O roteador receberá pacotes para seu próprio endereço MAC, mas para um endereço IP diferente. Ele irá então verificar se ele pode alcançar diretamente o endereço IP alvo. Se assim for, ele envia o pacote para o alvo. Caso contrário, o próprio roteador também tem um roteador upstream configurado e enviará o pacote para esse roteador.
Claro que você pode ter vários roteadores configurados. Seu roteador doméstico terá apenas um roteador upstream configurado, mas no backbone da Internet os grandes roteadores têm grandes tabelas de roteamento para que eles saibam as melhores maneiras para todos os pacotes.
Outros casos de uso para endereços MAC
- Os comutadores de rede armazenam uma lista de endereços MAC vistos em cada porta e apenas enviam pacotes para as portas que precisam ver o pacote.
- Os pontos de acesso sem fio geralmente usam endereços MAC para controle de acesso. Eles só permitem acesso a dispositivos conhecidos (o endereço MAC é único e identifica dispositivos) com a senha correta.
- Servidores DHCP usam o endereço MAC para identificar dispositivos e dar endereços IP fixos para alguns dispositivos.
Tem algo a acrescentar à explicação? Soe fora nos comentários. Quer ler mais respostas de outros usuários do Stack Exchange com experiência em tecnologia? Confira o tópico de discussão completo aqui.