Ethernet Channel Bonding, auch NIC-Teaming genannt, auf Linux-Systemen
Ethernet Channel Bonding ermöglicht die Verbindung von zwei oder mehr Network Interfaces Card (NIC) mit einer einzigen virtuellen NIC-Karte, was zu einer Erhöhung der Anzahl der Netzwerkschnittstellenkarten führen kann die Bandbreite und sorgt für Redundanz von NIC-Karten. Dies ist eine großartige Möglichkeit, redundante Verbindungen, Fehlertoleranz oder Lastausgleichsnetzwerke im Produktionssystem zu erreichen. Wenn eine physische NIC ausfällt oder nicht angeschlossen ist, werden die Ressourcen automatisch auf eine andere NIC-Karte verschoben. Das Channel/NIC-Bonding funktioniert mit Hilfe des Bonding-Treibers im Kernel. Wir werden zwei NIC verwenden, um dasselbe zu demonstrieren.
Es stehen fast sechs Arten von Channel Bond-Typen zur Verfügung. Hier betrachten wir nur zwei Arten von Channel Bonds, die beliebt und weit verbreitet sind.
- 0: Lastausgleich (Round-Robin): Der Datenverkehr wird in sequentieller Reihenfolge oder im Round-Robin-Verfahren von beiden NICs übertragen. Dieser Modus bietet Lastausgleich und Fehlertoleranz.
- 1: Active-Backup: Zu jedem Zeitpunkt ist nur eine Slave-NIC aktiv. Andere Schnittstellenkarten sind nur dann aktiv, wenn die aktive Slave-NIC ausfällt.
Erstellen von Ethernet-Kanal-Bonding
Wir haben zwei Netzwerk-Ethernet-Karten, nämlich eth1 und eth2, auf denen bond0 für Verbindungszwecke erstellt wird. Für die Ausführung der folgenden Befehle sind Superuser-Berechtigungen erforderlich.
Lastausgleich (Round-Robin)
Konfigurieren Sie eth1
Erwähnen Sie die Parameter MASTER bond0 und eth1 als SLAVE in der Konfigurationsdatei, wie unten gezeigt.
vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
TYPE=Ethernet
ONBOOT="yes"
BOOTPROTO="none"
USERCTL=no
MASTER=bond0
SLAVE=yes
Konfigurieren Sie eth2
Geben Sie auch hier die Parameter MASTER bond0 und eth2-Schnittstelle als SLAVE an.
vi /etc/sysconfig/network-scripts/ifcfg-eth2
DEVICE="eth2"
TYPE="Ethernet"
ONBOOT="yes"
USERCTL=no
#NM_CONTROLLED=yes
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
Erstellen Sie eine Bond0-Konfiguration
Erstellen Sie bond0 und konfigurieren Sie die Channel-Bonding-Schnittstelle im Verzeichnis „/etc/sysconfig/network-scripts/“ mit dem Namen ifcfg-bond0.
Im Folgenden finden Sie ein Beispiel für eine Channel-Bonding-Konfigurationsdatei.
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=0 miimon=100"
Hinweis: In der obigen Konfiguration haben wir die Bonding-Optionen mode=0 gewählt, d. h. Round-Robin und miimon=100 (Abfrageintervalle 100 ms).
Sehen wir uns die mit dem ifconfig-Befehl erstellten Schnittstellen an, die zeigen, dass „bond0“ als MASTER sowohl die Schnittstellen „eth1“ als auch „eth2 “ ausführt. “ als SKLAVEN laufen.
ifconfig
bond0 Link encap:Ethernet HWaddr 00:0C:29:57:61:8E
inet addr:192.168.246.130 Bcast:192.168.246.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe57:618e/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:17374 errors:0 dropped:0 overruns:0 frame:0
TX packets:16060 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1231555 (1.1 MiB) TX bytes:1622391 (1.5 MiB)
eth1 Link encap:Ethernet HWaddr 00:0C:29:57:61:8E
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:16989 errors:0 dropped:0 overruns:0 frame:0
TX packets:8072 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1196931 (1.1 MiB) TX bytes:819042 (799.8 KiB)
Interrupt:19 Base address:0x2000
eth2 Link encap:Ethernet HWaddr 00:0C:29:57:61:8E
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:385 errors:0 dropped:0 overruns:0 frame:0
TX packets:7989 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:34624 (33.8 KiB) TX bytes:803583 (784.7 KiB)
Interrupt:19 Base address:0x2080
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:8 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:480 (480.0 b) TX bytes:480 (480.0 b)
Starten Sie den Netzwerkdienst neu und die Schnittstellen sollten in Ordnung sein.
service network restart
Shutting down interface bond0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: [ OK ]
Überprüfung des Status der Anleihe.
watch -n .1 cat /proc/net/bonding/bond0
Beispielausgabe
Die folgende Ausgabe zeigt, dass der Bonding-Modus Load Balancing (RR) und eth1 und eth2 ist > tauchen auf.
Every 0.1s: cat /proc/net/bonding/bond0 Thu Sep 12 14:08:47 2013
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0
Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 2
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0
Erstellen Sie ein aktives Backup
In diesem Szenario bleiben die Slave-Schnittstellen gleich. Es wird nur eine Änderung in der Bond-Schnittstelle ifcfg-bond0 statt „0“ geben, es wird „1“ sein, was wie folgt angezeigt wird .
vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.246.130
NETMASK=255.255.255.0
BONDING_OPTS="mode=1 miimon=100"
Starten Sie den Netzwerkdienst neu und überprüfen Sie den Verbindungsstatus.
service network restart
Shutting down interface bond0: [ OK ]
Shutting down loopback interface: [ OK ]
Bringing up loopback interface: [ OK ]
Bringing up interface bond0: [ OK ]
Überprüfen Sie den Status der Bindung mit dem Befehl.
watch -n .1 cat /proc/net/bonding/bond0
Beispielausgabe
Der Bonding-Modus zeigt Fehlertoleranz an (aktives Backup) und die Slave-Schnittstelle ist aktiv.
Every 0.1s: cat /proc/n... Thu Sep 12 14:40:37 2013
Ethernet Channel Bonding Driver: v3.6.0 (September 2
6, 2009)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth1
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth1
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:8e
Slave queue ID: 0
Slave Interface: eth2
MII Status: up
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 00:0c:29:57:61:98
Slave queue ID: 0
Hinweis: Führen Sie die Slave-Schnittstellen manuell herunter und hoch, um die Funktion von Channel Bonding zu überprüfen. Bitte sehen Sie sich den folgenden Befehl an.
ifconfig eth1 down
ifconfig eth1 up
Das ist es!