6

I am developing a program that creates random MAC addresses. I understand that in order to avoid collisions with OUI addresses, my addresses should "locally-administered" addresses, by setting the second least-significant bit of the first byte (the msb byte) to 1.

Many code samples that I found simply set the first byte to 0x02, i.e. set the address to be locally-administered and unicast, and avoid choosing random values for the other bits of the first byte (to keep the code simple by avoiding bit operations).

However, I found a list of standard OUI address prefixes here, in which some prefixes begin with 0x02 and 0xAA (the lower two bits of 0xAA are also 0b10):

  • 3COM CORPORATION: 02-60-8C, 02-C0-8C
  • CARDIAC RECORDERS INC.: 02-9D-8E
  • COMMUNICATION MACHINERY CORP.: 02-CF-1C
  • DATA RECALL LTD: 02-70-B3
  • DIGITAL EQUIPMENT CORPORATION: AA-00-00, AA-00-01, AA-00-02, AA-00-03, AA-00-04
  • LOGIC REPLACEMENT TECH. LTD.: 02-60-86
  • M/A-COM INC. COMPANIES: 02-70-B0
  • NIXDORF COMPUTER CORPORATION: 02-E6-D3
  • OCTOTHORPE CORP.: 02-BB-01
  • OLIVETTI TELECOMM SPA (OLTECO): 02-AA-3C
  • PERQ SYSTEMS CORPORATION: 02-1C-7C
  • RACAL-DATACOM: 02-07-01, 02-70-01

Does anyone have an explanation for this?

8

NOTE – A very small number of assignments made prior to adoption of IEEE 802 standards have the X bit equal to one (BlockID assignments). These assignments are documented in the CID registry.

https://standards.ieee.org/develop/regauth/tut/eui.pdf , p.4

  • 1
    Thanks, I suppose setting the first byte to 0x06 instead of 0x02 should be safer. – Oren May 27 '15 at 9:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.