wake-up-neo.net

Ubuntu: ethX-Schnittstelle nicht verbunden, nachdem das Kabel abgezogen und wieder eingesteckt wurde

Ich versuche, eine Failback-Konfiguration für das Bonden einzurichten, komme jedoch nicht an der Schnittstellenkonfiguration vorbei. Meine Schnittstelle ist wie folgt:

auto bond0
iface bond0 inet static
       address 192.168.1.39
       netmask 255.255.255.0
       up /sbin/ifenslave bond0 eth1 eth3
       down /sbin/ifenslave -d bond0 eth1 eth3

Meine /etc/modprobe.d/bonding.conf Datei ist:

alias bond0 bonding
options bonding mode=3

Ich teste es durch Ausführen von Ping von einem anderen System. Mein Anleihenstatus ist wie folgt:

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (broadcast)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 44:a8:42:03:68:2c
Slave queue ID: 0

Slave Interface: eth3
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 44:a8:42:03:68:2c
Slave queue ID: 0

Wenn ich das eth1-Kabel entferne, funktioniert das Failover und eth3 führt die Daten aus (der Ping wird weiterhin ausgeführt).

Wenn ich eth1 zurückschließe und eth3 entferne, stoppt der Ping und der Verbindungsstatus enthält keine der Schnittstellen. Der Anleihenstatus ist:

Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (broadcast)
MII Status: up
MII Polling Interval (ms): 0
Up Delay (ms): 0
Down Delay (ms): 0

Ich habe es mit allen Modi beim Bonden versucht (0 bis 6). Die Konfiguration bietet jedoch keine Failback-Unterstützung. Wo gehe ich falsch?

2
Paul Justin

EDIT 2019-01-10: Diese Anweisungen gelten für Ubuntu 16.04 und älter. Ich werde versuchen, mit Anweisungen für den 18.04 zu aktualisieren.

In dieser Antwort verwenden wir das active-backup - Bonding mit einem bond-primary - Schnittstellensatz, mit dem ein Failover zum primären zurückgesetzt werden kann, wenn es verfügbar ist. Weitere Informationen finden Sie unter: https://wiki.linuxfoundation.org/networking/bonding


Bonding in Ubuntu ist ein anderes Setup als in anderen Linux-Distributionen wie RedHat. Ich habe einige Bonding-Konfigurationen in Ubuntu vorgenommen und werde sie im Folgenden so gut wie möglich ausführen.

Wie es aussieht, haben Sie bereits ifenslave installiert, aber wenn nicht, installieren Sie ifenslave:

Sudo apt-get install ifenslave

Schauen Sie sich als nächstes /etc/modules An und vergewissern Sie sich, dass es die folgenden Zeilen enthält:

loop
lp
rtc
bonding

Legen Sie in der Datei /etc/network/interfaces Die Schnittstellen loopback, eth1 Und eth3 Fest:

auto lo
    iface lo inet loopback

auto eth1
    iface eth1 inet manual
    bond-master bond0
    bond-primary eth1

auto eth3
    iface eth3 inet manual
    bond-master bond0

Stellen Sie nun Ihre bond0 - Schnittstelle mit active-backup Für das Failover ein, wenn eine der NIC Verbindungen fehlschlägt:

auto bond0
    iface bond0 inet static
    address 192.168.1.39
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    bond-mode active-backup
    bond-miimon 100
    bond-slaves none

Speichern Sie die Änderungen in der Datei /etc/network/interfaces Und starten Sie den Netzwerkdienst neu:

Sudo /etc/init.d/networking restart

Jetzt können Sie Ihren Verbindungsaufbau überprüfen. Stellen Sie sicher, dass Ihr bond0, eth1 Und eth3 Korrekt sind:

Sudo ethtool bond0
Sudo ethtool eth1
Sudo ethtool eth3

Überprüfen Sie, ob das Failover jetzt funktioniert, indem Sie eth1 Aus bond0 Entfernen:

Sudo ifenslave -d bond0 eth1

Überprüfen Sie, ob Sie das Gateway noch anpingen können:

ping -c2 192.168.1.1

Fügen Sie eth1 Zurück zu bond0 Hinzu:

Sudo ifenslave bond0 eth1

Hoffe das hilft!

6
Terrance