Website-Suche

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.

  1. 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.
  2. 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!