Content
Dateianzeige für bonding (3.2.1)
usr/share/doc/bonding/bonding.txt
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. Advanced configuration file handling
4. Show status
5. Start service
6. Stop service
7. Device info
Ä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:
+ balance-rr ⇒ Mode 0
Round-Robin-Methode: Übermittle der Reihe nach über alle
Slaves von ersten bis zum letzten. Diese Methode bietet sowohl
Load-Balancing als auch Fehlertoleranz.
+ active-backup ⇒ Mode 1
Aktives Backup: Nur ein Slave im Bond ist aktiv. Die anderen
Slaves werden nur dann aktiviert, wenn der aktive Slave
ausfällt. Die MAC-Adresse des Bonds ist nur auf einem Port
(Netzwerkadapter) sichtbar, um den Switch nicht zu verwirren.
Dieser Modus bietet Fehlertoleranz.
+ balance-xor ⇒ Mode 2
XOR-Methode: Übertragung basierend auf der Formel
(Quell-MAC-Adresse XOR Ziel-MAC-Adresse) modulo Anzahl der
Slaves. Dadurch wird immer der selbe Slave für die selben
Ziel-MAC-Adresse benutzt. Diese Methode bietet sowohl
Load-Balancing als auch Fehlertoleranz.
+ broadcast ⇒ Mode 3
Broadcast-Methode: Übermittelt alles auf allen Slave-Devices.
Dieser Modus bietet Fehlertoleranz.
+ 802.3ad ⇒ Mode 4
Dynamische IEEE 802.3ad Verbindungsaggregation. Erstellt
Aggregationsgruppen, die die selben Geschwindigkeits und
Duplex-Einstellungen teilen. Übermittelt auf allen Slaves im
aktiven Aggregator.
Voraussetzungen:
o Unterstützung für ethtool im Basistreiber, um
Geschwindigkeit und Duplex-Status für jedes Device
abzufragen.
o Ein Switch, der dynamische IEEE 802.3ad
Verbindungsaggregation unterstützt.
+ balance-tlb ⇒ Mode 5
Adaptives Load-Balancing für ausgehende Daten: Kanal-Bonding,
dass keine speziellen Features im Switch benötigt. Der
ausgehende Netzwerktraffic wird entsprechend der momentanen
Last (relativ zur Geschwindigkeit berechnet) auf jeden Slave
verteilt. Eingehender Netzwerktraffic wird vom aktuellen Slave
empfangen. Wenn der empfangende Slave ausfällt, übernimmt ein
anderer Slave die MAC-Adresse des ausgefallenen
Empfangsslaves.
Voraussetzungen:
o Unterstützung für ethtool im Basistreiber, um
Geschwindigkeit und Duplex-Status für jedes Device
abzufragen.
+ balance-alb ⇒ Mode 6
Adaptives Load-Balancing: schließt sowohl balance-tlb, als
auch Eingehendes Load-Balancing (rlb) für IPV4 Traffic ein und
benötigt keine speziellen Voraussetzungen beim Switch.
Load-Balancing für eingehenden Traffic wird über ARP-Absprache
erreicht. Der Bonding-Treiber fängt ARP-Antworten vom Server
auf ihrem Weg nach aussen hin ab und ëberschreibt die Quell-
Hardware-Adresse mit der eindeutigen HW-Adresse eines Slaves
im Bond, sodass unterschiedliche Clients unterschiedliche
HW-Adressen für den Server verwenden.
Eingehender Traffic von Verbindungen, die vom Server erstellt
wurden wird auch verteilt. Wenn der Server ARP-Anfragen
sendet, kopiert und speichert der Bonding-Treiber die
Client-IP aus dem ARP. Wenn die ARP-Antwort des Client
ankommt, wird seine HW-Adresse ermittelt und der
Bonding-Treiber erstellt eine ARP-Antwort an diesen Client und
ordnet ihn so zu einem Client im Bond zu. Ein Problematischer
Effekt von ARP-Absprachen für die Lastverteilung ist, dass
jedes Mal wenn eine ARP-Anfrage übermittelt wird, sie die
HW-Adresse des Bonds benutzt. Also lernen die Clients die
HW-Adresse des Bonds und der eingehende Traffic auf dem
aktuellen Slave bricht zusammen. Diesem Umstand wird begegnet,
indem Updates (ARP-Antworten) zu allen Clients mit ihrer
jeweiligen HW-Adresse gesandt wird, sodass der Traffic wieder
aufgeteilt ist. Eingehender Traffic wird auch dann neu
aufgeteilt, wenn ein neuer Slave zum Bond hinzugefügt wird
oder ein inaktiver Slave reaktiviert wird. Die Empfangslast
wird der Reihe nach (Round-Robin) in der Gruppe der Slave mit
der größten Geschwindigkeit im Bond verteilt.
Wenn eine Verbindung wiederhergestellt wird oder ein neuer
Slave zum Bond hinzukommt wird der eingehende Traffic neu auf
alle aktiven Slaves im Bond verteilt, indem ARP-Antworten mit
den ausgewählten MAC-Adressen zu jedem Client gesandt werden.
Der Parameter updelay muss auf einen Wert größer oder gleich
der Weiterleitungsverzögerung (forwarding delay) des Switchs
eingestellt sein, sodass ARP-Antworten an die Clients nicht
vom Switch geblockt werden.
Voraussetzungen:
o Unterstützung für ethtool im Basistreiber, um
Geschwindigkeit und Duplex-Status für jedes Device
abzufragen.
o Unterstützung im Basistreiber, die HW-Adresse auch dann
setzen zu können, wenn das Device offen ist. Das ist
notwendig, damit immer ein Slave im Team die HW-Adresse
des Bonds tragen kann, (der curr_active_slave) obwohl
jeder Slave im Bond eine eigene, eindeutige HW-Adresse
hat. Wenn der curr_active_slave ausfällt, wird seine
HW-Adresse mit dem neuen curr_active_slave ausgetauscht.
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=”
[1]Zurück zum Menü: Network administration
__________________________________________________________________