Дублирование MAC на Raspberry под Windows 10 IoT
Недавно одна компания закупила пачку Raspberry и во время подключения к сети возникли проблемы. Одновременно они работать не захотели. Порывшись в них администраторы пришли к выводу, что у всех Raspberry дублируются MAC-адреса и по этому свитч, работающий на уровне L2 был в замешательстве, и не только он. Тот же DHCP не сможет дать разные IP-адреса для оборудования с одинаковым MAC-адресом. Взяв такую железку я зашел в командную строку под Windows 10 IoT и дал команду ipconfig /all и действительно, у всех Raspberry оказался одинаковый MAC-адрес: 00:80:0F:11:70:00.
Ради интереса я загрузил одну из Малинок используя Raspbian и выяснилось, что линуксовый дистрибутив видит вообще другие MAC-адреса вида: B8:27:EB:E7:**:**. Собственно, такой формат более правильный для чипов распаяных на Raspberry. Значит проблема крылась не в оборудовании, а в операционной системе. Значит «ремонтировать» необходимо операционку. Но не так всё легко и быстро оказалось с Windows для такого оборудования. Но порывшись в интернете поглубже, выяснилось, что данный вопрос можно решить отредактивровав реестр Windows.
Открыв командную строку я прочитал информацию о сетевых интерфейсах подключенных к
этой железке. Команда вот такая:
reg query HKEY_LOCAL_MACHINESystemCurrentControlSetControlClass{4d36e972-e325-11ce-bfc1-08002be10318} /s /f DriverDesc
Эта команда выведет список всех имеющихся сетевых интерфейсов. И на всех Raspberry от второй до
четвёртой версии Ethernet-порт оказывается третьим. Для того, чтобы назначить интерфейсу опредлённый
MAC-адрес необходимо выполнить следующую команду:
reg add HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Class\{4d36e972-e325-11ce-bfc1-08002be10318}\0003 /v "NetworkAddress" /t REG_SZ /d "B827EBE7****"
Естественно, что вместо B827EBE7**** вам надо впечатать желаемый адрес. Хочу обратить внимание, при попытке дать эту команду из командной строки зайдя на устройство используя монитор и клавиатуру у вас выскочит ошибка о том, что недостаточно прав. Для того, чтобы запустить эту команду, вам необходимо зайти в командную строку через web-интерфейс. Но в web-интерфейсе вы не сможете запустить команду для просмотра интерфейсов так как выскочит ошибка отсутствия интерактивного режима.
Вот так всё запутано.
Причин по которым необходимо изменить MAC-адрес какого-либо оборудования может быть масса. По этому необходимо знать как это сделать.
Отредактировано:2020-12-25 10:20:41
Прикольный баг. Но такое должны пофиксить, по идее. И закрыть дырку, позволяющую менять мак-адреса. Пока Win 10 IoT очевидно сыровата для серьёзных применений.
А под линуксом мак-адреса у разных "малинок" разные?