Проблема
Система - Ubuntu 18.04 (Armbian).
На одном из сетевых адаптеров при каждой загрузке новый MAC-адрес.
Оказалось неважно как настроена система - с помощью стандартных настроек из /etc/network/ и в случае когда сеть настроена с помощью Network Manager.
В случае, когда используется Network Manager - для одного из сетевых адаптеров при каждой загрузке создается новое подключение, с новым произвольным MAC-адресом. Я хочу использовать этот интерфейс для подключения к сети провайдера, поэтому изменеие MAC-адреса при каждой перезагрузке недопустимо.
Так как в Network Manager при каждой загрузке создается новое подключение - установка параметра 802-3-ethernet.cloned-mac-address результата не дает.
Никаких правил рандомизации MAC-адреса для проблемного интерфейса не задано.
Причины
Причинами такого поведения могут быть:
- настройки NetworkManager, который может обновлять MAC-адрес устройства при кадом новом подключении.
- Настройки демона avahi (avahi-autoipd)
- настройки устройства в правилах udev
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=755202
/etc/udev/rules.d/70-persisetn-net.rules SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",ATTR{address}=="00:00:00:00:00:00",ATTR{dev_id}=="0x0", ATTR{type}=="1",KERNEL=="eth1", NAME="wan0"
Решение
Я не смог найти точной причины происходящего - возможно дело в самом драйвере устройства.
Решить можно несколькими способами. Все они так или иначе сводятся к принудительной установке нужного адреса.
NetworkManager
Если сеть настраиваем с помощью NetworkManager, то нужно создать файл скрипта /etc/NetworkManager/dispatcher.d/pre-up.d/wanmac:
#!/bin/sh /bin/ip link set dev eth1 address C4:6E:1F:FD:D9:82
/etc/network/
Если настройки сети в /etc/network/, то можно выбрать один из вариантов:
- тот же скрипт в /etc/network/if-pre-up.d/
- в файле /etc/network/interfaces прописываем
pre-up ifconfig <interface> hw ether xx:xx:xx:yy:yy:yy
- в файле /etc/network/interfaces прописываем:
allow-hotplug eth1 iface eth0 inet dhcp hwaddress ether 08:00:00:00:00:01
NetworkManager
При использовании NetworkManager
Discussion