Skip to content

Cisco CCNAv7 - O endereço MAC Ethernet

Você já viu o endereço MAC como o “endereço físico” da placa de rede. Agora é hora de entender como ele é montado e como a placa de rede o usa para decidir o que fazer com cada quadro que chega. Esse conhecimento é a base para entender o funcionamento do switch, que vem nos próximos posts.

O endereço MAC tem 48 bits (6 bytes), escritos em 12 dígitos hexadecimais. Se precisar, revise o sistema hexadecimal.

flowchart LR
  A["OUI<br/>24 bits (3 bytes)"] --- B["Identificador da placa<br/>24 bits (3 bytes)"]
ParteTamanhoQuem define
OUI (Organizationally Unique Identifier)24 bitsO IEEE atribui ao fabricante
Identificador da placa24 bitsO fabricante atribui, de forma única, a cada placa

Exemplo: 00:1A:2B:3C:4D:5E

ParteValor
OUI00:1A:2B
Identificador da placa3C:4D:5E

Dois dispositivos diferentes não deveriam ter o mesmo MAC. Como cada fabricante usa um OUI próprio e numera suas placas, a unicidade é garantida em condições normais.

O valor é o mesmo, mas o formato muda conforme o sistema:

FormatoExemploOnde aparece
Dois pontos00:1A:2B:3C:4D:5ELinux, macOS
Hífens00-1A-2B-3C-4D-5EWindows
Pontos (3 grupos de 4)001A.2B3C.4D5ECisco IOS

O MAC original da placa é chamado de BIA (Burned-In Address, endereço gravado). Os sistemas operacionais permitem alterá-lo por software, e muitos celulares e computadores atuais usam endereços MAC aleatórios por rede Wi-Fi, para proteger a privacidade.

No primeiro byte do MAC, os dois bits menos significativos (os dois últimos, à direita) têm significado especial:

BitNomeValor 0Valor 1
Bit 0 (o último)I/G (Individual/Grupo)Endereço individual (unicast)Endereço de grupo (multicast ou broadcast)
Bit 1 (o penúltimo)U/L (Universal/Local)Universal (definido pelo IEEE e pelo fabricante)Local (definido pelo administrador ou pelo sistema)

Exemplo: primeiro byte 0x02 = 00000010

BitValorInterpretação
I/G0Individual
U/L1Administrado localmente

Exemplo: primeiro byte 0x01 = 00000001

BitValorInterpretação
I/G1Grupo (multicast)
U/L0Universal
TipoDestinoExemplo
UnicastUma placa00:1A:2B:3C:4D:5E
BroadcastTodas as placas da rede localFF:FF:FF:FF:FF:FF
MulticastUm grupo de placas01:00:5E:xx:xx:xx (IPv4) e 33:33:xx:xx:xx:xx (IPv6)

O endereço de broadcast tem os 48 bits em 1, e por isso o bit I/G também é 1. O multicast é usado, por exemplo, por protocolos de roteamento e por serviços de transmissão para vários dispositivos.

Cada quadro que chega à placa de rede passa por uma verificação do MAC de destino:

flowchart TB
  A["Quadro chega<br/>à placa de rede"] --> B{"O MAC de destino<br/>é para mim?"}
  B -->|"Sim"| C["Aceita e entrega<br/>à camada superior"]
  B -->|"Não"| D["Descarta o quadro"]

A placa aceita o quadro quando o MAC de destino é:

DestinoAceita?
O próprio MAC da placaSim
Broadcast (FF:FF:FF:FF:FF:FF)Sim
Um multicast de um grupo do qual a placa participaSim
O MAC de outro dispositivoNão (descarta)

Isso é feito em hardware, antes de o sistema operacional ver o quadro, o que economiza processamento.

Algumas ferramentas, como o Wireshark, colocam a placa em modo promíscuo: ela aceita todos os quadros que chegam, mesmo os endereçados a outros. Em redes comutadas, mesmo assim, só se vê o que o switch encaminha para aquela porta.

Mini laboratório: analisando endereços MAC

Section titled “Mini laboratório: analisando endereços MAC”

Objetivo: interpretar endereços MAC e encontrar o seu.

No Linux:

ip link show

No Windows:

getmac /v

Separe o seu MAC em OUI e identificador da placa, e anote o primeiro byte em binário.

Para cada MAC, indique se é individual ou de grupo e universal ou local:

EndereçoI/GU/L
00:1A:2B:3C:4D:5E??
01:00:5E:00:00:05??
02:42:AC:11:00:02??
33:33:00:00:00:01??
FF:FF:FF:FF:FF:FF??
DA:A1:19:5B:32:10??
python3 -c "b=int('02',16); print('I/G =', b & 1, 'U/L =', (b >> 1) & 1)"

Troque o 02 pelo primeiro byte de cada endereço e compare com a sua tabela.

  1. Monte dois PCs ligados a um switch e dê IPs na mesma rede.
  2. No Command Prompt de um PC, rode ipconfig /all e anote o Physical Address.
  3. Faça ping para o outro PC e depois arp -a. Confira se o MAC listado é o do outro PC.

Perguntas para fixar:

  • Quantos bits tem o OUI? Quem o atribui?
  • Qual é o endereço MAC de broadcast e por que o bit I/G dele é 1?
  • Por que um MAC aleatório pode não indicar o fabricante?
Ver respostas

Parte 2:

EndereçoI/GU/L
00:1A:2B:3C:4D:5E (0x00)IndividualUniversal
01:00:5E:00:00:05 (0x01)GrupoUniversal
02:42:AC:11:00:02 (0x02)IndividualLocal
33:33:00:00:00:01 (0x33 = 00110011)GrupoLocal
FF:FF:FF:FF:FF:FF (0xFF)GrupoLocal
DA:A1:19:5B:32:10 (0xDA = 11011010)IndividualLocal
  • 24 bits, atribuídos pelo IEEE ao fabricante.
  • FF:FF:FF:FF:FF:FF. Todos os bits são 1, inclusive o último do primeiro byte (I/G), que indica endereço de grupo.
  • Porque ele é gerado pelo sistema e não usa o OUI do fabricante.
  • O MAC tem 48 bits: 24 do OUI (fabricante, atribuído pelo IEEE) e 24 da placa (atribuídos pelo fabricante).
  • Escreve-se em hexadecimal, com formatos diferentes (:, - ou pontos no Cisco).
  • Dois bits do primeiro byte: I/G (individual ou grupo) e U/L (universal ou local).
  • Tipos de destino: unicast, multicast (01:00:5E, 33:33) e broadcast (FF:FF:FF:FF:FF:FF).
  • A placa aceita o quadro se o destino for o seu MAC, broadcast ou um multicast de que participa; senão, descarta.