Netzwerkkarten unter Linux bündeln

Die meisten Desktop Computer und auch die meisten Server haben im Moment noch eine oder mehrere 1GBit Netzwerkkarten. Sollen sie jedoch mit mehr als 1GBit angebunden werden, ist es nötig eine teure 10GBit Netzwerkkarten und einen entsprechenden Switch bzw. Router als Gegenstelle zu kaufen. Dieses Problem lässt sich jedoch unter Linux mit dem bündeln von Netzwerkkarten in gewissem Masse leicht umgehen.

Im folgenden wird beschrieben, wie das Bündeln von Netzwerkkarten bei einer aktuellen Linux-Distribution durchgeführt wird. Dabei wird eine entsprechend konfigurierte Gegenstelle vorausgesetzt. Dies kann entweder ein Switch/Router oder ein anderer Computer sein. Die meisten managebaren Switche unterstützen die Möglichkeit zum bündeln von Netzwerkkarten.

Vorbereitend müssen für die Bündelung noch weitere Programme Installiert werden. Diese sind bei Ubuntu und Debian in den Paketen: ifenslave-2.6, ethtool und mii-tool enthalten.

Zu aller erst muss jetzt das entsprechende Kernel-Modul geladen werden. Dies kann mit folgendem Aufruf auf der Kommandozeilen getan werden.

$ sudo modprobe bonding mode=4 miimon=100

Soll das Modul bei jedem Start automatisch geladen werden, so muss es zum Beispiel unter Ubuntu und Debian in die Datei /etc/modules eingetragen werden.

bonding mode=4 miimon=100

Wurde das Modul erfolgreich geladen steht eine neue virtuelle Netzwerkschnittstelle mit dem Namen bond0 zur Verfügung. Diese kann verwendet werden um mehrere physische Netzwerkkarten zu einer logischen zu verbinden. Dieser Schritt kann entweder von Hand ausgeführt werden. Hier für ist der Aufruf des folgenden Kommando notwendig.

$ sudo ifenslave bond0 eth0 eth1

Oder die Konfiguration kann zum Beispiel bei Ubuntu und Debian fest in die Datei /etc/network/interfaces eingetragen werden. Dies sähe dann wie folgt aus.

auto bond0
iface bond0 inet static
        address 192.168.0.100
        gateway 192.168.0.1
        netmask 255.255.255.0
        slaves eth0 eth1
        bond-mode 4
        bond-miimon 100

Anschließend kann die Netzwerkschnittstelle mit dem Befehlt ifup oder durch einen Neustart aktiviert werden. Das Tool ifup muss wie folgt auf der Kommandozeile aufgerufen werden.

$ sudo ifup bond0

Das bonding Modul bietet dem Anwender noch eine ganze Menge an Einstellmöglichkeiten. So kann über den mode Parameter eingestellt werden in welchem Modus die Karten den Datenverkehr übertragen sollen. Hier ist auch die Einstellung von verschiedenen Methoden zur Lastverteilung möglich. Folgende Einstellungen stehen zur Verfügung

  • balance-rr oder 0
  • active-backup oder 1
  • balance-xor oder 2
  • broadcast oder 3
  • 802.3ad oder 4
  • balance-tlb oder 5
  • balance-alb oder 6

Die meisten Switchhersteller empfehlen den Modus 4. Dieser bietet eine Lastverteilung und gleichzeitig Ausfallsicherheit.

Eine weitere sehr interessante Option ist die max_bonds Option. Sie gibt an, wie viel virtuelle Netzwerkkarten für verschieden Bündelungen zur Verfügung stehen. Dies ist zum Beispiel wichtig, wenn die Bündelung auf einer Firewall zum Einsatz kommen soll. Eine Angebe von max_bonds=3 würde also 3 bonding Schnittstellen mit den Namen bond0, bond1 und bond2 zur Verfügung stellen.

Verwandte Artikel