Wie weise ich einer Netzwerkschnittstelle basierend auf dem Hardwarestandort einen beliebigen Namen zu? (CentOS 7)

Wie weise ich einer Netzwerkschnittstelle basierend auf dem Hardwarestandort einen beliebigen Namen zu? (CentOS 7)

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=0wie beschrieben zu erweitern.Hierund dann meine eigenen ifcfg-ethXDateien 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.dum 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 ablehnt eth*, 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-Switch net.ifnames=0).

    Um das zu bekommenp1p2Stilnamen können Sie , yum install biosdevnameund aktivieren Sie es dann über die Kernel-Befehlszeile ( biosdevname=1 net.ifnames=0). Siehe dieRed Hat-Dokumentation.

Netzwerkschnittstellen können keine Aliase haben.

verwandte Informationen