Ich habe mehrere identische Geräte mit CentOS 7 und vier integrierten Netzwerkkarten. Um ein ähnliches Gefühl wie bei einer älteren Version des Geräts mit RHEL6 (d. h. ethX
) beizubehalten, möchte ich das von RHEL6 verwendete Netzwerkbenennungsschema verwenden. Außerdem möchte ich die Anzahl der erforderlichen Änderungen minimieren, nachdem ich eine generische Systemfestplatte für die Verwendung auf jedem Gerät erstellt habe.
Wenn ich das Benennungsschema in CentOS 7 richtig verstehe, ist das Benennungsschema basierend auf dem Hardwarestandort konsistent. Wenn die Hardware also identisch ist, habe ich für jede Instanz des Geräts dieselben Netzwerkschnittstellennamen.
Aufgrund von Kundenanforderungen muss ich dafür sorgen, dass die Netzwerkschnittstellen des Geräts in den Versionen CentOS 7 und RHEL6 denselben Namen haben.
Ein Ansatz besteht darin, die Kernel-Befehlszeile net.ifnames=0
wie beschrieben zu erweitern.Hierund dann meine eigenen ifcfg-ethX
Dateien erstellen. Soweit ich das beurteilen kann, erfordert dies jedoch eine manuelle Änderung der Konfigurationsdatei. Dies wird noch dadurch komplizierter, dass die alte Reihenfolge zwar fest, aber willkürlich ist, sodass ich diese Dateien für jedes System ändern müsste. :-/
Einer meiner Gedanken war, das Benennungsschema von CentOS 7 zu verwenden, dann aber jedem einen Alias hinzuzufügen, sodass das beliebige Benennungsschema basierend auf dem Hardwarestandort angewendet werden kann. Ist das möglich?
Irgendwelche anderen Ideen, wie ich zwei Namen für dasselbe Gerät und dieselbe IP-Adresse bekomme?
HINWEIS: Ich frage nicht, wie man demselben Gerät mehrere IP-Adressen hinzufügt, was ziemlich unkompliziert ist.
BEARBEITEN: Ich muss es wirklich umbenennen, möchte dies aber gerne programmgesteuert tun.
Antwort1
Kann ein Name gleichzeitig „beliebig“ und „auf dem Hardwarestandort basierend“ sein? Diese Wörter widersprechen sich.
Die
eth#
Namen werden vom Kernel selbst basierend auf der Erkennungsreihenfolge bei jedem Start zugewiesen. Mit anderen Worten gilt „Wer zuerst kommt, mahlt zuerst“ und sie haben nichts mit dem Hardware-Standort zu tun.Ältere udev-Versionen erzeugten automatisch eine Datei in
/etc/udev/rules.d
um diese Zuordnungen an die MAC-Adressen der Karten zu binden. Diese Datei können Sie wahrscheinlich auf die neuen Systeme kopieren.Sie können auch benutzerdefinierte udev-Regeln schreiben, um den
NAME=
Parameter basierend auf der Adresse oder dem PCI-Speicherort festzulegen. (Beachten Sie, dass udev in Zukunft möglicherweise die Umbenennung einer Schnittstelle in ablehnteth*
, falls dies nicht bereits der Fall ist. Und selbst wenn die Umbenennung zulässig ist, ist sie sehr fehleranfällig und kann fehlschlagen, wenn die Geräte in einer anderen Reihenfolge erkannt werden.)Obwohl RHEL 6 meines WissensBIOS-Devnamezum Generieren der physikalischen Schnittstellennamen (Kernel-Switch
biosdevname=0
). RHEL 7 verwendet hierfür die integrierte net_id von systemd-udevd (Kernel-Switchnet.ifnames=0
).Um das zu bekommen
p1p2
Stilnamen können Sie ,yum install biosdevname
und aktivieren Sie es dann über die Kernel-Befehlszeile (biosdevname=1 net.ifnames=0
). Siehe dieRed Hat-Dokumentation.
Netzwerkschnittstellen können keine Aliase haben.