Umbenennen von Netzwerkschnittstellen in eth0 unter CentOS / Rocky Linux / AlmaLinux

In diesem Artikel werden wir etwas über die Benennung der Linux-Schnittstelle erfahren. Er ist für RHEL-basierte Linux-Distributionen wie AlmaLinux, CentOS und Rocky Linux geschrieben. Du wirst lernen, wie die Netzwerkschnittstellen unter Linux eth(X), ens(X), eno(X) usw. heißen.

Zunächst lernen wir das Konzept der Namensgebung einer Netzwerkschnittstelle auf dem Linux-System kennen, einschließlich des klassischen Namensschemas, biosdevname und der udev-Richtlinie des Systems.

1. Traditionelle Benennungskonvention

Die traditionelle Namenskonvention ist das Standardschema für die Benennung von Schnittstellen, das vom Linux-Kernel-Treiber bereitgestellt wird. Wie wir wissen, ist die traditionelle Namenskonvention z. B. eth(n) für Ethernet-Geräte, wlan(n) für Wireless LAN-Geräte und usb(n) für das usbnet.

Bei der traditionellen Namenskonvention werden alle Netzwerkgeräte vom Kernel-Treiber gleich behandelt. Das ist gut genug, um uns etwas über die Art der Verbindung zu sagen, aber nicht viel für die Art der Hardware, an die du gewöhnt bist.

2. Biosdevname

Der Biosdevname ist ein Projekt, das von Dell ins Leben gerufen wurde, um eine einheitliche Benennung von Netzwerkgeräten zu ermöglichen. Biosdevname ist ein Hilfsprogramm des Dienstprogramms udev, das einen einheitlichen Namensmechanismus für Netzwerkgeräte basierend auf dem physischen Standort der Hardware, wie er vom System-BIOS vorgeschlagen wird, bereitstellt.

Im Folgenden werden die Standardrichtlinien für das von biosdevname bereitgestellte Benennungsschema beschrieben:

  • Für die Onboard-Netzwerkgeräte wird der Name„em<port>[_<virtuelle Instanz>]“ verwendet.
  • Für zusätzliche Netzwerkkarten (NICs) wird der Name„p<slot>p<port>[_<virtuelle Instanz>]“ verwendet.

Weitere Details:

  • em = Onboard-Netzgeräte
  • <Slot> = der jeweilige PCI-Slot
  • <Port> = Portnummer der NICs (wenn du Multi-Port-NICs hast)
  • <virtuelle Instanz> = der Index der SRIOV- und/oder NPAR-Instanz
  • Das„p“ auf der Zusatz-NIC steht für den PCI-Steckplatz bzw. den Port

3. Systemd Udev Regeln

Heutzutage verwenden einige beliebte Linux-Distributionen wie Ubuntu, CentOS und Debian den Systemd als System- und Dienstmanager. Und seit Version 197 hat Systemd die nativen Benennungsrichtlinien und das Schema für Netzwerkschnittstellen hinzugefügt, das dem Biosdevnamen ähnelt.

Im Folgenden findest du 5 Richtlinien für die Benennung von Netzwerkschnittstellen für Systemd-basierte Systeme:

  1. Für Onboard-Netzwerkgeräte werden sie wie „eno1“, „eno2“ usw. benannt.
  2. Für die Einbindung der von der Firmware/BIOS bereitgestellten PCI-Express-Hotplug-Indexnummern wird der Name „ens1“ verwendet. Diese wird angewendet, wenn die erste Richtlinie fehlschlägt. Wird vor allem von virtuellen Maschinen wie VMWare und KVM verwendet.
  3. Namen, die den physischen Standort des Anschlusses der Hardware enthalten (Beispiel: enp2s0), werden angewendet, falls zutreffend, ansonsten wird direkt auf Schema 5 zurückgegriffen.
  4. Namen, die die MAC-Adresse der Schnittstelle enthalten (Beispiel: enx78e7d1ea46da), werden standardmäßig nicht verwendet, sind aber verfügbar, wenn der Benutzer dies wünscht.
  5. Das traditionelle unvorhersehbare Kernel-Namensschema wird verwendet, wenn alle anderen Methoden fehlschlagen (Beispiel: eth0).

Jetzt haben wir etwas über die Linux-Namenskonvention für Schnittstellen gelernt.

Als Nächstes zeigen wir dir, wie du den Namen der Netzwerkschnittstelle in das traditionelle „et0“, eth1 usw. ändern kannst. Dafür gibt es zwei Möglichkeiten: Du kannst die Namen der Netzwerkschnittstellen über „biosdevname“ und über die „systemd udev rules“ ändern.

1. Ändern des Schnittstellennamens in eth0 durch Deaktivieren von Biosdevname

Wie wir oben wissen, ist biosdevname ein udev-Dienstprogramm, das von Dell entwickelt wurde, um die Netzwerkschnittstellen so zu benennen, wie es vom BIOS des Systems vorgeschlagen wird. Standardmäßig ist das Paket biosdevname auf dem Linux-System installiert.

Um biosdevname auf dem Linux-System zu deaktivieren, musst du es auf der Bootebene deaktivieren, indem du die Grub-Konfiguration auf deinem System bearbeitest.

Bevor wir weitermachen, überprüfen wir die aktuellen Schnittstellen auf dem System mit dem folgenden Befehl.

ifconfig -a
ip addr

Unten siehst du das Ergebnis.

Als Ergebnis haben wir zwei Netzwerkschnittstellen „ens3“ und „ens8“.

Als Nächstes benennen wir beide Schnittstellen in „eth0“ und „eth1“ auf unserem CentOS 8 System um, indem wir die Grub-Konfiguration und die Netzwerkkonfiguration für jede Schnittstelle bearbeiten.

– Grub2 einrichten

Gehe in das Verzeichnis „/etc/sysconfig/“ und bearbeite die „grub“-Konfiguration mit dem Editor vim.

cd /etc/sysconfig/
vim grub

Füge in der Konfiguration „GRUB_CMDLINE_LINUX“ die folgende Konfiguration hinzu, um den biosdevname und den net.ifnames Kernelparameter zu deaktivieren.

net.ifnames=0 biosdevname=0

Speichere und schließe.

Danach erstellst du mit dem Befehl „grub2-mkconfig“ eine neue Grub-Konfiguration (siehe unten).

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

Du erhältst dann das unten abgebildete Ergebnis.

– Netzwerkskript bearbeiten

Als Nächstes müssen wir die beiden Netzwerkschnittstellen in der Konfiguration umbenennen, die sich im Verzeichnis „/etc/sysconfig/network-scripts/“ befindet.

Gehe zu „/etc/sysconfig/network-scripts/“.

cd /etc/sysconfig/network-scripts/

Benenne beide Schnittstellennamen in „ifcfg-ethX“ um.

mv ifcfg-enp0s3 ifcfg-eth0
mv ifcfg-enp0s8 ifcfg-eth1

Danach änderst du beide Schnittstellen in beiden Dateien mit dem unten stehenden sed-Befehl in „ethX“.

sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1

Starte nun das CentOS 8 System neu.

sudo reboot

– Testen

Sobald du dich wieder eingeloggt hast, überprüfe die verfügbaren Netzwerkschnittstellen mit dem folgenden Befehl.

ifconfig
ip addr

Das Ergebnis wird dir wie folgt angezeigt.

Beide Netzwerkschnittstellen auf dem CentOS 8-System wurden geändert und verwenden jetzt die traditionelle Namenskonvention. Die Netzwerkschnittstellen wurden geändert, indem der „biosdevname“ während des Systemstarts deaktiviert wurde.

– Optional

Wenn du Details zu den Änderungen beim Systemstart überprüfen möchtest, kannst du den folgenden Befehl ausführen.

dmesg | grep -i eth

Du wirst sehen, dass der Standardschnittstellenname durch die benutzerdefinierten udev-Regeln in den traditionellen Namen „ethX“ geändert wurde.

2. Den Schnittstellennamen mit Hilfe der Udev-Regeln in eth0 ändern

Eine andere Möglichkeit, den Namen der Netzwerkschnittstelle in einen traditionellen Namen wie eth0 usw. zu ändern, ist die Erstellung von benutzerdefinierten udev-Regeln. Wenn du die benutzerdefinierten udev-Regeln verwendest, werden die Netzwerkschnittstellen nach dem System geändert.

– Benutzerdefinierte Udev-Regeln erstellen

Gehe in das Verzeichnis „/etc/udev/rules.d/“ und erstelle die benutzerdefinierte Regel mit dem Namen „70-persistent-net.rules“ mit dem Editor vim.

cd /etc/udev/rules.d/
vim 70-persistent-net.rules

Ändere die Mac-Adresse und die Standardschnittstelle ‚ens3‘ und ‚ens8‘ mit deinen eigenen und füge sie ein.

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:6c:a8:e6", ATTR{type}=="1", KERNEL=="ens3", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="52:54:00:97:cf:33", ATTR{type}=="1", KERNEL=="ens8", NAME="eth1"

Speichere und schließe.

– Netzwerkskript bearbeiten

Als Nächstes gehst du in das Verzeichnis ‚/etc/sysconfig/networ-scripts‘.

cd /etc/sysconfig/network-scripts/

Benenne beide Schnittstellennamen in „ifcfg-ethX“ um.

mv ifcfg-enp0s3 ifcfg-eth0
mv ifcfg-enp0s8 ifcfg-eth1

Danach änderst du beide Schnittstellen in beiden Dateien mit dem unten stehenden sed-Befehl in „ethX“.

sed -i -e 's/enp0s3/eth0/g' ifcfg-eth0
sed -i -e 's/enp0s8/eth1/g' ifcfg-eth1

Starte nun den CentOS 8 Server neu.

sudo reboot

– Testen

Sobald du dich wieder eingeloggt hast, überprüfe alle verfügbaren Netzwerkschnittstellen mit den folgenden Befehlen.

ifconfig
ip addr

Du erhältst dann die neu zugewiesene Schnittstelle ‚ethX‘.

– Optional

Wenn du Details zu den Änderungen beim Systemstart überprüfen möchtest, kannst du den folgenden Befehl ausführen.

dmesg | grep -i eth

Du wirst sehen, dass der Name „ensX“ in den traditionellen Namen „ethX“ geändert wurde, der durch die benutzerdefinierten udev-Regeln geändert wurde.

Referenz

Das könnte dich auch interessieren …