MAC-адрес

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

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

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

Уникальность MAC-адресов достигается тем, что каждый производитель получает в координирующем комитете IEEE Registration Authority диапазон из шестнадцати миллионов (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)[1], или код MFG (Manufacturing, производителя), который производитель получает в IEEE. При этом используются только младшие 22 разряда (бита); 2 старшие имеют специальное назначение:

  • Первый бит (младший бит первого байта) — указывает: для одиночного (0) или группового (1) адресата предназначен кадр;
  • Второй младший бит первого байта — указывает, является ли MAC-адрес глобально (0) или локально (1) администрируемым.

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

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

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

Для того чтобы узнать MAC-адрес сетевого устройства, в различных операционных системах используются следующие команды:

  • Windows — ipconfig /all — более подробно расписывает — какой MAC-адрес к какому сетевому интерфейсу относится;
  • Windows — getmaс /v — менее подробно расписывает — какой MAC-адрес к какому сетевому интерфейсу относится;
  • Linux — ifconfig -a | grep HWaddr
  • 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

Смена MAC-адреса[править | править вики-текст]

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

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

В ОС «Windows» смену MAC-адреса можно осуществить встроенными средствами ОС: в свойствах сетевой платы, во вкладке «Дополнительно», для редактирования доступно свойство «Сетевой адрес» (англ. «Network Address», у некоторых изготовителей сетевых плат это свойство называется «Locally Administered Address») — позволяющее принудительно присвоить нужный MAC-адрес.

В ОС «FreeBSD»— MAC-адрес меняется одной командой от суперпользователя (root):

# ifconfig re0 ether <mac-address>

... где «re0» — пример имени сетевого интерфейса.

В ОС «OpenBSD» — MAC-адрес меняется одной командой от суперпользователя (root):

# ifconfig re0 lladdr <mac-address> | random

... где «re0» — пример имени сетевого интерфейса.

В ОС «Linux» — такой командой от пользователя root:

# ifconfig ethN hw ether <mac-адрес>

... где «ethN» — имя сетевого интерфейса.

При этом после перезагрузки ОС смену MAC-адреса нужно произвести заново. Чтобы этого избежать — следует прописать смену МАС-адреса в стартовых конфигурационных файлах сетевых настроек. Например, в случае Debian-based дистрибутива ОС «Linux», в файл /etc/network/interfaces нужно добавить строку:

hwaddress ether <mac-адрес>

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

См. также[править | править вики-текст]

Примечания[править | править вики-текст]

Литература[править | править вики-текст]

Ссылки[править | править вики-текст]