Perché il bit U / L viene invertito in EUI64?


13

Questa inversione è biiettiva, quindi non riesco a capire a cosa serva.


1
Qualche risposta ti è stata d'aiuto? in tal caso, dovresti accettare la risposta in modo che la domanda non continui a comparire per sempre, cercando una risposta. In alternativa, potresti fornire e accettare la tua risposta.
Ron Maupin

Risposte:


16

RFC 4291 fornisce istruzioni su come creare l'indirizzo 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|
+----------------+----------------+----------------+----------------+

E RFC 2373 fornisce il "perché" dietro il lancio del 7 ° bit:

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.

Ma è un po 'un boccone. Quindi, in termini più semplici ... Nell'architettura dell'indirizzo MAC, il settimo bit indica se l'indirizzo MAC è stato assegnato universalmente o localmente. Un valore pari a 0 indica che l'indirizzo è amministrato universalmente. Ad esempio, quando IANA assegna un identificatore univoco organizzativo (OUI) a un fornitore di schede NIC, il settimo bit sarà 0, a indicare che l'OUI è stato assegnato universalmente. Se un utente dovesse modificare manualmente il proprio indirizzo MAC, questo settimo bit verrebbe impostato su 1, indicando che l'indirizzo Ethernet era amministrato localmente .

Ci sono anche alcune ulteriori informazioni al riguardo su PacketLife .


Ancora non capisco. Se un amministratore non vuole 0200, allora può semplicemente configurare manualmente l'indirizzo / 128 ipv6 come meglio crede, indipendentemente da ciò che fanno con la loro configurazione dell'indirizzo mac. L'unico vantaggio possibile che vedo qui è in una situazione in cui l'indirizzo locale del collegamento non può essere modificato manualmente, che sarebbe l'unico scenario in cui un amministratore vedrebbe un vantaggio. In altre parole, come amministratore se ho un problema con il mio indirizzo ipv6 eui-64 che mostra 0200, allora cambierò manualmente quell'indirizzo, supponendo che posso cambiare manualmente il mio indirizzo locale di collegamento
lobi

e questo collegamento indica che è possibile configurare manualmente un indirizzo locale di collegamento community.cisco.com/t5/ipv6/…
lobi

"Un valore 0 indica che l'indirizzo è amministrato universalmente". Non è il contrario?
Nakrule,

7

Viene fatto per classificare gli indirizzi assegnati a mano come prefix::1, prefix::2ecc. Come locali.

Supponiamo che tu stia configurando una rete in prefisso 2001:db8:dead:beef::/64. Probabilmente utilizzerai IP basati su MAC per la maggior parte dei tuoi nodi. Per alcuni nodi, tuttavia, come il server DNS, il server di directory, ecc., Ti consigliamo di utilizzare indirizzi più facili da digitare e più facili da memorizzare rispetto agli indirizzi basati su MAC. Per il server DNS, probabilmente vorrai utilizzarlo

2001:db8:dead:beef::53

Si noti che il bit U / L è impostato su 0, che, a causa dell'inversione del bit, classifica l'host-id come locale.


0

In breve, perché nel MAC ethernet, il settimo bit è definito come locale / # globale, mentre in IPv6 il settimo bit nell'interfaccia a 64 bit ID è definito come globale / # locale.


0

EUI 64 significa solo un indirizzo MAC (48 bit) che ha

..:FF:FE:.. 

nel mezzo di esso per riempire tutti i 64 bit. Da qui il nome EUI-64. Per essere esattamente intendi EUI-64 modificato, il che significa EUI-64 combinato con un bitflip del 7 ° bit.

Il settimo bit viene modificato perché negli indirizzi MAC questo settimo bit indicava la differenza tra uno locale (0) e globale (1). Locale in questo senso è, ad esempio, un'interfaccia seriale.

Poiché tutto ciò serve a creare automaticamente un indirizzo pubblico che sarà tutto su un'interfaccia globale (in termini MAC), ciò comporterebbe un 1 alla 7a posizione. Hanno cambiato quel bit, quindi non devi scrivere l'indirizzo della buca e puoi tu la notazione abbreviata di "::"

Esempio (dall'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.

Risposta breve Anche se ogni indirizzo MAC finirebbe in un indirizzo IPv6 che avrebbe un numero esadecimale superiore a 0 in una posizione dell'indirizzo IPv6. Questo rende possibile avere Zeri lì in modo da poter usare la notazione abbreviata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.