Чому біт U / L інвертується в EUI64?


13

Ця інверсія бієктивна, тому я не можу зрозуміти, для чого це використовувати.


1
Чи допомогла вам якась відповідь? якщо так, то слід прийняти відповідь, щоб питання не з’являлося вічно, шукаючи відповідь. Крім того, ви можете надати та прийняти власну відповідь.
Рон Моупін

Відповіді:


16

RFC 4291 надає інструкції щодо створення адреси EUI64:

Links or Nodes with IEEE 802 48-bit MACs

[EUI64] defines a method to create an IEEE EUI-64 identifier from an
IEEE 48-bit MAC identifier.  This is to insert two octets, with
hexadecimal values of 0xFF and 0xFE (see the Note at the end of
appendix), in the middle of the 48-bit MAC (between the company_id
and vendor-supplied id).  An example is the 48-bit IEEE MAC with
Global scope:

|0              1|1              3|3              4|
|0              5|6              1|2              7|
+----------------+----------------+----------------+
|cccccc0gcccccccc|ccccccccmmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+

where "c" is the bits of the assigned company_id, "0" is the value of
the universal/local bit to indicate Global scope, "g" is
individual/group bit, and "m" is the bits of the manufacturer-
selected extension identifier.  The interface identifier would be of
the form:

|0              1|1              3|3              4|4              6|
|0              5|6              1|2              7|8              3|
+----------------+----------------+----------------+----------------+
|cccccc1gcccccccc|cccccccc11111111|11111110mmmmmmmm|mmmmmmmmmmmmmmmm|
+----------------+----------------+----------------+----------------+

І RFC 2373 забезпечує "чому" позаду гортання 7-го біта:

The motivation for inverting the "u" bit when forming the interface
identifier is to make it easy for system administrators to hand
configure local scope identifiers when hardware tokens are not
available.  This is expected to be case for serial links, tunnel end-
points, etc.  The alternative would have been for these to be of the
form 0200:0:0:1, 0200:0:0:2, etc., instead of the much simpler ::1,
::2, etc.

Але це трішки рот. Отже, простіше кажучи ... У архітектурі MAC-адреси 7-й біт означає, що MAC-адреса була призначена універсально або локально. Значення 0 вказує на те, що адреса універсальна. Наприклад, коли IANA призначає організаційно унікальний ідентифікатор (OUI) постачальнику картки NIC, 7-й біт буде 0, що означає, що OUI був присвоєний універсально. Якщо користувач вручну змінить свою MAC-адресу, цей 7-й біт буде встановлений на 1, що вказує на локальну адресу Ethernet .

Існує також додаткова інформація про це в PacketLife .


Я досі не розумію. Якщо адміністратор не хоче 0200, він може просто вручну налаштувати / 128 ipv6 адресу так, як вони вважають за потрібне, незалежно від того, що вони роблять з конфігурацією своєї mac адреси. Єдине можливе перевагу, яке я бачу тут, - це ситуація, коли локальну адресу посилання неможливо змінити вручну, що було б єдиним сценарієм, коли адміністратор побачив би вигоду. Іншими словами, як адміністратор, якщо у мене є проблема з моєю адресою eui-64 ipv6, яка показує 0200, то я просто вручну зміню цю адресу, припускаючи, що я можу вручну змінити свою локальну адресу посилання
lobi

і це посилання вказує на те, що вручну налаштувати локальну адресу посилань можливе community.cisco.com/t5/ipv6/…
lobi

"Значення 0 вказує на те, що адреса вводиться універсально". Чи не навпаки?
Накруле

7

Це робиться для класифікації вручну присвоєні адреси , такі , як prefix::1, і prefix::2т.д. , як місцеві.

Припустимо, ви налаштовуєте мережу з префіксом 2001:db8:dead:beef::/64. Ви, ймовірно, будете використовувати IP-адреси на основі MAC для більшості своїх вузлів. Однак для деяких вузлів, таких як DNS-сервер, сервер каталогів тощо, ви хочете використовувати адреси, які простіше вводити та запам'ятовувати, ніж адреси на основі MAC. Для сервера DNS, ймовірно, ви хочете використовувати

2001:db8:dead:beef::53

Зауважте, що біт U / L встановлений на 0 - це, завдяки інверсії біта, класифікує ідентифікатор хоста як локальний.


0

Якщо коротко, тому що в MAC Ethernet, сьомий біт визначений як локальний / # глобальний, тоді як у IPv6 сьомий біт у 64-бітовому інтерфейсі визначається як глобальний / # локальний.


0

EUI 64 означає лише MAC-адресу (48Bit), яку має

..:FF:FE:.. 

в середині, щоб заповнити всі 64 біт. Звідси назва EUI-64. Точно ви маєте на увазі модифікований EUI-64, що означає EUI-64 у поєднанні з біткоїном 7-го біта.

Сьомий біт змінено, оскільки в адресах MAC цей 7-й біт вказав різницю між локальним (0) та глобальним (1). Місцевим у цьому сенсі є, наприклад, послідовний інтерфейс.

Оскільки все це автоматично створити загальнодоступну адресу, яка буде знаходитися на глобальному інтерфейсі (в MAC), це призведе до позиції 1 на 7-му місці. Вони змінили цей біт, тому вам не потрібно записувати адресу дірки, і ви можете скоротити позначення "::"

Приклад (з RFC 2373):

...
The alternative would have been for these to be of the
form 0200:0:0:1, 0200:0:0:2, etc., instead of the much simpler ::1,
::2, etc.

Короткий відповідь Навіть якщо кожен MAC-адреса опиниться в IPv6-адресі, яка мала би номер HEX, який перевищує 0, в якомусь місці IPv6-адреси. Це дозволяє мати нулі там, щоб ви могли використовувати позначення скорочень.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.