
“What’s the MAC-Address, Kenneth?” is your Benzedrine, uh-huh
I was brain-dead, locked out, numb, not up to speed
I thought I’d pegged you an idiot’s dream
Tunnel vision from the outsider’s screenI never understood the MAC-Address, uh-huh
You wore our expectations like an armored suit, uh-huh
You get a bonus point if you remember which song I am referring to. 😉
Have you ever wondered why MAC addresses are displayed in different ways on different operating systems? And which is the “correct“ way to display them?
This is macOS: a2:b3:c4:d5:e6:f7
Same for Linux: a2:b3:c4:d5:e6:f7
Windows is different: A2-B3-C4-D5-E6-F7
And Cisco is completely off: a2b3.c4d5.e6f7
Which system does it right and who defines „right“?
First we have RFC 5342 (IANA Considerations and IETF Protocol Usage for IEEE 802 Parameters) from the IETF. And there we find the following statement:
1.1. Notations Used in This Document
This document uses hexadecimal notation. Each octet (that is, 8-bit byte) is represented by two hexadecimal digits giving the value of the octet as an unsigned integer. Successive octets are separated by a hyphen.
The IETF says that the Windows notation is the way to go. But who is IETF? They are not responsible for defining MAC addresses.
What about IEEE 802.3? It’s getting better. But that is only the Standard commonly described as Ethernet. But there are more technologies using MAC addresses.
The best reference would be the IEEE 802, which is the „Main IEEE standard for local area networks (LANs) and metropolitan area networks (MANs)“.
And there we have an interesting statement in IEEE 802-2001:
3.1 Definitions
…
3.1.2 bit-reversed representation: The representation of a sequence of octet values … separated by colons.
…
3.1.8 hexadecimal representation: The representation of a sequence of octet values … separated by hyphens.
…
Example:
Hexadecimal representation: AC-DE-48-00-00-80
Bit-reversed representation: 35:7B:12:00:00:01
Based on this definition, both ways (Linux/macOS and Windows) to display MAC addresses was right, depending on the representation. But we are not using a Bit-reversed representation.
And it was 2001. IEEE 802-2014 adds the following note:
NOTE—The bit-reversed representation is of historical interest only and is no longer applicable to any active IEEE 802 standard.
And now, Windows would be right, and Linux/macOS would be wrong. But how could that happen?
I don’t have an answer for that and really would like to know the “why”.
But it could be related to a kind of timing in the development of both Unix and IEEE 802.
Based on some research, Unix got Ethernet networking support in 1983, with the release of 4.2BSD. However, the first actual IEEE 802 standards were published in 1985
That means the IEEE 802 was not yet finalized, but UNIX already had a working implementation.
Could it be related to that? Where are the Network-Legends that implemented Ethernet already 40 years ago and can shed some light on this “problem”?
And what about Cisco? Well, this representation is completely wrong based on this definition. But probably every network engineer is happy about this, because it makes reading and working with MAC addresses much easier!
This is a rewrite of post 17 of my 50 Days of LinkedIn challenge.