Ich versuche, eine Failback-Konfiguration in Bonding einzurichten, komme aber nicht um die Schnittstellenkonfiguration herum. Meine Schnittstelle sieht folgendermaßen aus:
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 Datei /etc/modprobe.d/bonding.conf ist:
alias bond0 bonding
options bonding mode=3
Ich teste es, indem ich von einem anderen System aus einen Ping ausführe. Mein Bond-Status 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 wieder verbinde und eth3 entferne, stoppt der Ping und der Bonding-Status enthält keine Angaben zur Schnittstelle. Der Bond-Status lautet:
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 in der Verbindung (0 bis 6) versucht. Aber keine der Konfigurationen bietet Failback-Unterstützung. Was mache ich falsch?
Antwort1
BEARBEITEN 10.01.2019:Diese Anweisungen gelten für Ubuntu 16.04 und älter. Ich werde versuchen, sie mit Anweisungen für 18.04 zu aktualisieren.
In dieser Antwort verwenden wir active-backup
Bonding mit einem bond-primary
Schnittstellensatz, der ein Failover ermöglicht, um zur primären Schnittstelle zurückzukehren, wenn diese 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 durchgeführt und werde sie unten so gut wie möglich darlegen.
Wie es aussieht, haben Sie es bereits ifenslave
installiert. Falls nicht, installieren Sie bitte Folgendes ifenslave
:
sudo apt-get install ifenslave
Sehen Sie sich als Nächstes an /etc/modules
und stellen Sie sicher, dass es die folgenden Zeilen enthält:
loop
lp
rtc
bonding
Legen Sie in der /etc/network/interfaces
Datei Ihre loopback
, eth1
, und eth3
-Schnittstellen 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
Richten Sie Ihre bond0
Schnittstelle nun active-backup
für den Fall eines Failovers 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 /etc/network/interfaces
der Datei und starten Sie Ihren Netzwerkdienst neu:
sudo /etc/init.d/networking restart
Jetzt können Sie Ihr Bonding-Setup überprüfen. Stellen Sie sicher, dass Ihre 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
Folgendes entfernen bond0
:
sudo ifenslave -d bond0 eth1
Überprüfen Sie, ob Sie das Gateway immer noch anpingen können:
ping -c2 192.168.1.1
Zurück hinzufügen eth1
zu bond0
:
sudo ifenslave bond0 eth1
Hoffe das hilft!