Again and again I read that devices are uniquely identified by their MAC addresses. But how are MAC addresses determined? (And do they tell us anything about the device which they represent?)
How are MAC addresses determined?
Vendors are given a range of MAC addresses that can be assigned to their products by the IEEE (Institute of Electrical and Electronics Engineers).
MAC addresses are assigned to vendors in various-sized blocks as appropriate.
The IEEE offers Registration Authority programs or registries which maintain lists of unique identifiers under standards and issue unique identifiers to those wishing to register them. The IEEE Registration Authority assigns unambiguous names to objects in a way which makes the assignment available to interested parties.
You can go to Vendor/Ethernet/Bluetooth MAC Address Lookup and Search to find the vendor given a MAC address or find a MAC address range given a vendor.
Devices are uniquely identified by their MAC addresses
This is incorrect. Devices are not uniquely identified by their MAC addresses:
- In the past, vendors have intentionally or by mistake assigned the same MAC address to multiple devices.
- It is possible to change the MAC address presented by most hardware to the OS, an action often referred to as MAC spoofing:
MAC spoofing is a technique for changing a factory-assigned Media Access Control (MAC) address of a network interface on a networked device. The MAC address is hard-coded on a network interface controller (NIC) and cannot be changed. However, there are tools which can make an operating system believe that the NIC has the MAC address of a user's choosing.
Duplicate MAC Addresses
Manufacturers re-use MAC addresses and they ship cards with duplicate addresses to different parts of the United States or the World so that there is only a very small chance two computers with network cards with the same MAC address will end up on the same network.
MAC addresses are 'burned' into the Network Interface Card (NIC), and cannot be changed. See ARP and RARP on how IP addresses are translated into MAC addresses and vice versa.
In order for a network device to be able to communicate, the MAC address it is using must be unique. No other device on that local network subnet can use that MAC address. If two devices have the same MAC address (which occurs more often than network administrators would like), neither computer can communicate properly. On an Ethernet LAN, this will cause a high number of collisions. Duplicate MAC addresses on the same LAN are a problem. Duplicate MAC addresses separated by one or more routers is not a problem since the two devices won't see each other and will use the router to communicate.
Source Media Access Control
But how are MAC addresses determined?
48-bit MAC "addresses" are the most commonly used Ethernet interface identifiers. Those that are globally unique are also called EUI-48 identifiers. An EUI-48 is structured into an initial 3-octet OUI (Organizationally Unique Identifier) and an additional 3 octets assigned by the OUI holder. For organizations not requiring 3 octets' worth of identifiers, the IEEE allocates IABs (Individual Address Blocks) instead, where the first 4 1/2 octets (36 bits) are assigned, giving the holder of the IAB 1 1/2 octets (12 bits) they can control.
The IEEE describes its assignment procedures and policies for IEEE 802 related identifiers in [802_O&A].
Two bits within the initial 3 octets of an EUI-48 have special significance: the Group bit (01-00-00) and the Local bit (02-00-00). OUIs and IABs are allocated with the Local bit zero and the Group bit unspecified. Multicast identifiers may be constructed by turning on the Group bit, and unicast identifiers constructed by leaving the Group bit zero.
And do they tell us anything about the device which they represent?
Basically MAC Address can be splitted in 2 part.
There is a MAC Address:
And it is Splitted in two parts as this.
First is determined by Organizationally unique identifier or it is called the "Vendor"
A Quoted definition of OUI
An Organizationally Unique Identifier (OUI) is a 24-bit number that uniquely identifies a vendor, manufacturer, or other organization globally or worldwide.
and Second block is a unique identifier, this value is not necessarily unique it could be repeated, because that 48 bits are not infinite or they could be spoofed, and bassically consist in use Third party software to change your current MAC address and appear to be another device in the network.
Here is a online site where you can lookup a vendor.
Every network device has got a MAC address that is a 48 bit identifier that uniquely and globally identifies the particular device. This address is burnt into the NIC during its fabrication.
The MAC address can be represented as
xx:xx:xx:yy:yy:yy where each
xx represents an octet (8 bits).
yy are in hexadecimal format.
xx:xx:xx represent the manufacturer ID whereas
yy:yy:yy represent the device ID manufactured by a given manufacturer. Further, no two manufacturers can have the same manufacturer ID and no two devices by the same manufacturer can have same device ID.
In this way, the uniqueness of MAC address is enforced.
However, remember that one manufacturer may have one or more manufacturer ID (in case it is manufacturing a lot of devices).