Cada peça de hardware em sua rede local tem um endereço MAC além do endereço IP atribuído a ele pelo roteador ou servidor local. Para que exatamente é esse endereço MAC?
A sessão de perguntas e respostas de hoje chega até nós como cortesia do SuperUser - uma subdivisão do Stack Exchange, um grupo de sites de perguntas e respostas voltado para a comunidade
A questão
O leitor de superusuário Vishnu Vivek está curioso sobre os endereços MAC e suas funções:
Eu entendo que os endereços IP são hierárquicos, para que os roteadores em toda a 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. Portanto, os endereços MAC não são usados para transferência de pacotes.
Eu não acho que fique lá sem motivo. Portanto, minha pergunta é: onde exatamente um endereço MAC entra em jogo durante uma transferência de pacote?
Onde, de fato? Qual é a função específica do endereço MAC?
A resposta
O colaborador do superusuário Werner Henze oferece algumas dicas sobre a função do endereço MAC:
Para que são usados os endereços MAC?
Os endereços MAC são os princípios básicos de baixo nível que fazem sua rede baseada em ethernet funcionar.
Cada placa de rede possui um endereço MAC exclusivo. Os pacotes enviados na Ethernet sempre vêm de um endereço MAC e são enviados para um endereço MAC. Se um adaptador de rede está recebendo um pacote, ele está comparando o endereço MAC de destino do pacote com o endereço MAC do próprio adaptador. Se os endereços coincidirem, o pacote é processado, caso contrário, é descartado.
Existem endereços MAC especiais, um por exemplo é ff: ff: ff: ff: ff: ff, que é o endereço de broadcast e endereça todos os adaptadores de rede na rede.
Como os endereços IP e endereços MAC funcionam juntos?
IP é um protocolo usado em uma camada acima da Ethernet. Outro protocolo, por exemplo, seria IPX.
Quando o 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 do próprio computador. Se x.x.x.x estiver na mesma rede, o IP de destino pode ser alcançado diretamente, caso contrário, o pacote precisa ser enviado ao 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, seja 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) que é usado para isso. Depois que o remetente recupera o endereço MAC do próximo salto, ele escreve esse 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 broadcast perguntando "Quem tem o endereço IP y.y.y.y?" Todos os dispositivos recebem esse pacote, mas apenas aquele com o endereço IP y.y.y.y responderá com um pacote “Sou eu”. O dispositivo que está pedindo 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, portanto o dispositivo não precisa resolver o endereço MAC todas as vezes.
Encaminhamento
Quase esqueci de mencionar: não existe roteamento baseado em endereços MAC. Os endereços Ethernet e MAC de baixo nível só podem alcançar todos os dispositivos no mesmo rede (com ou sem fio). Se você tiver duas redes com um roteador entre elas, não pode fazer com que um dispositivo na rede A envie 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 o 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 do IP. Simplesmente visto 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. Em seguida, ele verificará se pode acessar diretamente o endereço IP de destino. Nesse caso, ele envia o pacote para o destino. Caso contrário, o próprio roteador também tem um roteador upstream configurado e enviará o pacote para esse roteador.
Claro, 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 conheçam os melhores caminhos para todos os pacotes.
Outros casos de uso para endereços MAC
- Os switches de rede armazenam uma lista de endereços MAC vistos em cada porta e apenas encaminham os pacotes às portas que precisam ver o pacote.
- Os pontos de acesso sem fio geralmente usam endereços MAC para controle de acesso. Eles só permitem o acesso a dispositivos conhecidos (o endereço MAC é único e identifica os dispositivos) com a senha correta.
- Os servidores DHCP usam o endereço MAC para identificar dispositivos e fornecer endereços IP fixos a alguns dispositivos.