Cette inversion est bijective, donc je ne peux pas comprendre à quoi elle sert.
Cette inversion est bijective, donc je ne peux pas comprendre à quoi elle sert.
Réponses:
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 .
Cela permet de classer les adresses attribuées à la main telles que prefix::1
, prefix::2
etc. 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.
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.