Dlaczego niektóre adresy MAC powtarzają się tak często?

12

Moja aplikacja sprawdza adresy MAC komputerów klienckich, na których działa, i zapisuje je na serwerze. Kiedy analizowałem DB serwera, okazało się, że niektóre adresy MAC powtarzają się 100-150 razy. To znaczy różne komputery klienckie w różnych niepowiązanych organizacjach mają takie same komputery Mac. Dlatego niektóre adresy MAC są bardzo „popularne”. W jakiś sposób pojawiają się również w wynikach Google. Np. 58-2C-80-13-92-63. Dlaczego tak się dzieje?

Szczegóły: moja aplikacja działa w systemie Windows, komputery klienckie należą do różnych organizacji i znajdują się w różnych miastach. A moja aplikacja łączy się z serwerem internetowym, gdzie przechowuje pewne statystyki (np. Adresy mac).

Mike Siomkin
źródło
1
Cóż, pojawia się błąd „nie znaleziono dostawcy”, gdy go wyszukujesz - jest to komputerowy MAC, prawdopodobnie jakaś forma wewnętrznej translacji NAT, prawdopodobnie z twojego routera / VPN / zapory ogniowej.
Chopper3
złe zarządzanie od ich dostawcy, tak myślę? Kiedyś miałem router D-Link, który miał bezprzewodowy MAC „01: 23: 45: 67: 89: ab” ... Tanie badziewie.
Waleed Hamra
może być konfiguracja urządzenia wirtualnego, wystarczy skopiować / wkleić bez zmiany MAC (np. przy starszych wersjach Xen jest to możliwe)
Dennis Nolte
Cóż, nawet w przypadku nowych wersji Xen jest to możliwe, jeśli nie pozwalasz mu na generowanie nowego MAC podczas tworzenia kart sieciowych VM (na przykład, jeśli ktoś używa szablonu maszyny). Możesz to zrobić nawet z libvirt, jeśli używasz tylko virsh i jednego szablonu bez skryptu losowego.
Spooler,

Odpowiedzi:

17

Ten przykład w szczególności ( 58-2C-80-13-92-63) to układ USB Ethernet wykonany przez Huawei. Wygląda na to, że są leniwi i ponownie używają MAC. Przykłady od Google:

[50413.229125] cdc_ether 2-1:1.0: eth1: register 'cdc_ether' at usb-0000:00:1d.7-1, CDC Ethernet Device, 58:2c:80:13:92:63

[  122.660069] huawei_cdc_ncm 3-3:1.1 wwan0: register 'huawei_cdc_ncm' at usb-0000:00:14.0-3, Huawei CDC NCM device, 58:2c:80:13:92:63

Inne mogą być również przypadkiem przekazywania maszyn wirtualnych. Ale najbardziej prawdopodobne wyjaśnienie (jak powiedzieli inni) jest to, że jest to tani sprzęt.

Aby to sprawdzić, sprawdź, czy MAC jest (oznaczony jako) globalnie unikatowy lub lokalnie administrowany: https://en.wikipedia.org/wiki/MAC_address#Address_details

Adres 58:2c:80:13:92:63teoretycznie powinien być globalnie unikalny:

0x58 → 1011000

Ale MAC z maszyn wirtualnych (np. 58:2c:80:13:92:63) Nie będą:

0x52 → 1010010
MikeyB
źródło
Kilka innych przykładów: 0C-5B-8F-27-9A-64, 02-00-4C-4F-4F-50, 36-4B-50-B7-EF-2D, 02-0C-E7-0B-01- 02, 00-16-76-C9-4E-DE. Po pierwsze - znów wygląda jak Huawei, powinien być globalnie wyjątkowy. (Czy faceci z Huawei nie boją się kolizji w sieci LAN? - serverfault.com/questions/462178 / ... ) Drugi to pętla zwrotna. Inni - nie wiem co dokładnie. Drugi najmniej znaczący bit pierwszego oktetu może wynosić 1 lub 0. Jedyne, co widzę - w ogólności wyjątkowość Mac to mit :( (nawet jeśli nie są ustawione programowo).
Mike Siomkin
Kolejną dziwną rzeczą jest to, że odfiltrowuję if (adapter.NetworkInterfaceType == NetworkInterfaceType.Tunnel || adapter.NetworkInterfaceType == NetworkInterfaceType.Loopback || adapter.NetworkInterfaceType == NetworkInterfaceType.Unknown) continue;
pętle
-2

Możesz zobaczyć różne adresy MAC tylko w sieci lokalnej. Gdy pakiet IP przechodzi przez router, adres mac hosta źródłowego zmienia się na adres mac interfejsu wyjściowego routera. Dlatego możesz zobaczyć wiele adresów IP (które nie pochodzą z sieci lokalnej) z tym samym adresem mac.

Michaił Chirgij
źródło
Nie, nie tak to działa, są to różne warstwy OSI. Jeśli zdalny adres IP dociera do ciebie przez router, kojarzysz tylko (lokalny) adres IP routera z tym MAC. Mógłbym sobie wyobrazić bardzo egzotyczną konfigurację, w której router próbuje zrobić to tak, jakby był pomostem do Internetu (kto naprawdę chciałby czegoś takiego?), Ale taka bestia nawet nie zadziała, a na pewno nie poprzez maskowanie wszystkiego za nią pojedynczy MAC
Hagen von Eitzen
Masz rację. Istnieją różne warstwy OSI. Ale router pobiera pakiet w warstwie niskiego Ethernetu, a następnie decyduje, co zrobić z tym pakietem w warstwie IP, a następnie przesyła go ponownie do następnego miejsca docelowego w warstwie niskiego Ethernetu. Dlatego router wysyła pakiety z własnym adresem mac. Nie ma żadnych protokołów routingu na fizycznej warstwie Ethernet.
Michaił Chirgij
W rzeczywistości IS-IS to protokół routingu działający bezpośrednio w warstwie Ethernet. Ale niezależnie od tego, systemy nigdy nie zgłosiłyby, że maszyna osiągalna poza bramą ma adres MAC bramy.
MikeyB,
Dobrze. Ale co z tym serverfault.com/questions/36002/…
Mikhail Khirgiy
1. Jak powiedziałem, otrzymuję te same komputery Mac od klientów z różnych miast (nie z jednej sieci LAN)! 2. Moja aplikacja kliencka wysyła zapytanie do Mac adaptera komputera, na którym działa, a następnie wysyła je do serwera za pomocą usługi sieci Web SOAP. Więc to nie może być mac routera.
Mike Siomkin