Network Bondig

Aus Wiki
Zur Navigation springen Zur Suche springen

Um die Ausfallsichertheit und die Bandbreite des Netzwerks zu erhöhen, können mehrere eth-Interfaces zu einem Verbund (Bonding) zusammengefasst werden. Dabei stehen mehrer Bondingmethoden zu Verfügung. In dieser Anleitung wird das zusammenfassen zweier Netzwerkkarten beschrieben.

Bondingarten

  • Mode 0: balance-rr
 Round-Robin: Die Pakete werden der Reihe nach über die Slave-Interfaces übertragen. Alle Interfaces müssen auf dem selben Switch
 angeschlossen sein. Die Switchports müssen zu eine Trunk zusammengefasst werden. Bei Cisco® heisst das Etherchannel, bei anderen Herstellern 
 Trunk Group oder einfach Trunk. Dieser Modus beinhaltet Lastverteilung und Fehlertoleranz.
 
  • Mode 1: active-backup
 Aktiv-Backup: Es ist immer nur ein Interface des Bündels aktiv. Beim Ausfall des aktiven Slaves übernimmt der nächste Slave. Nur auf dem 
 aktiven   Anschluss ist die MAC-Adresse des Bündels sichtbar. Die Bandbreiten der Interfaces können unterschiedlich sein.
 Dieser Modus beinhaltet keine Lastverteilung, sondern nur Fehlertoleranz.
  
  • Mode 2: balance-xor
 XOR: Das Interface für die Übertragung wird über eine Exklusiv-Oder-Verknüpfung der MAC-Adresse des Ziels mit der MAC-Adresse der Quelle ermittelt. 
 Alle Interfaces müssen auf dem selben Switch angeschlossen sein. Die Switchports müssen zu eine Trunk zusammengefasst werden.
 Dieser Modus beinhaltet Lastverteilung und Fehlertoleranz.
 
  • Mode 3: broadcast
 Broadcast: Alle Pakete werden auf allen Interfaces übertragen. Alle Interfaces müssen auf dem selben Switch angeschlossen sein. 
 Die Switchports müssen zu eine Trunk zusammengefasst werden.Dieser Modus beinhaltet keine Lastverteilung, sondern nur Fehlertoleranz.
 
  • Mode 4: 802.3ad
 IEEE 802.3ad oder LACP: Das Bündel wird über das Link Aggregation Control Protocol dynamisch erzeugt. Alle Interfaces müssen die gleichen  
 Einstellungen für Geschwindigkeit und Duplex-Modus haben. Alle Interfaces werden gemäß der Spezifikationen des 802.3ad-Standards genutzt. Alle  
 Interfaces müssen auf dem selben Switch angeschlossen sein. Der Switch muss 802.3ad (LACP) unterstützen und die Ports entsprechend konfiguriert sein.
 Dieser Modus beinhaltet Lastverteilung und Fehlertoleranz.
  
  • Mode 5: balance-tlb
 Adaptive transmit load balancing: Für diesen Modus ist keine Konfiguration des/der Switches notwendig. Anschluss an mehrere Switches ist möglich. 
 Die Verteilung der Pakete erfolgt anhand der aktuellen Interface-Auslastung (in Abhängigkeit von der Bandbreite des Interfaces). Ankommende Pakete
 werden über das aktuell aktive Interface angenommen. Im Fehlerfall übernimmt ein anderer Slave die MAC-Adresse des ausgefallenen Interfaces.
 Dieser Modus beinhaltet Lastverteilung und Fehlertoleranz.
  
  • Mode 6: balance-alb
 Adaptive load balancing: Für diesen Modus ist keine Konfiguration des/der Switches notwendig. Anschluss an mehrere Switches ist möglich. Zusätzlich 
 zur Sende-Lastverteilung (tlb) erfolgt Empfangs-Lastverteilung für Pakete gemäß IPV4. Die Sende-Verteilung der Pakete erfolgt anhand der aktuellen 
 Interface-Auslastung (in Abhängigkeit von der Bandbreite des Interfaces). Die Empfangs-Verteilung der Pakete erfolgt der Reihe nach über alle 
 Interfaces des Bündels unter Berücksichtugung der Bandbreite. Die Zuordnung der Interfaces wird über ARP-Negotiation geregelt.
 Dieser Modus beinhaltet Lastverteilung und Fehlertoleranz.


Installieren der Pakete

  • Zuerst muss noch das Paket "ifenslave" installiert werden.
apt-get install ifenslave-2.6


Konfiguration der Interfaces

vi /etc/network/interfaces

Folgenden Zeilen hinzufügen:

auto bond0
iface bond0 inet static
  address 192.168.1.100
  netmask 255.255.255.0
  network 192.168.1.0
  gateway 192.168.1.1
  up /sbin/ifenslave bond0 eth0 eth1
  down /sbin/ifenslave -d bond0 eth0 eth1


Editieren der i386 bzw x86_64 Datei

Abhängig von der installierten Debianversion (32bit oder 64bit) muss noch folgende Datei editiert werden.

vi /etc/modprobe.d/arch/i386

bzw

vi /etc/modprobe.d/arch/x86_64

folgenden Zeilen hinzufügen. Den gewünschten Modus eintragen. Hier Modus 6 (mode=6):

alias bond0 bonding
options bonding mode=6 miimon=100 downdelay=200 updelay=200

Netzwerk neu starten

/etc/init.d/networking restart

Infos zum Bonding

http://www.linuxfoundation.org/en/Net:Bonding