On Tuesday 07 June 2011, André Nagel wrote:
Aus welchem Pool nimmt VMware, Virtualbox, usw. eigentlich die Menge eindeutiger Hardwareadressen? Diese Virtualisierungsschmieden müssen doch bei Zulassung ihrer Software einen Rahmen haben, oder ein zugelassenes Limit bedienen?
Erstmal: Software wird in den allermeisten Fällen nicht zugelassen, sonder mehr oder weniger erfolgreich verkauft und/oder verbreitet.
VBox hat eine eigene OID (die ersten drei Byte der MAC). Der Rest ist gewürfelt.
Alternativ kann man sich die MAC komplett selbst würfeln, es muss nur das local-Bit gesetzt sein. Das passiert ab und zu auch bei echter Hardware, nämlich, wenn diese keine eigene MAC mitbringt oder der Kernel aus irgendeinem Grund nicht in der Lage ist diese auszulesen.
Eine MAC ist in etwa so aufgebaut:
oooooolb oooooooo oooooooo iiiiiiii iiiiiiii iiiiiiii
oo... OID, die eindeutige ID des Herstellers
l - local bit, wenn 0: die MAC wurde vom Hersteller vergeben, wenn 1: die MAC wurde automatic oder vom Admin gewürfelt, in letzterem Fall ist ooo... beliebig und hat keine Korrelation mit der Datenbank der registrierten MAC- Vergeber
b - broadcast bit, wenn 0: die MAC wird für normale Host-zu-Host Kommunikation genommen, wenn 1: die MAC wird von mehreren Hosts empfangen, Extremfall: ff-ff-ff-ff-ff-ff - wird von allen Hosts empfangen; wenn 1 ist auch ooo... und l egal (normalerweise ist l aber auch gesetzt).
ii... Host-ID, eindeutige Nummer der Karte innerhalb der gegebenen OID, normalerweise Seriennummer oder etwas anderes Eindeutiges; wenn l gesetzt ist, dann ist ii... genauso gewürfelt wie oo...; wenn b gesetzt ist, dann haben oo... und ii... irgendeine andere Bedeutung, die der Protokolldesigner festlegt (z.B. IPv6 Multicast setzt 33-33-xx-xx-xx-xx mit xx die letzten 4 Byte der Multicast-Ziel-Adresse, ping6 ff02::1%eth0 erzeugt Pakete mit der Ziel-MAC 33-33-00-00-00-01 auf eth0).
Konrad