Назад | Перейти на главную страницу

Почему networkd меняет MAC-адреса моих связанных интерфейсов?

Когда я добавляю файлы конфигурации ниже в /etc/systemd/network и перезапустить systemd-networkd, Я обнаружил, что MAC-адреса bond0, eth0 и eth2 все они были изменены на один локально управляемый адрес. Это нарушает DHCP и не соответствует ожиданиям, установленным в документации по связыванию ядра Linux, в которой говорится, что интерфейс связывания будет принимать MAC-адрес одного из своих подчиненных устройств.

Согласно документации networkd, проблема выглядит так:

MACAddress =

MAC-адрес, используемый для устройства. Для устройств «tun» или «tap» установка MACAddress = в разделе «[NetDev]» не поддерживается. Укажите его в разделе «[Link]» соответствующего файла systemd.network (5). Если этот параметр не установлен, устройства «vlan» наследуют MAC-адрес физического интерфейса. Для других типов netdev, если эта опция не установлена, то MAC-адрес генерируется на основе имени интерфейса и идентификатора машины (5).

(Акцент мой.)

Как мне предотвратить создание этого MAC-адреса и указать networkd использовать только один из подчиненных устройств?

Файлы

10-bond0.netdev

[NetDev]
Name=bond0
Kind=bond

[Bond]
Mode=802.3ad

10-bond0.network

[Match]
Name=bond0

[Network]
DHCP=ipv4

20-eth0.network

[Match]
Name=eth0

[Network]
Bond=bond0

20-eth2.network

[Match]
Name=eth2

[Network]
Bond=bond0

Как мне предотвратить создание этого MAC-адреса и указать networkd использовать только один из ведомых устройств?

Насколько я знаю, это невозможно. В своем проекте я настраиваю его с помощью другого скрипта. В соответствии с Документ Debian Systemd Systemd-networkd может назначить другой MAC-адрес, чем MAC-адрес физического интерфейса. Вы можете исправить это вручную, добавив MACAddress = xx: xx: xx: xx: xx: xx

Я знаю, что вы не упомянули ОС, но все же ваши симптомы соответствуют Debian ...