Принудительное исправление HWADDR в сетевом скрипте ifcfg-eth0 при загрузке CentOS 7

Принудительное исправление HWADDR в сетевом скрипте ifcfg-eth0 при загрузке CentOS 7

Вопрос:

Я хотел бы найти способ, чтобы строка HWADDR в скрипте ifcfg-eth0 проверялась/обновлялась при загрузке в случае ее изменения при клонировании или копировании виртуальной машины. Есть ли способ это сделать? В CentOS 6 удаление строки HWADDR из скрипта ifcfg-eth0 сделало его гораздо более динамичным, но мне еще предстоит найти способ не допустить обратного изменения ifcfg-eth0 на ifcfg-eno1677776 без строки HWADDR в CentOS 7. Заранее спасибо за помощь!


Фон:

Я использую виртуальную машину CentOS 7.2.1511 через VMware Workstation. По умолчанию CentOS 7 избавился отeth0соглашение об именовании сетевых скриптов и теперь настроено на использование сетевых скриптов с именамиifcfg-eno1677776или что-то подобное. У меня есть программное обеспечение, котороетяжелополагается наeth0схема именования. Поэтому я перенастроил свойifcfg-eno1677776сценарий:

  1. Переименование /etc/sysconfig/network-scripts/ifcfg-eno1677776в/etc/sysconfig/network-scripts/ifcfg-eth0
  2. Модифицирующийifcfg-eth0быть (получено HWADDR от /sys/class/net/eno1677776/address):

    BOOTPROTO=dhcp NAME=eth0 DEVICE=eth0 ONBOOT=yes NM_CONTROLLED=no HWADDR=00:0c:29:d6:d2:65

  3. Добавленnet.ifnames=0до концаGRUB_CMDLINE_LINUXстрока в /etc/sysconfig/grubфайле.

  4. Перезагрузитесь и запустите ifconfig (и празднуйте!):

    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.176.15.148 netmask 255.255.252.0 broadcast 10.176.15.255 inet6 fe80::20c:29ff:fed6:d265 prefixlen 64 scopeid 0x20<link> ether 00:0c:29:d6:d2:65 txqueuelen 1000 (Ethernet) RX packets 2141073 bytes 749959853 (715.2 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 65237 bytes 35352127 (33.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

Каждый раз при загрузке этот интерфейс eth0 остается. Однако эта виртуальная машина должна быть распределена между членами команды и в конечном итоге доставлена ​​клиентам. Вот тут-то и возникает проблема. VMware хорош тем, что вы можете клонировать снимок виртуальной машины для распространения, но это меняет MAC-адрес виртуальной машины.


РЕДАКТИРОВАТЬ:

Вы должны запустить grub2-mkconfig -o /boot/grub2/grub.cfgпосле внесения изменений, рекомендованных @larsks ниже, чтобы это сработало. У меня сработало!

решение1

Вероятно, самым простым решением будет отключить функцию «предсказуемого именования устройств», установив следующие параметры в командной строке ядра:

biosdevname=0 net.ifnames=0

При этом первый интерфейс Ethernet в вашей системе будет называться eth0, второй — eth1и т. д. Это задокументировано.здесь.

После этого просто удалите HWADDRстроку из файла конфигурации, и все должно работать так, как вы ожидаете.

Связанный контент