Warum ist das U / L-Bit in EUI64 invers?


13

Diese Umkehrung ist bijektiv, daher kann ich nicht herausfinden, wozu sie dient.


1
Hat dir eine Antwort geholfen? Wenn ja, sollten Sie die Antwort akzeptieren, damit die Frage nicht für immer auftaucht und nach einer Antwort sucht. Alternativ können Sie Ihre eigene Antwort bereitstellen und akzeptieren.
Ron Maupin

Antworten:


16

RFC 4291 enthält Anweisungen zum Erstellen der EUI64-Adresse:

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|
+----------------+----------------+----------------+----------------+

Und RFC 2373 liefert das "Warum" hinter dem Umdrehen des 7. Bits:

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.

Aber das ist ein bisschen mundvoll. Einfacher ausgedrückt ... In der MAC-Adressarchitektur gibt das 7. Bit an, ob die MAC-Adresse universell oder lokal zugewiesen wurde. Der Wert 0 gibt an, dass die Adresse universell verwaltet wird. Wenn IANA beispielsweise einem NIC-Kartenhersteller eine OUI (Organizationally Unique Identifier) ​​zuweist, ist das 7. Bit 0, was darauf hinweist, dass die OUI universell zugewiesen wurde. Sollte ein Benutzer seine MAC-Adresse manuell ändern, wird dieses 7. Bit auf 1 gesetzt, was anzeigt, dass die Ethernet-Adresse lokal verwaltet wurde .

Weitere Informationen hierzu finden Sie auch bei PacketLife .


Ich verstehe es immer noch nicht. Wenn ein Administrator 0200 nicht möchte, kann er die / 128-IPv6-Adresse einfach manuell konfigurieren, unabhängig davon, was er mit seiner Mac-Adresskonfiguration tut. Der einzig mögliche Vorteil, den ich hier sehe, besteht in einer Situation, in der die lokale Linkadresse nicht manuell geändert werden kann. Dies wäre das einzige Szenario, in dem ein Administrator einen Vorteil sehen würde. Mit anderen Worten, wenn ich als Administrator ein Problem mit meiner eui-64 ipv6-Adresse habe, die 0200 anzeigt, ändere ich diese Adresse einfach manuell, vorausgesetzt, ich kann meine
linklokale

und dieser Link zeigt an, dass das manuelle Konfigurieren einer
linklokalen

"Ein Wert von 0 gibt an, dass die Adresse universell verwaltet wird". Ist es nicht das Gegenteil?
Nakrule

6

Es wird zum Klassifizieren von Hand zugeordneten Adressen erfolgt wie prefix::1, prefix::2usw. als lokal.

Angenommen, Sie richten ein Netzwerk mit Präfix ein 2001:db8:dead:beef::/64. Sie werden wahrscheinlich MAC-basierte IPs für die meisten Ihrer Knoten verwenden. Für einige Knoten, wie z. B. den DNS-Server, den Verzeichnisserver usw., sollten Sie Adressen verwenden, die einfacher einzugeben und leichter zu speichern sind als die MAC-basierten Adressen. Für den DNS-Server möchten Sie wahrscheinlich verwenden

2001:db8:dead:beef::53

Beachten Sie, dass das U / L-Bit auf 0 gesetzt ist. Aufgrund der Inversion des Bits wird die Host-ID als lokal klassifiziert.


0

Kurz gesagt, da im Ethernet-MAC das siebte Bit als lokal / # global definiert ist, während im IPv6-siebten Bit in der 64-Bit-Schnittstellen-ID global / # lokal definiert ist.


0

EUI 64 bedeutet nur eine MAC-Adresse (48 Bit)

..:FF:FE:.. 

in der Mitte, um alle 64 Bits zu füllen. Daher der Name EUI-64. Um genau zu sein, meinen Sie modifiziertes EUI-64, was bedeutet, dass EUI-64 mit einem Bitflip des 7. Bits kombiniert ist.

Das siebte Bit wird geändert, da dieses 7. Bit in den MAC-Adressen den Unterschied zwischen einem lokalen (0) und einem globalen (1) anzeigt. Lokal in diesem Sinne ist beispielsweise eine serielle Schnittstelle.

Da dies alles dazu dient, automatisch eine öffentliche Adresse zu erstellen, die sich alle auf einer globalen Schnittstelle befindet (in MAC-Begriffen), würde dies zu einer 1 an der 7. Position führen. Sie haben dieses Bit geändert, sodass Sie die Lochadresse nicht aufschreiben müssen und die Kurzschreibweise "::"

Beispiel (aus dem 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.

Kurze Antwort Obwohl jede MAC-Adresse in einer IPv6-Adresse enden würde, deren HEX-Nummer an einer bestimmten Stelle in der IPv6-Adresse höher als 0 wäre. Dies ermöglicht es, Nullen dort zu haben, sodass Sie die Kurzschreibweise verwenden können.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.