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

Изменение MAC-адресов Centos 7.6 для сетевых интерфейсов

На одном из серверов CentOS Linux версии 7.6.1810 (Core) были изменены MAC-адреса сетевых интерфейсов, например eth0 имеет MAC-адрес eth3 и так далее. Кто-нибудь знает, почему так происходит и как решить?

По какой-то причине ваша система отключена согласованное именование сетевых устройств. Это означает, что вместо использования современных имен устройств для интерфейсов, которые остаются одинаковыми для каждой сетевой карты, при каждой загрузке ваши сетевые карты могут выдавать случайный идентификатор eth *, который вы не можете предсказать.

Вам следует повторно включить согласованное именование сетевых устройств, а затем перенастроить сетевые адаптеры с их новыми согласованными именами, которые останутся такими же, если вы физически не измените оборудование. Если присутствует, параметры командной строки загрузки net.ifnames=0 и biosdevname=0 следует удалить. Если бы их не было, то только net.ifnames=1 должен быть установлен.

Вы также должны прочитать всю главу документации RHEL, указанную выше, включая раздел устранения неполадок, прежде чем начать. Это довольно инвазивное изменение, которое потребует некоторого времени простоя, но по завершении оно решит проблему на весь оставшийся срок службы серверного оборудования.

NetworkManager, вероятно, так и сделал. Чтобы предотвратить это в будущем, просто отключите его, если вы не используете его специально для чего-то. В противном случае сохраните свои конфигурации, чтобы вы могли восстановить их позже.

# systemctl disable NetworkManager
rm '/etc/systemd/system/multi-user.target.wants/NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.NetworkManager.service'
rm '/etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service'

Чтобы исправить ситуацию, отредактируйте файл /etc/default/grub и добавить net.ifnames=0 biosdevname=0 to line GRUB_CMDLINE_LINUX, затем заново создайте файл конфигурации GRUB и перезапишите существующий:

# grub2-mkconfig -o /boot/grub2/grub.cfg

Измените параметры NAME и DEVICE в файле ifcfg на новое имя сетевого интерфейса.

# cat /etc/sysconfig/network-scripts/ifcfg-eno1

......
NAME=eth0
DEVICE=eth0
......

Отредактируйте имя файла ifcfg:

# mv /etc/sysconfig/network-scripts/ifcfg-eno1 /etc/sysconfig/network-scripts/ifcfg-eth0

При необходимости повторите для всех eth-s.

Пока NetworkManager выключен, их больше ничего не беспокоит.

Добавление поля MACADDR в файлы интерфейса исправило это для меня. Как объяснено в https://access.redhat.com/solutions/70215