Product SiteDocumentation Site

Chapter 4. Configure Network Bonding

4.1. Configure Network Bonding Using NetworkManager
4.1.1. Understanding the Default Behavior of Master and Slave Interfaces
4.1.2. Establishing a Bond Connection
4.2. Using the Command Line Interface (CLI)
4.2.1. Check if Bonding Kernel Module is Installed
4.2.2. Create a Channel Bonding Interface
4.2.3. Creating MASTER and SLAVE Interfaces
4.3. Using the NetworkManager Command Line Tool, nmcli
4.4. Additional Resources
4.4.1. Installed Documentation
4.4.2. Installable Documentation
4.4.3. Online Documentation
Fedora allows administrators to bind multiple network interfaces together into a single, bonded, channel. Channel bonding enables two or more network interfaces to act as one, simultaneously increasing the bandwidth and providing redundancy.

4.1. Configure Network Bonding Using NetworkManager

4.1.1. Understanding the Default Behavior of Master and Slave Interfaces

When controlling bonded slave interfaces using NetworkManager, and especially when fault finding, keep the following in mind:
  1. Starting the master interface does not automatically start the slave interfaces.
  2. Starting a slave interface always starts the master interface.
  3. Stopping the master interface also stops the slave interfaces.
  4. A master without slaves can start static IP connections.
  5. A master without slaves waits for slaves when starting DHCP connections.
  6. A master with a DHCP connection waiting for slaves completes when a slave with a carrier is added.
  7. A master with a DHCP connection waiting for slaves continues waiting when a slave without a carrier is added.

4.1.2. Establishing a Bond Connection

You can use the GNOME control-center utility to direct NetworkManager to create a Bond from two or more Wired or InfiniBand connections. It is not necessary to create the connections to be bonded first. They can be configured as part of the process to configure the bond. You must have the MAC addresses of the interfaces available in order to complete the configuration process.
Procedure 4.1. Adding a New Bond Connection
You can configure a Bond connection by opening the Network window, clicking the plus symbol, and selecting Bond from the list.
  1. Press the Super key to enter the Activities Overview, type control network and then press Enter. The Network settings tool appears.
  2. Click the plus symbol to open the selection list. Select Bond. The Editing Bond Connection 1 window appears.
  3. On the Bond tab, click Add and select the type of interface you want to use with the bond connection. Click the Create button. Note that the dialog to select the slave type only comes up when you create the first slave; after that, it will automatically use that same type for all further slaves.
  4. The Editing bond0 slave 1 window appears. Fill in the MAC address of the first interface to be bonded. Click the Save button.
  5. The name of the bonded slave appears in the Bonded connections window. Click the Add button to add further slave connections.
  6. Review and confirm the settings and then click the Save button.
  7. Edit the bond-specific settings by referring to the section called “Configuring the Bond Tab” below.
Procedure 4.2. Editing an Existing Bond Connection
Follow these steps to edit an existing bond connection.
  1. Press the Super key to enter the Activities Overview, type control network and then press Enter. The Network settings tool appears.
  2. Select the connection you wish to edit and click the Options button.
  3. Select the General tab.
  4. Configure the connection name, auto-connect behavior, and availability settings.
    Five settings in the Editing dialog are common to all connection types, see the General tab:
    • Connection name — Enter a descriptive name for your network connection. This name will be used to list this connection in the menu of the Network window.
    • Automatically connect to this network when it is available — Select this box if you want NetworkManager to auto-connect to this connection when it is available. See Section 2.2.3, “Connecting to a Network Automatically” for more information.
    • All users may connect to this network — Select this box to create a connection available to all users on the system. Changing this setting may require root privileges. See Section 2.2.4, “System-wide and Private Connection Profiles” for details. To prevent unexpected behavior during installation, ensure that this check box remains selected for any network interface that you configure.
    • Automatically connect to VPN when using this connection — Select this box if you want NetworkManager to auto-connect to a VPN connection when it is available. Select the VPN from the dropdown menu.
    • Firewall Zone — Select the firewall zone from the dropdown menu.
  5. Edit the bond-specific settings by referring to the section called “Configuring the Bond Tab” below.

Saving Your New (or Modified) Connection and Making Further Configurations

Once you have finished editing your bond connection, click the Save button and NetworkManager will immediately save your customized configuration. Given a correct configuration, you can connect to your new or customized connection by selecting it from the network Notification Area applet. See Section 2.2.1, “Connecting to a Network Using a GUI” for information on using your new or altered connection.
You can further configure an existing connection by selecting it in the Network window and clicking Options to return to the Editing dialog.
Then, to configure:

Configuring the Bond Tab

If you have already added a new bond connection (refer to Procedure 4.1, “Adding a New Bond Connection” for instructions), you can edit the Bond tab to set the load sharing mode and the type of link monitoring to use to detect failures of a slave connection.
Mode
The mode that is used to share traffic over the slave connections which make up the bond. The default is Round-robin. Other load sharing modes, such as 802.3ad, can be selected by means of the drop-down list.
Link Monitoring
The method of monitoring the slaves ability to carry network traffic.
The following modes of load sharing are selectable from the Mode drop-down list:
Round-robin
Sets a round-robin policy for fault tolerance and load balancing. Transmissions are received and sent out sequentially on each bonded slave interface beginning with the first one available.
Active backup
Sets an active-backup policy for fault tolerance. Transmissions are received and sent out via the first available bonded slave interface. Another bonded slave interface is only used if the active bonded slave interface fails. Note that this is the only mode available for bonds of InfiniBand devices.
XOR
Sets an XOR (exclusive-or) policy for fault tolerance and load balancing. Using this method, the interface matches up the incoming request's MAC address with the MAC address for one of the slave NICs. Once this link is established, transmissions are sent out sequentially beginning with the first available interface.
Broadcast
Sets a broadcast policy for fault tolerance. All transmissions are sent on all slave interfaces.
802.3ad
Sets an IEEE 802.3ad dynamic link aggregation policy. Creates aggregation groups that share the same speed and duplex settings. Transmits and receives on all slaves in the active aggregator. Requires a network switch that is 802.3ad compliant.
Adaptive transmit load balancing
Sets an adaptive Transmit Load Balancing (TLB) policy for fault tolerance and load balancing. The outgoing traffic is distributed according to the current load on each slave interface. Incoming traffic is received by the current slave. If the receiving slave fails, another slave takes over the MAC address of the failed slave.
Active Load Balancing
Sets an Active Load Balancing (ALB) policy for fault tolerance and load balancing. Includes transmit and receive load balancing for IPv4 traffic. Receive load balancing is achieved through ARP negotiation.
The following types of link monitoring can be selected from the Link Monitoring drop-down list. It is a good idea to test which channel bonding module parameters work best for your bonded interfaces.
MII (Media Independent Interface)
The state of the carrier wave of the interface is monitored. This can be done by querying the driver, by querying MII registers directly, or by using ethtool to query the device. Three options are available:
Monitoring Frequency
The time interval, in milliseconds, between querying the driver or MII registers.
Link up delay
The time in milliseconds to wait before attempting to use a link that has been reported as up. This delay can be used if some gratuitous ARP requests are lost in the period immediately following the link being reported as up. This can happen during switch initialization for example.
Link down delay
The time in milliseconds to wait before changing to another link when a previously active link has been reported as down. This delay can be used if an attached switch takes a relatively long time to change to backup mode.
ARP
The address resolution protocol (ARP) is used to probe one or more peers to determine how well the link layer connections are working. It is dependent on the device driver providing the transmit start time and the last receive time. Two options are available:
Monitoring Frequency
The time interval, in milliseconds, between sending ARP requests.
ARP targets
A comma separated list of IP addresses to send ARP requests to.