Когда я добавляю файлы конфигурации ниже в /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 ...