Почему некоторые mac-адреса повторяются так часто?

12

Мое приложение запрашивает mac-адреса клиентских компьютеров, на которых оно работает, и сохраняет их на сервере. Анализируя серверную БД, я обнаружил, что некоторые mac-адреса повторяются 100-150 раз. Т.е. разные клиентские компьютеры в разных несвязанных организациях имеют одинаковые маки. Так что некоторые mac-адреса очень «популярны». Они также как-то появляются в результатах Google. Например, 58-2C-80-13-92-63. Почему это происходит?

Подробно: мое приложение работает на Windows, клиентские компьютеры принадлежат разным организациям и расположены в разных городах. И мое приложение подключается к веб-серверу, где хранится некоторая статистика (например, mac-адреса).

Майк Сёмкин
источник
1
Хорошо, что при поиске возникает ошибка «поставщик не найден» - это программный MAC, возможно, какая-то внутренняя NAT, возможно, от вашего маршрутизатора / VPN / брандмауэра.
Chopper3
плохое управление от их продавца, я думаю? Однажды у меня был маршрутизатор D-Link с беспроводным MAC-адресом "01: 23: 45: 67: 89: ab" ... Дешевая хрень.
Валид Хамра
может быть конфигурация виртуального устройства, просто скопируйте / вставьте без изменения MAC (например, для более старых версий xen это возможно)
Деннис Нольте
Что ж, даже с новыми версиями Xen это возможно, если вы не разрешаете ему генерировать новый MAC при создании сетевых адаптеров виртуальных машин (например, если кто-то использует шаблон машины). Вы даже можете сделать это с помощью libvirt, если вы используете только virsh и один шаблон без сценария рандомизации.
шпульницы

Ответы:

17

В частности, этот пример ( 58-2C-80-13-92-63) представляет собой чип USB Ethernet производства Huawei. Похоже, они ленивые и повторно используют MAC. Примеры от 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

Другие могут также быть причиной передачи виртуальных машин. Но наиболее вероятное объяснение (как уже говорили другие) состоит в том, что это дешевое оборудование.

Чтобы выяснить это, проверьте, является ли MAC (помечен как) глобально уникальным или локально управляемым: https://en.wikipedia.org/wiki/MAC_address#Address_details

58:2c:80:13:92:63Теоретически адрес должен быть глобально уникальным:

0x58 → 1011000

Но MAC от виртуальных машин (например 58:2c:80:13:92:63) не будет:

0x52 → 1010010
MikeyB
источник
Еще несколько примеров: 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. Во-первых - похоже, снова Huawei, должен быть глобально уникальным. (Разве ребята из Huawei не боятся коллизий в локальной сети? - serverfault.com/questions/462178/… ) Второй - это петля. Другие - я не знаю что именно. Второй младший бит первого октета может быть 1 или 0. Единственное, что я вижу - в общем, уникальность mac - это миф :( (даже если они не установлены программно).
Майк Сиомкин
Еще одна странность состоит в том, что я отфильтровываю петли в своем коде:if (adapter.NetworkInterfaceType == NetworkInterfaceType.Tunnel || adapter.NetworkInterfaceType == NetworkInterfaceType.Loopback || adapter.NetworkInterfaceType == NetworkInterfaceType.Unknown) continue;
Майк Сёмкин
-2

Вы можете видеть разные mac-адреса только в локальной сети. Когда IP-пакет проходит через маршрутизатор, mac-адрес хоста источника изменяется на mac-адрес выходного интерфейса маршрутизатора. Вот почему вы можете видеть много IP-адресов (не из вашей локальной сети) с одним и тем же mac-адресом.

Михаил Хиргий
источник
Нет, это не так, это разные уровни OSI. Если удаленный IP-адрес достигает вас через маршрутизатор, вы связываете только этот (локальный) IP-адрес маршрутизатора с этим MAC-адресом. Я мог бы представить себе очень экзотическую установку, в которой маршрутизатор пытается сделать так, как если бы он был мостом к Интернету (кто бы действительно хотел такого?), Но такой зверь даже не сработает, и уж точно не маскирует все, что скрывается за этим. один MAC
Хаген фон
Вы правы. Существуют разные уровни OSI. Но маршрутизатор получает пакет на низком уровне Ethernet, затем решает, что делать с этим пакетом на уровне IP, а затем снова отправляет его в следующий пункт назначения на низком уровне Ethernet. Именно поэтому маршрутизатор отправляет пакеты со своим собственным mac-адресом. На физическом уровне Ethernet нет протоколов маршрутизации.
Михаил Хиргий
На самом деле IS-IS - это протокол маршрутизации, который работает прямо на уровне Ethernet. Но независимо от того, системы никогда не сообщат о машине, доступной за пределами шлюза, как имеющей MAC-адрес шлюза.
MikeyB
Ok. Но как насчет этого serverfault.com/questions/36002/…
Михаил Хиргий
1. Как я уже сказал, я получаю одинаковые маки от клиентов из разных городов (не из одной локальной сети)! 2. Мое настольное клиентское приложение запрашивает mac адаптера компьютера, на котором оно работает, а затем отправляет его на сервер с помощью веб-службы SOAP. Так что это не может быть Mac роутера.
Майк Семкин