MAC-адрес

MAC-адрес (от  — надзор за доступом к среде, также Hardware Address,  также физический адрес) — уникальный идентификатор, присваиваемый каждой единице сетевого оборудования или некоторым их интерфейсам в компьютерных сетях Ethernet.

При проектировании стандарта Ethernet было предусмотрено, что каждая сетевая карта (равно как и встроенный сетевой интерфейс) должна иметь уникальный шестибайтный номер (MAC-адрес), «прошитый» в ней при изготовлении. Этот номер используется для идентификации отправителя и получателя фрейма; и предполагается, что при появлении в сети нового компьютера (или другого устройства, способного работать в сети) сетевому администратору не придётся настраивать этому компьютеру MAC-адрес вручную.

Уникальность MAC-адресов достигается тем, что каждый производитель получает в координирующем комитете IEEE Registration Authority диапазон из 16 777 216 (224) адресов и, по мере исчерпания выделенных адресов, может запросить новый диапазон. Поэтому по трём старшим байтам MAC-адреса можно определить производителя. Существуют таблицы, позволяющие определить производителя по MAC-адресу; в частности, они включены в программы типа arpalert.

В широковещательных сетях (таких, как сети на основе Ethernet) MAC-адрес позволяет уникально идентифицировать каждый узел сети и доставлять данные только этому узлу. Таким образом, MAC-адреса формируют основу сетей на канальном уровне модели OSI, которую используют протоколы более высокого (сетевого) уровня. Для преобразования MAC-адресов в адреса сетевого уровня и обратно применяются специальные протоколы (например, ARP и RARP в сетях IPv4, и NDP в сетях на основе IPv6).

Большинство сетевых протоколов канального уровня используют 1 из 3-х пространств MAC-адресов, управляемых IEEE (или MAC-48, или EUI-48, или EUI-64); адреса в каждом из тех пространств, теоретически, должны быть глобально уникальными. Но не все протоколы используют MAC-адреса; и не все протоколы, использующие MAC-адреса, нуждаются в подобной уникальности этих адресов.

Адреса вроде MAC-48 наиболее распространены; они используются в таких технологиях, как Ethernet, Token ring, FDDI, WiMAX и других. Они состоят из 48 бит; таким образом, адресное пространство MAC-48 насчитывает 248 (или 281 474 976 710 656) адресов. Согласно подсчётам IEEE, этого запаса адресов хватит по меньшей мере до 2100 года.

EUI-48 от MAC-48 отличается лишь семантически: в то время как MAC-48 используется для сетевого оборудования — EUI-48 применяется для других типов аппаратного и программного обеспечения.

Идентификаторы EUI-64 состоят из 64 бит и используются в FireWire, а также в IPv6 (в качестве младших 64 бит сетевого адреса узла).

Структура MAC-адреса 

Стандарты IEEE определяют 48-разрядный (6 октетов) MAC-адрес, который разделён на четыре части.

Первые 3 октета (в порядке их передачи по сети; старшие 3 октета, если рассматривать их в традиционной бит-реверсной шестнадцатеричной записи MAC-адресов) содержат 24-битный уникальный идентификатор организации (OUI), или код MFG (Manufacturing, производителя), который производитель получает в IEEE. При этом, в самом первом октете используются только 6 старших разрядов, а два младших имеют специальное назначение:
 Нулевой бит — указывает: для одиночного (0) или группового (1) адресата предназначен кадр;
 Первый бит — указывает, является ли MAC-адрес глобально (0) или локально (1) администрируемым.

Следующие три октета — выбираются изготовителем для каждого экземпляра устройства (за исключением сетей системной сетевой архитектуры SNA).

Таким образом, глобально администрируемый MAC-адрес устройства глобально уникален и обычно «зашит» в аппаратуру.

Администратор сети имеет возможность вместо использования «зашитого» назначить устройству MAC-адрес по своему усмотрению. Такой локально администрируемый MAC-адрес выбирается произвольно и может не содержать информации об OUI. Признаком локально администрируемого адреса является соответствующий бит первого октета адреса (см. выше).

Для того чтобы узнать MAC-адрес сетевого устройства, в различных операционных системах используются следующие команды:
 Windows — ipconfig /all — более подробно расписывает — какой MAC-адрес к какому сетевому интерфейсу относится;
 Windows — getmac /v — менее подробно расписывает — какой MAC-адрес к какому сетевому интерфейсу относится;
 Linux — ip link show
 FreeBSD — ifconfig | grep ether
 OpenBSD — ifconfig | grep lladdr
 HP-UX — /usr/sbin/lanscan
 Mac OS X — ifconfig, либо в «Системных настройках» («Сеть», «Выбрать подключение», «Дополнительно», «Ethernet», «Идентификатор Ethernet»);
 QNX4 — netinfo -l
 QNX6 — ifconfig или nicinfo
 Cisco IOS, JUNOS — show interfaces

Смена MAC-адреса 
Существует возможность смены MAC-адреса программным путём, так как его значение, указанное через драйвер, имеет более высокий приоритет, чем «зашитое» в плату. Однако всё же существует оборудование, в котором смену MAC-адреса произвести невозможно без программатора (обычно это телекоммуникационное оборудование; например, приставки для IP-TV (STB)).

В некоторых устройствах, оснащённых веб-интерфейсом управления, возможна смена MAC-адреса во время настройки: большинство маршрутизаторов позволяют дублировать MAC-адрес сетевой платы, через которую он подключён к компьютеру.

См. также 
 OUI
 NIC
 ARP
 Media Access Control
 IP-адрес
 Компьютерная сеть
 Компьютер
 IMEI

Примечания

Литература 
 Standard Group MAC Addresses. A Tutorial Guide

Ссылки 
 Способы изменения MAC-адреса в операционных системах
 Определение производителя по первым 6 цифрам MAC

Уникальные идентификаторы
Управление доступом к среде