MAC Address – Why bb:bb:bb:bb:bb:bb is a Non-Unicast MAC Address?

ethernetmac address

For testing purposes decided to add static IP addresses to my router for some mac addresses. For simplifity I started with aa:aa:aa:aa:aa:aa and assigned ip 192.168.1.100. These combination has been saved successful. But when I tried bb:bb:bb:bb:bb:bb router told me "non-unicast mac address". What does it means? Why I can not use this mac address inside our network?

Best Answer

The least significant bit (LSB) in the MAC-Address is the Individual/Group type specification. IEEE 802.3 specifies the MAC-Address like this (with LSB first):

+---------+---------+----------------+
| I/G Bit | L/G Bit | 46-Bit Address |
+---------+---------+----------------+

I/G Bit: If this bit is 0, it shall indicate that the address field contains an individual address. If this bit is 1, it shall indicate that the address field contains a group address that identifies none, one or more, or all of the stations connected to the LAN. In the Source Address field, the first bit is reserved and set to 0.

L/G Bit: The second bit shall be used to distinguish between locally or globally administered addresses. For globally administered (or U, universal) addresses, the bit is set to 0. If an address is to be assigned locally, this bit shall be set to 1. Note that for the broadcast address, this bit is also a 1.

When you convert the first byte of your address bb into binary, you get 10111011. Here the LSB is last, so the last bit in the first octet/byte is the I/G bit, which is 1. This makes your MAC address a group MAC address which your router rejects. If you use aa, you get 10101010 where the last bit is 0, making this an individual (unicast) MAC-Address.

To make your MAC-Adress unicast and also make clear that you've locally assigned it (and to prevent MAC collision) you should use an address where the I/G bit is turned off and the L/G bit is turned on. This means one of the following addresses:

X2:XX:XX:XX:XX:XX
X6:XX:XX:XX:XX:XX
XA:XX:XX:XX:XX:XX
XE:XX:XX:XX:XX:XX

You can use any hex value you want for X.