Erzwingen einer Selbstkorrektur von HWADDR im Netzwerkskript ifcfg-eth0 beim Booten von CentOS 7

Erzwingen einer Selbstkorrektur von HWADDR im Netzwerkskript ifcfg-eth0 beim Booten von CentOS 7

Frage:

Ich würde gerne eine Möglichkeit finden, die HWADDR-Zeile im ifcfg-eth0-Skript beim Booten selbst zu überprüfen/aktualisieren, falls sie sich ändert, wenn ein Klon oder eine Kopie der VM erstellt wird. Gibt es eine Möglichkeit, dies zu tun? In CentOS 6 hat das Entfernen der HWADDR-Zeile aus dem ifcfg-eth0-Skript es viel dynamischer gemacht, aber ich habe noch keine Möglichkeit gefunden, ifcfg-eth0 davon abzuhalten, sich ohne die HWADDR-Zeile in CentOS 7 wieder in ifcfg-eno1677776 zu ändern. Vielen Dank im Voraus für die Hilfe!


Hintergrund:

Ich verwende eine virtuelle Maschine mit CentOS 7.2.1511 über VMware Workstation. Standardmäßig hat CentOS 7 dieeth0Namenskonvention seiner Netzwerkskripte und ist nun für die Verwendung von Netzwerkskripten mit dem Namenifcfg-eno1677776oder etwas ähnliches. Ich habe Software, dieschwerstützt sich auf dieeth0Namensschema. Also habe ich meineifcfg-eno1677776Skript von:

  1. Umbenennung /etc/sysconfig/network-scripts/ifcfg-eno1677776in/etc/sysconfig/network-scripts/ifcfg-eth0
  2. Ändernifcfg-eth0sein (habe HWADDR von erhalten /sys/class/net/eno1677776/address):

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

  3. Hinzugefügtnet.ifnames=0bis zum Ende desGRUB_CMDLINE_LINUXZeile in der /etc/sysconfig/grubDatei.

  4. Starten Sie neu und führen Sie ifconfig aus (und feiern Sie!):

    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

Bei jedem Booten bleibt diese eth0-Schnittstelle bestehen. Diese VM soll jedoch zwischen Teammitgliedern verteilt und schließlich an Kunden ausgeliefert werden. Hier entsteht das Problem. VMware ist großartig, da Sie einen Snapshot einer VM zum Verteilen klonen können, aber dadurch wird die MAC-Adresse der VM geändert.


BEARBEITEN:

Sie müssen es ausführen grub2-mkconfig -o /boot/grub2/grub.cfg, nachdem Sie die unten empfohlene Änderung von @larsks vorgenommen haben, damit es funktioniert. Hat bei mir funktioniert!

Antwort1

Die einfachste Lösung besteht wahrscheinlich darin, das Verhalten der „vorhersehbaren Gerätebenennung“ zu deaktivieren, indem Sie in Ihrer Kernel-Befehlszeile die folgenden Optionen festlegen:

biosdevname=0 net.ifnames=0

Wenn dies eingerichtet ist, wird die erste Ethernet-Schnittstelle auf Ihrem System benannt eth0, die zweite heißt eth1usw. Dies ist dokumentiertHier.

Wenn dies eingerichtet ist, entfernen Sie einfach die HWADDRZeile aus Ihrer Konfigurationsdatei und alles sollte wie erwartet funktionieren.

verwandte Informationen