Извлечение MAC по стандарту EUI-64 из IPv6 адреса


Введите IPv6 для вычисления MAC адреса.

Допустимые разделители: ':', '.'.
Допустимо использование знака '/'(подсеть) и '%'(область).
Допустимы любые сокращения.


Ошибка

Произошла ошибка. IPv6 адрес не содержит EUI-64 (MAC адреса) либо он зашифрован. Рекомендую прочитать инструкцию ниже.
Ошибка может проиcходить и по другим причинам.

Результат


Вы ввели следующий IPv6 адрес: 70-B3-D5-71-C
В этом адресе используется следующий MAC: 70-B3-D5-71-C

Как работает MAC в IPv6 адресе

IPv6 адрес состоит из 128 бит и, так же как адрес IPv4, делится на 2 части: часть провайдера/сети (64 бита) и хоста (64 бита). Часть хоста может быть создана автоматически или статически (руками).

Т.е. обычный IPv6 адрес можно разделить следующим образом:

  • Весь адрес: 2001:0db8:85a3:0001:0215:5DFF:FE37:0AAF
  • Часть провайдера (64 бита): 2001:0db8:85a3:0001
  • Часть хоста (64 бита):  0215:5DFF:FE37:0AAF

Часть хоста может автоматически создаваться на основе MAC адреса, что и называется EUI-64. Какие-то вендоры включают поддержку EUI-64 из коробки и вы получаете подобный адрес при включении компьютера (например Microsoft). У каких-то производителей нужно выполнять дополнительную настройку (например Cisco). 

Одной из проблем, с которой вы можете столкнуться, зашифрованный IPv6 адрес. Некоторые компании шифруют результат работы EUI-64 (например Microsoft). Часто это шифрование можно отключить. Как определить зашифрованный адрес рассмотрено ниже.

Получаем MAC из IPv6

Первое, на что нужно посмотреть это на часть хоста. Идентификатором работы EUI-64 являются символы 'FF:FE':

  • 0215:5DFF:FE37:0AAF

Если этих символов нет в адресе - значит он либо зашифрован либо не использует EUI-64.

Так как MAC адрес состоит из 48 бит, а часть хоста должна быть длиною в 64 бита, символы 'FF:EE' вставляются по середине адреса. Без этих символов мы увидим примерный MAC адрес:

  • 02:15:5D:37:0A:AF

Последняя, важная, деталь заключается в 7-ом бите полученного результата. Дело в том, что в стандарте MAC указано, что 7-ой бит должен быть установлен на 0 если он представляет собой реальный адрес выданный провайдером IANA. Если это выдуманный MAC, который не выдан производителем, он должен быть установлен в 1. В IPv6 ситуация противоположная: если MAC настоящий, то он должен быть инвентирован в 1 и наоборот.

MAC EUI-64 в IPv6

Такое преобразование происходит автоматически в Cisco и, скорее всего, у всех производителей софта и оборудования. Одно из объяснений надобности в этом: 7-ой бит в MAC говорит о реальном адресе если он равен 0, а в IPv6, тот же 0, о выдуманном.

7-ой бит находится в первых двух цифрах адреса. Так как IPv6 относится к 16-тиричной системе мы должны перевести его в 2-ичную систему. Если с этим есть сложности, то можно соотнести каждую цифру с таблицей:

HEX таблица

Преобразуем первые две цифры:

  1. 16-тиричное представление: 02
  2. 2-ичное представление: 0000 0010
  3. Так как 7-ой бит равен 1-це преобразуем в 0: 0000 0000
  4. Преобразуем обратно в 16-тиричную систему: 00

Далее заменяем старое значение в MAC на новое:

  • Старое: 02:15:5D:37:0A:AF
  • Новое:   00:15:5D:37:0A:AF

Полученный MAC равен: 00:15:5D:37:0A:AF


Ваши замечания и пожелания по работе сервиса
Каналы
Telegram FixMyPc Telegram Лента FixMyPC RSS Rss
Популярные тэги
О блоге
Этот блог представляет собой конспекты выученного материала, приобретённого опыта и лучшие практики в системном администрировании и программировании.