So lässt sich das NIC-Team beim Booten in RHEL 7 starten

So lässt sich das NIC-Team beim Booten in RHEL 7 starten

Um das Netzwerk unter RHEL 7 zu konfigurieren, habe ich eine JSON-Datei für das Teaming erstellt und dann diese Befehle ausgeführt:

ip link set down eno1
ip link set down eno2
ip link set down eno3
ip link set down eno4
teamd -g -f lacp.conf -d

Außerdem habe ich ifcfg-Dateien für VLANs erstellt und diesen Befehl ausgeführt:

systemctl restart network

Danach funktioniert alles mehr oder weniger wie erwartet, das Problem besteht jedoch darin, dass dies zwischen den Neustarts nicht bestehen bleibt, sodass ich dies nach jedem Start tun muss.

Wie kann ich dieses Problem beheben? Ich erwarte, dass diese Befehle nur einmal ausgeführt werden, und dann möchte ich, dass diese Einstellungen zwischen Neustarts bestehen bleiben.

==========================================================

Ich habe versucht, die vorgeschlagene Lösung anzuwenden und diese Fragen wurden angezeigt:

  1. Ich habe ifcfg-team0eine Datei erstellt und der Inhalt ist:

    DEVICE=team0
    DEVICETYPE=Team
    ONBOOT=yes
    BOOTPROTO=none
    TEAM_CONFIG='{"device":"team0", "runner": { "name": "lacp"...
    

TEAMCONFIG='{"runner": { "name": "lacp"...Soll ich den Abschnitt „Gerät“ entfernen und in „ weil ich es bereits habe“ ändern DEVICE=team0? Oder ist es ok, es zweimal zu erwähnen?

  1. Meine ifcfg-eno1Datei enthält:

    HWADDR=...
    TYPE=Ethernet
    BOOTPROTO=dhcp
    DEFROUTE=yes
    PEERDNS=yes
    IPV4_FAILURE_FATAL=no
    IPV6_INIT=yes
    IPV6_AUTOCONF=yes
    IPV6_DEFROUTE=yes
    IPV6_PEERDNS=yes
    IPV6_PEERROUTES=yes
    IPV6_FAILURE_FATAL=no
    NAME=eno1
    UUID=e656...
    ONBOOT=no
    

Soll ich wirklich alles daraus entfernen? Insbesondere soll ich wirklich Abschnitte entfernen und diese Datei durch das ersetzen UUID, NAMEwas in der Dokumentation vorgeschlagen wird? :

    DEVICE=eth1
    HWADDR=D4:85:64:01:46:9E
    DEVICETYPE=TeamPort
    ONBOOT=yes
    TEAM_MASTER=team0
    TEAM_PORT_CONFIG='{"prio": 100}'

Oder soll ich beide Dateien behalten? Nennen Sie sie einfach z.B. ifcfg-eno1undifcfg-eno1Team

  1. Bei der Ausführung systemctl start network.serviceerhalte ich folgenden Fehler:

    Failed to start LSB: Bring up/down networking.  Unit network.service entered failed state.
    

Antwort1

Erstellen Sie zunächst eine neue Datei im /etc/sysconfig/network-scriptsVerzeichnis mit dem Namen ifcfg-team0, die folgendermaßen aussieht:

DEVICE=team0
DEVICETYPE=Team
ONBOOT=yes
BOOTPROTO=none
IPADDR=1.2.3.4
NETMASK=255.255.255.0
TEAM_CONFIG='{"runner": {"name": "lacp"}, "link_watch": {"name": "ethtool"}}'

Natürlich müssen Sie die IP-Adresse und die Netzmaske entsprechend ändern.

Ändern Sie dann im selben Verzeichnis alle Dateien ifcfg-eno[1-4]so, dass sie wie folgt aussehen:

DEVICE=eno1
HWADDR=00:11:22:33:44:55
DEVICETYPE=TeamPort
ONBOOT=yes
TEAM_MASTER=team0
TEAM_PORT_CONFIG='{"prio": 100}'

HWADDRWie oben werden Ihre lokalen Dateien etwas abweichen, da Sie die vorhandene Einstellung beibehalten müssen .

Das istdirekt aus dem Handbuch.

Die ifcfg-team0Datei verweist auf die lacp.confDatei, die Sie bereits erstellt haben. Ich sehe im Handbuch jedoch nicht, wie diese Datei gefunden wird. Vielleicht teamderinnert es sich an sie aus Ihrer früheren manuellen Konfiguration, oder Sie müssen sie in einem gemeinsamen Verzeichnis ablegen.

Sobald dies konfiguriert ist, sagen Sie ifup team0, und die NIC-Teamgruppe wird gemeinsam gestartet. Die einzelnen Schnittstellen müssen beim Start deaktiviert sein, aber Sie müssen nichts Besonderes tun, um dies beim Booten sicherzustellen, da sie jetzt als Teil eines NIC-Teams gekennzeichnet sind. Die Boot-Konfiguration des Betriebssystems erkennt, dass diese vier Schnittstellen nicht einzeln, sondern nur als Teil des NIC-Teams gestartet werden sollen.


Bei allen oben genannten Punkten wird davon ausgegangen, dass SieNetzwerk Managerund bin zur guten alten Methode der Netzwerkkonfiguration unter Linux vom Typ Red Hat zurückgekehrt:

$ sudo systemctl stop NetworkManager.service
$ sudo systemctl disable NetworkManager.service
$ sudo systemctl start network.service
$ sudo systemctl enable network.service

Dies ist auf Servern oft eine gute Idee, insbesondere wenn ihre Netzwerkkonfiguration kompliziert wird, wie bei LACP. NetworkManager löst viele Probleme, tut dies jedoch oft mit einer Desktop-orientierten Ausrichtung, die für Server ungeeignet ist. Beispielsweise löst es die automatischen Übergänge von WLAN zu Ethernet, die bei Laptops üblich sind. Server haben normalerweise statische Netzwerkkonfigurationen, sodass NetworkManager am Ende nur störend sein kann.

Wenn Sie jedoch bei den Standardeinstellungen von Red Hat bleiben möchten, decken sie diese Alternative abeinige Abschnitte weiter oben im Handbuch.

verwandte Informationen