Repository :
http://git.fedorahosted.org/cgit/docs/networking-guide.git
On branch : master
---------------------------------------------------------------
commit 722ea9a3a20763ae6268febced982647c3c36364
Author: Stephen Wadeley <swadeley(a)redhat.com>
Date: Sat Jul 26 12:36:58 2014 +0200
Bonding: Major update to chapter
---------------------------------------------------------------
en-US/Configure_Network_Bonding.xml | 83 ++++++++++++++++++-----------------
1 files changed, 42 insertions(+), 41 deletions(-)
diff --git a/en-US/Configure_Network_Bonding.xml b/en-US/Configure_Network_Bonding.xml
index 525381d..bf00546 100644
--- a/en-US/Configure_Network_Bonding.xml
+++ b/en-US/Configure_Network_Bonding.xml
@@ -7,16 +7,13 @@
<title>Configure Network Bonding</title>
<para>
- <application>Fedora</application> 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.
+ 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.
</para>
-<section id="sec-Configure_Network_Bonding_Using_NetworkManager">
- <title>Configure Network Bonding Using NetworkManager</title>
-
<section
id="sec-Bond-Understanding_the_Default_Behavior_of_Master_and_Slave_Interfaces">
<title>Understanding the Default Behavior of Master and Slave
Interfaces</title>
<para>
-When controlling bonded slave interfaces using <systemitem
class="daemon">NetworkManager</systemitem>, and especially when fault
finding, keep the following in mind:
+When controlling bonded slave interfaces using the <systemitem
class="daemon">NetworkManager</systemitem> daemon, and especially when
fault finding, keep the following in mind:
<orderedlist>
<listitem>
<para>
@@ -57,11 +54,11 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
</para>
</section>
- <section
- id="sec-Establishing_a_Bond_Connection">
- <title>Establishing a Bond Connection</title>
+ <section id="sec-Creating_a_Bond_Connection_Using_a_GUI">
+ <title>Creating a Bond Connection Using a GUI</title>
<para>You can use the GNOME
<application>control-center</application> utility to direct
<application>NetworkManager</application> 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.</para>
-
+ <section id="sec-Establishing_a_Bond_Connection">
+ <title>Establishing a Bond Connection</title>
<procedure
id="procedure-Adding_a_New_Bond_Connection">
<title>Adding a New Bond Connection</title>
@@ -72,13 +69,13 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
</step>
<step>
- <para>Click the plus symbol to open the selection list. Select
<guilabel>Bond</guilabel>. The <guilabel>Editing Bond Connection
<replaceable>1</replaceable></guilabel> window appears.</para>
+ <para>Click the plus symbol to open the selection list. Select
<guilabel>Bond</guilabel>. The <guilabel>Editing Bond connection
<replaceable>1</replaceable></guilabel> window appears.</para>
</step>
<step>
<para>On the <guilabel>Bond</guilabel> tab, click
<guibutton>Add</guibutton> and select the type of interface you want to use
with the bond connection. Click the <guibutton>Create</guibutton> 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.</para>
</step>
<step>
- <para>The <guilabel>Editing bond0 slave 1</guilabel> window
appears. Fill in the MAC address of the first interface to be bonded. Click the
<guibutton>Save</guibutton> button.</para>
+ <para>The <guilabel>Editing bond0 slave 1</guilabel> window
appears. Use the <guilabel>Device MAC address</guilabel> drop-down menu to
select the MAC address of the interface to be bonded. The first slave's MAC address
will be used as the MAC address for the bond interface. If required, enter a clone MAC
address to be used as the bond's MAC address. Click the
<guibutton>Save</guibutton> button.</para>
</step>
<step>
<para>The name of the bonded slave appears in the <guilabel>Bonded
connections</guilabel> window. Click the <guibutton>Add</guibutton>
button to add further slave connections.</para>
@@ -86,7 +83,7 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
<step><para>Review and confirm the settings and then click the
<guilabel>Save</guilabel> button.</para>
</step>
<step>
- <para>Edit the bond-specific settings by referring to <xref
linkend="bh-Configuring_the_Bond_Tab"/> below.</para>
+ <para>Edit the bond-specific settings by referring to <xref
linkend="sec-Configuring_the_Bond_Tab"/> below.</para>
</step>
</procedure>
@@ -121,24 +118,24 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
</listitem>
<listitem>
<para>
- <guilabel>All users may connect to this network</guilabel> —
Select this box to create a connection available to all users on the system. Changing this
setting may require root privileges. See <xref
linkend="sec-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.
+ <guilabel>All users may connect to this network</guilabel> —
Select this box to create a connection available to all users on the system. Changing this
setting may require root privileges. See <xref
linkend="sec-System-wide_and_Private_Connection_Profiles"/> for details.
</para>
</listitem>
<listitem>
<para>
- <guilabel>Automatically connect to VPN when using this
connection</guilabel> — Select this box if you want
<application>NetworkManager</application> to auto-connect to a VPN connection
when it is available. Select the VPN from the dropdown menu.
+ <guilabel>Automatically connect to VPN when using this
connection</guilabel> — Select this box if you want
<application>NetworkManager</application> to auto-connect to a VPN connection
when it is available. Select the VPN from the drop-down menu.
</para>
</listitem>
<listitem>
<para>
- <guilabel>Firewall Zone</guilabel> — Select the firewall zone
from the dropdown menu.
+ <guilabel>Firewall Zone</guilabel> — Select the firewall zone
from the drop-down menu.
</para>
</listitem>
</itemizedlist>
</step>
<step>
- <para>Edit the bond-specific settings by referring to <xref
linkend="bh-Configuring_the_Bond_Tab"/> below.</para>
+ <para>Edit the bond-specific settings by referring to <xref
linkend="sec-Configuring_the_Bond_Tab"/> below.</para>
</step>
</procedure>
<bridgehead
@@ -156,14 +153,14 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
</para>
</listitem>
<listitem>
- <para>IPv6 settings for the connection, click the
<guilabel>IPv6 Settings</guilabel> tab and proceed to <xref
+ <para><systemitem
class="protocol">IPv6</systemitem> settings for the connection, click
the <guilabel>IPv6 Settings</guilabel> tab and proceed to <xref
linkend="sec-Configuring_IPv6_Settings"/>.
</para>
</listitem>
</itemizedlist>
- <bridgehead
- id="bh-Configuring_the_Bond_Tab">Configuring the Bond
Tab</bridgehead>
+ <section id="sec-Configuring_the_Bond_Tab">
+ <title>Configuring the Bond Tab</title>
<para>If you have already added a new bond connection (refer to <xref
linkend="procedure-Adding_a_New_Bond_Connection"/> for
instructions), you can edit the <guilabel>Bond</guilabel> tab to set the load
sharing mode and the type of link monitoring to use to detect failures of a slave
connection.</para>
<variablelist>
@@ -194,7 +191,7 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
<guilabel>Round-robin</guilabel>
</term>
<listitem>
- <para>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.</para>
+ <para>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. This mode might not work behind a bridge with
virtual machines without additional switch configuration.</para>
</listitem>
</varlistentry>
@@ -212,7 +209,7 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
<guilabel>XOR</guilabel>
</term>
<listitem>
- <para>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.</para>
+ <para>Sets an XOR (exclusive-or) policy. Transmissions are based on the
selected hash policy. The default is to derive a hash by XOR of the source and destination
MAC addresses multiplied by the modulo of the number of slave interfaces. In this mode
traffic destined for specific peers will always be sent over the same interface. As the
destination is determined by the MAC addresses this method works best for traffic to peers
on the same link or local network. If traffic has to pass through a single router then
this mode of traffic balancing will be suboptimal.</para>
</listitem>
</varlistentry>
@@ -221,7 +218,7 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
<guilabel>Broadcast</guilabel>
</term>
<listitem>
- <para>Sets a broadcast policy for fault tolerance. All transmissions are
sent on all slave interfaces.</para>
+ <para>Sets a broadcast policy for fault tolerance. All transmissions are
sent on all slave interfaces. This mode might not work behind a bridge with virtual
machines without additional switch configuration.</para>
</listitem>
</varlistentry>
@@ -239,16 +236,16 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
<guilabel>Adaptive transmit load balancing</guilabel>
</term>
<listitem>
- <para>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.</para>
+ <para>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. This
mode is only suitable for local addresses known to the kernel bonding module and therefore
cannot be used behind a bridge with virtual machines.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
- <guilabel>Active Load Balancing</guilabel>
+ <guilabel>Adaptive load balancing</guilabel>
</term>
<listitem>
- <para>Sets an Active Load Balancing (ALB) policy for fault tolerance and
load balancing. Includes transmit and receive load balancing for <systemitem
class="protocol">IPv4</systemitem> traffic. Receive load balancing is
achieved through <systemitem class="protocol">ARP</systemitem>
negotiation.</para>
+ <para>Sets an Adaptive Load Balancing (ALB) policy for fault tolerance
and load balancing. Includes transmit and receive load balancing for <systemitem
class="protocol">IPv4</systemitem> traffic. Receive load balancing is
achieved through <systemitem class="protocol">ARP</systemitem>
negotiation. This mode is only suitable for local addresses known to the kernel bonding
module and therefore cannot be used behind a bridge with virtual machines.</para>
</listitem>
</varlistentry>
@@ -299,7 +296,8 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
<guilabel>ARP</guilabel>
</term>
<listitem>
- <para>The address resolution protocol (<systemitem
class="protocol">ARP</systemitem>) 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:</para>
+ <para>The address resolution protocol (<systemitem
class="protocol">ARP</systemitem>) 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.</para>
+ <para>Two options are available:</para>
<variablelist>
<varlistentry>
@@ -323,10 +321,12 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
</varlistentry>
</variablelist>
+ </section>
</section>
</section>
+
<section id="sec-Network_Bonding_Using_the_Command_Line_Interface">
<title>Using the Command Line Interface (CLI)</title>
<para>
@@ -335,9 +335,10 @@ When controlling bonded slave interfaces using <systemitem
class="daemon">Networ
<section id="sec-Check_if_Bonding_Kernel_Module_is_Installed">
<title>Check if Bonding Kernel Module is Installed</title>
<para>
- In <application>Fedora</application>, the bonding module is loaded by
default. If necessary, you can make sure that the module is loaded by issuing the
following command as <systemitem
class="username">root</systemitem>:
- <screen>~]# <command>modprobe --first-time bonding</command>
-modprobe: ERROR: could not insert 'bonding': Module already in
kernel</screen>
+ In Fedora, the bonding module is not loaded by default. You can load the module by
issuing the following command as <systemitem
class="username">root</systemitem>:
+ <screen>~]# <command>modprobe --first-time
bonding</command></screen>
+ This activation will not persist across system restarts. See the <citetitle
pubwork="book">&MAJOROSVER; System Administrator's
Guide</citetitle> for an explanation of persistent module loading.</para>
+ <para>
To display information about the module, issue the following command:
<screen>~]$ <command>modinfo bonding</command></screen>
See the <filename>modprobe(8)</filename> man page for more command options.
@@ -356,8 +357,8 @@ See the <filename>modprobe(8)</filename> man page for more
command options.
<para>
The following is a sample channel bonding configuration file:
</para>
- <example id="ex-Sample_ifcfg-bond0_Interface_Configuration_File">
- <title>Sample ifcfg-bond0 Interface Configuration File</title>
+ <example id="ex-Example_ifcfg-bond0_Interface_Configuration_File">
+ <title>Example ifcfg-bond0 Interface Configuration File</title>
<programlisting>DEVICE=bond0
IPADDR=192.168.1.1
NETMASK=255.255.255.0
@@ -400,27 +401,27 @@ NM_CONTROLLED=no</programlisting>
</section>
- <section
id="sec-Network_Bonding_sec-Using_the_NetworkManager_Command_Line_Tool_nmcli">
+ <section
id="sec-Network_Bonding_Using_the_NetworkManager_Command_Line_Tool_nmcli">
<title>Using the NetworkManager Command Line Tool, nmcli</title>
<para>
- To create a bond, with name <interface>mybond0</interface>, issue a
command as follows:
- <screen>~]$ <command>nmcli con add type bond con-name mybond0 ifname
mybond0 mode active-backup</command>
+ To create a bond, named <replaceable>mybond0</replaceable>, issue a
command as follows:
+ <screen>~]$ <command>nmcli con add type bond con-name
<replaceable>mybond0</replaceable> ifname
<replaceable>mybond0</replaceable> mode active-backup</command>
Connection 'mybond0' (9301ff97-abbc-4432-aad1-246d7faea7fb) successfully
added.</screen>
To add a slave interface, issue a command in the following form:
- <screen>~]$ <command>nmcli con add type bond-slave ifname ens7 master
mybond0</command></screen>
+ <screen>~]$ <command>nmcli con add type bond-slave ifname
<replaceable>ens7</replaceable> master
<replaceable>mybond0</replaceable></command></screen>
To add additional slaves, repeat the previous command with a new interface, for
example:
- <screen>~]$ <command>nmcli con add type bond-slave ifname ens3 master
mybond0</command>
+ <screen>~]$ <command>nmcli con add type bond-slave ifname
<replaceable>ens3</replaceable> master
<replaceable>mybond0</replaceable></command>
Connection 'bond-slave-ens3-1' (50c59350-1531-45f4-ba04-33431c16e386)
successfully added.</screen>
Note that as no <command>con-name</command> was given for the slaves, the
name was derived from the interface name by prepending the type. At time of writing,
<application>nmcli</application> only supports Ethernet slaves.
</para>
<para>
In order to bring up a bond, the slaves must be brought up first as follows:
- <screen>~]$ <command>nmcli con up bond-slave-ens7</command>
+ <screen>~]$ <command>nmcli con up
bond-slave-<replaceable>ens7</replaceable></command>
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/14)</screen>
-<screen>~]$ <command>nmcli con up bond-slave-ens3</command>
+<screen>~]$ <command>nmcli con up
bond-slave-<replaceable>ens3</replaceable></command>
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/15)</screen>
Now bring up the bond as follows:
-<screen>~]$ <command>nmcli con up bond-mybond0</command>
+<screen>~]$ <command>nmcli con up
bond-<replaceable>mybond0</replaceable></command>
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/16)</screen>
</para>
<para>
@@ -463,7 +464,7 @@ Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkMa
<listitem>
<para>
<filename
-
class="directory">/usr/share/doc/kernel-doc-<replaceable><kernel_version></replaceable>/Documentation/</filename>
— This directory, which is provided by the <package>kernel-doc</package>
package, contains information on bonding. Before accessing the kernel documentation, you
must run the following command as <systemitem
class="username">root</systemitem>:</para>
+
class="directory">/usr/share/doc/kernel-doc/Documentation/</filename> —
This directory, which is provided by the <package>kernel-doc</package>
package, contains information on bonding. Before accessing the kernel documentation, you
must run the following command as <systemitem
class="username">root</systemitem>:</para>
<screen>~]# <command>yum install
kernel-doc</command></screen>
<para>
<filename>/usr/share/doc/kernel-doc-<replaceable>version</replaceable>/Documentation/networking/bonding.txt</filename>
— Describes the Linux bonding driver.
@@ -488,7 +489,7 @@ Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkMa
<term><citetitle pubwork="book">&MAJOROSVER; System
Administrator's Guide</citetitle></term>
<listitem>
<para>
- Explains the use of bonding module directives.
+ Explains the use of kernel module capabilities.
</para>
</listitem>
</varlistentry>