¿Por qué algunas direcciones MAC se repiten tan a menudo?

12

Mi aplicación consulta las direcciones MAC de las computadoras cliente donde se ejecuta y las almacena en el servidor. Cuando analicé la base de datos del servidor, descubrí que algunas direcciones MAC se repiten 100-150 veces. Es decir, diferentes equipos cliente en diferentes organizaciones no relacionadas tienen los mismos equipos Mac. Entonces, algunas direcciones MAC son muy "populares". También aparecen de alguna manera en los resultados de Google. Por ejemplo, 58-2C-80-13-92-63. ¿Por que sucede?

Detalles: mi aplicación se ejecuta en Windows, las computadoras cliente pertenecen a diferentes organizaciones y están ubicadas en diferentes ciudades. Y mi aplicación se conecta al servidor web donde almacena algunas estadísticas (por ejemplo, direcciones MAC).

Mike Siomkin
fuente
1
Bueno, eso obtiene un error de 'proveedor no encontrado' cuando lo busca: es un MAC derivado del software, probablemente alguna forma de NAT interna, posiblemente de su enrutador / VPN / firewall.
Chopper3
mala administración de su proveedor, supongo? Una vez tuve un enrutador D-Link que tenía un MAC inalámbrico de "01: 23: 45: 67: 89: ab" ... Mierda barata.
Waleed Hamra
podría ser la configuración del dispositivo virtual simplemente copie / pegue sin cambiar el MAC (es posible con versiones anteriores de xen)
Dennis Nolte
Bueno, incluso con las nuevas versiones de Xen, esto es posible si no permite que genere un nuevo MAC al crear NIC de VM (por ejemplo, si alguien está usando una plantilla de máquina). Incluso puede hacer esto con libvirt si usa solo virsh y una sola plantilla sin script de aleatorización.
Cola

Respuestas:

17

Este ejemplo en particular ( 58-2C-80-13-92-63) es un chip USB Ethernet hecho por Huawei. Parece que están siendo flojos y reutilizando el MAC. Ejemplos de 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

Los otros también podrían ser un caso de máquinas virtuales que se pasan. Pero la explicación más probable (como han dicho otros) es que es un hardware barato.

Para resolver esto, verifique si el MAC es (marcado como) globalmente único o administrado localmente: https://en.wikipedia.org/wiki/MAC_address#Address_details

La dirección 58:2c:80:13:92:63en teoría debería ser globalmente única:

0x58 → 1011000

Pero los MAC de las máquinas virtuales (p 58:2c:80:13:92:63. Ej. ) No serán:

0x52 → 1010010
MikeyB
fuente
Algunos ejemplos más: 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. Primero: parece Huawei nuevamente, debería ser globalmente único. (¿Los hombres de Huawei no temen las colisiones de LAN? - serverfault.com/questions/462178/… ) El segundo es un bucle invertido. Otros, no sé qué exactamente. El segundo bit menos significativo del primer octeto puede ser 1 o 0. Lo único que veo, en general, la unicidad de Mac es un mito :( (incluso si no están configurados programáticamente).
Mike Siomkin
Otra cosa extraña es que filtro los bucles en mi código:if (adapter.NetworkInterfaceType == NetworkInterfaceType.Tunnel || adapter.NetworkInterfaceType == NetworkInterfaceType.Loopback || adapter.NetworkInterfaceType == NetworkInterfaceType.Unknown) continue;
Mike Siomkin el
-2

Puede ver diferentes direcciones MAC solo en la red local. Cuando el paquete IP pasa por el enrutador, la dirección mac del host de origen se cambia a la dirección mac de la interfaz de salida del enrutador. Es por eso que puede ver muchas direcciones IP (que no son de su red local) con la misma dirección MAC.

Mikhail Khirgiy
fuente
No, no es así como funciona, se trata de capas OSI diferentes. Si una IP remota le llega a través de un enrutador, solo asocia la IP (local) del enrutador con ese MAC. Me imagino una configuración muy exótica en la que el enrutador intenta hacer como si fuera un puente a Internet (¿quién realmente querría tal cosa?), Pero esa bestia ni siquiera funcionará, y ciertamente no enmascarando todo lo que hay detrás un solo MAC
Hagen von Eitzen
Tienes razón. Hay diferentes capas de OSI. Pero el enrutador obtiene el paquete en la capa baja de Ethernet, luego decide qué hacer con este paquete en la capa IP y luego lo envía de nuevo al siguiente destino en la capa baja de Ethernet. Es por eso que el enrutador envía paquetes con su propia dirección MAC. No hay protocolos de enrutamiento en la capa física de Ethernet.
Mikhail Khirgiy
En realidad, IS-IS es un protocolo de enrutamiento que se ejecuta directamente en la capa de Ethernet. Pero independientemente, los sistemas nunca informarían que una máquina accesible más allá de una puerta de enlace tiene la dirección MAC de la puerta de enlace.
MikeyB
Okay. Pero qué pasa con este serverfault.com/questions/36002/…
Mikhail Khirgiy
1. Como dije, ¡recibo los mismos equipos Mac de clientes de diferentes ciudades (no de una LAN)! 2. La aplicación de mi cliente de escritorio consulta mac del adaptador de la computadora donde se ejecuta y luego lo envía al servidor mediante el servicio web SOAP. Por lo tanto, no puede ser el mac de un enrutador.
Mike Siomkin el