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

Изменить mac (hw) адрес интерфейса с помощью правил udev

Я хочу установить конкретный MAC-адрес Ethernet для интерфейса с использованием правил UDEV. У меня такое правило: SUBSYSTEM=="net", ACTION=="add", ATTRS{serial}=="50B123", ATTR{address}="00:22:33:44:55:AA", NAME="yolo0"

Правило совпадает, и интерфейс переименовывается в "yolo0", однако адрес hw-эфира остается неизменным по сравнению с адресом, предварительно установленным производителем. Конечно, я могу изменить MAC-адрес вручную, используя:

ifconfig yolo0 hw ether ..00:22:33:44:55:AA

IMHO udev - неподходящее место для этого, правило - установка имени интерфейса.

При добавлении сетевой карты необходимо учитывать две вещи:

  1. Имя, под которым вы будете ссылаться на этот интерфейс.

  2. Сетевые свойства, которые вы дадите интерфейсу с заданным именем, которое вы выбрали в пункте 1.

При этом вы можете установить свой MAC-адрес, IP, подсеть, autoneg и так далее, когда вы настраиваете / запускаете свой сетевой интерфейс, например, на RH / SuSE вы можете сделать это (скажем) для eth0 в:

/etc/sysconfig/network-scripts/ifcfg-eth0

Для RedHat добавьте туда:

MACADDR=YOUR_DESIRED_MAC_ADDRESS

Для SuSE:

LLADDR=YOUR_DESIRED_MAC_ADDRESS

И тебе хорошо идти.

Вы можете использовать udev PROGRAM правила для этого, сделав соответствующий вызов ip link set … address …. Как это:

/etc/udev/rules.d/10-network-persistent-custom-mac-address.rules

SUBSYSTEM=="net", ACTION=="add", ATTRS{serial}=="50B123", PROGRAM="/sbin/ip link set %k address 00:22:33:44:55:AA"