Pourquoi le bit U / L est-il inversé dans EUI64?

13

Cette inversion est bijective, donc je ne peux pas comprendre à quoi elle sert.

Silviu
la source
1
Une réponse vous a-t-elle aidé? si c'est le cas, vous devez accepter la réponse afin que la question ne s'affiche pas indéfiniment, à la recherche d'une réponse. Alternativement, vous pouvez fournir et accepter votre propre réponse.
Ron Maupin

Réponses:

16

La RFC 4291 fournit des instructions sur la façon de créer l'adresse 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|
+----------------+----------------+----------------+----------------+

Et la RFC 2373 fournit le «pourquoi» derrière le retournement du 7e 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.

Mais c'est un peu bouchée. Donc, en termes plus simples ... Dans l'architecture d'adresse MAC, le 7e bit signifie si l'adresse MAC a été attribuée universellement ou localement. Une valeur de 0 indique que l'adresse est administrée universellement. Par exemple, lorsque l'IANA attribue un identificateur unique d'organisation (OUI) à un fournisseur de cartes NIC, le 7e bit sera 0, indiquant que l'OUI a été universellement attribuée. Si un utilisateur modifiait manuellement son adresse MAC, ce 7e bit serait mis à 1, indiquant que l'adresse Ethernet était administrée localement .

Il y a aussi plus d'informations à ce sujet sur PacketLife .

Eddie
la source
Je ne comprends toujours pas. Si un administrateur ne veut pas 0200, il peut simplement configurer manuellement l'adresse / 128 ipv6 comme bon lui semble, indépendamment de ce qu'il fait avec la configuration de son adresse mac. Le seul avantage possible que je vois ici est dans une situation où l'adresse locale du lien ne peut pas être modifiée manuellement, ce qui serait le seul scénario où un administrateur verrait un avantage. En d'autres termes, en tant qu'administrateur si j'ai un problème avec mon adresse ipv6 eui-64 affichant 0200, je changerai simplement cette adresse manuellement, en supposant que je peux changer manuellement mon adresse de lien local
lobi
et ce lien indique que la configuration manuelle d'une adresse de lien local est possible community.cisco.com/t5/ipv6/…
lobi
"Une valeur de 0 indique que l'adresse est administrée universellement". N'est-ce pas le contraire?
Nakrule
7

Cela permet de classer les adresses attribuées à la main telles que prefix::1, prefix::2etc. comme locales.

Supposons que vous configurez un réseau en préfixe 2001:db8:dead:beef::/64. Vous utiliserez probablement des adresses IP basées sur MAC pour la plupart de vos nœuds. Cependant, pour certains nœuds, tels que le serveur DNS, le serveur d'annuaire, etc., vous souhaiterez utiliser des adresses plus faciles à taper et à mémoriser que les adresses MAC. Pour le serveur DNS, vous voudrez probablement utiliser

2001:db8:dead:beef::53

Notez que le bit U / L est défini sur 0 - ce qui, en raison de l'inversion du bit, classe l'ID hôte comme local.

jch
la source
0

En bref, parce que dans le MAC Ethernet, le septième bit est défini pour signifier local / # global, tandis qu'en IPv6 le septième bit dans l'ID d'interface 64 bits est défini pour signifier global / # local.

Lobotomik
la source
0

EUI 64 signifie uniquement une adresse MAC (48 bits) qui a

..:FF:FE:.. 

au milieu pour remplir tous les 64 bits. D'où le nom EUI-64. Pour être exactement, vous voulez dire EUI-64 modifié qui signifie l'EUI-64 combiné avec un bitflip du 7e bit.

Le septième bit est modifié car dans les adresses MAC, ce septième bit indique la différence entre un local (0) et un global (1). Local dans ce sens est, par exemple, une interface série.

Étant donné que tout cela consiste à créer automatiquement une adresse publique qui sera tous sur une interface qui est globale (en termes MAC), cela entraînerait un 1 à la 7e position. Ils ont changé ce bit, vous n'avez donc pas à écrire l'adresse du trou et vous pouvez la notation abrégée de "::"

Exemple (tiré du 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.

Réponse courte Même si chaque adresse MAC se retrouverait dans une adresse IPv6 qui aurait un numéro HEX supérieur à 0 à une certaine position dans l'adresse IPv6. Cela permet d'avoir des zéros là pour que vous puissiez utiliser la notation abrégée.

Dorian Gaensslen
la source