Documente Academic
Documente Profesional
Documente Cultură
This document does not cover all bonding configurations and options. Only the default setting as
seen in PACS SE and/or Linux PACS to this date.
Bonding serves several very useful purposes. It allows you to create a redundant, fault tolerant, or
"failover" solution, or to aggregate multiple ports into a single group, effectively combining the
bandwidth into a single connection. Bonding can also allow you to create multi-gigabit pipes to
transport traffic through the highest traffic areas of your network. In our current PACS SE or Linux
PACS configuration, the default setup is a redundant "failover" solution.
Bonding Configuration
The bonding configuration type is set in the bonding kernel module entries in 'modules.conf' (RH
Enterprise AS 2x 3x) or modprobe.conf (RH Enterprise AS 4x).
In the above example note the line that states 'options bond0 miimon=100 mode=1'. This indicates
that bonding mode #1 is the chosen bonding configuration mode. This is an "active-backup"
configuration. In this configuration, only one slave adapter in the bond is active at a time. A different
slave adapter becomes active if, and only if the active slave fails. The bond's MAC address is
externally visible on only one port (network adapter) to avoid confusing the switch. This mode
provides fault tolerance.
Sequence of Events
The basic sequence of bonding initialization is as follows.
Bonding Status
How to check the status of the bond:
mii-tool and ethtool do not read the speed and duplex of ifcfg-bond0 because it's not a true
interface. mii-tool is actually fairly obsolete and has not been updated very much in the last few
years. ethtool is smart enough to know that ifcfg-bond0 is really just a software bond, not a "real"
interface, and cannot really have a "speed" per-se. You will need to check the actual interface eth0
and eth1 with ethtool to get the actual speed and duplex. I suggest ethtool only as stated before mii-
tool may not give accurate results.
1) Make sure you are on-site, have someone on-site that can reverse the change, or have
guaranteed and tested ILO access.
2) Test locking the eth0 device to 1000/full using ethtool by entering the following from the
command line as root.
If the connection stays active/connected, use ethtool to check the speed and duplex. If the speed
and duplex are 1000/Full and you wish to make the change permanent, continue to step 4 after
verifying that setting speed and duplex for eth1 in the next step was also successful. If the
connection drops, simply do the following from the command line locally as root to reset the network
to it's previous state.
3) Test locking the eth1 device to 1000/full using ethtool by entering the following from the
command line as root.
If the connection stays active/connected, use ethtool to check the speed and duplex. If the speed
and duplex are 1000/Full and you wish to make the change permanent, continue to step 4 after
verifying that setting speed and duplex for eth0 in the previous step was also successful. If the
connection drops, simply do the following from the command line locally as root to reset the network
to it's previous state.
service network restart
4) To make this change permanent and active on start/reboot, add the following line to /etc/rc.local
on a new line at the bottom of the file.
5) Check both interfaces seperately with ethtool. ex: 'ethtool eth0' and 'ethtool eth1'.
6) You may also wish to check the bonding status. 'cat /proc/net/bond0/info'.
Advanced Notes:
* To restore a slave's MAC address, you need to detach them from the bond (`ifenslave -d bond0
eth0'). The bonding driver will then restore the MAC addresses that the slaves had before they were
enslaved.
* The bond MAC address will be the taken from its first slave device.
Resources:
The Linux Channel Bonding Page
http://sourceforge.net/projects/bonding/