Как я заставляю NetworkManager присваивать фиксированный MAC-адрес eth0?

Обновление - 14 октября 2019:

На этой неделе я установил настольную версию Ubuntu 19.04. Это появляется пакет ifupdown установлен по умолчанию на Ubuntu 19.04. (Yay!) Поэтому этот вопрос, вероятно, только относится к производным Ubuntu, которые приняли решение исключить ifupdown пакет от их установки по умолчанию. И вопрос, вероятно, не относится к самой Ubuntu. Для этого и других причин, я ожидаю, что предпочту ванильную Ubuntu по любой из ее производных на всех моих будущих установках.

Исходный вопрос - 26 февраля 2019

В (удаленный?) мимо, я мог присвоить MAC-адрес сетевому интерфейсу путем добавления следующей строки файла конфигурации к к /etc/network/interfaces:

auto         eth0
iface        eth0
  hwaddress  00:12:34:56:78:9a

С Lubuntu 18.04 это больше не работает (потому что ifupdown пакет не установлен по умолчанию).

Мой вопрос, какой конфигурационный файл делают я редактирую, и как делают я редактирую его, так, чтобы NetworkManager присвоил фиксированный MAC-адрес моего выбора к eth0.

(В стороне: Да, я знаю, что Ubuntu 18.04 по умолчанию переименовывает eth0 к "предсказуемому" имени как enp1s0. Я уже отключил то переименование, таким образом, я действительно имею eth0 интерфейс в моей системе.)

Я поглядел на следующую документацию:

На основе вышеупомянутой документации я пытался добавить что-то как ниже к /etc/NetworkManager/NetworkManager.conf:

[device]
match-device=interface-name:eth0
ethernet.assigned-mac-address=00:22:68:1c:59:b1

К сожалению, вышеупомянутое, кажется, не работает.

Мой вариант использования - то, что я установил Lubuntu на карту с интерфейсом USB. После начальной загрузки карты с интерфейсом USB в любой системе я хочу, чтобы NetworkManager присвоил предопределенный и фиксированный MAC-адрес eth0.

1
задан 15 October 2019 в 03:47

2 ответа

Как сказано, свойство в формате файла ключей, nmcli, и NetworkManager.conf назван ethernet.cloned-mac-address. Только на D-шине API это называют ethernet.assigned-mac-address - это имеет исторические причины.

Обычно Вы устанавливали бы это на профиль, например, через nmcli connection modify "$PROFILE" ethernet.cloned-mac-address 00:22:68:1c:59:b1. Путем редактирования NetworkManager.conf Вы указываете значение по умолчанию, которое используется, если значение на профиль неуказанное. В этом объясняют man NetworkManager.conf.

После изменения профиля необходимо повторно активировать его для изменений для вступления в силу. Аналогично, если Вы редактируете значение по умолчанию в NetworkManager.conf, необходимо перезагрузить его с SIGHUP и повторно активируйте профиль.

Относительно предсказуемых имен интерфейса: NetworkManager не делает (ре) имени устройство, это обычно делается udev. Можно ограничить профиль интерфейсом путем установки connection.interface-name к имени, которое было дано устройству. Вы видите то имя с ip link или nmcli device. Аналогично match-device=interface-name: установка для NetworkManager.conf.

0
ответ дан 7 December 2019 в 15:07

TLDR:

nmcli con show

ищите свое УСТРОЙСТВО (eth0) в последнем столбце и используйте название соединения для следующей команды. Пример, если имя подключения является "Значением по умолчанию":

sudo nmcli con modify Default 802-3-ethernet.cloned-mac-address 00:12:34:56:78:9a

Более длинный ответ:

nmcli --version

NetworkManager находится в непрерывной разработке и иногда параметрах конфигурации или их изменении имен. Некоторые изменения сбивают с толку.

Контрастируйте и сравните:

И:

Я столкнулся с той же проблемой с Xubuntu 18.04. Напыщенная речь против повреждающих совместимость изменений конфигурации опущена.

1
ответ дан 7 December 2019 в 15:07

Другие вопросы по тегам:

Похожие вопросы: