[PATCH] bonding: documentation update

Contains general updates (additional configuration info, hopefully
better examples, updated some out of date info, and a bonus pass
through ispell to banish the "paramters.") and info specific to
gratuitous ARP and xmit policy functionality already in 2.6.13-rc2.

Signed-off-by: Jay Vosburgh <fubar@us.ibm.com>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

authored by Jay Vosburgh and committed by Jeff Garzik 00354cfb f2e1e47d

+687 -311
+687 -311
Documentation/networking/bonding.txt
··· 1 2 - Linux Ethernet Bonding Driver HOWTO 3 4 Initial release : Thomas Davis <tadavis at lbl.gov> 5 Corrections, HA extensions : 2000/10/03-15 : ··· 13 14 Reorganized and updated Feb 2005 by Jay Vosburgh 15 16 - Note : 17 - ------ 18 - 19 - The bonding driver originally came from Donald Becker's beowulf patches for 20 - kernel 2.0. It has changed quite a bit since, and the original tools from 21 - extreme-linux and beowulf sites will not work with this version of the driver. 22 23 - For new versions of the driver, patches for older kernels and the updated 24 - userspace tools, please follow the links at the end of this file. 25 26 Table of Contents 27 ================= ··· 39 40 3. Configuring Bonding Devices 41 3.1 Configuration with sysconfig support 42 3.2 Configuration with initscripts support 43 3.3 Configuring Bonding Manually 44 - 3.4 Configuring Multiple Bonds 45 46 5. Querying Bonding Configuration 47 5.1 Bonding Configuration ··· 69 70 11. Promiscuous mode 71 72 - 12. High Availability Information 73 12.1 High Availability in a Single Switch Topology 74 - 12.1.1 Bonding Mode Selection for Single Switch Topology 75 - 12.1.2 Link Monitoring for Single Switch Topology 76 12.2 High Availability in a Multiple Switch Topology 77 - 12.2.1 Bonding Mode Selection for Multiple Switch Topology 78 - 12.2.2 Link Monitoring for Multiple Switch Topology 79 - 12.3 Switch Behavior Issues for High Availability 80 81 - 13. Hardware Specific Considerations 82 - 13.1 IBM BladeCenter 83 84 - 14. Frequently Asked Questions 85 86 - 15. Resources and Links 87 88 89 1. Bonding Driver Installation ··· 108 1.1 Configure and build the kernel with bonding 109 ----------------------------------------------- 110 111 - The latest version of the bonding driver is available in the 112 drivers/net/bonding subdirectory of the most recent kernel source 113 - (which is available on http://kernel.org). 114 - 115 - Prior to the 2.4.11 kernel, the bonding driver was maintained 116 - largely outside the kernel tree; patches for some earlier kernels are 117 - available on the bonding sourceforge site, although those patches are 118 - still several years out of date. Most users will want to use either 119 - the most recent kernel from kernel.org or whatever kernel came with 120 - their distro. 121 122 Configure kernel with "make menuconfig" (or "make xconfig" or 123 "make config"), then select "Bonding driver support" in the "Network ··· 119 driver as module since it is currently the only way to pass parameters 120 to the driver or configure more than one bonding device. 121 122 - Build and install the new kernel and modules, then proceed to 123 - step 2. 124 125 1.2 Install ifenslave Control Utility 126 ------------------------------------- ··· 163 Options for the bonding driver are supplied as parameters to 164 the bonding module at load time. They may be given as command line 165 arguments to the insmod or modprobe command, but are usually specified 166 - in either the /etc/modprobe.conf configuration file, or in a 167 - distro-specific configuration file (some of which are detailed in the 168 - next section). 169 170 The available bonding driver parameters are listed below. If a 171 parameter is not specified the default value is used. When initially ··· 178 support at least miimon, so there is really no reason not to use it. 179 180 Options with textual values will accept either the text name 181 - or, for backwards compatibility, the option value. E.g., 182 - "mode=802.3ad" and "mode=4" set the same mode. 183 184 The parameters are as follows: 185 186 arp_interval 187 188 - Specifies the ARP monitoring frequency in milli-seconds. If 189 - ARP monitoring is used in a load-balancing mode (mode 0 or 2), 190 - the switch should be configured in a mode that evenly 191 - distributes packets across all links - such as round-robin. If 192 - the switch is configured to distribute the packets in an XOR 193 fashion, all replies from the ARP targets will be received on 194 the same link which could cause the other team members to 195 - fail. ARP monitoring should not be used in conjunction with 196 - miimon. A value of 0 disables ARP monitoring. The default 197 value is 0. 198 199 arp_ip_target 200 201 - Specifies the ip addresses to use when arp_interval is > 0. 202 - These are the targets of the ARP request sent to determine the 203 - health of the link to the targets. Specify these values in 204 - ddd.ddd.ddd.ddd format. Multiple ip adresses must be 205 - seperated by a comma. At least one IP address must be given 206 - for ARP monitoring to function. The maximum number of targets 207 - that can be specified is 16. The default value is no IP 208 - addresses. 209 210 downdelay 211 ··· 223 are: 224 225 slow or 0 226 - Request partner to transmit LACPDUs every 30 seconds (default) 227 228 fast or 1 229 Request partner to transmit LACPDUs every 1 second 230 231 max_bonds 232 ··· 239 240 miimon 241 242 - Specifies the frequency in milli-seconds that MII link 243 - monitoring will occur. A value of zero disables MII link 244 - monitoring. A value of 100 is a good starting point. The 245 - use_carrier option, below, affects how the link state is 246 determined. See the High Availability section for additional 247 information. The default value is 0. 248 ··· 265 active. A different slave becomes active if, and only 266 if, the active slave fails. The bond's MAC address is 267 externally visible on only one port (network adapter) 268 - to avoid confusing the switch. This mode provides 269 - fault tolerance. The primary option affects the 270 - behavior of this mode. 271 272 balance-xor or 2 273 274 - XOR policy: Transmit based on [(source MAC address 275 - XOR'd with destination MAC address) modulo slave 276 - count]. This selects the same slave for each 277 - destination MAC address. This mode provides load 278 - balancing and fault tolerance. 279 280 broadcast or 3 281 ··· 303 duplex settings. Utilizes all slaves in the active 304 aggregator according to the 802.3ad specification. 305 306 - Pre-requisites: 307 308 1. Ethtool support in the base drivers for retrieving 309 the speed and duplex of each slave. ··· 376 377 When a link is reconnected or a new slave joins the 378 bond the receive traffic is redistributed among all 379 - active slaves in the bond by intiating ARP Replies 380 with the selected mac address to each of the 381 clients. The updelay parameter (detailed below) must 382 be set to a value equal or greater than the switch's ··· 439 0 will use the deprecated MII / ETHTOOL ioctls. The default 440 value is 1. 441 442 443 444 3. Configuring Bonding Devices ··· 545 slave devices. On SLES 9, this is most easily done by running the 546 yast2 sysconfig configuration utility. The goal is for to create an 547 ifcfg-id file for each slave device. The simplest way to accomplish 548 - this is to configure the devices for DHCP. The name of the 549 - configuration file for each device will be of the form: 550 551 ifcfg-id-xx:xx:xx:xx:xx:xx 552 ··· 557 Once the set of ifcfg-id-xx:xx:xx:xx:xx:xx files has been 558 created, it is necessary to edit the configuration files for the slave 559 devices (the MAC addresses correspond to those of the slave devices). 560 - Before editing, the file will contain muliple lines, and will look 561 something like this: 562 563 BOOTPROTO='dhcp' ··· 594 BONDING_MASTER="yes" 595 BONDING_MODULE_OPTS="mode=active-backup miimon=100" 596 BONDING_SLAVE0="eth0" 597 - BONDING_SLAVE1="eth1" 598 599 Replace the sample BROADCAST, IPADDR, NETMASK and NETWORK 600 values with the appropriate values for your network. 601 - 602 - Note that configuring the bonding device with BOOTPROTO='dhcp' 603 - does not work; the scripts attempt to obtain the device address from 604 - DHCP prior to adding any of the slave devices. Without active slaves, 605 - the DHCP requests are not sent to the network. 606 607 The STARTMODE specifies when the device is brought online. 608 The possible values are: ··· 624 the max_bonds bonding parameter; this will confuse the configuration 625 system if you have multiple bonding devices. 626 627 - Finally, supply one BONDING_SLAVEn="ethX" for each slave, 628 - where "n" is an increasing value, one for each slave, and "ethX" is 629 - the name of the slave device (eth0, eth1, etc). 630 631 When all configuration files have been modified or created, 632 networking must be restarted for the configuration changes to take ··· 645 Note that the network control script (/sbin/ifdown) will 646 remove the bonding module as part of the network shutdown processing, 647 so it is not necessary to remove the module by hand if, e.g., the 648 - module paramters have changed. 649 650 Also, at this writing, YaST/YaST2 will not manage bonding 651 devices (they do not show bonding interfaces on its list of network ··· 660 Note that the template does not document the various BONDING_ 661 settings described above, but does describe many of the other options. 662 663 3.2 Configuration with initscripts support 664 ------------------------------------------ 665 666 This section applies to distros using a version of initscripts 667 with bonding support, for example, Red Hat Linux 9 or Red Hat 668 - Enterprise Linux version 3. On these systems, the network 669 initialization scripts have some knowledge of bonding, and can be 670 configured to control bonding devices. 671 ··· 740 Be sure to change the networking specific lines (IPADDR, 741 NETMASK, NETWORK and BROADCAST) to match your network configuration. 742 743 - Finally, it is necessary to edit /etc/modules.conf to load the 744 - bonding module when the bond0 interface is brought up. The following 745 - sample lines in /etc/modules.conf will load the bonding module, and 746 - select its options: 747 748 alias bond0 bonding 749 options bond0 mode=balance-alb miimon=100 ··· 756 will restart the networking subsystem and your bond link should be now 757 up and running. 758 759 760 3.3 Configuring Bonding Manually 761 -------------------------------- ··· 792 knowledge of bonding. One such distro is SuSE Linux Enterprise Server 793 version 8. 794 795 - The general methodology for these systems is to place the 796 - bonding module parameters into /etc/modprobe.conf, then add modprobe 797 - and/or ifenslave commands to the system's global init script. The 798 - name of the global init script differs; for sysconfig, it is 799 /etc/init.d/boot.local and for initscripts it is /etc/rc.d/rc.local. 800 801 For example, if you wanted to make a simple bond of two e100 ··· 804 reboots, edit the appropriate file (/etc/init.d/boot.local or 805 /etc/rc.d/rc.local), and add the following: 806 807 - modprobe bonding -obond0 mode=balance-alb miimon=100 808 modprobe e100 809 ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up 810 ifenslave bond0 eth0 ··· 812 813 Replace the example bonding module parameters and bond0 814 network configuration (IP address, netmask, etc) with the appropriate 815 - values for your configuration. The above example loads the bonding 816 - module with the name "bond0," this simplifies the naming if multiple 817 - bonding modules are loaded (each successive instance of the module is 818 - given a different name, and the module instance names match the 819 - bonding interface names). 820 821 Unfortunately, this method will not provide support for the 822 ifup and ifdown scripts on the bond devices. To reload the bonding ··· 835 the following: 836 837 # ifconfig bond0 down 838 - # rmmod bond0 839 # rmmod e100 840 841 Again, for convenience, it may be desirable to create a script 842 with these commands. 843 844 845 - 3.4 Configuring Multiple Bonds 846 - ------------------------------ 847 848 This section contains information on configuring multiple 849 - bonding devices with differing options. If you require multiple 850 - bonding devices, but all with the same options, see the "max_bonds" 851 - module paramter, documented above. 852 853 To create multiple bonding devices with differing options, it 854 is necessary to load the bonding driver multiple times. Note that ··· 878 miimon of 100. The second instance is named "bond1" and creates the 879 bond1 device in balance-alb mode with an miimon of 50. 880 881 - This may be repeated any number of times, specifying a new and 882 - unique name in place of bond0 or bond1 for each instance. 883 884 - When the appropriate module paramters are in place, then 885 - configure bonding according to the instructions for your distro. 886 887 5. Querying Bonding Configuration 888 ================================= ··· 1005 self generated packets. 1006 1007 For reasons of simplicity, and to support the use of adapters 1008 - that can do VLAN hardware acceleration offloding, the bonding 1009 - interface declares itself as fully hardware offloaing capable, it gets 1010 the add_vid/kill_vid notifications to gather the necessary 1011 information, and it propagates those actions to the slaves. In case 1012 of mixed adapter types, hardware accelerated tagged packets that ··· 1039 matches the hardware address of the VLAN interfaces. 1040 1041 Note that changing a VLAN interface's HW address would set the 1042 - underlying device -- i.e. the bonding interface -- to promiscouos 1043 mode, which might not be what you want. 1044 1045 ··· 1082 an additional target (or several) increases the reliability of the ARP 1083 monitoring. 1084 1085 - Multiple ARP targets must be seperated by commas as follows: 1086 1087 # example options for ARP monitoring with three targets 1088 alias bond0 bonding ··· 1204 This will, when loading the bonding module, rather than 1205 performing the normal action, instead execute the provided command. 1206 This command loads the device drivers in the order needed, then calls 1207 - modprobe with --ingore-install to cause the normal action to then take 1208 place. Full documentation on this can be found in the modprobe.conf 1209 and modprobe manual pages. 1210 ··· 1289 common to enable promiscuous mode on the device, so that all traffic 1290 is seen (instead of seeing only traffic destined for the local host). 1291 The bonding driver handles promiscuous mode changes to the bonding 1292 - master device (e.g., bond0), and propogates the setting to the slave 1293 devices. 1294 1295 For the balance-rr, balance-xor, broadcast, and 802.3ad modes, 1296 - the promiscuous mode setting is propogated to all slaves. 1297 1298 For the active-backup, balance-tlb and balance-alb modes, the 1299 - promiscuous mode setting is propogated only to the active slave. 1300 1301 For balance-tlb mode, the active slave is the slave currently 1302 receiving inbound traffic. ··· 1307 1308 For the active-backup, balance-tlb and balance-alb modes, when 1309 the active slave changes (e.g., due to a link failure), the 1310 - promiscuous setting will be propogated to the new active slave. 1311 1312 - 12. High Availability Information 1313 - ================================= 1314 1315 High Availability refers to configurations that provide 1316 maximum network availability by having redundant or backup devices, 1317 - links and switches between the host and the rest of the world. 1318 - 1319 - There are currently two basic methods for configuring to 1320 - maximize availability. They are dependent on the network topology and 1321 - the primary goal of the configuration, but in general, a configuration 1322 - can be optimized for maximum available bandwidth, or for maximum 1323 - network availability. 1324 1325 12.1 High Availability in a Single Switch Topology 1326 -------------------------------------------------- 1327 1328 - If two hosts (or a host and a switch) are directly connected 1329 - via multiple physical links, then there is no network availability 1330 - penalty for optimizing for maximum bandwidth: there is only one switch 1331 - (or peer), so if it fails, you have no alternative access to fail over 1332 - to. 1333 1334 - Example 1 : host to switch (or other host) 1335 - 1336 - +----------+ +----------+ 1337 - | |eth0 eth0| switch | 1338 - | Host A +--------------------------+ or | 1339 - | +--------------------------+ other | 1340 - | |eth1 eth1| host | 1341 - +----------+ +----------+ 1342 - 1343 - 1344 - 12.1.1 Bonding Mode Selection for single switch topology 1345 - -------------------------------------------------------- 1346 - 1347 - This configuration is the easiest to set up and to understand, 1348 - although you will have to decide which bonding mode best suits your 1349 - needs. The tradeoffs for each mode are detailed below: 1350 - 1351 - balance-rr: This mode is the only mode that will permit a single 1352 - TCP/IP connection to stripe traffic across multiple 1353 - interfaces. It is therefore the only mode that will allow a 1354 - single TCP/IP stream to utilize more than one interface's 1355 - worth of throughput. This comes at a cost, however: the 1356 - striping often results in peer systems receiving packets out 1357 - of order, causing TCP/IP's congestion control system to kick 1358 - in, often by retransmitting segments. 1359 - 1360 - It is possible to adjust TCP/IP's congestion limits by 1361 - altering the net.ipv4.tcp_reordering sysctl parameter. The 1362 - usual default value is 3, and the maximum useful value is 127. 1363 - For a four interface balance-rr bond, expect that a single 1364 - TCP/IP stream will utilize no more than approximately 2.3 1365 - interface's worth of throughput, even after adjusting 1366 - tcp_reordering. 1367 - 1368 - If you are utilizing protocols other than TCP/IP, UDP for 1369 - example, and your application can tolerate out of order 1370 - delivery, then this mode can allow for single stream datagram 1371 - performance that scales near linearly as interfaces are added 1372 - to the bond. 1373 - 1374 - This mode requires the switch to have the appropriate ports 1375 - configured for "etherchannel" or "trunking." 1376 - 1377 - active-backup: There is not much advantage in this network topology to 1378 - the active-backup mode, as the inactive backup devices are all 1379 - connected to the same peer as the primary. In this case, a 1380 - load balancing mode (with link monitoring) will provide the 1381 - same level of network availability, but with increased 1382 - available bandwidth. On the plus side, it does not require 1383 - any configuration of the switch. 1384 - 1385 - balance-xor: This mode will limit traffic such that packets destined 1386 - for specific peers will always be sent over the same 1387 - interface. Since the destination is determined by the MAC 1388 - addresses involved, this may be desirable if you have a large 1389 - network with many hosts. It is likely to be suboptimal if all 1390 - your traffic is passed through a single router, however. As 1391 - with balance-rr, the switch ports need to be configured for 1392 - "etherchannel" or "trunking." 1393 - 1394 - broadcast: Like active-backup, there is not much advantage to this 1395 - mode in this type of network topology. 1396 - 1397 - 802.3ad: This mode can be a good choice for this type of network 1398 - topology. The 802.3ad mode is an IEEE standard, so all peers 1399 - that implement 802.3ad should interoperate well. The 802.3ad 1400 - protocol includes automatic configuration of the aggregates, 1401 - so minimal manual configuration of the switch is needed 1402 - (typically only to designate that some set of devices is 1403 - usable for 802.3ad). The 802.3ad standard also mandates that 1404 - frames be delivered in order (within certain limits), so in 1405 - general single connections will not see misordering of 1406 - packets. The 802.3ad mode does have some drawbacks: the 1407 - standard mandates that all devices in the aggregate operate at 1408 - the same speed and duplex. Also, as with all bonding load 1409 - balance modes other than balance-rr, no single connection will 1410 - be able to utilize more than a single interface's worth of 1411 - bandwidth. Additionally, the linux bonding 802.3ad 1412 - implementation distributes traffic by peer (using an XOR of 1413 - MAC addresses), so in general all traffic to a particular 1414 - destination will use the same interface. Finally, the 802.3ad 1415 - mode mandates the use of the MII monitor, therefore, the ARP 1416 - monitor is not available in this mode. 1417 - 1418 - balance-tlb: This mode is also a good choice for this type of 1419 - topology. It has no special switch configuration 1420 - requirements, and balances outgoing traffic by peer, in a 1421 - vaguely intelligent manner (not a simple XOR as in balance-xor 1422 - or 802.3ad mode), so that unlucky MAC addresses will not all 1423 - "bunch up" on a single interface. Interfaces may be of 1424 - differing speeds. On the down side, in this mode all incoming 1425 - traffic arrives over a single interface, this mode requires 1426 - certain ethtool support in the network device driver of the 1427 - slave interfaces, and the ARP monitor is not available. 1428 - 1429 - balance-alb: This mode is everything that balance-tlb is, and more. It 1430 - has all of the features (and restrictions) of balance-tlb, and 1431 - will also balance incoming traffic from peers (as described in 1432 - the Bonding Module Options section, above). The only extra 1433 - down side to this mode is that the network device driver must 1434 - support changing the hardware address while the device is 1435 - open. 1436 - 1437 - 12.1.2 Link Monitoring for Single Switch Topology 1438 - ------------------------------------------------- 1439 - 1440 - The choice of link monitoring may largely depend upon which 1441 - mode you choose to use. The more advanced load balancing modes do not 1442 - support the use of the ARP monitor, and are thus restricted to using 1443 - the MII monitor (which does not provide as high a level of assurance 1444 - as the ARP monitor). 1445 - 1446 1447 12.2 High Availability in a Multiple Switch Topology 1448 ---------------------------------------------------- 1449 1450 With multiple switches, the configuration of bonding and the 1451 network changes dramatically. In multiple switch topologies, there is 1452 - a tradeoff between network availability and usable bandwidth. 1453 1454 Below is a sample network, configured to maximize the 1455 availability of the network: ··· 1360 the outside world ("port3" on each switch). There is no technical 1361 reason that this could not be extended to a third switch. 1362 1363 - 12.2.1 Bonding Mode Selection for Multiple Switch Topology 1364 - ---------------------------------------------------------- 1365 1366 - In a topology such as this, the active-backup and broadcast 1367 - modes are the only useful bonding modes; the other modes require all 1368 - links to terminate on the same peer for them to behave rationally. 1369 1370 active-backup: This is generally the preferred mode, particularly if 1371 the switches have an ISL and play together well. If the ··· 1378 broadcast: This mode is really a special purpose mode, and is suitable 1379 only for very specific needs. For example, if the two 1380 switches are not connected (no ISL), and the networks beyond 1381 - them are totally independant. In this case, if it is 1382 necessary for some specific one-way traffic to reach both 1383 independent networks, then the broadcast mode may be suitable. 1384 1385 - 12.2.2 Link Monitoring Selection for Multiple Switch Topology 1386 - ------------------------------------------------------------- 1387 1388 The choice of link monitoring ultimately depends upon your 1389 switch. If the switch can reliably fail ports in response to other ··· 1394 thus detecting that failure without switch support. 1395 1396 In general, however, in a multiple switch topology, the ARP 1397 - monitor can provide a higher level of reliability in detecting link 1398 - failures. Additionally, it should be configured with multiple targets 1399 - (at least one for each switch in the network). This will insure that, 1400 regardless of which switch is active, the ARP monitor has a suitable 1401 target to query. 1402 1403 1404 - 12.3 Switch Behavior Issues for High Availability 1405 - ------------------------------------------------- 1406 1407 - You may encounter issues with the timing of link up and down 1408 - reporting by the switch. 1409 1410 First, when a link comes up, some switches may indicate that 1411 the link is up (carrier available), but not pass traffic over the ··· 1696 Second, some switches may "bounce" the link state one or more 1697 times while a link is changing state. This occurs most commonly while 1698 the switch is initializing. Again, an appropriate updelay value may 1699 - help, but note that if all links are down, then updelay is ignored 1700 - when any link becomes active (the slave closest to completing its 1701 - updelay is chosen). 1702 1703 Note that when a bonding interface has no active links, the 1704 - driver will immediately reuse the first link that goes up, even if 1705 - updelay parameter was specified. If there are slave interfaces 1706 - waiting for the updelay timeout to expire, the interface that first 1707 - went into that state will be immediately reused. This reduces down 1708 - time of the network if the value of updelay has been overestimated. 1709 1710 In addition to the concerns about switch timings, if your 1711 switches take a long time to go into backup mode, it may be desirable 1712 to not activate a backup interface immediately after a link goes down. 1713 Failover may be delayed via the downdelay bonding module option. 1714 1715 - 13. Hardware Specific Considerations 1716 ==================================== 1717 1718 This section contains additional information for configuring 1719 bonding on specific hardware platforms, or for interfacing bonding 1720 with particular switches or other devices. 1721 1722 - 13.1 IBM BladeCenter 1723 -------------------- 1724 1725 This applies to the JS20 and similar systems. ··· 1773 -------------------------------- 1774 1775 All JS20s come with two Broadcom Gigabit Ethernet ports 1776 - integrated on the planar. In the BladeCenter chassis, the eth0 port 1777 - of all JS20 blades is hard wired to I/O Module #1; similarly, all eth1 1778 - ports are wired to I/O Module #2. An add-on Broadcom daughter card 1779 - can be installed on a JS20 to provide two more Gigabit Ethernet ports. 1780 - These ports, eth2 and eth3, are wired to I/O Modules 3 and 4, 1781 - respectively. 1782 1783 Each I/O Module may contain either a switch or a passthrough 1784 module (which allows ports to be directly connected to an external ··· 1798 of ways, this discussion will be confined to describing basic 1799 configurations. 1800 1801 - Normally, Ethernet Switch Modules (ESM) are used in I/O 1802 modules 1 and 2. In this configuration, the eth0 and eth1 ports of a 1803 JS20 will be connected to different internal switches (in the 1804 respective I/O modules). 1805 1806 - An optical passthru module (OPM) connects the I/O module 1807 - directly to an external switch. By using OPMs in I/O module #1 and 1808 - #2, the eth0 and eth1 interfaces of a JS20 can be redirected to the 1809 - outside world and connected to a common external switch. 1810 1811 - Depending upon the mix of ESM and OPM modules, the network 1812 - will appear to bonding as either a single switch topology (all OPM 1813 - modules) or as a multiple switch topology (one or more ESM modules, 1814 - zero or more OPM modules). It is also possible to connect ESM modules 1815 - together, resulting in a configuration much like the example in "High 1816 - Availability in a multiple switch topology." 1817 1818 - Requirements for specifc modes 1819 - ------------------------------ 1820 1821 - The balance-rr mode requires the use of OPM modules for 1822 - devices in the bond, all connected to an common external switch. That 1823 - switch must be configured for "etherchannel" or "trunking" on the 1824 appropriate ports, as is usual for balance-rr. 1825 1826 The balance-alb and balance-tlb modes will function with ··· 1851 Other concerns 1852 -------------- 1853 1854 - The Serial Over LAN link is established over the primary 1855 ethernet (eth0) only, therefore, any loss of link to eth0 will result 1856 in losing your SoL connection. It will not fail over with other 1857 - network traffic. 1858 1859 It may be desirable to disable spanning tree on the switch 1860 (either the internal Ethernet Switch Module, or an external switch) to 1861 - avoid fail-over delays issues when using bonding. 1862 1863 1864 - 14. Frequently Asked Questions 1865 ============================== 1866 1867 1. Is it SMP safe? ··· 1873 2. What type of cards will work with it? 1874 1875 Any Ethernet type cards (you can even mix cards - a Intel 1876 - EtherExpress PRO/100 and a 3com 3c905b, for example). They need not 1877 - be of the same speed. 1878 1879 3. How many bonding devices can I have? 1880 ··· 1892 disabled. The active-backup mode will fail over to a backup link, and 1893 other modes will ignore the failed link. The link will continue to be 1894 monitored, and should it recover, it will rejoin the bond (in whatever 1895 - manner is appropriate for the mode). See the section on High 1896 - Availability for additional information. 1897 1898 Link monitoring can be enabled via either the miimon or 1899 - arp_interval paramters (described in the module paramters section, 1900 above). In general, miimon monitors the carrier state as sensed by 1901 the underlying network device, and the arp monitor (arp_interval) 1902 monitors connectivity to another host on the local network. ··· 1905 If no link monitoring is configured, the bonding driver will 1906 be unable to detect link failures, and will assume that all links are 1907 always available. This will likely result in lost packets, and a 1908 - resulting degredation of performance. The precise performance loss 1909 depends upon the bonding mode and network configuration. 1910 1911 6. Can bonding be used for High Availability? ··· 1919 In the basic balance modes (balance-rr and balance-xor), it 1920 works with any system that supports etherchannel (also called 1921 trunking). Most managed switches currently available have such 1922 - support, and many unmananged switches as well. 1923 1924 The advanced balance modes (balance-tlb and balance-alb) do 1925 not have special switch requirements, but do need device drivers that 1926 support specific features (described in the appropriate section under 1927 - module paramters, above). 1928 1929 In 802.3ad mode, it works with with systems that support IEEE 1930 802.3ad Dynamic Link Aggregation. Most managed and many unmanaged ··· 1934 1935 8. Where does a bonding device get its MAC address from? 1936 1937 - If not explicitly configured with ifconfig, the MAC address of 1938 - the bonding device is taken from its first slave device. This MAC 1939 - address is then passed to all following slaves and remains persistent 1940 - (even if the the first slave is removed) until the bonding device is 1941 - brought down or reconfigured. 1942 1943 If you wish to change the MAC address, you can set it with 1944 - ifconfig: 1945 1946 # ifconfig bond0 hw ether 00:11:22:33:44:55 1947 1948 The MAC address can be also changed by bringing down/up the 1949 device and then changing its slaves (or their order): ··· 1962 then restore the MAC addresses that the slaves had before they were 1963 enslaved. 1964 1965 - 15. Resources and Links 1966 ======================= 1967 1968 The latest version of the bonding driver can be found in the latest 1969 version of the linux kernel, found on http://kernel.org 1970 1971 Discussions regarding the bonding driver take place primarily on the 1972 bonding-devel mailing list, hosted at sourceforge.net. If you have 1973 - questions or problems, post them to the list. 1974 1975 bonding-devel@lists.sourceforge.net 1976 1977 https://lists.sourceforge.net/lists/listinfo/bonding-devel 1978 - 1979 - There is also a project site on sourceforge. 1980 - 1981 - http://www.sourceforge.net/projects/bonding 1982 1983 Donald Becker's Ethernet Drivers and diag programs may be found at : 1984 - http://www.scyld.com/network/
··· 1 2 + Linux Ethernet Bonding Driver HOWTO 3 + 4 + Latest update: 21 June 2005 5 6 Initial release : Thomas Davis <tadavis at lbl.gov> 7 Corrections, HA extensions : 2000/10/03-15 : ··· 11 12 Reorganized and updated Feb 2005 by Jay Vosburgh 13 14 + Introduction 15 + ============ 16 17 + The Linux bonding driver provides a method for aggregating 18 + multiple network interfaces into a single logical "bonded" interface. 19 + The behavior of the bonded interfaces depends upon the mode; generally 20 + speaking, modes provide either hot standby or load balancing services. 21 + Additionally, link integrity monitoring may be performed. 22 + 23 + The bonding driver originally came from Donald Becker's 24 + beowulf patches for kernel 2.0. It has changed quite a bit since, and 25 + the original tools from extreme-linux and beowulf sites will not work 26 + with this version of the driver. 27 + 28 + For new versions of the driver, updated userspace tools, and 29 + who to ask for help, please follow the links at the end of this file. 30 31 Table of Contents 32 ================= ··· 30 31 3. Configuring Bonding Devices 32 3.1 Configuration with sysconfig support 33 + 3.1.1 Using DHCP with sysconfig 34 + 3.1.2 Configuring Multiple Bonds with sysconfig 35 3.2 Configuration with initscripts support 36 + 3.2.1 Using DHCP with initscripts 37 + 3.2.2 Configuring Multiple Bonds with initscripts 38 3.3 Configuring Bonding Manually 39 + 3.3.1 Configuring Multiple Bonds Manually 40 41 5. Querying Bonding Configuration 42 5.1 Bonding Configuration ··· 56 57 11. Promiscuous mode 58 59 + 12. Configuring Bonding for High Availability 60 12.1 High Availability in a Single Switch Topology 61 12.2 High Availability in a Multiple Switch Topology 62 + 12.2.1 HA Bonding Mode Selection for Multiple Switch Topology 63 + 12.2.2 HA Link Monitoring for Multiple Switch Topology 64 65 + 13. Configuring Bonding for Maximum Throughput 66 + 13.1 Maximum Throughput in a Single Switch Topology 67 + 13.1.1 MT Bonding Mode Selection for Single Switch Topology 68 + 13.1.2 MT Link Monitoring for Single Switch Topology 69 + 13.2 Maximum Throughput in a Multiple Switch Topology 70 + 13.2.1 MT Bonding Mode Selection for Multiple Switch Topology 71 + 13.2.2 MT Link Monitoring for Multiple Switch Topology 72 73 + 14. Switch Behavior Issues 74 + 14.1 Link Establishment and Failover Delays 75 + 14.2 Duplicated Incoming Packets 76 77 + 15. Hardware Specific Considerations 78 + 15.1 IBM BladeCenter 79 + 80 + 16. Frequently Asked Questions 81 + 82 + 17. Resources and Links 83 84 85 1. Bonding Driver Installation ··· 86 1.1 Configure and build the kernel with bonding 87 ----------------------------------------------- 88 89 + The current version of the bonding driver is available in the 90 drivers/net/bonding subdirectory of the most recent kernel source 91 + (which is available on http://kernel.org). Most users "rolling their 92 + own" will want to use the most recent kernel from kernel.org. 93 94 Configure kernel with "make menuconfig" (or "make xconfig" or 95 "make config"), then select "Bonding driver support" in the "Network ··· 103 driver as module since it is currently the only way to pass parameters 104 to the driver or configure more than one bonding device. 105 106 + Build and install the new kernel and modules, then continue 107 + below to install ifenslave. 108 109 1.2 Install ifenslave Control Utility 110 ------------------------------------- ··· 147 Options for the bonding driver are supplied as parameters to 148 the bonding module at load time. They may be given as command line 149 arguments to the insmod or modprobe command, but are usually specified 150 + in either the /etc/modules.conf or /etc/modprobe.conf configuration 151 + file, or in a distro-specific configuration file (some of which are 152 + detailed in the next section). 153 154 The available bonding driver parameters are listed below. If a 155 parameter is not specified the default value is used. When initially ··· 162 support at least miimon, so there is really no reason not to use it. 163 164 Options with textual values will accept either the text name 165 + or, for backwards compatibility, the option value. E.g., 166 + "mode=802.3ad" and "mode=4" set the same mode. 167 168 The parameters are as follows: 169 170 arp_interval 171 172 + Specifies the ARP link monitoring frequency in milliseconds. 173 + If ARP monitoring is used in an etherchannel compatible mode 174 + (modes 0 and 2), the switch should be configured in a mode 175 + that evenly distributes packets across all links. If the 176 + switch is configured to distribute the packets in an XOR 177 fashion, all replies from the ARP targets will be received on 178 the same link which could cause the other team members to 179 + fail. ARP monitoring should not be used in conjunction with 180 + miimon. A value of 0 disables ARP monitoring. The default 181 value is 0. 182 183 arp_ip_target 184 185 + Specifies the IP addresses to use as ARP monitoring peers when 186 + arp_interval is > 0. These are the targets of the ARP request 187 + sent to determine the health of the link to the targets. 188 + Specify these values in ddd.ddd.ddd.ddd format. Multiple IP 189 + addresses must be separated by a comma. At least one IP 190 + address must be given for ARP monitoring to function. The 191 + maximum number of targets that can be specified is 16. The 192 + default value is no IP addresses. 193 194 downdelay 195 ··· 207 are: 208 209 slow or 0 210 + Request partner to transmit LACPDUs every 30 seconds 211 212 fast or 1 213 Request partner to transmit LACPDUs every 1 second 214 + 215 + The default is slow. 216 217 max_bonds 218 ··· 221 222 miimon 223 224 + Specifies the MII link monitoring frequency in milliseconds. 225 + This determines how often the link state of each slave is 226 + inspected for link failures. A value of zero disables MII 227 + link monitoring. A value of 100 is a good starting point. 228 + The use_carrier option, below, affects how the link state is 229 determined. See the High Availability section for additional 230 information. The default value is 0. 231 ··· 246 active. A different slave becomes active if, and only 247 if, the active slave fails. The bond's MAC address is 248 externally visible on only one port (network adapter) 249 + to avoid confusing the switch. 250 + 251 + In bonding version 2.6.2 or later, when a failover 252 + occurs in active-backup mode, bonding will issue one 253 + or more gratuitous ARPs on the newly active slave. 254 + One gratutious ARP is issued for the bonding master 255 + interface and each VLAN interfaces configured above 256 + it, provided that the interface has at least one IP 257 + address configured. Gratuitous ARPs issued for VLAN 258 + interfaces are tagged with the appropriate VLAN id. 259 + 260 + This mode provides fault tolerance. The primary 261 + option, documented below, affects the behavior of this 262 + mode. 263 264 balance-xor or 2 265 266 + XOR policy: Transmit based on the selected transmit 267 + hash policy. The default policy is a simple [(source 268 + MAC address XOR'd with destination MAC address) modulo 269 + slave count]. Alternate transmit policies may be 270 + selected via the xmit_hash_policy option, described 271 + below. 272 + 273 + This mode provides load balancing and fault tolerance. 274 275 broadcast or 3 276 ··· 270 duplex settings. Utilizes all slaves in the active 271 aggregator according to the 802.3ad specification. 272 273 + Slave selection for outgoing traffic is done according 274 + to the transmit hash policy, which may be changed from 275 + the default simple XOR policy via the xmit_hash_policy 276 + option, documented below. Note that not all transmit 277 + policies may be 802.3ad compliant, particularly in 278 + regards to the packet mis-ordering requirements of 279 + section 43.2.4 of the 802.3ad standard. Differing 280 + peer implementations will have varying tolerances for 281 + noncompliance. 282 + 283 + Prerequisites: 284 285 1. Ethtool support in the base drivers for retrieving 286 the speed and duplex of each slave. ··· 333 334 When a link is reconnected or a new slave joins the 335 bond the receive traffic is redistributed among all 336 + active slaves in the bond by initiating ARP Replies 337 with the selected mac address to each of the 338 clients. The updelay parameter (detailed below) must 339 be set to a value equal or greater than the switch's ··· 396 0 will use the deprecated MII / ETHTOOL ioctls. The default 397 value is 1. 398 399 + xmit_hash_policy 400 + 401 + Selects the transmit hash policy to use for slave selection in 402 + balance-xor and 802.3ad modes. Possible values are: 403 + 404 + layer2 405 + 406 + Uses XOR of hardware MAC addresses to generate the 407 + hash. The formula is 408 + 409 + (source MAC XOR destination MAC) modulo slave count 410 + 411 + This algorithm will place all traffic to a particular 412 + network peer on the same slave. 413 + 414 + This algorithm is 802.3ad compliant. 415 + 416 + layer3+4 417 + 418 + This policy uses upper layer protocol information, 419 + when available, to generate the hash. This allows for 420 + traffic to a particular network peer to span multiple 421 + slaves, although a single connection will not span 422 + multiple slaves. 423 + 424 + The formula for unfragmented TCP and UDP packets is 425 + 426 + ((source port XOR dest port) XOR 427 + ((source IP XOR dest IP) AND 0xffff) 428 + modulo slave count 429 + 430 + For fragmented TCP or UDP packets and all other IP 431 + protocol traffic, the source and destination port 432 + information is omitted. For non-IP traffic, the 433 + formula is the same as for the layer2 transmit hash 434 + policy. 435 + 436 + This policy is intended to mimic the behavior of 437 + certain switches, notably Cisco switches with PFC2 as 438 + well as some Foundry and IBM products. 439 + 440 + This algorithm is not fully 802.3ad compliant. A 441 + single TCP or UDP conversation containing both 442 + fragmented and unfragmented packets will see packets 443 + striped across two interfaces. This may result in out 444 + of order delivery. Most traffic types will not meet 445 + this criteria, as TCP rarely fragments traffic, and 446 + most UDP traffic is not involved in extended 447 + conversations. Other implementations of 802.3ad may 448 + or may not tolerate this noncompliance. 449 + 450 + The default value is layer2. This option was added in bonding 451 + version 2.6.3. In earlier versions of bonding, this parameter does 452 + not exist, and the layer2 policy is the only policy. 453 454 455 3. Configuring Bonding Devices ··· 448 slave devices. On SLES 9, this is most easily done by running the 449 yast2 sysconfig configuration utility. The goal is for to create an 450 ifcfg-id file for each slave device. The simplest way to accomplish 451 + this is to configure the devices for DHCP (this is only to get the 452 + file ifcfg-id file created; see below for some issues with DHCP). The 453 + name of the configuration file for each device will be of the form: 454 455 ifcfg-id-xx:xx:xx:xx:xx:xx 456 ··· 459 Once the set of ifcfg-id-xx:xx:xx:xx:xx:xx files has been 460 created, it is necessary to edit the configuration files for the slave 461 devices (the MAC addresses correspond to those of the slave devices). 462 + Before editing, the file will contain multiple lines, and will look 463 something like this: 464 465 BOOTPROTO='dhcp' ··· 496 BONDING_MASTER="yes" 497 BONDING_MODULE_OPTS="mode=active-backup miimon=100" 498 BONDING_SLAVE0="eth0" 499 + BONDING_SLAVE1="bus-pci-0000:06:08.1" 500 501 Replace the sample BROADCAST, IPADDR, NETMASK and NETWORK 502 values with the appropriate values for your network. 503 504 The STARTMODE specifies when the device is brought online. 505 The possible values are: ··· 531 the max_bonds bonding parameter; this will confuse the configuration 532 system if you have multiple bonding devices. 533 534 + Finally, supply one BONDING_SLAVEn="slave device" for each 535 + slave. where "n" is an increasing value, one for each slave. The 536 + "slave device" is either an interface name, e.g., "eth0", or a device 537 + specifier for the network device. The interface name is easier to 538 + find, but the ethN names are subject to change at boot time if, e.g., 539 + a device early in the sequence has failed. The device specifiers 540 + (bus-pci-0000:06:08.1 in the example above) specify the physical 541 + network device, and will not change unless the device's bus location 542 + changes (for example, it is moved from one PCI slot to another). The 543 + example above uses one of each type for demonstration purposes; most 544 + configurations will choose one or the other for all slave devices. 545 546 When all configuration files have been modified or created, 547 networking must be restarted for the configuration changes to take ··· 544 Note that the network control script (/sbin/ifdown) will 545 remove the bonding module as part of the network shutdown processing, 546 so it is not necessary to remove the module by hand if, e.g., the 547 + module parameters have changed. 548 549 Also, at this writing, YaST/YaST2 will not manage bonding 550 devices (they do not show bonding interfaces on its list of network ··· 559 Note that the template does not document the various BONDING_ 560 settings described above, but does describe many of the other options. 561 562 + 3.1.1 Using DHCP with sysconfig 563 + ------------------------------- 564 + 565 + Under sysconfig, configuring a device with BOOTPROTO='dhcp' 566 + will cause it to query DHCP for its IP address information. At this 567 + writing, this does not function for bonding devices; the scripts 568 + attempt to obtain the device address from DHCP prior to adding any of 569 + the slave devices. Without active slaves, the DHCP requests are not 570 + sent to the network. 571 + 572 + 3.1.2 Configuring Multiple Bonds with sysconfig 573 + ----------------------------------------------- 574 + 575 + The sysconfig network initialization system is capable of 576 + handling multiple bonding devices. All that is necessary is for each 577 + bonding instance to have an appropriately configured ifcfg-bondX file 578 + (as described above). Do not specify the "max_bonds" parameter to any 579 + instance of bonding, as this will confuse sysconfig. If you require 580 + multiple bonding devices with identical parameters, create multiple 581 + ifcfg-bondX files. 582 + 583 + Because the sysconfig scripts supply the bonding module 584 + options in the ifcfg-bondX file, it is not necessary to add them to 585 + the system /etc/modules.conf or /etc/modprobe.conf configuration file. 586 + 587 3.2 Configuration with initscripts support 588 ------------------------------------------ 589 590 This section applies to distros using a version of initscripts 591 with bonding support, for example, Red Hat Linux 9 or Red Hat 592 + Enterprise Linux version 3 or 4. On these systems, the network 593 initialization scripts have some knowledge of bonding, and can be 594 configured to control bonding devices. 595 ··· 614 Be sure to change the networking specific lines (IPADDR, 615 NETMASK, NETWORK and BROADCAST) to match your network configuration. 616 617 + Finally, it is necessary to edit /etc/modules.conf (or 618 + /etc/modprobe.conf, depending upon your distro) to load the bonding 619 + module with your desired options when the bond0 interface is brought 620 + up. The following lines in /etc/modules.conf (or modprobe.conf) will 621 + load the bonding module, and select its options: 622 623 alias bond0 bonding 624 options bond0 mode=balance-alb miimon=100 ··· 629 will restart the networking subsystem and your bond link should be now 630 up and running. 631 632 + 3.2.1 Using DHCP with initscripts 633 + --------------------------------- 634 + 635 + Recent versions of initscripts (the version supplied with 636 + Fedora Core 3 and Red Hat Enterprise Linux 4 is reported to work) do 637 + have support for assigning IP information to bonding devices via DHCP. 638 + 639 + To configure bonding for DHCP, configure it as described 640 + above, except replace the line "BOOTPROTO=none" with "BOOTPROTO=dhcp" 641 + and add a line consisting of "TYPE=Bonding". Note that the TYPE value 642 + is case sensitive. 643 + 644 + 3.2.2 Configuring Multiple Bonds with initscripts 645 + ------------------------------------------------- 646 + 647 + At this writing, the initscripts package does not directly 648 + support loading the bonding driver multiple times, so the process for 649 + doing so is the same as described in the "Configuring Multiple Bonds 650 + Manually" section, below. 651 + 652 + NOTE: It has been observed that some Red Hat supplied kernels 653 + are apparently unable to rename modules at load time (the "-obonding1" 654 + part). Attempts to pass that option to modprobe will produce an 655 + "Operation not permitted" error. This has been reported on some 656 + Fedora Core kernels, and has been seen on RHEL 4 as well. On kernels 657 + exhibiting this problem, it will be impossible to configure multiple 658 + bonds with differing parameters. 659 660 3.3 Configuring Bonding Manually 661 -------------------------------- ··· 638 knowledge of bonding. One such distro is SuSE Linux Enterprise Server 639 version 8. 640 641 + The general method for these systems is to place the bonding 642 + module parameters into /etc/modules.conf or /etc/modprobe.conf (as 643 + appropriate for the installed distro), then add modprobe and/or 644 + ifenslave commands to the system's global init script. The name of 645 + the global init script differs; for sysconfig, it is 646 /etc/init.d/boot.local and for initscripts it is /etc/rc.d/rc.local. 647 648 For example, if you wanted to make a simple bond of two e100 ··· 649 reboots, edit the appropriate file (/etc/init.d/boot.local or 650 /etc/rc.d/rc.local), and add the following: 651 652 + modprobe bonding mode=balance-alb miimon=100 653 modprobe e100 654 ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up 655 ifenslave bond0 eth0 ··· 657 658 Replace the example bonding module parameters and bond0 659 network configuration (IP address, netmask, etc) with the appropriate 660 + values for your configuration. 661 662 Unfortunately, this method will not provide support for the 663 ifup and ifdown scripts on the bond devices. To reload the bonding ··· 684 the following: 685 686 # ifconfig bond0 down 687 + # rmmod bonding 688 # rmmod e100 689 690 Again, for convenience, it may be desirable to create a script 691 with these commands. 692 693 694 + 3.3.1 Configuring Multiple Bonds Manually 695 + ----------------------------------------- 696 697 This section contains information on configuring multiple 698 + bonding devices with differing options for those systems whose network 699 + initialization scripts lack support for configuring multiple bonds. 700 + 701 + If you require multiple bonding devices, but all with the same 702 + options, you may wish to use the "max_bonds" module parameter, 703 + documented above. 704 705 To create multiple bonding devices with differing options, it 706 is necessary to load the bonding driver multiple times. Note that ··· 724 miimon of 100. The second instance is named "bond1" and creates the 725 bond1 device in balance-alb mode with an miimon of 50. 726 727 + In some circumstances (typically with older distributions), 728 + the above does not work, and the second bonding instance never sees 729 + its options. In that case, the second options line can be substituted 730 + as follows: 731 732 + install bonding1 /sbin/modprobe bonding -obond1 mode=balance-alb miimon=50 733 + 734 + This may be repeated any number of times, specifying a new and 735 + unique name in place of bond1 for each subsequent instance. 736 + 737 738 5. Querying Bonding Configuration 739 ================================= ··· 846 self generated packets. 847 848 For reasons of simplicity, and to support the use of adapters 849 + that can do VLAN hardware acceleration offloading, the bonding 850 + interface declares itself as fully hardware offloading capable, it gets 851 the add_vid/kill_vid notifications to gather the necessary 852 information, and it propagates those actions to the slaves. In case 853 of mixed adapter types, hardware accelerated tagged packets that ··· 880 matches the hardware address of the VLAN interfaces. 881 882 Note that changing a VLAN interface's HW address would set the 883 + underlying device -- i.e. the bonding interface -- to promiscuous 884 mode, which might not be what you want. 885 886 ··· 923 an additional target (or several) increases the reliability of the ARP 924 monitoring. 925 926 + Multiple ARP targets must be separated by commas as follows: 927 928 # example options for ARP monitoring with three targets 929 alias bond0 bonding ··· 1045 This will, when loading the bonding module, rather than 1046 performing the normal action, instead execute the provided command. 1047 This command loads the device drivers in the order needed, then calls 1048 + modprobe with --ignore-install to cause the normal action to then take 1049 place. Full documentation on this can be found in the modprobe.conf 1050 and modprobe manual pages. 1051 ··· 1130 common to enable promiscuous mode on the device, so that all traffic 1131 is seen (instead of seeing only traffic destined for the local host). 1132 The bonding driver handles promiscuous mode changes to the bonding 1133 + master device (e.g., bond0), and propagates the setting to the slave 1134 devices. 1135 1136 For the balance-rr, balance-xor, broadcast, and 802.3ad modes, 1137 + the promiscuous mode setting is propagated to all slaves. 1138 1139 For the active-backup, balance-tlb and balance-alb modes, the 1140 + promiscuous mode setting is propagated only to the active slave. 1141 1142 For balance-tlb mode, the active slave is the slave currently 1143 receiving inbound traffic. ··· 1148 1149 For the active-backup, balance-tlb and balance-alb modes, when 1150 the active slave changes (e.g., due to a link failure), the 1151 + promiscuous setting will be propagated to the new active slave. 1152 1153 + 12. Configuring Bonding for High Availability 1154 + ============================================= 1155 1156 High Availability refers to configurations that provide 1157 maximum network availability by having redundant or backup devices, 1158 + links or switches between the host and the rest of the world. The 1159 + goal is to provide the maximum availability of network connectivity 1160 + (i.e., the network always works), even though other configurations 1161 + could provide higher throughput. 1162 1163 12.1 High Availability in a Single Switch Topology 1164 -------------------------------------------------- 1165 1166 + If two hosts (or a host and a single switch) are directly 1167 + connected via multiple physical links, then there is no availability 1168 + penalty to optimizing for maximum bandwidth. In this case, there is 1169 + only one switch (or peer), so if it fails, there is no alternative 1170 + access to fail over to. Additionally, the bonding load balance modes 1171 + support link monitoring of their members, so if individual links fail, 1172 + the load will be rebalanced across the remaining devices. 1173 1174 + See Section 13, "Configuring Bonding for Maximum Throughput" 1175 + for information on configuring bonding with one peer device. 1176 1177 12.2 High Availability in a Multiple Switch Topology 1178 ---------------------------------------------------- 1179 1180 With multiple switches, the configuration of bonding and the 1181 network changes dramatically. In multiple switch topologies, there is 1182 + a trade off between network availability and usable bandwidth. 1183 1184 Below is a sample network, configured to maximize the 1185 availability of the network: ··· 1312 the outside world ("port3" on each switch). There is no technical 1313 reason that this could not be extended to a third switch. 1314 1315 + 12.2.1 HA Bonding Mode Selection for Multiple Switch Topology 1316 + ------------------------------------------------------------- 1317 1318 + In a topology such as the example above, the active-backup and 1319 + broadcast modes are the only useful bonding modes when optimizing for 1320 + availability; the other modes require all links to terminate on the 1321 + same peer for them to behave rationally. 1322 1323 active-backup: This is generally the preferred mode, particularly if 1324 the switches have an ISL and play together well. If the ··· 1329 broadcast: This mode is really a special purpose mode, and is suitable 1330 only for very specific needs. For example, if the two 1331 switches are not connected (no ISL), and the networks beyond 1332 + them are totally independent. In this case, if it is 1333 necessary for some specific one-way traffic to reach both 1334 independent networks, then the broadcast mode may be suitable. 1335 1336 + 12.2.2 HA Link Monitoring Selection for Multiple Switch Topology 1337 + ---------------------------------------------------------------- 1338 1339 The choice of link monitoring ultimately depends upon your 1340 switch. If the switch can reliably fail ports in response to other ··· 1345 thus detecting that failure without switch support. 1346 1347 In general, however, in a multiple switch topology, the ARP 1348 + monitor can provide a higher level of reliability in detecting end to 1349 + end connectivity failures (which may be caused by the failure of any 1350 + individual component to pass traffic for any reason). Additionally, 1351 + the ARP monitor should be configured with multiple targets (at least 1352 + one for each switch in the network). This will insure that, 1353 regardless of which switch is active, the ARP monitor has a suitable 1354 target to query. 1355 1356 1357 + 13. Configuring Bonding for Maximum Throughput 1358 + ============================================== 1359 1360 + 13.1 Maximizing Throughput in a Single Switch Topology 1361 + ------------------------------------------------------ 1362 + 1363 + In a single switch configuration, the best method to maximize 1364 + throughput depends upon the application and network environment. The 1365 + various load balancing modes each have strengths and weaknesses in 1366 + different environments, as detailed below. 1367 + 1368 + For this discussion, we will break down the topologies into 1369 + two categories. Depending upon the destination of most traffic, we 1370 + categorize them into either "gatewayed" or "local" configurations. 1371 + 1372 + In a gatewayed configuration, the "switch" is acting primarily 1373 + as a router, and the majority of traffic passes through this router to 1374 + other networks. An example would be the following: 1375 + 1376 + 1377 + +----------+ +----------+ 1378 + | |eth0 port1| | to other networks 1379 + | Host A +---------------------+ router +-------------------> 1380 + | +---------------------+ | Hosts B and C are out 1381 + | |eth1 port2| | here somewhere 1382 + +----------+ +----------+ 1383 + 1384 + The router may be a dedicated router device, or another host 1385 + acting as a gateway. For our discussion, the important point is that 1386 + the majority of traffic from Host A will pass through the router to 1387 + some other network before reaching its final destination. 1388 + 1389 + In a gatewayed network configuration, although Host A may 1390 + communicate with many other systems, all of its traffic will be sent 1391 + and received via one other peer on the local network, the router. 1392 + 1393 + Note that the case of two systems connected directly via 1394 + multiple physical links is, for purposes of configuring bonding, the 1395 + same as a gatewayed configuration. In that case, it happens that all 1396 + traffic is destined for the "gateway" itself, not some other network 1397 + beyond the gateway. 1398 + 1399 + In a local configuration, the "switch" is acting primarily as 1400 + a switch, and the majority of traffic passes through this switch to 1401 + reach other stations on the same network. An example would be the 1402 + following: 1403 + 1404 + +----------+ +----------+ +--------+ 1405 + | |eth0 port1| +-------+ Host B | 1406 + | Host A +------------+ switch |port3 +--------+ 1407 + | +------------+ | +--------+ 1408 + | |eth1 port2| +------------------+ Host C | 1409 + +----------+ +----------+port4 +--------+ 1410 + 1411 + 1412 + Again, the switch may be a dedicated switch device, or another 1413 + host acting as a gateway. For our discussion, the important point is 1414 + that the majority of traffic from Host A is destined for other hosts 1415 + on the same local network (Hosts B and C in the above example). 1416 + 1417 + In summary, in a gatewayed configuration, traffic to and from 1418 + the bonded device will be to the same MAC level peer on the network 1419 + (the gateway itself, i.e., the router), regardless of its final 1420 + destination. In a local configuration, traffic flows directly to and 1421 + from the final destinations, thus, each destination (Host B, Host C) 1422 + will be addressed directly by their individual MAC addresses. 1423 + 1424 + This distinction between a gatewayed and a local network 1425 + configuration is important because many of the load balancing modes 1426 + available use the MAC addresses of the local network source and 1427 + destination to make load balancing decisions. The behavior of each 1428 + mode is described below. 1429 + 1430 + 1431 + 13.1.1 MT Bonding Mode Selection for Single Switch Topology 1432 + ----------------------------------------------------------- 1433 + 1434 + This configuration is the easiest to set up and to understand, 1435 + although you will have to decide which bonding mode best suits your 1436 + needs. The trade offs for each mode are detailed below: 1437 + 1438 + balance-rr: This mode is the only mode that will permit a single 1439 + TCP/IP connection to stripe traffic across multiple 1440 + interfaces. It is therefore the only mode that will allow a 1441 + single TCP/IP stream to utilize more than one interface's 1442 + worth of throughput. This comes at a cost, however: the 1443 + striping often results in peer systems receiving packets out 1444 + of order, causing TCP/IP's congestion control system to kick 1445 + in, often by retransmitting segments. 1446 + 1447 + It is possible to adjust TCP/IP's congestion limits by 1448 + altering the net.ipv4.tcp_reordering sysctl parameter. The 1449 + usual default value is 3, and the maximum useful value is 127. 1450 + For a four interface balance-rr bond, expect that a single 1451 + TCP/IP stream will utilize no more than approximately 2.3 1452 + interface's worth of throughput, even after adjusting 1453 + tcp_reordering. 1454 + 1455 + Note that this out of order delivery occurs when both the 1456 + sending and receiving systems are utilizing a multiple 1457 + interface bond. Consider a configuration in which a 1458 + balance-rr bond feeds into a single higher capacity network 1459 + channel (e.g., multiple 100Mb/sec ethernets feeding a single 1460 + gigabit ethernet via an etherchannel capable switch). In this 1461 + configuration, traffic sent from the multiple 100Mb devices to 1462 + a destination connected to the gigabit device will not see 1463 + packets out of order. However, traffic sent from the gigabit 1464 + device to the multiple 100Mb devices may or may not see 1465 + traffic out of order, depending upon the balance policy of the 1466 + switch. Many switches do not support any modes that stripe 1467 + traffic (instead choosing a port based upon IP or MAC level 1468 + addresses); for those devices, traffic flowing from the 1469 + gigabit device to the many 100Mb devices will only utilize one 1470 + interface. 1471 + 1472 + If you are utilizing protocols other than TCP/IP, UDP for 1473 + example, and your application can tolerate out of order 1474 + delivery, then this mode can allow for single stream datagram 1475 + performance that scales near linearly as interfaces are added 1476 + to the bond. 1477 + 1478 + This mode requires the switch to have the appropriate ports 1479 + configured for "etherchannel" or "trunking." 1480 + 1481 + active-backup: There is not much advantage in this network topology to 1482 + the active-backup mode, as the inactive backup devices are all 1483 + connected to the same peer as the primary. In this case, a 1484 + load balancing mode (with link monitoring) will provide the 1485 + same level of network availability, but with increased 1486 + available bandwidth. On the plus side, active-backup mode 1487 + does not require any configuration of the switch, so it may 1488 + have value if the hardware available does not support any of 1489 + the load balance modes. 1490 + 1491 + balance-xor: This mode will limit traffic such that packets destined 1492 + for specific peers will always be sent over the same 1493 + interface. Since the destination is determined by the MAC 1494 + addresses involved, this mode works best in a "local" network 1495 + configuration (as described above), with destinations all on 1496 + the same local network. This mode is likely to be suboptimal 1497 + if all your traffic is passed through a single router (i.e., a 1498 + "gatewayed" network configuration, as described above). 1499 + 1500 + As with balance-rr, the switch ports need to be configured for 1501 + "etherchannel" or "trunking." 1502 + 1503 + broadcast: Like active-backup, there is not much advantage to this 1504 + mode in this type of network topology. 1505 + 1506 + 802.3ad: This mode can be a good choice for this type of network 1507 + topology. The 802.3ad mode is an IEEE standard, so all peers 1508 + that implement 802.3ad should interoperate well. The 802.3ad 1509 + protocol includes automatic configuration of the aggregates, 1510 + so minimal manual configuration of the switch is needed 1511 + (typically only to designate that some set of devices is 1512 + available for 802.3ad). The 802.3ad standard also mandates 1513 + that frames be delivered in order (within certain limits), so 1514 + in general single connections will not see misordering of 1515 + packets. The 802.3ad mode does have some drawbacks: the 1516 + standard mandates that all devices in the aggregate operate at 1517 + the same speed and duplex. Also, as with all bonding load 1518 + balance modes other than balance-rr, no single connection will 1519 + be able to utilize more than a single interface's worth of 1520 + bandwidth. 1521 + 1522 + Additionally, the linux bonding 802.3ad implementation 1523 + distributes traffic by peer (using an XOR of MAC addresses), 1524 + so in a "gatewayed" configuration, all outgoing traffic will 1525 + generally use the same device. Incoming traffic may also end 1526 + up on a single device, but that is dependent upon the 1527 + balancing policy of the peer's 8023.ad implementation. In a 1528 + "local" configuration, traffic will be distributed across the 1529 + devices in the bond. 1530 + 1531 + Finally, the 802.3ad mode mandates the use of the MII monitor, 1532 + therefore, the ARP monitor is not available in this mode. 1533 + 1534 + balance-tlb: The balance-tlb mode balances outgoing traffic by peer. 1535 + Since the balancing is done according to MAC address, in a 1536 + "gatewayed" configuration (as described above), this mode will 1537 + send all traffic across a single device. However, in a 1538 + "local" network configuration, this mode balances multiple 1539 + local network peers across devices in a vaguely intelligent 1540 + manner (not a simple XOR as in balance-xor or 802.3ad mode), 1541 + so that mathematically unlucky MAC addresses (i.e., ones that 1542 + XOR to the same value) will not all "bunch up" on a single 1543 + interface. 1544 + 1545 + Unlike 802.3ad, interfaces may be of differing speeds, and no 1546 + special switch configuration is required. On the down side, 1547 + in this mode all incoming traffic arrives over a single 1548 + interface, this mode requires certain ethtool support in the 1549 + network device driver of the slave interfaces, and the ARP 1550 + monitor is not available. 1551 + 1552 + balance-alb: This mode is everything that balance-tlb is, and more. 1553 + It has all of the features (and restrictions) of balance-tlb, 1554 + and will also balance incoming traffic from local network 1555 + peers (as described in the Bonding Module Options section, 1556 + above). 1557 + 1558 + The only additional down side to this mode is that the network 1559 + device driver must support changing the hardware address while 1560 + the device is open. 1561 + 1562 + 13.1.2 MT Link Monitoring for Single Switch Topology 1563 + ---------------------------------------------------- 1564 + 1565 + The choice of link monitoring may largely depend upon which 1566 + mode you choose to use. The more advanced load balancing modes do not 1567 + support the use of the ARP monitor, and are thus restricted to using 1568 + the MII monitor (which does not provide as high a level of end to end 1569 + assurance as the ARP monitor). 1570 + 1571 + 13.2 Maximum Throughput in a Multiple Switch Topology 1572 + ----------------------------------------------------- 1573 + 1574 + Multiple switches may be utilized to optimize for throughput 1575 + when they are configured in parallel as part of an isolated network 1576 + between two or more systems, for example: 1577 + 1578 + +-----------+ 1579 + | Host A | 1580 + +-+---+---+-+ 1581 + | | | 1582 + +--------+ | +---------+ 1583 + | | | 1584 + +------+---+ +-----+----+ +-----+----+ 1585 + | Switch A | | Switch B | | Switch C | 1586 + +------+---+ +-----+----+ +-----+----+ 1587 + | | | 1588 + +--------+ | +---------+ 1589 + | | | 1590 + +-+---+---+-+ 1591 + | Host B | 1592 + +-----------+ 1593 + 1594 + In this configuration, the switches are isolated from one 1595 + another. One reason to employ a topology such as this is for an 1596 + isolated network with many hosts (a cluster configured for high 1597 + performance, for example), using multiple smaller switches can be more 1598 + cost effective than a single larger switch, e.g., on a network with 24 1599 + hosts, three 24 port switches can be significantly less expensive than 1600 + a single 72 port switch. 1601 + 1602 + If access beyond the network is required, an individual host 1603 + can be equipped with an additional network device connected to an 1604 + external network; this host then additionally acts as a gateway. 1605 + 1606 + 13.2.1 MT Bonding Mode Selection for Multiple Switch Topology 1607 + ------------------------------------------------------------- 1608 + 1609 + In actual practice, the bonding mode typically employed in 1610 + configurations of this type is balance-rr. Historically, in this 1611 + network configuration, the usual caveats about out of order packet 1612 + delivery are mitigated by the use of network adapters that do not do 1613 + any kind of packet coalescing (via the use of NAPI, or because the 1614 + device itself does not generate interrupts until some number of 1615 + packets has arrived). When employed in this fashion, the balance-rr 1616 + mode allows individual connections between two hosts to effectively 1617 + utilize greater than one interface's bandwidth. 1618 + 1619 + 13.2.2 MT Link Monitoring for Multiple Switch Topology 1620 + ------------------------------------------------------ 1621 + 1622 + Again, in actual practice, the MII monitor is most often used 1623 + in this configuration, as performance is given preference over 1624 + availability. The ARP monitor will function in this topology, but its 1625 + advantages over the MII monitor are mitigated by the volume of probes 1626 + needed as the number of systems involved grows (remember that each 1627 + host in the network is configured with bonding). 1628 + 1629 + 14. Switch Behavior Issues 1630 + ========================== 1631 + 1632 + 14.1 Link Establishment and Failover Delays 1633 + ------------------------------------------- 1634 + 1635 + Some switches exhibit undesirable behavior with regard to the 1636 + timing of link up and down reporting by the switch. 1637 1638 First, when a link comes up, some switches may indicate that 1639 the link is up (carrier available), but not pass traffic over the ··· 1370 Second, some switches may "bounce" the link state one or more 1371 times while a link is changing state. This occurs most commonly while 1372 the switch is initializing. Again, an appropriate updelay value may 1373 + help. 1374 1375 Note that when a bonding interface has no active links, the 1376 + driver will immediately reuse the first link that goes up, even if the 1377 + updelay parameter has been specified (the updelay is ignored in this 1378 + case). If there are slave interfaces waiting for the updelay timeout 1379 + to expire, the interface that first went into that state will be 1380 + immediately reused. This reduces down time of the network if the 1381 + value of updelay has been overestimated, and since this occurs only in 1382 + cases with no connectivity, there is no additional penalty for 1383 + ignoring the updelay. 1384 1385 In addition to the concerns about switch timings, if your 1386 switches take a long time to go into backup mode, it may be desirable 1387 to not activate a backup interface immediately after a link goes down. 1388 Failover may be delayed via the downdelay bonding module option. 1389 1390 + 14.2 Duplicated Incoming Packets 1391 + -------------------------------- 1392 + 1393 + It is not uncommon to observe a short burst of duplicated 1394 + traffic when the bonding device is first used, or after it has been 1395 + idle for some period of time. This is most easily observed by issuing 1396 + a "ping" to some other host on the network, and noticing that the 1397 + output from ping flags duplicates (typically one per slave). 1398 + 1399 + For example, on a bond in active-backup mode with five slaves 1400 + all connected to one switch, the output may appear as follows: 1401 + 1402 + # ping -n 10.0.4.2 1403 + PING 10.0.4.2 (10.0.4.2) from 10.0.3.10 : 56(84) bytes of data. 1404 + 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.7 ms 1405 + 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!) 1406 + 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!) 1407 + 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!) 1408 + 64 bytes from 10.0.4.2: icmp_seq=1 ttl=64 time=13.8 ms (DUP!) 1409 + 64 bytes from 10.0.4.2: icmp_seq=2 ttl=64 time=0.216 ms 1410 + 64 bytes from 10.0.4.2: icmp_seq=3 ttl=64 time=0.267 ms 1411 + 64 bytes from 10.0.4.2: icmp_seq=4 ttl=64 time=0.222 ms 1412 + 1413 + This is not due to an error in the bonding driver, rather, it 1414 + is a side effect of how many switches update their MAC forwarding 1415 + tables. Initially, the switch does not associate the MAC address in 1416 + the packet with a particular switch port, and so it may send the 1417 + traffic to all ports until its MAC forwarding table is updated. Since 1418 + the interfaces attached to the bond may occupy multiple ports on a 1419 + single switch, when the switch (temporarily) floods the traffic to all 1420 + ports, the bond device receives multiple copies of the same packet 1421 + (one per slave device). 1422 + 1423 + The duplicated packet behavior is switch dependent, some 1424 + switches exhibit this, and some do not. On switches that display this 1425 + behavior, it can be induced by clearing the MAC forwarding table (on 1426 + most Cisco switches, the privileged command "clear mac address-table 1427 + dynamic" will accomplish this). 1428 + 1429 + 15. Hardware Specific Considerations 1430 ==================================== 1431 1432 This section contains additional information for configuring 1433 bonding on specific hardware platforms, or for interfacing bonding 1434 with particular switches or other devices. 1435 1436 + 15.1 IBM BladeCenter 1437 -------------------- 1438 1439 This applies to the JS20 and similar systems. ··· 1407 -------------------------------- 1408 1409 All JS20s come with two Broadcom Gigabit Ethernet ports 1410 + integrated on the planar (that's "motherboard" in IBM-speak). In the 1411 + BladeCenter chassis, the eth0 port of all JS20 blades is hard wired to 1412 + I/O Module #1; similarly, all eth1 ports are wired to I/O Module #2. 1413 + An add-on Broadcom daughter card can be installed on a JS20 to provide 1414 + two more Gigabit Ethernet ports. These ports, eth2 and eth3, are 1415 + wired to I/O Modules 3 and 4, respectively. 1416 1417 Each I/O Module may contain either a switch or a passthrough 1418 module (which allows ports to be directly connected to an external ··· 1432 of ways, this discussion will be confined to describing basic 1433 configurations. 1434 1435 + Normally, Ethernet Switch Modules (ESMs) are used in I/O 1436 modules 1 and 2. In this configuration, the eth0 and eth1 ports of a 1437 JS20 will be connected to different internal switches (in the 1438 respective I/O modules). 1439 1440 + A passthrough module (OPM or CPM, optical or copper, 1441 + passthrough module) connects the I/O module directly to an external 1442 + switch. By using PMs in I/O module #1 and #2, the eth0 and eth1 1443 + interfaces of a JS20 can be redirected to the outside world and 1444 + connected to a common external switch. 1445 1446 + Depending upon the mix of ESMs and PMs, the network will 1447 + appear to bonding as either a single switch topology (all PMs) or as a 1448 + multiple switch topology (one or more ESMs, zero or more PMs). It is 1449 + also possible to connect ESMs together, resulting in a configuration 1450 + much like the example in "High Availability in a Multiple Switch 1451 + Topology," above. 1452 1453 + Requirements for specific modes 1454 + ------------------------------- 1455 1456 + The balance-rr mode requires the use of passthrough modules 1457 + for devices in the bond, all connected to an common external switch. 1458 + That switch must be configured for "etherchannel" or "trunking" on the 1459 appropriate ports, as is usual for balance-rr. 1460 1461 The balance-alb and balance-tlb modes will function with ··· 1484 Other concerns 1485 -------------- 1486 1487 + The Serial Over LAN (SoL) link is established over the primary 1488 ethernet (eth0) only, therefore, any loss of link to eth0 will result 1489 in losing your SoL connection. It will not fail over with other 1490 + network traffic, as the SoL system is beyond the control of the 1491 + bonding driver. 1492 1493 It may be desirable to disable spanning tree on the switch 1494 (either the internal Ethernet Switch Module, or an external switch) to 1495 + avoid fail-over delay issues when using bonding. 1496 1497 1498 + 16. Frequently Asked Questions 1499 ============================== 1500 1501 1. Is it SMP safe? ··· 1505 2. What type of cards will work with it? 1506 1507 Any Ethernet type cards (you can even mix cards - a Intel 1508 + EtherExpress PRO/100 and a 3com 3c905b, for example). For most modes, 1509 + devices need not be of the same speed. 1510 1511 3. How many bonding devices can I have? 1512 ··· 1524 disabled. The active-backup mode will fail over to a backup link, and 1525 other modes will ignore the failed link. The link will continue to be 1526 monitored, and should it recover, it will rejoin the bond (in whatever 1527 + manner is appropriate for the mode). See the sections on High 1528 + Availability and the documentation for each mode for additional 1529 + information. 1530 1531 Link monitoring can be enabled via either the miimon or 1532 + arp_interval parameters (described in the module parameters section, 1533 above). In general, miimon monitors the carrier state as sensed by 1534 the underlying network device, and the arp monitor (arp_interval) 1535 monitors connectivity to another host on the local network. ··· 1536 If no link monitoring is configured, the bonding driver will 1537 be unable to detect link failures, and will assume that all links are 1538 always available. This will likely result in lost packets, and a 1539 + resulting degradation of performance. The precise performance loss 1540 depends upon the bonding mode and network configuration. 1541 1542 6. Can bonding be used for High Availability? ··· 1550 In the basic balance modes (balance-rr and balance-xor), it 1551 works with any system that supports etherchannel (also called 1552 trunking). Most managed switches currently available have such 1553 + support, and many unmanaged switches as well. 1554 1555 The advanced balance modes (balance-tlb and balance-alb) do 1556 not have special switch requirements, but do need device drivers that 1557 support specific features (described in the appropriate section under 1558 + module parameters, above). 1559 1560 In 802.3ad mode, it works with with systems that support IEEE 1561 802.3ad Dynamic Link Aggregation. Most managed and many unmanaged ··· 1565 1566 8. Where does a bonding device get its MAC address from? 1567 1568 + If not explicitly configured (with ifconfig or ip link), the 1569 + MAC address of the bonding device is taken from its first slave 1570 + device. This MAC address is then passed to all following slaves and 1571 + remains persistent (even if the the first slave is removed) until the 1572 + bonding device is brought down or reconfigured. 1573 1574 If you wish to change the MAC address, you can set it with 1575 + ifconfig or ip link: 1576 1577 # ifconfig bond0 hw ether 00:11:22:33:44:55 1578 + 1579 + # ip link set bond0 address 66:77:88:99:aa:bb 1580 1581 The MAC address can be also changed by bringing down/up the 1582 device and then changing its slaves (or their order): ··· 1591 then restore the MAC addresses that the slaves had before they were 1592 enslaved. 1593 1594 + 16. Resources and Links 1595 ======================= 1596 1597 The latest version of the bonding driver can be found in the latest 1598 version of the linux kernel, found on http://kernel.org 1599 1600 + The latest version of this document can be found in either the latest 1601 + kernel source (named Documentation/networking/bonding.txt), or on the 1602 + bonding sourceforge site: 1603 + 1604 + http://www.sourceforge.net/projects/bonding 1605 + 1606 Discussions regarding the bonding driver take place primarily on the 1607 bonding-devel mailing list, hosted at sourceforge.net. If you have 1608 + questions or problems, post them to the list. The list address is: 1609 1610 bonding-devel@lists.sourceforge.net 1611 1612 + The administrative interface (to subscribe or unsubscribe) can 1613 + be found at: 1614 + 1615 https://lists.sourceforge.net/lists/listinfo/bonding-devel 1616 1617 Donald Becker's Ethernet Drivers and diag programs may be found at : 1618 - http://www.scyld.com/network/