Извлечение MAC по стандарту EUI-64 из IPv6 адреса
Допустимые разделители: ':', '.'.
Допустимо использование знака '/'(подсеть) и '%'(область).
Допустимы любые сокращения.
Ошибка
Произошла ошибка. 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 и наоборот.
Такое преобразование происходит автоматически в Cisco и, скорее всего, у всех производителей софта и оборудования. Одно из объяснений надобности в этом: 7-ой бит в MAC говорит о реальном адресе если он равен 0, а в IPv6, тот же 0, о выдуманном.
7-ой бит находится в первых двух цифрах адреса. Так как IPv6 относится к 16-тиричной системе мы должны перевести его в 2-ичную систему. Если с этим есть сложности, то можно соотнести каждую цифру с таблицей:
Преобразуем первые две цифры:
- 16-тиричное представление: 02
- 2-ичное представление: 0000 0010
- Так как 7-ой бит равен 1-це преобразуем в 0: 0000 0000
- Преобразуем обратно в 16-тиричную систему: 00
Далее заменяем старое значение в MAC на новое:
- Старое: 02:15:5D:37:0A:AF
- Новое: 00:15:5D:37:0A:AF
Полученный MAC равен: 00:15:5D:37:0A:AF