Unterabschnitte


BONDING - Ethernet Bonding

Bonding - mehrere Netzwerkkarten zu einem Link zusammenfassen

Unter Bonding versteht man das Zusammenfassen von mindestens zwei Netzwerkkarten, die auch unterschiedlichen Typs (also z.B.: 3Com und Intel) und Geschwindigkeit (10 MBit/s oder 100 MBit/s) sein können, zu einer gemeinsamen Verbindung. Dabei können entweder entsprechende Linux Rechner direkt verbunden, oder eine Verbindung zu einem Switch aufgebaut werden. Das ermöglicht, ohne großen Aufwand z.B. eine 200 MBit/s Full-Duplex Verbindung von einem eisfair Server zu einem Switch zu schalten.

Das Menü im Setup-Programm

Das Menü im Setup-Programm ist wie folgt aufgebaut:

  1. System administration  
  2. Network administration    
  x. Bonding administration    
  1. View documentation
  2. Edit configuration
  3. Show status
  4. Start bonding
  5. Stop bonding
  6. Advanced configuration file handling
  0. Exit

Änderung der Konfiguration

Die Konfiguration kann über den Menüpunkt 'Edit configuration' geändert werden. Standardmäßig wird der Editor aufgerufen, der in der Environment-Konfiguration über die Variable 'EDITOR' festgelegt wurde. Wurden Änderungen an der Konfiguration vorgenommen, sollte der Server neu gebootet werden, damit diese aktiviert werden.

Die Konfigurationsdatei

In der Konfigurationsdatei, die über das Menü zugänglich ist, sind folgende Parameter vorhanden; wer sie von Hand editieren will findet sie unter
/etc/config.d/bonding

Die Parameter

START_BONDING

Mit 'yes' wird das Bonding aktiviert. Die Einstellung 'no' deaktiviert das Bonding komplett.

Gültige Werte: yes, no

Standardeinstellung: START_BONDING='no'

BONDING_N

Die Anzahl der zu konfigurierenden Bonding-Geräte. Es werden automatisch die passenden Geräte-Namen bond0 ... bondX erzeugt.

Gültige Werte: 1 - 16

Standardeinstellung: BONDING_N='0'

BONDING_x_MODE

Gibt eines der Bonding-Methoden an. Der Standardwert ist Round-Robin „balance-rr“.

Gültige Werte:

Standardeinstellung: BONDING_x_MODE='0'

BONDING_x_IPADDR

IP-Adresse für das Bonding-Gerät. Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Das Bonding-Gerät übernimmt dann die Daten der ersten Netzwerkschnittstelle.

Gültige Werte: IP addr

Standardeinstellung: BONDING_x_IPADDR=”

BONDING_x_NETMASK

Netzmaske für das Bonding-Gerät. Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Das Bonding-Gerät übernimmt dann die Daten der ersten Netzwerkschnittstelle.

Gültige Werte: netmask

Standardeinstellung: BONDING_x_NETMASK=”

BONDING_x_GATEWAY

Gateway für das Bonding-Gerät. Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Das Bonding-Gerät übernimmt dann die Daten der ersten Netzwerkschnittstelle.

Gültige Werte: gateway

Standardeinstellung: BONDING_x_GATEWAY=”

BONDING_x_MAC

Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Ein Bonding-Gerät benutzt standardmäßig die MAC Adresse des ersten Netzwerk-Gerätes, welches für das Bonding benutzt wird. Wenn Sie dies nicht wollen, können Sie auch eine MAC Adresse angegeben, die das Bonding-Gerät benutzen soll.

Gültige Werte: MAC addr '00:00:00:00:00:00'

Standardeinstellung: BONDING_x_MAC=”

BONDING_x_DEV_N

Gibt an, aus wievielen Netzwerk-Geräten dieses Bonding-Gerät besteht. Wenn z.B. ein Bonding-Gerät aus 'eth0' und 'eth1' gebildet werden soll, muss hier eine '2' (für die beiden eth–Geräte) eingetragen werden.

Gültige Werte: Zahl

Standardeinstellung: BONDING_x_DEV_N='2'

BONDING_x_DEV_x

Der Name eines Netzwerk-Gerätes, welches zu diesem Bonding-Gerät gehören soll.

Es wird die Verwendung von Udev Namen wie 'enx123456789782' oder 'enp3s0' empfohlen, damit wird die größte Sicherheit in der Verwendung der Netzwerknamen erreicht.

Wenn das aus irgendeinem Grund nicht möglich erscheint, ist z.B. 'net0' oder 'net1' eine gute Wahl. Die Verwendung von 'eth0' oder 'eth1' wird nicht empfohlen.

Bitte beachten Sie, daß ein Netzwerk-Gerät, welches Sie für ein Bonding-Gerät benutzen, exklusiv nur dafür benutzt werden kann. Insbesondere ist es nicht möglich das Gerät für ein DSL-Modem, eine Bridge, ein VLAN oder in der base.txt zu verwenden.

Der Name kann, wenn der Editor „ece “ eingestellt ist, auch aus dem Dialog eingefügt werden. Somit sind keine Kryptischen Zeichen einzugeben.

Gültige Werte: enx*, enp*, net0, net1 etc..

Standardeinstellung: BONDING_x_DEV_x='net0'

BONDING_x_DEV_x_BUSID

Bei der Verwendung von 'net' oder 'eth' als Netzwerknamen ist die Angabe von der Kernel-BUS-ID des Netzwerk-Gerätes zwingend erforderlich. Bei der Verwendung von Udev Namen wie 'enx' oder 'enp' ist die Kernel-BUS-ID nicht erforderlich und kann dann leer bleiben.

Gültige Werte: Kernel bus id, '0000:00:00.0'

Standardeinstellung: BONDING_x_DEV_x_BUSID=”

BONDING_x_MIIMON

Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Gibt an in welchen Zeitabständen (in Millisekunden) die einzelnen Verbindungen eines Bonding-Gerätes auf Ihren Linkstatus geprüft werden. Es wird also der Linkstatus jedes einzelnen Netzwerk-Gerätes dieses Bonding-Gerätes alle x Millisekunden geprüft. Mit '0' wird die MIIMON Überwachung deaktiviert.

Gültige Werte: 0, Millisekunden

Standardeinstellung: BONDING_x_MIIMON='100'

BONDING_x_USE_CARRIER

Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Wenn eine Überwachung des Linkstatus per MIIMON aktiviert wird kann man hier auswählen, ob die Überwachung des Linkstatus durch die netif_carrier_ok() Funktion (bei der Einstellung 'yes') erfolgen soll, oder durch direkte Aufrufe von MII oder ETHTOOL ioctl()-Systemaufrufen (mit der Einstellung 'no'). Die netif_carrier_ok() Methode ist effizienter, aber nicht alle Treiber unterstützen diese Methode.

Gültige Werte: yes, no

Standardeinstellung: BONDING_x_USE_CARRIER='yes'

BONDING_x_UPDELAY

Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Der Wert dieser Einstellung multipliziert mit der Einstellung von BONDING_x_MIIMON gibt an nach welcher Zeit eine Verbindung des Bonding-Gerätes aktiviert wird wenn der entsprechende Link (z.B. ein eth-Gerät) aufgebaut wurde. Damit wird eine Verbindung des Bonding-Gerätes solange aktiviert, bis der Linkstatus auf 'nicht verbunden' schaltet.

Gültige Werte: 0, Zeit

Standardeinstellung: BONDING_x_UPDELAY='0'

BONDING_x_DOWNDELAY

Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Der Wert dieser Einstellung multipliziert mit der Einstellung von BONDING_x_MIIMON gibt an nach welcher Zeit eine Verbindung des Bonding-Gerätes deaktiviert wird wenn der entsprechende Link (z.B. ein eth-Gerët) ausfällt. Damit wird also eine Verbindung des Bonding-Gerätes zeitweise deaktiviert, solange bis der Linkstatus wieder auf 'aktiv' schaltet.

Gültige Werte: 0, Zeit

Standardeinstellung: BONDING_x_DOWNDELAY='0'

BONDING_x_LACP_RATE

Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Wenn bei BONDING_x_MODE=” der Wert '802.3ad' eingestellt wird, kann man hier angeben wie oft die Linkinformationen mit dem Verbindungspartner (also einem Switch oder einem anderen Linuxrechner) ausgetauscht werden. 'slow' tauscht alle 30 Sekunden die Linkinformationen aus, bei 'fast' werden die Linkinformationen jede Sekunde ausgetauscht.

Gültige Werte: slow, fast

Standardeinstellung: BONDING_x_LACP_RATE='slow'

BONDING_x_PRIMARY

Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Wenn als Mode 'active-backup' eingestellt wurde, bestimmt man hiermit, welches Netzwerk-Gerät primär als Ausgabegerät benutzt werden soll. Das ist vor allem sinnvoll, wenn die unterschiedlichen Netzwerk-Geräte eine unterschiedliche Geschwindigkeit haben. Wenn ein Wert eingegeben wird, und das Netzwerk-Gerät ist online, wird es als erstes Ausgabegerät benutzt. Nur wenn das Netzwerk-Gerät offline ist, wird ein anderes Netzwerk-Gerät benutzt. Andernfalls, sobald ein Ausfall erkannt wird, wird ein neues Standardausgabemedium bestimmt. Dies ist dann praktisch, wenn ein Slave Vorrang gegenüber einem anderen haben soll - wenn bspw. ein Slave 1000Mbps schnell ist und ein anderer 100Mbps. Wenn der 1000Mbps-Slave ausfällt und später wieder hergestellt wurde, kann es von Vorteil sein, dass der schnellere Slave wieder aktiv gesetzt werden kann, ohne beim 100Mbps-Slave künstlich einen Ausfall herbeizuführen.

Gültige Werte: ethX

Standardeinstellung: BONDING_x_PRIMARY=”

BONDING_x_ARP_INTERVAL

Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Gibt die Frequenz in Millisekunden an nach dem die unter BONDING_DEV_x_ARP_IP_TARGET_x angegebenen IP-Adressen (bzw. deren ARP Antwort) geprüft werden. Wenn ARP-Überwachung im Load-Balancing-Mode (mode 0 or 2) genutzt werden soll, sollte der Switch so eingestellt werden, dass er alle Pakete gleich auf alle Verbindungen verteilt - wie etwa Round-Robin. Wenn der Switch so eingestellt ist, dass er die Pakete nach der XOR-Methode verteilt, werden alle Antworten der ARP-Ziele auf der selben Verbindung ankommen und das könnte bei den anderen Team-Mitgliedern zum Ausfall führen. ARP-Überwachung sollte nicht zusammen mit miimon verwandt werden. Wird als Wert 0 übergeben, ist ARP-ëberwachung deaktiviert.

Gültige Werte: 0, Millisekunden

Standardeinstellung: BONDING_x_ARP_INTERVAL='0'

BONDING_x_ARP_IP_TARGETS_N

Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Die Anzahl der IP-Adressen die für die ARP Prüfung benutzt werden sollen. Es können maximal 16 IP-Adressen überprüft werden.

Gültige Werte: 1 - 16

Standardeinstellung: BONDING_x_IP_TARGETS_N=”

BONDING_x_ARP_IP_TARGET_x

Diese Einstellung ist optional und kann auch komplett weggelassen werden.

Hier wird jeweils eine IP-Adressen angegeben, wenn BONDING_x_ARP_INTERVAL > 0 ist. Diese werden als Ziele der ARP-Anfragen verwendet, die verschickt werden, um die Qualität der Verbindung zu den Zielen festzustellen. Geben sie diese Werte im Format ddd.ddd.ddd.ddd an. Damit ARP- Überwachung funktioniert, muss zumindest eine IP-Adresse angegeben werden.

Gültige Werte: IP Adresse

Standardeinstellung: BONDING_x_ARP_IP_TARGET_x=”

Zurück zum Menü: Network administration