Уникальный идентификатор организации
Уникальный идентификатор организации (англ. Organizationally Unique Identifier, OUI) — это 24-битный номер, который однозначно идентифицирует поставщика, производителя или иную организацию в компьютерных сетях.
OUIs приобретаются у Института инженеров по электротехнике и электронике (англ. Institute of Electrical and Electronics Engineers, IEEE) через Регистрационный орган IEEE (англ. IEEE Registration Authority). Только присвоение из реестра MA-L создаёт новый OUI. Такие идентификаторы используются для однозначной идентификации отдельных устройств с помощью производных идентификаторов, например MAC-адресов[1], идентификаторов протокола Subnetwork Access Protocol, глобальных имён для устройств Fibre Channel либо блоков поставщика в EDID[2].
В MAC-адресах OUI объединяется с 24-битным числом (назначаемым владельцем OUI), чтобы сформировать полный адрес. Первые три октета такого адреса соответствуют OUI.
Представление и соглашения по форматированию
Следующие термины определены (явно или неявно) в стандарте IEEE 802—2001 для описания различных форматов и представлений OUI и производных от них идентификаторов[3].
«Представление последовательности октетов, в котором значения отдельных октетов отображаются слева направо, каждое в виде двухзначного шестнадцатеричного числа, пары которых разделяются дефисами. Порядок и соответствие шестнадцатеричных цифр и бит октета определяется интерпретацией бит октета как двоичного числа по обычным правилам значимости разрядов»[3].
«Формат кадра данных MAC, в котором октеты любых MAC-адресов, передаваемых в поле пользовательских данных MAC, имеют тот же порядок бит, что и в шестнадцатеричном представлении»[3].
В контексте IEEE 802—2001 этот термин эквивалентен «шестнадцатеричному представлению», то есть «когда биты октета трактуются как двоичное число по правилам значимости разрядов»[3].
«Представление последовательности октетов, в котором значения отдельных октетов отображаются слева направо, каждое в виде двухзначного шестнадцатеричного числа, при этом пары цифр разделены двоеточиями. Соответствие между шестнадцатеричными цифрами и битами октета определяется инвертированием порядка бит в октете и интерпретацией полученного числа по стандартным правилам значимости разрядов».[3]
Данное представление соответствует соглашению передачи наименее значимого бита каждого байта первым при последовательной передаче данных.
«Формат кадра данных MAC, в котором октеты MAC-адресов в поле пользовательских данных MAC имеют такой же порядок бит, как в представлении с обратным порядком бит».[3]
Порядок, в котором октет или последовательность октетов передаются по каналу передачи данных; обычно соответствует представлению с обратным порядком бит.
Пример:
OUI, состоящий из шестнадцатеричных цифр ACDE4816, будет представлен следующим образом:
Следующий рисунок показывает положение этих битов по порядку значимости:
| OUI | | Октет 0 | Октет 1 | Октет 2 | | nibble | nibble | nibble | | __||__ | __||__ | __||__ | | | | | | | | | | | | 0 || 1 | 2 || 3 | 4 || 5 | |бит || бит|бит || бит|бит || бит| |7654||3210|7654||3210|7654||3210| ||||| ||||||||| ||||||||| ||||| | A C | D E | 4 8 | |1010 1100|1101 1110|0100 1000| | | || | | | | || | наименее значимый бит OUI | | || наименее значимый байт OUI | | |наименее значимый бит первого октета OUI = бит I/G или M | | следующий по значимости бит первого октета OUI = бит U/L или X | наиболее значимый байт OUI наиболее значимый бит OUI
Примечания:
- OUI AC-DE-48 может использоваться и не является зарезервированным значением.
- 'F' и 'h' обозначают любое шестнадцатеричное число.
- 'c' — цифры OUI, 'e' — цифры дополнительного идентификатора, назначаемого организации.
Пользователи Ethernet привыкли к канонической форме, например в выводе команды ifconfig. Каноническая форма является стандартом.
Однако поскольку IEEE 802.3 (Ethernet) и IEEE 802.4 (Token Bus) передают байты (октеты) по кабелю слева направо с наименее значимым битом первым в каждом байте, а IEEE 802.5 (Token Ring) и IEEE 802.6 (FDDI) — с наиболее значимым битом первым, возникают путаница и ошибки, если OUI в этих сетях отображается при неверном или непоследовательном преобразовании. Например, OUI в каноническом виде ACDE48 может появиться как 357B12, если выполнено инвертирование бит. Такая форма (битово инвертированное или неканоническое представление) иногда также называют в литературе «MSB-формат», «IBM-формат» или «Token Ring-формат» по этой причине. Подробное описание проблемы дано в RFC2469.
Формат
Как правило, OUI записывается и представляется как набор октетов в шестнадцатеричной записи, разделённых дефисами (например, FF-FF-FF), либо в виде набора октетов, разделённых двоеточиями при битово инвертированном представлении (например, FF:FF:FF).[4]
Два наименее значимых бита второго полубайта первого октета шестнадцатеричного представления (то есть два наименее значимых бита первого октета) OUI зарезервированы для некоторых протоколов (например, биты 'M' и 'X'), чтобы указывать различные характеристики: принадлежит ли адрес блоку индивидуальных (unicast) или групповых (multicast) адресов (бит Individual/Group [I/G] или Unicast/Multicast [U/M]), является ли адрес универсально или локально назначаемым (бит Universal/Local [U/L]) и пр. Эти биты не должны принимать значения 1, 2, 3, 5, 6, 7, 9, a, b, d, e или f, если только это не соответствует истинному значению соответствующего флага. Если организация при создании идентификатора устанавливает один из этих битов, значение второго полубайта первого октета изменяется (например, если шестнадцатеричное значение второго полубайта первого октета равно 'C' и устанавливается наименее значимый бит, значение становится 'D').
Примечания:
- «Трёхо-октетные значения, занимающие те же поля, что и OUI, но с установленным предпоследним по значимости битом первого октета в 1, назначаются локально и не связаны с идентификаторами, назначенными IEEE…»[4].
- IEEE также определяет идентификатор компании (CID), где четыре наименее значимых бита Октета 0 обозначают биты M, X, Y и Z соответственно (начиная с наименее значимого). В CID биты принимают значения 0, 1, 0 и 1 соответственно[5].
Типы идентификаторов
CDI-32 исторически рекомендовался как идентификатор, формируемый соединением 24-битного OUI и 8-битного расширения, назначаемого организацией-владельцем OUI. Получившийся идентификатор обычно записывался как набор октетов, разделённых дефисами (FF-FF-FF-FF) или двоеточиями (битово инвертированная запись), в виде строки из четырёх байтов ({FF,FF,FF,FF}) или в шестнадцатеричном виде FFFFFFFF16[5].
CDI-40 исторически рекомендовался как идентификатор, формируемый соединением 24-битного OUI с 16-битным расширением либо 36-битного OUI-36 с 4-битным расширением[5]. В обоих случаях расширение назначается организацией-владельцем OUI. Результат обычно записывают как набор октетов, разделённых дефисами (шестнадцатеричная запись) или двоеточиями (битово инвертированная запись), например, FF-FF-FF-FF-FF или FF:FF:FF:FF:FF, строкой пяти байт {FF,FF,FF,FF,FF} или шестнадцатеричным числом FFFFFFFFFF16.
Примечание: Были также блоки индивидуальных адресов (IAB) на базе IAB — последовательности CDI-40, формируемые объединением 36-битного значения IAB, назначенного IEEE, и 4-битного расширения, определённого организацией; например, если база IAB равна 0x0050C257A и расширение 0xF, то полученные CDI-40 лежат в диапазоне от 0x0050C257AF00 до 0x0050C257AFFF.
IEEE теперь считает термин MAC-48 устаревшим; ранее он обозначал вариант идентификатора EUI-48 для адресации сетевых интерфейсов (например, сетевых интерфейсных плат) в приложениях, основанных на IEEE 802. В современных документах производителям и пользователям рекомендуется использовать термин EUI-48 — то есть MAC-48 идентичен EUI-48 и является устаревшим ярлыком, хотя ранее между MAC-48 и EUI-48 делалось различие при инкапсуляции их внутри идентификаторов EUI-64 (сейчас эта инкапсуляция также признана устаревшей)[5].
EUI-48 формируется объединением 24-битного OUI и 24-битного дополнительного идентификатора, назначаемого организацией, купившей OUI, и обычно записывается как набор 6 октетов, разделённых дефисами (FF-FF-FF-FF-FF-FF) или двоеточиями (битово инвертированная запись), строкой из 6 байт {FF,FF,FF,FF,FF,FF} или шестнадцатеричным числом FFFFFFFFFFFF16.[5]
EUI-60 создаётся объединением 24-битного OUI и 36-битного дополнительного идентификатора, назначаемого организацией; обычно представляется строкой из 15 шестнадцатеричных цифр (FFFFFFFFFFFFFFF16) или как FF-FF-FF:F.F.F.F.F.F.F.F.F (формат EUI-64).[5]
Примечание: Ранее этот идентификатор использовался как глобальное имя (WWN) в некоторых корпоративных системах хранения данных, но в настоящее время IEEE рекомендует использовать EUI-64 для всех подобных целей. Примеры подобных систем — Fibre Channel и SAS.[5]
EUI-64 создаётся соединением 24-битного OUI и 40-битного расширенного идентификатора, назначаемого организацией; представление такое же — 8 октетов, разделённых дефисами или двоеточиями, строка из 8 байтов {FF,FF,FF,FF,FF,FF,FF,FF}, либо FFFFFFFFFFFFFFFF16.[5]
Примечание: Согласно рекомендациям IEEE, первые четыре цифры присваиваемого организацией идентификатора (то есть первые четыре цифры расширения) в EUI-64 не должны быть FFFE16 или FFFF16; такой запрет необходим для поддержки инкапсуляции EUI-48 и MAC-48 в EUI-64 (сама инкапсуляция теперь устарела).
IPv6 использует 64-битный Модифицированный расширенный уникальный идентификатор (Modified EUI-64) в нижней части некоторых адресов IPv6. Modified EUI-64 — это EUI-64 с инвертированным битом U/L.[6]
Также существуют другие производные идентификаторы, но выше приведены наиболее распространённые.
Инкапсуляция
Преобразование EUI-48 в EUI-64 признаётся устаревшим и описывается здесь в исторических целях.
Другие идентификаторы (например, MAC-48 и EUI-48) могут быть вложены в больший идентификатор (например, EUI-64) посредством добавления определённых значений в специальные позиции битов старшего формата; этот процесс называют «инкапсуляцией», и он разработан для облегчения перехода от MAC-48/EUI-48 к EUI-64 и избежания дублирования или конфликтов[5].
Инкапсуляция MAC-48 в EUI-64:
Пусть организация получила OUI AC-DE-48 и сформировала MAC-48 адрес AC-DE-48-23-45-67 (где 23-45-67 — расширение). Тогда этот MAC-48 будет представляться:
| OUI | расширенный идентификатор | поле | 1-й | 2-й | 3-й | 4-й | 5-й | 6-й | октет | C A | E D | 8 4 | 3 2 | 5 4 | 7 6 | hex 0011 0101 0111 1011 0001 0010 1100 0100 1010 0010 1110 0110 биты | | | | | | | | | | | | мл. зн. старш. зн. ...
Аналогично, при инкапсуляции в EUI-64 структура будет:
| OUI | MAC-метка | расширение | поле | C A | E D | 8 4 | F F | F F | 3 2 | 5 4 | 7 6 | hex
Тот же принцип распространяется на EUI-48 и инкапсуляцию их в EUI-64, а также на модифицированный формат.
В формате идентификаторов Network Address Authority (NAA) первый ниббл (4 бита) указывает на структуру идентификатора:
| Значение | Тип NAA | Длина |
|---|---|---|
| 1h | NAA IEEE 48-бит | 8 байт |
| 2h | NAA IEEE Extended | 8 байт |
| 5h | NAA IEEE Registered | 8 байт |
| 6h | NAA IEEE Registered Extended | 16 байт |
| Ch, Dh, Eh, Fh | NAA EUI-64 Mapped | 8 байт |
Такая инкапсуляция используется в Fibre Channel[7] и SAS, также поддерживается в iSCSI (RFC 3980). Дополнение требует либо укороченного поля расширения поставщика, либо принимать часть бит OUI равными 0, как в EUI-64 mapped-формате.
Individual Address Block
Блок индивидуальных адресов (англ. Individual Address Block, IAB) — деятельность устаревшего реестра, заменённая продуктом MA-S с 1 января 2014 года. В IAB используется MA-L (и OUI), принадлежащий Регистрационному органу IEEE, дополненный 12 дополнительными битами (итого 36 бит), оставляя организации только 12 бит для назначения (до 4096 устройств). IAB подходит организациям, которым требуется не более 4096 уникальных 48-битных чисел (EUI-48). В отличие от OUI, позволяющего назначать значения в разных пространствах (например, EUI-48, EUI-64), IAB можно было использовать только для назначения EUI-48. И все остальные возможные применения, основанные на OUI, оставались прерогативой IEEE. Отмечается, что с 2007 по сентябрь 2012 года для IAB присваивался OUI 00:50:C2, а после сентября 2012 — 40:D8:55. Владельцы ранее присвоенных IAB продолжают пользоваться ими[8][5].
OUI-36 — устаревшее название реестра, заменённое продуктовым именем MA-S с 1 января 2014. Оно включает 36-битное уникальное значение и выделение блока EUI-48 и EUI-64 (владельцы IAB не могут назначать EUI-64). Владельцы ранее выданных OUI-36 могут продолжать их использовать.
Пример создания EUI-48 из IAB: EUI-48 формируется объединением 36-битного значения IAB и 12-битного расширения, определяемого организацией, например, для значения 0x0050C257A и 12-битного расширения 0xFFF получится идентификатор 0x0050C257AFFF.
Примечания
Литература
- Groth, David. Network+ Study Guide, Fourth Edition / David Groth, Toby Skandier. — Sybex, Inc., 2005. — ISBN 0-7821-4406-3.
- IEEE Std 802-2001. — The Institute of Electrical and Electronics Engineers, Inc. (IEEE), 7 февраля 2002. — ISBN 0-7381-2941-0.
Ссылки
- Учебные материалы регистрационного органа IEEE
- Регистрационный орган IEEE — Часто задаваемые вопросы
- Публичный реестр OUI и компания ID
- Список публичных OUI/MA-L от IEEE
- Список публичных OUI-28/MA-M от IEEE
- Список публичных OUI-36/MA-S от IEEE
- Список публичных IAB от IEEE
- Поиск по MAC-адресам IAB и OUI, база IEEE
- RFC 7042. IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters
- Список Ethernet-номеров IANA
- Wireshark: Поиск OUI и Список MAC-адресов