Перейти к содержимому

Eui 64 что это

  • автор:

Eui 64 что это

64-битный расширенный уникальный идентификатор (англ. Extended Unique Identifier) EUI-64 — это идентификатор, созданный путём соединения 24-битного OUI с 40-битным дополнительным идентификатором, который назначается организацией, получившей OUI.

В соответствии с рекомендациями IEEE, первые 4 цифры дополнительного (назначаемого организацией) идентификатора не должны быть FFFE16 или FFFF16 (т. е. EUI-64 идентификаторы вида ccccccFFFEeeeeeeeeee16 и ccccccFFFFeeeeeeeeee16 недопустимы) — они используются для поддержки инкапсуляции значений идентификаторов MAC-48 и EUI-48 в EUI-64.

Последнее изменение этой страницы: 03:43, 31 июля 2009. К этой странице обращались 6409 раз.

  • Карта Сайта
  • Powered by MediaWiki

660093, г. Красноярск, пр. «Красноярский рабочий», д. 170 «А»
Телефон в г. Красноярск +7 (391) 226-88-08 многоканальный, Факс +7 (391) 233-01-59
Круглосуточная «горячая» телефонная линия в г. Красноярск: +7 (391) 254-43-70
Телефон в г. Железногорск +7 (3919) 77-01-13
Телефон в г. Зеленогорск +7 (391) 231-21-45
E-Mail: info@pl-e.ru

Сетевые IPv6-адреса

Организация IEEE разработала расширенный уникальный идентификатор (EUI) или изменённый процесс EUI-64. Этот процесс использует 48-битный MAC-адрес Ethernet клиента и в середину этого адреса вставляет ещё 16 бит для создания 64-битного идентификатора интерфейса.

MАС-адреса Ethernet обычно представлены в шестнадцатеричном формате и состоят из двух частей:

  • Уникальный идентификатор организации (OUI) — это 24-битный (шесть шестнадцатеричных цифр) код поставщика, назначенный IEEE.
  • Идентификатор устройства — это уникальное 24-битное (6 шестнадцатеричных цифр) значение с общим уникальным идентификатором организации (OUI).

Идентификатор интерфейса в формате EUI-64 представлен в двоичном формате и состоит из трёх частей:

  • 24-битный OUI на основе MAC-адреса клиента, в котором седьмой бит является обратным, т.е. если седьмой бит имеет значение 0, то он становится 1, и наоборот.
  • В середину вставляется 16-битное значение FFFE (в шестнадцатеричной системе исчисления)
  • 24-битный идентификатор устройства на основе MAC-адреса клиента

Процесс EUI-64 проиллюстрирован на рис. 1 с помощью MAC-адреса маршрутизатора R1 GigabitEthernet FC99:4775:CEE0.

Шаг 1: разделите MAC-адрес между OUI и идентификатором устройства.

Шаг 2: вставьте шестнадцатеричное значение FFFE в двоичном формате: 1111 1111 1111 1110.

Шаг 3: преобразуйте первые 2 шестнадцатеричных значения уникального идентификатора организации (OUI) в двоичный формат и отразите бит U/L (бит 7). В данном случае 0 в седьмом бите меняется на 1.

В результате генерируется следующий EUI-64 идентификатор интерфейса FE99: 47FF:FE75:CEE0.

Примечание. Использование обратного бита (U/L) и причины для отражения его значения описаны в документе RFC 5342.

Преимущество EUI-64 MAC-адреса Ethernet заключается в том, что его можно использовать для определения идентификатора интерфейса. Кроме того, сетевые администраторы могут легко отслеживать IPv6-адрес до конечных устройств с помощью уникального МАС-адреса. Однако это беспокоит других пользователей в связи с угрозой их конфиденциальности. Они обеспокоены тем, что их пакеты можно отследить до физического компьютера. Чтобы избежать таких осложнений, можно использовать случайно сгенерированный идентификатор интерфейса.

Случайно сгенерированные идентификаторы интерфейса

В зависимости от операционной системы устройство может использовать случайно сгенерированный идентификатор интерфейса вместо МАС-адресов и EUI-64. Например, начиная с Windows Vista в операционных системах Windows используется случайно сгенерированный идентификатор интерфейса вместо созданного через EUI-64. В ОС Windows XP и в предыдущих операционных системах Windows использовался EUI-64.

Как показано на рисунке, чтобы без труда определить, что адрес был создан с помощью EUI-64, нужно поместить FFFE в середину идентификатора интерфейса.

После установления идентификатора интерфейса либо с помощью EUI-64, либо через случайную генерацию его можно объединить с префиксом IPv6 для создания глобального индивидуального адреса или локального адреса канала.

  • Глобальный индивидуальный адрес. При использовании SLAAC устройство получает свой префикс из объявления маршрутизатора ICMPv6 и объединяет его с идентификатором интерфейса.
  • Локальный адрес канала. Локальный префикс начинается с FE80:: /10. Обычно в качестве префикса и длины префикса устройство использует FE80:: /64, за которым следует идентификатор интерфейса

Настройка IPv6 с EUI-64 на Cisco

img

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

Роутер будет принимать MAC-адрес своего интерфейса и использовать его в качестве идентификатора интерфейса. Однако MAC-адрес — это 48 бит, а идентификатор интерфейса-64 бит. Что мы будем делать с недостающими частями?

В первой части статьи мы рассказывали о стандартной настройке IPv6 на оборудовании Cisco

EUI-64 (расширенный уникальный идентификатор)

Вот что мы сделаем, чтобы заполнить недостающие биты:

  1. Мы берем MAC-адрес и делим его на две части;
  2. Мы вставляем «FFFE» между двумя частями, так что бы у нас получилось 64-битное значение;
  3. Мы инвертируем 7-й бит идентификатора интерфейса.

Например, если мой MAC-адрес 1234.5678.ABCD тогда, после преобразования идентификатор интерфейса получиться:

преобразования идентификатора интерфейса

Выше вы видите, как мы разделяем MAC-адрес и помещаем FFFE в середину. «Инвертирование 7-го бита» не является заключительным шагом. Для этого вам нужно преобразовать первые два шестнадцатеричных символа первого байта в двоичный, найти 7-й бит и инвертировать его. Это означает, что если это 0, то вам нужно сделать его 1, а если это 1, то он должен стать 0.

7-й бит представляет собой «универсальный уникальны» бит. По умолчанию в MAC-адресе этот бит всегда будет установлен в 0. При изменении MAC-адреса этот бит должен быть установлен на 1. Обычно люди не меняют MAC-адрес этого роутера, что означает, что EUI-64 будет самостоятельно менять 7-й бит с 0 на 1. Вот как это выглядит:

EUI-64 будет самостоятельно менять 7-й бит с 0 на 1

Мы берем первые два шестнадцатеричных символа первого байта, которые являются «12», и преобразуем их обратно в двоичный код. Затем мы инвертируем 7-й бит от 1 до 0 и снова делаем его шестнадцатеричным.

Так что на самом деле мой идентификатор интерфейса EUI-64 будет выглядеть следующим образом:

идентификатор интерфейса EUI-64 будет выглядеть следующим образом

Теперь давайте взглянем на конфигурацию EUI-64 на роутере! Я буду использовать 2001:1234:5678:abcd::/64 в качестве префикса:

OFF1(config)#interface fastEthernet 0/0 OFF1(config-if)#ipv6 address 2001:1234:5678:abcd::/64 eui-64

В этом случае настроен роутер с префиксом IPv6 и с использованием EUI-64 в конце. Именно так мы можем автоматически генерировать идентификатор интерфейса, используя mac-адрес. Теперь взгляните на IPv6-адрес, который он создал:

OFF1#show interfaces fastEthernet 0/0 | include Hardware Hardware is Gt96k FE, address is c200.185c.0000 (bia c200.185c.0000) OFF1#show ipv6 interface fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::C000:18FF:FE5C:0 No Virtual link-local address(es): Global unicast address(es): 2001:1234:5678:ABCD:C000:18FF:FE5C:0, subnet is 2001:1234:5678:ABCD::/64 [EUI]

Видите эту часть C000:18FF:FE5C:0? Это MAC-адрес, который разделен на 2, FFFE в середине и «2» в «C200» MAC-адреса были инвертированы, поэтому теперь он отображается как «C000». Когда вы используете EUI-64 на интерфейсе, который не имеет MAC-адреса, то он выберет MAC-адрес самого низкого нумерованного интерфейса на роутере.

При использовании EUI-64 вы должны ввести 64-битный префикс, а не полный 128-битный IPv6 адрес. Если вы сделаете это, вы не получите ошибку, но Cisco IOS будет только сохранять 64-битный префикс, и в любом случае сгенерирует идентификатор интерфейса.

Скорее всего вы, вероятно, не будете использовать EUI-64 на роутере для настройки интерфейса, но это очень полезный метод для обычных хостов, таких как компьютеры windows, linux или mac. Вы, возможно, настроите IPv6-адрес вручную на интерфейсе вашего роутера или используете метод автоконфигурации, такой как DHCP или SLAAC.

Когда вы внимательно посмотрите на выходные данные show ipv6 interface , вы можете заметить, что там есть еще один IPv6-адрес:

OFF1#show ipv6 interface fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::C000:18FF:FE5C:0

Кстати, про теоретические основы IPv6 можно изучить тут

Этот адрес называется локальным адресом связи (link-local address), и он имеет некоторые специальные цели для IPv6.

Каждое устройство с включенным IPv6 автоматически генерирует локальный адрес связи. Эти адреса являются одноадресными, не могут быть маршрутизированы и используются только в пределах подсети, поэтому они называются «link-local».

Некоторые протоколы используют локальные адреса связи вместо глобальных одноадресных адресов, хорошим примером является NDP (Neighbour Discovery Protocol), который используется для обнаружения MAC-адресов других устройств IPv6 в подсети (NDP заменяет ARP для IPv4).

Протоколы маршрутизации также используют эти локальные адреса связи для установления соседних областей, а также в качестве следующего перехода для маршрутов. Мы увидим это, когда будем говорить о маршрутизации IPv6.

Адресное пространство FE80:: / 10 было зарезервировано для link-local, которые охватывают FE8, FE9, FEA и FEB. Однако RFC, описывающий link-local, утверждает, что следующие 54 бита должны быть нулями, поэтому link-local всегда будут выглядеть так:

link-local

link-local всегда будет начинаться с FE80:0000:0000:0000, а ID можно настроить с помощью различных методов. Роутеры Cisco будут использовать EUI-64 для создания идентификатора интерфейса, в то время как другие операционные системы, такие как Microsoft, используют случайный метод для создания идентификатора интерфейса. В приведенном ниже примере вы можете видеть, что EUI-64 был использован для создания link-local:

OFF1#show interfaces fastEthernet 0/0 | include Hardware Hardware is Gt96k FE, address is c200.185c.0000 (bia c200.185c.0000) OFF1#show ipv6 interface fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::C000:18FF:FE5C:0

Первая часть-это FE80:: и вторая часть — это созданный идентификатор интерфейса EUI-64: C000:18FF:FE5C:0

Когда вы настраиваете IPv6-адрес на интерфейсе (глобальный одноадресный или уникальный локальный) или когда вы включаете IPv6 на интерфейсе, вы можете сделать это следующим образом:

OFF1(config)#interface fa0/0 OFF1(config-if)#ipv6 enable

Использование команды ipv6 enable роутеру создать link-local адрес.

OFF1#show ipv6 int fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE80::C000:15FF:FE94:0

По умолчанию Cisco IOS будет использовать EUI-64 для создания link-local адреса, но вы также можете настроить его самостоятельно. Просто убедитесь, что адрес начинается с FE80:: / 10 (FE8, FE9, FEA или FEB). Вот как вы можете настроить link-local адрес:

OFF1(config-if)#ipv6 address FE90:1234:5678:ABCD::1 link-local

Просто используйте ключевое слово link-local, чтобы сообщить роутеру, что это должен быть адрес link-local. Давайте проверим это:

OFF1#show ipv6 int fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE90:1234:5678:ABCD::1

Помимо link-local адресов существует еще один тип адресации, который мы должны обсудить, и это multicast.

Я надеюсь, вы обладаете званиями об одноадресных и широковещательных доменах. Когда хост отправляет широковещательную передачу, все остальные устройства в подсети получат ее независимо от того, хотят они этого или нет. Отправка широковещательных сообщений очень неэффективна, и они были удалены из IPv6.

Многоадресная рассылка также используется для отправки чего-то с одного хоста на несколько приемников, но разница заключается в том, что многоадресный трафик заканчивается только на хостах, которые хотят его получить. Каждый, кто прослушивает определенный адрес многоадресной рассылки, получит эти пакеты. Это просто как радиостанция, если вы хотите слушать. вы должны настроиться на нужную частоту.

IPv6 использует многоадресную рассылку по многим причинам. Узлы IPv6, которые хотят отправить что-то всем узлам, работающим под управлением IPv6, могут использовать адрес многоадресной рассылки FF02::1. Все, у кого включен IPv6, слушают этот адрес.

Когда роутер IPv6 хочет отправить что-то всем другим роутерам IPv6 (но не хостам!) он может отправить его в FF02:: 2.

Протоколы маршрутизации также используют многоадресные адреса. Например, EIGRP уже использует виде FF02::A и OSPF использует виде FF02::5 и виде FF02::6.

Многоадресный трафик маршрутизируется, но часть трафика должна оставаться в пределах подсети. Если это так, то эти адреса будут иметь link-local область, и они не будут перенаправляться роутерами из одной подсети в другую.

Диапазон FF00:: / 8 был зарезервирован для многоадресной рассылки IPv6, в то время как диапазон FF02::/16 зарезервирован для многоадресных адресов link-local области. На роутере Cisco вы можете видеть по интерфейсу, к которому многоадресные адреса роутер прослушивает:

OFF1#show ipv6 int fa0/0 FastEthernet0/0 is up, line protocol is up IPv6 is enabled, link-local address is FE90:1234:5678:ABCD::1 No Virtual link-local address(es): No global unicast address is configured Joined group address(es): FF02::1 FF02::2 FF02::1:FF00:1

Этот конкретный роутер прослушивает адреса многоадресной рассылки «все хосты IPv6» и «все роутеры IPv6». Как только вы настроите OSPF или EIGRP для IPv6, вы заметите, что интерфейс присоединится к соответствующим адресам многоадресной рассылки.

Третий адрес, который у нас есть (FF02::1:FF00:1), называется адресом многоадресной рассылки запрошенного узла. Он используется для обнаружения соседей.

Многоадресный адрес запрашиваемого узла основан на одноадресном IPv6-адресе хоста, а если быть более точным. последние шесть шестнадцатеричных символов одноадресного адреса. Все хосты, имеющие одинаковые 6 шестнадцатеричных символов в своем одноадресном IPv6-адресе, в конечном итоге получат один и тот же адрес запрашиваемого узла.

Когда вы отправляете что-то на этот адрес запрашиваемого узла, все хосты с одним и тем же адресом получат пакеты. Это что-то вроде многоадресного адреса «все хосты IPv6», но на этот раз у нас есть отдельная комната, где единственными членами являются VIP-персоны, которые разделяют одни и те же последние 6 шестнадцатеричных символов.

Все адреса запрашиваемых узлов начинаются с FF02::1:FF, поэтому они выглядят следующим образом:

адреса запрашиваемых узлов начинаются с FF02::1:FF

Мой маршрутизатор имеет запрошенный адрес узла FF02:: 1:FF00:1, а link-local адрес -FE90:1234:5678: ABCD:: 1.

Когда мы записываем link-local адрес полностью, это выглядит так:

FE90:1234:5678:ABCD:0000:0000:0000:0001

Возьмите последние 6 шестнадцатеричных символов из этого адреса:

00:0001

И поместите их за префиксом адреса запрашиваемого узла, чтобы получить полный адрес запрашиваемого узла:

FF02:0000:0000:0000:0000:0001:FF00:0001

Мы можем удалить некоторые нули, чтобы сделать его короче, и это будет выглядеть так:

«Откуда не ждали»: как IPv6 может скомпрометировать сети

«Откуда не ждали»: как IPv6 может скомпрометировать сети

Всему виной стандарт EUI-64. Он перешел в разряд legacy, но еще используется разработчиками IoT-устройств (и не только). Рассказываем, в чем тут дело.

Ямы на пути

Как известно, внедрение IPv6 идет достаточно медленно — работу с ним поддерживает примерно 21% сайтов. Эксперты ожидают, что массовая миграция на протокол нового поколения произойдет не раньше, чем через десять лет. На то есть несколько причин — это технические и финансовые сложности, а также наличие NAT, который «сглаживает» нехватку IPv4-адресов. Однако процесс тормозят и моменты, связанные с информационной безопасностью.

Официальный запуск IPv6 состоялся почти десять лет назад, но инженеры до сих пор находят уязвимости в техническом стеке. Так, в 2020 году обнаружили баг, связанный с ICMPv6, который использует механизм объявления маршрутизатора (CVE-2020-16898). Эта уязвимость позволяла злоумышленникам запускать вредоносный код на скомпрометированной машине.

Одну из наиболее свежих проблем обозначили специалисты из Института информатики общества Макса Планка в конце марта. Согласно их отчету, устройства, использующие механизм EUI-64 для генерации идентификатора интерфейса (второй части адреса IPv6), компрометируют работу сети, в которой они находятся.

Как так вышло

Существует механизм SLAAC, который позволяет устройству получить у маршрутизатора информацию о префиксе без помощи протокола для конфигурации узлов DHCPv6. Эта информация и 64-битный идентификатор интерфейса (IID) нужны, чтобы получить индивидуальный сетевой IPv6-адрес.

Один из способов сформировать уникальный IID — это сгенерировать его на основе MAC-адреса устройства (механизм EUI-64). Но такой подход сегодня считается не просто ненадежным, но даже опасным, так как раскрывает идентификатор аппаратного обеспечения на уровне сети. Поэтому сообществом были разработаны специальные расширения к стеку IPv6 — например, описанные в RFC4941 — которые «рандомизируют» выбираемую хостом часть адреса. В то же время интернет-провайдеры подменяют префиксы адресов для дополнительной защиты.

Проблемы с IPv6

Но, к сожалению, ряд разработчиков аппаратного обеспечения — по большей части устройств интернета вещей — до сих пор используют «чистый» EUI-64 для генерации IID. С его помощью злоумышленники могут определить производителя сетевого устройства (и, как следствие, потенциальные уязвимости), а также следить за другими девайсами в сети, использующими аналогичный IID. По словам инженеров-исследователей, этой уязвимости подвержены порядка 19% всех префиксов в сетях крупных мировых интернет-провайдеров.

Как быть

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *