Das U/L und I/G Bit bei MAC-Adressen

emulbetsup

Lieutenant
Registriert
Feb. 2008
Beiträge
563
Guten Abend!

MAC-Adressen bestehen ja bekanntermaßen aus einem "Vendor-Teil" (OUI) mit 24Bit und einer fortlaufenden Nummerierung über die nachfolgenden 24Bit. Es gibt aber im Vendor-Teil wohl zwei Bits, die mit einer Bedeutung aufgeladen sind.

Das wären zum einen das siebte Bit, das als U/L Bit anzeigen soll, ob die Adresse eine Universally Administered Address (0) oder eine Locally Administered Address (1) ist. Zum anderen zeigt das achte Bit als I/G Bit an, ob eine eindeutige Maschine (0) oder eine Gruppe (1) adressiert ist.

Mir stellen sich in diesem Kontext aber noch einige Fragen:

  • Wird das I/G Bit für Multicast-Traffic, wie bspw. die BPDUs von 802.1D oder Ciscos VTP genutzt?
  • Wird das I/G Bit auch für Multicast auf IP Ebene wie bspw. OSPF verwendet?

MAC-Adressen lassen sich bei vielen Adaptern und Betriebssystemen beliebig ändern. Dabei kann ich auch Adressen vergeben, deren siebtes Bit auch einer 0 entspräche, was ja entgegen der o.g. Regel wäre. Verstehe ich das richtig, dass es sich hierbei also lediglich um eine lose Empfehlung handelt, die nicht "hart verdrahtet" ist oder verhält sich hier nur mein NIC nicht konform? Ganz grundsätzlich scheint mir die Regelung etwas unnötig zu sein, da der Adressraum mit 48Bit erstaunlich groß und die Adressen ohnehin nur im eigenen Subnetz gültig sind.

Vielen Dank für eure Antworten!
 
Man muss ein wenig unterscheiden ob eine MAC-Adresse einem NIC als Hardware-Adresse zugewiesen wird oder ob sie als Ziel im Header eines Ethernet-Frames verwendet wird. Meiner Meinung nach sollte das I/G Bit als NIC-Adresse immer 0 sein. Bei der Broadcast-MAC FF:FF:FF:FF:FF:FF ist das I/G Bit hingegen offensichtlich auf 1, aber diese MAC ist keinem Gerät zugewiesen, sondern wird lediglich als Ziel-MAC von Broadcast-Frames verwendet. Es kann durchaus sein, dass es noch andere entsprechende Sonder-MACs gibt, die in bestimmten Protokollen eine broadcast-ähnliche Funktion erfüllen.

Das U/L Bit einer herkömmlichen MAC ist je nach Gültigkeit 0 oder 1. Die Kombination U/L = 1 und I/G = 0 zeigt sich beispielsweise in randomisierten MAC-Adressen, die folglich mit x2 / x6 / xA / xE beginnen. So sollte es zumindest sein. Dabei wird gewissermaßen gesagt, dass diese MAC nicht "weltweit eindeutig" ist, da U/L = 1, und es sich um ein Endgerät handelt, da I/G = 0.

Allerdings kann der Administrator des Systems die MAC-Adresse eines NIC beliebig ändern und so eben auch diese Bits anders setzen - bewusst oder unbewusst (letzteres ist wahrscheinlicher ;) ). Das U/L Bit ist dabei relativ uninteressant und wird zB von einem Switch vermutlich nicht mal angeschaut, weil's letztendlich keine Rolle spielt und nur darauf hinweist, dass diese MAC womöglich nicht eindeutig ist.
Ich bin mir allerdings nicht sicher wie ein Switch darauf reagiert, wenn ein NIC mit I/G=1 bei ihm ankommt. Vermutlich wird er die MAC auch ganz normal als Geräteadresse verarbeiten, wenn er nicht auf den Rest der MAC triggert (wie zB Broadcast-MAC oder mögliche andere Sonder-MACs).



Letztendlich ist es bei manuellen Einstellungen durch den Admin immer eine Frage der Korrektheit. Auch IP-Adressen kann man falsch einstellen, was dazu führt, dass das Gerät nicht mit den anderen Teilnehmern des Netzwerks kommunizieren kann. Sofern das Betriebssystem es nicht explizit verhindert, kann man ja auch die Broadcast-IP am Gerät einstellen.

Wenn ein Admin also eine MAC einstellt, die nicht den U/L bzw. I/G Definitionen entspricht, ist er "selbst schuld", wenn sich daraus Probleme ergeben.
 
  • Gefällt mir
Reaktionen: Skysnake und emulbetsup
Zurück
Oben