diff options
| -rw-r--r-- | Documentation/networking/bonding.txt | 323 |
1 files changed, 229 insertions, 94 deletions
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index 8d8b4e5ea184..afac780445cd 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | 1 | ||
| 2 | Linux Ethernet Bonding Driver HOWTO | 2 | Linux Ethernet Bonding Driver HOWTO |
| 3 | 3 | ||
| 4 | Latest update: 21 June 2005 | 4 | Latest update: 24 April 2006 |
| 5 | 5 | ||
| 6 | Initial release : Thomas Davis <tadavis at lbl.gov> | 6 | Initial release : Thomas Davis <tadavis at lbl.gov> |
| 7 | Corrections, HA extensions : 2000/10/03-15 : | 7 | Corrections, HA extensions : 2000/10/03-15 : |
| @@ -12,6 +12,8 @@ Corrections, HA extensions : 2000/10/03-15 : | |||
| 12 | - Jay Vosburgh <fubar at us dot ibm dot com> | 12 | - Jay Vosburgh <fubar at us dot ibm dot com> |
| 13 | 13 | ||
| 14 | Reorganized and updated Feb 2005 by Jay Vosburgh | 14 | Reorganized and updated Feb 2005 by Jay Vosburgh |
| 15 | Added Sysfs information: 2006/04/24 | ||
| 16 | - Mitch Williams <mitch.a.williams at intel.com> | ||
| 15 | 17 | ||
| 16 | Introduction | 18 | Introduction |
| 17 | ============ | 19 | ============ |
| @@ -38,61 +40,62 @@ Table of Contents | |||
| 38 | 2. Bonding Driver Options | 40 | 2. Bonding Driver Options |
| 39 | 41 | ||
| 40 | 3. Configuring Bonding Devices | 42 | 3. Configuring Bonding Devices |
| 41 | 3.1 Configuration with sysconfig support | 43 | 3.1 Configuration with Sysconfig Support |
| 42 | 3.1.1 Using DHCP with sysconfig | 44 | 3.1.1 Using DHCP with Sysconfig |
| 43 | 3.1.2 Configuring Multiple Bonds with sysconfig | 45 | 3.1.2 Configuring Multiple Bonds with Sysconfig |
| 44 | 3.2 Configuration with initscripts support | 46 | 3.2 Configuration with Initscripts Support |
| 45 | 3.2.1 Using DHCP with initscripts | 47 | 3.2.1 Using DHCP with Initscripts |
| 46 | 3.2.2 Configuring Multiple Bonds with initscripts | 48 | 3.2.2 Configuring Multiple Bonds with Initscripts |
| 47 | 3.3 Configuring Bonding Manually | 49 | 3.3 Configuring Bonding Manually with Ifenslave |
| 48 | 3.3.1 Configuring Multiple Bonds Manually | 50 | 3.3.1 Configuring Multiple Bonds Manually |
| 51 | 3.4 Configuring Bonding Manually via Sysfs | ||
| 49 | 52 | ||
| 50 | 5. Querying Bonding Configuration | 53 | 4. Querying Bonding Configuration |
| 51 | 5.1 Bonding Configuration | 54 | 4.1 Bonding Configuration |
| 52 | 5.2 Network Configuration | 55 | 4.2 Network Configuration |
| 53 | 56 | ||
| 54 | 6. Switch Configuration | 57 | 5. Switch Configuration |
| 55 | 58 | ||
| 56 | 7. 802.1q VLAN Support | 59 | 6. 802.1q VLAN Support |
| 57 | 60 | ||
| 58 | 8. Link Monitoring | 61 | 7. Link Monitoring |
| 59 | 8.1 ARP Monitor Operation | 62 | 7.1 ARP Monitor Operation |
| 60 | 8.2 Configuring Multiple ARP Targets | 63 | 7.2 Configuring Multiple ARP Targets |
| 61 | 8.3 MII Monitor Operation | 64 | 7.3 MII Monitor Operation |
| 62 | 65 | ||
| 63 | 9. Potential Trouble Sources | 66 | 8. Potential Trouble Sources |
| 64 | 9.1 Adventures in Routing | 67 | 8.1 Adventures in Routing |
| 65 | 9.2 Ethernet Device Renaming | 68 | 8.2 Ethernet Device Renaming |
| 66 | 9.3 Painfully Slow Or No Failed Link Detection By Miimon | 69 | 8.3 Painfully Slow Or No Failed Link Detection By Miimon |
| 67 | 70 | ||
| 68 | 10. SNMP agents | 71 | 9. SNMP agents |
| 69 | 72 | ||
| 70 | 11. Promiscuous mode | 73 | 10. Promiscuous mode |
| 71 | 74 | ||
| 72 | 12. Configuring Bonding for High Availability | 75 | 11. Configuring Bonding for High Availability |
| 73 | 12.1 High Availability in a Single Switch Topology | 76 | 11.1 High Availability in a Single Switch Topology |
| 74 | 12.2 High Availability in a Multiple Switch Topology | 77 | 11.2 High Availability in a Multiple Switch Topology |
| 75 | 12.2.1 HA Bonding Mode Selection for Multiple Switch Topology | 78 | 11.2.1 HA Bonding Mode Selection for Multiple Switch Topology |
| 76 | 12.2.2 HA Link Monitoring for Multiple Switch Topology | 79 | 11.2.2 HA Link Monitoring for Multiple Switch Topology |
| 77 | 80 | ||
| 78 | 13. Configuring Bonding for Maximum Throughput | 81 | 12. Configuring Bonding for Maximum Throughput |
| 79 | 13.1 Maximum Throughput in a Single Switch Topology | 82 | 12.1 Maximum Throughput in a Single Switch Topology |
| 80 | 13.1.1 MT Bonding Mode Selection for Single Switch Topology | 83 | 12.1.1 MT Bonding Mode Selection for Single Switch Topology |
| 81 | 13.1.2 MT Link Monitoring for Single Switch Topology | 84 | 12.1.2 MT Link Monitoring for Single Switch Topology |
| 82 | 13.2 Maximum Throughput in a Multiple Switch Topology | 85 | 12.2 Maximum Throughput in a Multiple Switch Topology |
| 83 | 13.2.1 MT Bonding Mode Selection for Multiple Switch Topology | 86 | 12.2.1 MT Bonding Mode Selection for Multiple Switch Topology |
| 84 | 13.2.2 MT Link Monitoring for Multiple Switch Topology | 87 | 12.2.2 MT Link Monitoring for Multiple Switch Topology |
| 85 | 88 | ||
| 86 | 14. Switch Behavior Issues | 89 | 13. Switch Behavior Issues |
| 87 | 14.1 Link Establishment and Failover Delays | 90 | 13.1 Link Establishment and Failover Delays |
| 88 | 14.2 Duplicated Incoming Packets | 91 | 13.2 Duplicated Incoming Packets |
| 89 | 92 | ||
| 90 | 15. Hardware Specific Considerations | 93 | 14. Hardware Specific Considerations |
| 91 | 15.1 IBM BladeCenter | 94 | 14.1 IBM BladeCenter |
| 92 | 95 | ||
| 93 | 16. Frequently Asked Questions | 96 | 15. Frequently Asked Questions |
| 94 | 97 | ||
| 95 | 17. Resources and Links | 98 | 16. Resources and Links |
| 96 | 99 | ||
| 97 | 100 | ||
| 98 | 1. Bonding Driver Installation | 101 | 1. Bonding Driver Installation |
| @@ -156,6 +159,9 @@ you're trying to build it for. Some distros (e.g., Red Hat from 7.1 | |||
| 156 | onwards) do not have /usr/include/linux symbolically linked to the | 159 | onwards) do not have /usr/include/linux symbolically linked to the |
| 157 | default kernel source include directory. | 160 | default kernel source include directory. |
| 158 | 161 | ||
| 162 | SECOND IMPORTANT NOTE: | ||
| 163 | If you plan to configure bonding using sysfs, you do not need | ||
| 164 | to use ifenslave. | ||
| 159 | 165 | ||
| 160 | 2. Bonding Driver Options | 166 | 2. Bonding Driver Options |
| 161 | ========================= | 167 | ========================= |
| @@ -270,7 +276,7 @@ mode | |||
| 270 | In bonding version 2.6.2 or later, when a failover | 276 | In bonding version 2.6.2 or later, when a failover |
| 271 | occurs in active-backup mode, bonding will issue one | 277 | occurs in active-backup mode, bonding will issue one |
| 272 | or more gratuitous ARPs on the newly active slave. | 278 | or more gratuitous ARPs on the newly active slave. |
| 273 | One gratutious ARP is issued for the bonding master | 279 | One gratuitous ARP is issued for the bonding master |
| 274 | interface and each VLAN interfaces configured above | 280 | interface and each VLAN interfaces configured above |
| 275 | it, provided that the interface has at least one IP | 281 | it, provided that the interface has at least one IP |
| 276 | address configured. Gratuitous ARPs issued for VLAN | 282 | address configured. Gratuitous ARPs issued for VLAN |
| @@ -377,7 +383,7 @@ mode | |||
| 377 | When a link is reconnected or a new slave joins the | 383 | When a link is reconnected or a new slave joins the |
| 378 | bond the receive traffic is redistributed among all | 384 | bond the receive traffic is redistributed among all |
| 379 | active slaves in the bond by initiating ARP Replies | 385 | active slaves in the bond by initiating ARP Replies |
| 380 | with the selected mac address to each of the | 386 | with the selected MAC address to each of the |
| 381 | clients. The updelay parameter (detailed below) must | 387 | clients. The updelay parameter (detailed below) must |
| 382 | be set to a value equal or greater than the switch's | 388 | be set to a value equal or greater than the switch's |
| 383 | forwarding delay so that the ARP Replies sent to the | 389 | forwarding delay so that the ARP Replies sent to the |
| @@ -498,11 +504,12 @@ not exist, and the layer2 policy is the only policy. | |||
| 498 | 3. Configuring Bonding Devices | 504 | 3. Configuring Bonding Devices |
| 499 | ============================== | 505 | ============================== |
| 500 | 506 | ||
| 501 | There are, essentially, two methods for configuring bonding: | 507 | You can configure bonding using either your distro's network |
| 502 | with support from the distro's network initialization scripts, and | 508 | initialization scripts, or manually using either ifenslave or the |
| 503 | without. Distros generally use one of two packages for the network | 509 | sysfs interface. Distros generally use one of two packages for the |
| 504 | initialization scripts: initscripts or sysconfig. Recent versions of | 510 | network initialization scripts: initscripts or sysconfig. Recent |
| 505 | these packages have support for bonding, while older versions do not. | 511 | versions of these packages have support for bonding, while older |
| 512 | versions do not. | ||
| 506 | 513 | ||
| 507 | We will first describe the options for configuring bonding for | 514 | We will first describe the options for configuring bonding for |
| 508 | distros using versions of initscripts and sysconfig with full or | 515 | distros using versions of initscripts and sysconfig with full or |
| @@ -530,7 +537,7 @@ $ grep ifenslave /sbin/ifup | |||
| 530 | If this returns any matches, then your initscripts or | 537 | If this returns any matches, then your initscripts or |
| 531 | sysconfig has support for bonding. | 538 | sysconfig has support for bonding. |
| 532 | 539 | ||
| 533 | 3.1 Configuration with sysconfig support | 540 | 3.1 Configuration with Sysconfig Support |
| 534 | ---------------------------------------- | 541 | ---------------------------------------- |
| 535 | 542 | ||
| 536 | This section applies to distros using a version of sysconfig | 543 | This section applies to distros using a version of sysconfig |
| @@ -538,7 +545,7 @@ with bonding support, for example, SuSE Linux Enterprise Server 9. | |||
| 538 | 545 | ||
| 539 | SuSE SLES 9's networking configuration system does support | 546 | SuSE SLES 9's networking configuration system does support |
| 540 | bonding, however, at this writing, the YaST system configuration | 547 | bonding, however, at this writing, the YaST system configuration |
| 541 | frontend does not provide any means to work with bonding devices. | 548 | front end does not provide any means to work with bonding devices. |
| 542 | Bonding devices can be managed by hand, however, as follows. | 549 | Bonding devices can be managed by hand, however, as follows. |
| 543 | 550 | ||
| 544 | First, if they have not already been configured, configure the | 551 | First, if they have not already been configured, configure the |
| @@ -660,7 +667,7 @@ format can be found in an example ifcfg template file: | |||
| 660 | Note that the template does not document the various BONDING_ | 667 | Note that the template does not document the various BONDING_ |
| 661 | settings described above, but does describe many of the other options. | 668 | settings described above, but does describe many of the other options. |
| 662 | 669 | ||
| 663 | 3.1.1 Using DHCP with sysconfig | 670 | 3.1.1 Using DHCP with Sysconfig |
| 664 | ------------------------------- | 671 | ------------------------------- |
| 665 | 672 | ||
| 666 | Under sysconfig, configuring a device with BOOTPROTO='dhcp' | 673 | Under sysconfig, configuring a device with BOOTPROTO='dhcp' |
| @@ -670,7 +677,7 @@ attempt to obtain the device address from DHCP prior to adding any of | |||
| 670 | the slave devices. Without active slaves, the DHCP requests are not | 677 | the slave devices. Without active slaves, the DHCP requests are not |
| 671 | sent to the network. | 678 | sent to the network. |
| 672 | 679 | ||
| 673 | 3.1.2 Configuring Multiple Bonds with sysconfig | 680 | 3.1.2 Configuring Multiple Bonds with Sysconfig |
| 674 | ----------------------------------------------- | 681 | ----------------------------------------------- |
| 675 | 682 | ||
| 676 | The sysconfig network initialization system is capable of | 683 | The sysconfig network initialization system is capable of |
| @@ -685,7 +692,7 @@ ifcfg-bondX files. | |||
| 685 | options in the ifcfg-bondX file, it is not necessary to add them to | 692 | options in the ifcfg-bondX file, it is not necessary to add them to |
| 686 | the system /etc/modules.conf or /etc/modprobe.conf configuration file. | 693 | the system /etc/modules.conf or /etc/modprobe.conf configuration file. |
| 687 | 694 | ||
| 688 | 3.2 Configuration with initscripts support | 695 | 3.2 Configuration with Initscripts Support |
| 689 | ------------------------------------------ | 696 | ------------------------------------------ |
| 690 | 697 | ||
| 691 | This section applies to distros using a version of initscripts | 698 | This section applies to distros using a version of initscripts |
| @@ -756,7 +763,7 @@ options for your configuration. | |||
| 756 | will restart the networking subsystem and your bond link should be now | 763 | will restart the networking subsystem and your bond link should be now |
| 757 | up and running. | 764 | up and running. |
| 758 | 765 | ||
| 759 | 3.2.1 Using DHCP with initscripts | 766 | 3.2.1 Using DHCP with Initscripts |
| 760 | --------------------------------- | 767 | --------------------------------- |
| 761 | 768 | ||
| 762 | Recent versions of initscripts (the version supplied with | 769 | Recent versions of initscripts (the version supplied with |
| @@ -768,7 +775,7 @@ above, except replace the line "BOOTPROTO=none" with "BOOTPROTO=dhcp" | |||
| 768 | and add a line consisting of "TYPE=Bonding". Note that the TYPE value | 775 | and add a line consisting of "TYPE=Bonding". Note that the TYPE value |
| 769 | is case sensitive. | 776 | is case sensitive. |
| 770 | 777 | ||
| 771 | 3.2.2 Configuring Multiple Bonds with initscripts | 778 | 3.2.2 Configuring Multiple Bonds with Initscripts |
| 772 | ------------------------------------------------- | 779 | ------------------------------------------------- |
| 773 | 780 | ||
| 774 | At this writing, the initscripts package does not directly | 781 | At this writing, the initscripts package does not directly |
| @@ -784,8 +791,8 @@ Fedora Core kernels, and has been seen on RHEL 4 as well. On kernels | |||
| 784 | exhibiting this problem, it will be impossible to configure multiple | 791 | exhibiting this problem, it will be impossible to configure multiple |
| 785 | bonds with differing parameters. | 792 | bonds with differing parameters. |
| 786 | 793 | ||
| 787 | 3.3 Configuring Bonding Manually | 794 | 3.3 Configuring Bonding Manually with Ifenslave |
| 788 | -------------------------------- | 795 | ----------------------------------------------- |
| 789 | 796 | ||
| 790 | This section applies to distros whose network initialization | 797 | This section applies to distros whose network initialization |
| 791 | scripts (the sysconfig or initscripts package) do not have specific | 798 | scripts (the sysconfig or initscripts package) do not have specific |
| @@ -889,11 +896,139 @@ install bond1 /sbin/modprobe --ignore-install bonding -o bond1 \ | |||
| 889 | This may be repeated any number of times, specifying a new and | 896 | This may be repeated any number of times, specifying a new and |
| 890 | unique name in place of bond1 for each subsequent instance. | 897 | unique name in place of bond1 for each subsequent instance. |
| 891 | 898 | ||
| 899 | 3.4 Configuring Bonding Manually via Sysfs | ||
| 900 | ------------------------------------------ | ||
| 901 | |||
| 902 | Starting with version 3.0, Channel Bonding may be configured | ||
| 903 | via the sysfs interface. This interface allows dynamic configuration | ||
| 904 | of all bonds in the system without unloading the module. It also | ||
| 905 | allows for adding and removing bonds at runtime. Ifenslave is no | ||
| 906 | longer required, though it is still supported. | ||
| 907 | |||
| 908 | Use of the sysfs interface allows you to use multiple bonds | ||
| 909 | with different configurations without having to reload the module. | ||
| 910 | It also allows you to use multiple, differently configured bonds when | ||
| 911 | bonding is compiled into the kernel. | ||
| 912 | |||
| 913 | You must have the sysfs filesystem mounted to configure | ||
| 914 | bonding this way. The examples in this document assume that you | ||
| 915 | are using the standard mount point for sysfs, e.g. /sys. If your | ||
| 916 | sysfs filesystem is mounted elsewhere, you will need to adjust the | ||
| 917 | example paths accordingly. | ||
| 918 | |||
| 919 | Creating and Destroying Bonds | ||
| 920 | ----------------------------- | ||
| 921 | To add a new bond foo: | ||
| 922 | # echo +foo > /sys/class/net/bonding_masters | ||
| 923 | |||
| 924 | To remove an existing bond bar: | ||
| 925 | # echo -bar > /sys/class/net/bonding_masters | ||
| 926 | |||
| 927 | To show all existing bonds: | ||
| 928 | # cat /sys/class/net/bonding_masters | ||
| 929 | |||
| 930 | NOTE: due to 4K size limitation of sysfs files, this list may be | ||
| 931 | truncated if you have more than a few hundred bonds. This is unlikely | ||
| 932 | to occur under normal operating conditions. | ||
| 933 | |||
| 934 | Adding and Removing Slaves | ||
| 935 | -------------------------- | ||
| 936 | Interfaces may be enslaved to a bond using the file | ||
| 937 | /sys/class/net/<bond>/bonding/slaves. The semantics for this file | ||
| 938 | are the same as for the bonding_masters file. | ||
| 939 | |||
| 940 | To enslave interface eth0 to bond bond0: | ||
| 941 | # ifconfig bond0 up | ||
| 942 | # echo +eth0 > /sys/class/net/bond0/bonding/slaves | ||
| 943 | |||
| 944 | To free slave eth0 from bond bond0: | ||
| 945 | # echo -eth0 > /sys/class/net/bond0/bonding/slaves | ||
| 946 | |||
| 947 | NOTE: The bond must be up before slaves can be added. All | ||
| 948 | slaves are freed when the interface is brought down. | ||
| 949 | |||
| 950 | When an interface is enslaved to a bond, symlinks between the | ||
| 951 | two are created in the sysfs filesystem. In this case, you would get | ||
| 952 | /sys/class/net/bond0/slave_eth0 pointing to /sys/class/net/eth0, and | ||
| 953 | /sys/class/net/eth0/master pointing to /sys/class/net/bond0. | ||
| 954 | |||
| 955 | This means that you can tell quickly whether or not an | ||
| 956 | interface is enslaved by looking for the master symlink. Thus: | ||
| 957 | # echo -eth0 > /sys/class/net/eth0/master/bonding/slaves | ||
| 958 | will free eth0 from whatever bond it is enslaved to, regardless of | ||
| 959 | the name of the bond interface. | ||
| 960 | |||
| 961 | Changing a Bond's Configuration | ||
| 962 | ------------------------------- | ||
| 963 | Each bond may be configured individually by manipulating the | ||
| 964 | files located in /sys/class/net/<bond name>/bonding | ||
| 965 | |||
| 966 | The names of these files correspond directly with the command- | ||
| 967 | line parameters described elsewhere in in this file, and, with the | ||
| 968 | exception of arp_ip_target, they accept the same values. To see the | ||
| 969 | current setting, simply cat the appropriate file. | ||
| 970 | |||
| 971 | A few examples will be given here; for specific usage | ||
| 972 | guidelines for each parameter, see the appropriate section in this | ||
| 973 | document. | ||
| 974 | |||
| 975 | To configure bond0 for balance-alb mode: | ||
| 976 | # ifconfig bond0 down | ||
| 977 | # echo 6 > /sys/class/net/bond0/bonding/mode | ||
| 978 | - or - | ||
| 979 | # echo balance-alb > /sys/class/net/bond0/bonding/mode | ||
| 980 | NOTE: The bond interface must be down before the mode can be | ||
| 981 | changed. | ||
| 982 | |||
| 983 | To enable MII monitoring on bond0 with a 1 second interval: | ||
| 984 | # echo 1000 > /sys/class/net/bond0/bonding/miimon | ||
| 985 | NOTE: If ARP monitoring is enabled, it will disabled when MII | ||
| 986 | monitoring is enabled, and vice-versa. | ||
| 987 | |||
| 988 | To add ARP targets: | ||
| 989 | # echo +192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target | ||
| 990 | # echo +192.168.0.101 > /sys/class/net/bond0/bonding/arp_ip_target | ||
| 991 | NOTE: up to 10 target addresses may be specified. | ||
| 992 | |||
| 993 | To remove an ARP target: | ||
| 994 | # echo -192.168.0.100 > /sys/class/net/bond0/bonding/arp_ip_target | ||
| 995 | |||
| 996 | Example Configuration | ||
| 997 | --------------------- | ||
| 998 | We begin with the same example that is shown in section 3.3, | ||
| 999 | executed with sysfs, and without using ifenslave. | ||
| 1000 | |||
| 1001 | To make a simple bond of two e100 devices (presumed to be eth0 | ||
| 1002 | and eth1), and have it persist across reboots, edit the appropriate | ||
| 1003 | file (/etc/init.d/boot.local or /etc/rc.d/rc.local), and add the | ||
| 1004 | following: | ||
| 1005 | |||
| 1006 | modprobe bonding | ||
| 1007 | modprobe e100 | ||
| 1008 | echo balance-alb > /sys/class/net/bond0/bonding/mode | ||
| 1009 | ifconfig bond0 192.168.1.1 netmask 255.255.255.0 up | ||
| 1010 | echo 100 > /sys/class/net/bond0/bonding/miimon | ||
| 1011 | echo +eth0 > /sys/class/net/bond0/bonding/slaves | ||
| 1012 | echo +eth1 > /sys/class/net/bond0/bonding/slaves | ||
| 1013 | |||
| 1014 | To add a second bond, with two e1000 interfaces in | ||
| 1015 | active-backup mode, using ARP monitoring, add the following lines to | ||
| 1016 | your init script: | ||
| 1017 | |||
| 1018 | modprobe e1000 | ||
| 1019 | echo +bond1 > /sys/class/net/bonding_masters | ||
| 1020 | echo active-backup > /sys/class/net/bond1/bonding/mode | ||
| 1021 | ifconfig bond1 192.168.2.1 netmask 255.255.255.0 up | ||
| 1022 | echo +192.168.2.100 /sys/class/net/bond1/bonding/arp_ip_target | ||
| 1023 | echo 2000 > /sys/class/net/bond1/bonding/arp_interval | ||
| 1024 | echo +eth2 > /sys/class/net/bond1/bonding/slaves | ||
| 1025 | echo +eth3 > /sys/class/net/bond1/bonding/slaves | ||
| 1026 | |||
| 892 | 1027 | ||
| 893 | 5. Querying Bonding Configuration | 1028 | 4. Querying Bonding Configuration |
| 894 | ================================= | 1029 | ================================= |
| 895 | 1030 | ||
| 896 | 5.1 Bonding Configuration | 1031 | 4.1 Bonding Configuration |
| 897 | ------------------------- | 1032 | ------------------------- |
| 898 | 1033 | ||
| 899 | Each bonding device has a read-only file residing in the | 1034 | Each bonding device has a read-only file residing in the |
| @@ -923,7 +1058,7 @@ generally as follows: | |||
| 923 | The precise format and contents will change depending upon the | 1058 | The precise format and contents will change depending upon the |
| 924 | bonding configuration, state, and version of the bonding driver. | 1059 | bonding configuration, state, and version of the bonding driver. |
| 925 | 1060 | ||
| 926 | 5.2 Network configuration | 1061 | 4.2 Network configuration |
| 927 | ------------------------- | 1062 | ------------------------- |
| 928 | 1063 | ||
| 929 | The network configuration can be inspected using the ifconfig | 1064 | The network configuration can be inspected using the ifconfig |
| @@ -958,7 +1093,7 @@ eth1 Link encap:Ethernet HWaddr 00:C0:F0:1F:37:B4 | |||
| 958 | collisions:0 txqueuelen:100 | 1093 | collisions:0 txqueuelen:100 |
| 959 | Interrupt:9 Base address:0x1400 | 1094 | Interrupt:9 Base address:0x1400 |
| 960 | 1095 | ||
| 961 | 6. Switch Configuration | 1096 | 5. Switch Configuration |
| 962 | ======================= | 1097 | ======================= |
| 963 | 1098 | ||
| 964 | For this section, "switch" refers to whatever system the | 1099 | For this section, "switch" refers to whatever system the |
| @@ -991,7 +1126,7 @@ transmit policy for an EtherChannel group; all three will interoperate | |||
| 991 | with another EtherChannel group. | 1126 | with another EtherChannel group. |
| 992 | 1127 | ||
| 993 | 1128 | ||
| 994 | 7. 802.1q VLAN Support | 1129 | 6. 802.1q VLAN Support |
| 995 | ====================== | 1130 | ====================== |
| 996 | 1131 | ||
| 997 | It is possible to configure VLAN devices over a bond interface | 1132 | It is possible to configure VLAN devices over a bond interface |
| @@ -1042,7 +1177,7 @@ underlying device -- i.e. the bonding interface -- to promiscuous | |||
| 1042 | mode, which might not be what you want. | 1177 | mode, which might not be what you want. |
| 1043 | 1178 | ||
| 1044 | 1179 | ||
| 1045 | 8. Link Monitoring | 1180 | 7. Link Monitoring |
| 1046 | ================== | 1181 | ================== |
| 1047 | 1182 | ||
| 1048 | The bonding driver at present supports two schemes for | 1183 | The bonding driver at present supports two schemes for |
| @@ -1053,7 +1188,7 @@ monitor. | |||
| 1053 | bonding driver itself, it is not possible to enable both ARP and MII | 1188 | bonding driver itself, it is not possible to enable both ARP and MII |
| 1054 | monitoring simultaneously. | 1189 | monitoring simultaneously. |
| 1055 | 1190 | ||
| 1056 | 8.1 ARP Monitor Operation | 1191 | 7.1 ARP Monitor Operation |
| 1057 | ------------------------- | 1192 | ------------------------- |
| 1058 | 1193 | ||
| 1059 | The ARP monitor operates as its name suggests: it sends ARP | 1194 | The ARP monitor operates as its name suggests: it sends ARP |
| @@ -1071,7 +1206,7 @@ those slaves will stay down. If networking monitoring (tcpdump, etc) | |||
| 1071 | shows the ARP requests and replies on the network, then it may be that | 1206 | shows the ARP requests and replies on the network, then it may be that |
| 1072 | your device driver is not updating last_rx and trans_start. | 1207 | your device driver is not updating last_rx and trans_start. |
| 1073 | 1208 | ||
| 1074 | 8.2 Configuring Multiple ARP Targets | 1209 | 7.2 Configuring Multiple ARP Targets |
| 1075 | ------------------------------------ | 1210 | ------------------------------------ |
| 1076 | 1211 | ||
| 1077 | While ARP monitoring can be done with just one target, it can | 1212 | While ARP monitoring can be done with just one target, it can |
| @@ -1094,7 +1229,7 @@ alias bond0 bonding | |||
| 1094 | options bond0 arp_interval=60 arp_ip_target=192.168.0.100 | 1229 | options bond0 arp_interval=60 arp_ip_target=192.168.0.100 |
| 1095 | 1230 | ||
| 1096 | 1231 | ||
| 1097 | 8.3 MII Monitor Operation | 1232 | 7.3 MII Monitor Operation |
| 1098 | ------------------------- | 1233 | ------------------------- |
| 1099 | 1234 | ||
| 1100 | The MII monitor monitors only the carrier state of the local | 1235 | The MII monitor monitors only the carrier state of the local |
| @@ -1120,14 +1255,14 @@ does not support or had some error in processing both the MII register | |||
| 1120 | and ethtool requests), then the MII monitor will assume the link is | 1255 | and ethtool requests), then the MII monitor will assume the link is |
| 1121 | up. | 1256 | up. |
| 1122 | 1257 | ||
| 1123 | 9. Potential Sources of Trouble | 1258 | 8. Potential Sources of Trouble |
| 1124 | =============================== | 1259 | =============================== |
| 1125 | 1260 | ||
| 1126 | 9.1 Adventures in Routing | 1261 | 8.1 Adventures in Routing |
| 1127 | ------------------------- | 1262 | ------------------------- |
| 1128 | 1263 | ||
| 1129 | When bonding is configured, it is important that the slave | 1264 | When bonding is configured, it is important that the slave |
| 1130 | devices not have routes that supercede routes of the master (or, | 1265 | devices not have routes that supersede routes of the master (or, |
| 1131 | generally, not have routes at all). For example, suppose the bonding | 1266 | generally, not have routes at all). For example, suppose the bonding |
| 1132 | device bond0 has two slaves, eth0 and eth1, and the routing table is | 1267 | device bond0 has two slaves, eth0 and eth1, and the routing table is |
| 1133 | as follows: | 1268 | as follows: |
| @@ -1154,11 +1289,11 @@ by the state of the routing table. | |||
| 1154 | 1289 | ||
| 1155 | The solution here is simply to insure that slaves do not have | 1290 | The solution here is simply to insure that slaves do not have |
| 1156 | routes of their own, and if for some reason they must, those routes do | 1291 | routes of their own, and if for some reason they must, those routes do |
| 1157 | not supercede routes of their master. This should generally be the | 1292 | not supersede routes of their master. This should generally be the |
| 1158 | case, but unusual configurations or errant manual or automatic static | 1293 | case, but unusual configurations or errant manual or automatic static |
| 1159 | route additions may cause trouble. | 1294 | route additions may cause trouble. |
| 1160 | 1295 | ||
| 1161 | 9.2 Ethernet Device Renaming | 1296 | 8.2 Ethernet Device Renaming |
| 1162 | ---------------------------- | 1297 | ---------------------------- |
| 1163 | 1298 | ||
| 1164 | On systems with network configuration scripts that do not | 1299 | On systems with network configuration scripts that do not |
| @@ -1207,7 +1342,7 @@ modprobe with --ignore-install to cause the normal action to then take | |||
| 1207 | place. Full documentation on this can be found in the modprobe.conf | 1342 | place. Full documentation on this can be found in the modprobe.conf |
| 1208 | and modprobe manual pages. | 1343 | and modprobe manual pages. |
| 1209 | 1344 | ||
| 1210 | 9.3. Painfully Slow Or No Failed Link Detection By Miimon | 1345 | 8.3. Painfully Slow Or No Failed Link Detection By Miimon |
| 1211 | --------------------------------------------------------- | 1346 | --------------------------------------------------------- |
| 1212 | 1347 | ||
| 1213 | By default, bonding enables the use_carrier option, which | 1348 | By default, bonding enables the use_carrier option, which |
| @@ -1235,7 +1370,7 @@ carrier state. It has no way to determine the state of devices on or | |||
| 1235 | beyond other ports of a switch, or if a switch is refusing to pass | 1370 | beyond other ports of a switch, or if a switch is refusing to pass |
| 1236 | traffic while still maintaining carrier on. | 1371 | traffic while still maintaining carrier on. |
| 1237 | 1372 | ||
| 1238 | 10. SNMP agents | 1373 | 9. SNMP agents |
| 1239 | =============== | 1374 | =============== |
| 1240 | 1375 | ||
| 1241 | If running SNMP agents, the bonding driver should be loaded | 1376 | If running SNMP agents, the bonding driver should be loaded |
| @@ -1281,7 +1416,7 @@ ifDescr, the association between the IP address and IfIndex remains | |||
| 1281 | and SNMP functions such as Interface_Scan_Next will report that | 1416 | and SNMP functions such as Interface_Scan_Next will report that |
| 1282 | association. | 1417 | association. |
| 1283 | 1418 | ||
| 1284 | 11. Promiscuous mode | 1419 | 10. Promiscuous mode |
| 1285 | ==================== | 1420 | ==================== |
| 1286 | 1421 | ||
| 1287 | When running network monitoring tools, e.g., tcpdump, it is | 1422 | When running network monitoring tools, e.g., tcpdump, it is |
| @@ -1308,7 +1443,7 @@ sending to peers that are unassigned or if the load is unbalanced. | |||
| 1308 | the active slave changes (e.g., due to a link failure), the | 1443 | the active slave changes (e.g., due to a link failure), the |
| 1309 | promiscuous setting will be propagated to the new active slave. | 1444 | promiscuous setting will be propagated to the new active slave. |
| 1310 | 1445 | ||
| 1311 | 12. Configuring Bonding for High Availability | 1446 | 11. Configuring Bonding for High Availability |
| 1312 | ============================================= | 1447 | ============================================= |
| 1313 | 1448 | ||
| 1314 | High Availability refers to configurations that provide | 1449 | High Availability refers to configurations that provide |
| @@ -1318,7 +1453,7 @@ goal is to provide the maximum availability of network connectivity | |||
| 1318 | (i.e., the network always works), even though other configurations | 1453 | (i.e., the network always works), even though other configurations |
| 1319 | could provide higher throughput. | 1454 | could provide higher throughput. |
| 1320 | 1455 | ||
| 1321 | 12.1 High Availability in a Single Switch Topology | 1456 | 11.1 High Availability in a Single Switch Topology |
| 1322 | -------------------------------------------------- | 1457 | -------------------------------------------------- |
| 1323 | 1458 | ||
| 1324 | If two hosts (or a host and a single switch) are directly | 1459 | If two hosts (or a host and a single switch) are directly |
| @@ -1332,7 +1467,7 @@ the load will be rebalanced across the remaining devices. | |||
| 1332 | See Section 13, "Configuring Bonding for Maximum Throughput" | 1467 | See Section 13, "Configuring Bonding for Maximum Throughput" |
| 1333 | for information on configuring bonding with one peer device. | 1468 | for information on configuring bonding with one peer device. |
| 1334 | 1469 | ||
| 1335 | 12.2 High Availability in a Multiple Switch Topology | 1470 | 11.2 High Availability in a Multiple Switch Topology |
| 1336 | ---------------------------------------------------- | 1471 | ---------------------------------------------------- |
| 1337 | 1472 | ||
| 1338 | With multiple switches, the configuration of bonding and the | 1473 | With multiple switches, the configuration of bonding and the |
| @@ -1359,7 +1494,7 @@ switches (ISL, or inter switch link), and multiple ports connecting to | |||
| 1359 | the outside world ("port3" on each switch). There is no technical | 1494 | the outside world ("port3" on each switch). There is no technical |
| 1360 | reason that this could not be extended to a third switch. | 1495 | reason that this could not be extended to a third switch. |
| 1361 | 1496 | ||
| 1362 | 12.2.1 HA Bonding Mode Selection for Multiple Switch Topology | 1497 | 11.2.1 HA Bonding Mode Selection for Multiple Switch Topology |
| 1363 | ------------------------------------------------------------- | 1498 | ------------------------------------------------------------- |
| 1364 | 1499 | ||
| 1365 | In a topology such as the example above, the active-backup and | 1500 | In a topology such as the example above, the active-backup and |
| @@ -1381,7 +1516,7 @@ broadcast: This mode is really a special purpose mode, and is suitable | |||
| 1381 | necessary for some specific one-way traffic to reach both | 1516 | necessary for some specific one-way traffic to reach both |
| 1382 | independent networks, then the broadcast mode may be suitable. | 1517 | independent networks, then the broadcast mode may be suitable. |
| 1383 | 1518 | ||
| 1384 | 12.2.2 HA Link Monitoring Selection for Multiple Switch Topology | 1519 | 11.2.2 HA Link Monitoring Selection for Multiple Switch Topology |
| 1385 | ---------------------------------------------------------------- | 1520 | ---------------------------------------------------------------- |
| 1386 | 1521 | ||
| 1387 | The choice of link monitoring ultimately depends upon your | 1522 | The choice of link monitoring ultimately depends upon your |
| @@ -1402,10 +1537,10 @@ regardless of which switch is active, the ARP monitor has a suitable | |||
| 1402 | target to query. | 1537 | target to query. |
| 1403 | 1538 | ||
| 1404 | 1539 | ||
| 1405 | 13. Configuring Bonding for Maximum Throughput | 1540 | 12. Configuring Bonding for Maximum Throughput |
| 1406 | ============================================== | 1541 | ============================================== |
| 1407 | 1542 | ||
| 1408 | 13.1 Maximizing Throughput in a Single Switch Topology | 1543 | 12.1 Maximizing Throughput in a Single Switch Topology |
| 1409 | ------------------------------------------------------ | 1544 | ------------------------------------------------------ |
| 1410 | 1545 | ||
| 1411 | In a single switch configuration, the best method to maximize | 1546 | In a single switch configuration, the best method to maximize |
| @@ -1476,7 +1611,7 @@ destination to make load balancing decisions. The behavior of each | |||
| 1476 | mode is described below. | 1611 | mode is described below. |
| 1477 | 1612 | ||
| 1478 | 1613 | ||
| 1479 | 13.1.1 MT Bonding Mode Selection for Single Switch Topology | 1614 | 12.1.1 MT Bonding Mode Selection for Single Switch Topology |
| 1480 | ----------------------------------------------------------- | 1615 | ----------------------------------------------------------- |
| 1481 | 1616 | ||
| 1482 | This configuration is the easiest to set up and to understand, | 1617 | This configuration is the easiest to set up and to understand, |
| @@ -1607,7 +1742,7 @@ balance-alb: This mode is everything that balance-tlb is, and more. | |||
| 1607 | device driver must support changing the hardware address while | 1742 | device driver must support changing the hardware address while |
| 1608 | the device is open. | 1743 | the device is open. |
| 1609 | 1744 | ||
| 1610 | 13.1.2 MT Link Monitoring for Single Switch Topology | 1745 | 12.1.2 MT Link Monitoring for Single Switch Topology |
| 1611 | ---------------------------------------------------- | 1746 | ---------------------------------------------------- |
| 1612 | 1747 | ||
| 1613 | The choice of link monitoring may largely depend upon which | 1748 | The choice of link monitoring may largely depend upon which |
| @@ -1616,7 +1751,7 @@ support the use of the ARP monitor, and are thus restricted to using | |||
| 1616 | the MII monitor (which does not provide as high a level of end to end | 1751 | the MII monitor (which does not provide as high a level of end to end |
| 1617 | assurance as the ARP monitor). | 1752 | assurance as the ARP monitor). |
| 1618 | 1753 | ||
| 1619 | 13.2 Maximum Throughput in a Multiple Switch Topology | 1754 | 12.2 Maximum Throughput in a Multiple Switch Topology |
| 1620 | ----------------------------------------------------- | 1755 | ----------------------------------------------------- |
| 1621 | 1756 | ||
| 1622 | Multiple switches may be utilized to optimize for throughput | 1757 | Multiple switches may be utilized to optimize for throughput |
| @@ -1651,7 +1786,7 @@ a single 72 port switch. | |||
| 1651 | can be equipped with an additional network device connected to an | 1786 | can be equipped with an additional network device connected to an |
| 1652 | external network; this host then additionally acts as a gateway. | 1787 | external network; this host then additionally acts as a gateway. |
| 1653 | 1788 | ||
| 1654 | 13.2.1 MT Bonding Mode Selection for Multiple Switch Topology | 1789 | 12.2.1 MT Bonding Mode Selection for Multiple Switch Topology |
| 1655 | ------------------------------------------------------------- | 1790 | ------------------------------------------------------------- |
| 1656 | 1791 | ||
| 1657 | In actual practice, the bonding mode typically employed in | 1792 | In actual practice, the bonding mode typically employed in |
| @@ -1664,7 +1799,7 @@ packets has arrived). When employed in this fashion, the balance-rr | |||
| 1664 | mode allows individual connections between two hosts to effectively | 1799 | mode allows individual connections between two hosts to effectively |
| 1665 | utilize greater than one interface's bandwidth. | 1800 | utilize greater than one interface's bandwidth. |
| 1666 | 1801 | ||
| 1667 | 13.2.2 MT Link Monitoring for Multiple Switch Topology | 1802 | 12.2.2 MT Link Monitoring for Multiple Switch Topology |
| 1668 | ------------------------------------------------------ | 1803 | ------------------------------------------------------ |
| 1669 | 1804 | ||
| 1670 | Again, in actual practice, the MII monitor is most often used | 1805 | Again, in actual practice, the MII monitor is most often used |
| @@ -1674,10 +1809,10 @@ advantages over the MII monitor are mitigated by the volume of probes | |||
| 1674 | needed as the number of systems involved grows (remember that each | 1809 | needed as the number of systems involved grows (remember that each |
| 1675 | host in the network is configured with bonding). | 1810 | host in the network is configured with bonding). |
| 1676 | 1811 | ||
| 1677 | 14. Switch Behavior Issues | 1812 | 13. Switch Behavior Issues |
| 1678 | ========================== | 1813 | ========================== |
| 1679 | 1814 | ||
| 1680 | 14.1 Link Establishment and Failover Delays | 1815 | 13.1 Link Establishment and Failover Delays |
| 1681 | ------------------------------------------- | 1816 | ------------------------------------------- |
| 1682 | 1817 | ||
| 1683 | Some switches exhibit undesirable behavior with regard to the | 1818 | Some switches exhibit undesirable behavior with regard to the |
| @@ -1712,7 +1847,7 @@ 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. | 1847 | to not activate a backup interface immediately after a link goes down. |
| 1713 | Failover may be delayed via the downdelay bonding module option. | 1848 | Failover may be delayed via the downdelay bonding module option. |
| 1714 | 1849 | ||
| 1715 | 14.2 Duplicated Incoming Packets | 1850 | 13.2 Duplicated Incoming Packets |
| 1716 | -------------------------------- | 1851 | -------------------------------- |
| 1717 | 1852 | ||
| 1718 | It is not uncommon to observe a short burst of duplicated | 1853 | It is not uncommon to observe a short burst of duplicated |
| @@ -1751,14 +1886,14 @@ behavior, it can be induced by clearing the MAC forwarding table (on | |||
| 1751 | most Cisco switches, the privileged command "clear mac address-table | 1886 | most Cisco switches, the privileged command "clear mac address-table |
| 1752 | dynamic" will accomplish this). | 1887 | dynamic" will accomplish this). |
| 1753 | 1888 | ||
| 1754 | 15. Hardware Specific Considerations | 1889 | 14. Hardware Specific Considerations |
| 1755 | ==================================== | 1890 | ==================================== |
| 1756 | 1891 | ||
| 1757 | This section contains additional information for configuring | 1892 | This section contains additional information for configuring |
| 1758 | bonding on specific hardware platforms, or for interfacing bonding | 1893 | bonding on specific hardware platforms, or for interfacing bonding |
| 1759 | with particular switches or other devices. | 1894 | with particular switches or other devices. |
| 1760 | 1895 | ||
| 1761 | 15.1 IBM BladeCenter | 1896 | 14.1 IBM BladeCenter |
| 1762 | -------------------- | 1897 | -------------------- |
| 1763 | 1898 | ||
| 1764 | This applies to the JS20 and similar systems. | 1899 | This applies to the JS20 and similar systems. |
| @@ -1861,7 +1996,7 @@ bonding driver. | |||
| 1861 | avoid fail-over delay issues when using bonding. | 1996 | avoid fail-over delay issues when using bonding. |
| 1862 | 1997 | ||
| 1863 | 1998 | ||
| 1864 | 16. Frequently Asked Questions | 1999 | 15. Frequently Asked Questions |
| 1865 | ============================== | 2000 | ============================== |
| 1866 | 2001 | ||
| 1867 | 1. Is it SMP safe? | 2002 | 1. Is it SMP safe? |
| @@ -1925,7 +2060,7 @@ not have special switch requirements, but do need device drivers that | |||
| 1925 | support specific features (described in the appropriate section under | 2060 | support specific features (described in the appropriate section under |
| 1926 | module parameters, above). | 2061 | module parameters, above). |
| 1927 | 2062 | ||
| 1928 | In 802.3ad mode, it works with with systems that support IEEE | 2063 | In 802.3ad mode, it works with systems that support IEEE |
| 1929 | 802.3ad Dynamic Link Aggregation. Most managed and many unmanaged | 2064 | 802.3ad Dynamic Link Aggregation. Most managed and many unmanaged |
| 1930 | switches currently available support 802.3ad. | 2065 | switches currently available support 802.3ad. |
| 1931 | 2066 | ||
