Opentopia Directory Encyclopedia Tools

MAC address

Encyclopedia : M : MA : MAC : MAC address



 

In computer networking a Media Access Control address (MAC address) is a unique identifier attached to most forms of networking equipment. Most layer 2 network protocols use one of three numbering spaces managed by the IEEE: MAC-48, EUI-48, and EUI-64, which are designed to be globally unique. Not all communications protocols use MAC addresses, and not all protocols which do require such globally unique identifiers. The IEEE claims trademarks on the names "EUI-48" and "EUI-64". (The "EUI" stands for Extended Unique Identifier.)

ARP/RARP is commonly used to map the layer 2 MAC address to an address in a layer 3 protocol such as Internet Protocol (IP). On broadcast networks such as Ethernet the MAC address allows each host to be uniquely identified and allows frames to be marked for specific hosts. It thus forms the basis of most of the layer 2 networking upon which higher OSI Layer protocols are built to produce complex, functioning networks.

Address details

The original IEEE 802 MAC address, now officially called "MAC-48", comes from the Ethernet specification. Since the original designers of Ethernet had the foresight to use a 48-bit address space, there are potentially 248 or 281,474,976,710,656 possible MAC addresses.

All three numbering systems use the same format, and differ only in the length of the identifier. Addresses can either be "universally adminstered addresses" or "locally administered addresses".

A "universally administered address" is uniquely assigned to a device by its manufacturer; these are sometimes called "burned-in addresses". The first three octets (in transmission order) identify the organization which issued the identifier, and are known as the Organizationally Unique Identifier (OUI). The following three (MAC-48 and EUI-48) or five (EUI-64) octets are assigned by that organization in nearly any manner they please, subject to the constraint of uniqueness. The IEEE expects the MAC-48 space to be exhausted no sooner than the year 2100; EUI-64s are not expected to run out in the foreseeable future.

A "locally administered address" is assigned to a device by a network administrator, overriding the burned-in address. Locally administered addresses do not contain OUIs.

Universally administered and locally administered addresses are distinguished by the setting of the bit below the most significant bit of the address; if that bit is binary 0, the address is universally administered, while if it is binary 1, the address is locally administered. That bit is 0 in all OUIs.

MAC-48 and EUI-48 addresses are usually shown in hexadecimal format, with each octet separated by a dash or colon. An example of a MAC-48 address would be "00-08-74-4C-7F-1D". If you cross-reference the first three octets with IEEE's [OUI assignments], you can see that this MAC address came from Dell Computer Corp. The last three octets represents the serial number assigned to the adapter by the manufacturer.

The following technologies use the MAC-48 identifier format:

The distinction between EUI-48 and MAC-48 identifiers is purely semantic: MAC-48 is used for network hardware; EUI-48 is used to identify other sorts of devices and software. (Thus, by definition, an EUI-48 is not in fact a "MAC address", although it is syntactically indistinguishable from one and assigned from the same numbering space.)

Note: The IEEE now considers the label MAC-48 to be an obsolete term which was previously used to refer to a specific type of EUI-48 identifier used to address hardware interfaces within existing 802 based networking applications and should not be used in the future. Instead, the term EUI-48 should be used by manufacturers and others in the field for this purpose.

EUI-64 identifiers are used in:

The IEEE has built in several special address types to allow more than one Network Interface Card to be addressed at one time: These are "group addresses", as opposed to "individual addresses"; the least significant bit of the first octet of a MAC address distinguishes individual addresses from group addresses. That bit is set to binary 0 in individual addresses and 1 in group addresses. Group addresses, like individual addresses, can be universally administered or locally administered.

In addition, the EUI-64 numbering system encompasses both MAC-48 and EUI-48 identifiers by a simple translation mechanism. To convert a MAC-48 into an EUI-64, copy the OUI, append the two octets 'FF-FF', and then copy the organization-specified part. To convert an EUI-48 into an EUI-64, the same process is used, but the sequence inserted is 'FF-FE'. In both cases, the process can be trivially reversed when necessary. Organizations issuing EUI-64s are cautioned against issuing identifiers which would be confused with these forms. The IEEE's policy is to discourage new uses of 48-bit identifiers in favor of the EUI-64 system.

Confusingly IPv6 -- one of the most prominent standards that uses EUI-64 -- applies these rules inconsistently. Due to an error in the appendix to the specification of IPv6 addressing, it is currently standard practice in IPv6 to extend MAC-48 addresses (such as IEEE 802 MAC address) to EUI-64 using 'FF-FE' rather than 'FF-FF'; it remains to be seen how this inconsistency will be resolved in the future.

Individual Address Block

An Individual Address Block is comprised of a 24-bit OUI managed by the IEEE Registration Authority, followed by 12 IEEE-provided bits (identifying the organization), and 12 bits for the owner to assign to individual devices. An IAB is ideal for organizations requiring fewer than 4097 unique 48-bit numbers (EUI-48).

Printed format

The standard (IEEE 802) format for printing MAC-48 addresses in human-readable media is six groups of two hexadecimal digits, separated by hyphens (-) in transmission order, e.g. 01-23-45-67-89-ab. This form is also commonly used for EUI-64. Other conventions include six groups of two separated by colons (:), e.g. 01:23:45:67:89:ab; or three groups of four hexadecimal digits separated by dots (.), e.g. 0123.4567.89ab; again in transmission order.

Changing MAC addresses

Although physical MAC addresses are permanent by design, several mechanisms allow modification, or "spoofing", of the MAC address that is reported by the operating system. This can be useful for privacy reasons, for instance when connecting to a Wi-Fi hotspot, or to ensure interoperability. Some internet service providers bind their service to a specific MAC address; if the user then changes their network card or intends to install a router, the service won't work anymore. Changing the MAC address of the new interface will solve the problem. Similarly, some software licenses are bound to a specific MAC address. Changing the MAC address in this way is not permanent: after a reboot, it will revert to the MAC address physically stored in the card.

As a MAC address can be changed, it can be unwise to rely on this as a single method of authentication. IEEE 802.1x is an emerging standard better suited to authenticating devices at a low level.

Linux

Under Linux, the MAC address of a Network Interface Card (NIC) can be changed by doing the following: (You must be root in order for this to work)

/etc/init.d/networking stop
ifconfig eth0 hw ether 02:01:02:03:04:08
/etc/init.d/networking start
Under Fedora Core 5, and possibly in other Linux distributions, to disable and restart networking, one must stop and start /etc/init.d/network, instead of /etc/init.d/networking. If you have the Iproute2 tools installed, you may prefer to use the ip command instead:

/etc/init.d/network stop
ip link set eth0 address 02:01:02:03:04:08
/etc/init.d/network start
To confirm your setting you may prefer to use ip link ls eth0 or ip addr ls eth0 instead of using ifconfig eth0.

NOTE: You may not be able do this if using a DSL modem (depending on modem vendor or ISP).

In Red Hat Linux and other similar systems (Fedora Core, etc) an easy way to make it "permanent" across reboots is to just add a variable like this to your ifcfg-eth0 or similar file:

MACADDR=12:34:56:78:90:ab
(Upper or lower case on the MAC address are fine, because the network function converts it to upper case.)

and service network restart for prompt results.

In Debian just put

hwaddress ether 02:01:02:03:04:08
in the appropriate section of /etc/network/interfaces so that the MAC address is set when the network device is started.

You can also use the tool [MACChanger] to change the MAC address under Linux.

To change MAC address during boot time with MACChanger,add the following line to your /etc/network/interfaces

pre-up macchanger -m 12:34:56:78:90:AB eth0

FreeBSD

Under FreeBSD, the MAC address can be changed in a similar way:

ifconfig fxp0 ether 02:01:02:03:04:05
(This can be done without needing to take the interface down and back up)

OpenBSD

As of OpenBSD 3.8, the MAC address can be changed as follows:

ifconfig bge3 lladdr 02:01:02:03:04:05

Mac OS X

Under Mac OS X, the MAC address can be altered in a fashion similar to the Linux and FreeBSD methods:

ifconfig en0 lladdr 02:01:02:03:04:05
or

ifconfig en0 ether 02:01:02:03:04:05
This must be done as the superuser and only works for the computer's ethernet card. Instructions on spoofing AirPort Extreme (2.0) cards are available [here]. There are not, as of yet, any known ways to spoof original AirPort (1.0) cards.

The AirPort Extreme MAC address can also be changed easily with SpoofMac, available here: http://ungeord.net/smat/de/spoofmac/showData/ 9 July 2006 update: SpoofMac seems to have been discontinued.

Windows

Under Windows XP, the MAC address can be changed in the Ethernet adapter's Properties menu, in the Advanced tab, as "MAC Address", "Locally Administered Address", "Ethernet Address", "Physical Address" or "Network Address". The exact name depends on the Ethernet driver used; not all drivers support changing the MAC address in this way.

However, a better solution - requiring Administrative User Rights - is to pass over the System Registry Keys under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\. Here settings for each network interface can be found. The contents of the string value called 'NetworkAddress' will be used to set the MAC address of the adapter when next it is enabled. Resetting the adapter can be accomplished in script with the freely available command line utility [devcon] from Microsoft, or from the adapters context menu in the Network Connections control panel applet.

There is a FREEWARE tool available, [Technitium MAC Address Changer v3.1] which allows you to change MAC address of any network adapter irrespective of its driver or manufacturer.

Note: to check your MAC address easily under Windows NT4, Windows 2000 or Windows XP: Click "Start", choose "Run...", type CMD and click OK, then type "ipconfig /all" (without quotation) in the Command Prompt window that appears. The number under physical address is the MAC address. If multiple IP are displayed, you should look under the label "Ethernet adapter x", where x is the name of your connection (which is Local Area Connection by default).

Other systems

You can use a third-party utility to change the MAC of almost any Ethernet adapter - two of them are listed below in External Links.

Most consumer-grade routers allow for a user-specified MAC address to be given.

Change The MAC Address Permanently

Download diagnostic programs for your card from [this link]. Compile and run under Linux.
cc -O -Wall -o rtl8139-diag rtl8139-diag.c
./rtl8139-diag -w -H 12:34:56:78:9a:bc
Under Linux:
ifconfig hw
Under FreeBSD:
ifconfig link

See also

External links

References

 


From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.


Search Titles
0123456789
ABCDEFGHIJ
KLMNOPQRST
UVWXYZ?

E-mail this article to:

Personal Message: