Repository :
http://git.fedorahosted.org/cgit/docs/networking-guide.git
On branch : master
---------------------------------------------------------------
commit e61f8c1c1b50944732afaa4f3204fef868628eff
Author: Stephen Wadeley <swadeley(a)redhat.com>
Date: Thu Dec 18 21:03:10 2014 +0100
Improvements from upstream version
---------------------------------------------------------------
en-US/Configure_Network_Bonding.xml | 97 +++++++++++++++++------------------
1 files changed, 48 insertions(+), 49 deletions(-)
diff --git a/en-US/Configure_Network_Bonding.xml b/en-US/Configure_Network_Bonding.xml
index 3fb5f37..814c7a5 100644
--- a/en-US/Configure_Network_Bonding.xml
+++ b/en-US/Configure_Network_Bonding.xml
@@ -108,7 +108,7 @@ When controlling bonded slave interfaces using the <systemitem
class="daemon">Ne
</step>
<step>
- <para>Select the connection you wish to edit and click the
<guilabel>Options</guilabel> button.</para>
+ <para>Select the connection you want to edit and click the
<guilabel>Options</guilabel> button.</para>
</step>
<step>
<para>Select the <guilabel>General</guilabel>
tab.</para>
@@ -153,7 +153,7 @@ When controlling bonded slave interfaces using the <systemitem
class="daemon">Ne
<bridgehead
id="bh-Saving_Your_New_or_Modified_Connection_and_Making_Further_Configurations-bond">Saving
Your New (or Modified) Connection and Making Further Configurations</bridgehead>
- <para>Once you have finished editing your bond connection, click the
<guibutton>Save</guibutton> button to save your customized configuration. To
make <application>NetworkManager</application> apply the changes, power cycle
the interface. See <xref
+ <para>Once you have finished editing your bond connection, click the
<guibutton>Save</guibutton> button to save your customized configuration. If
the profile was in use while being edited, power cycle the connection to make
<application>NetworkManager</application> apply the changes. If the profile is
OFF, set it to ON. See <xref
linkend="sec-Connecting_to_a_Network_Using_a_GUI"/> for
information on using your new or altered connection.</para>
<para>You can further configure an existing connection by selecting it in
the <guilabel>Network</guilabel> window and clicking
<guilabel>Options</guilabel> to return to the
<guilabel>Editing</guilabel> dialog.</para>
<para>Then, to configure:</para>
@@ -344,18 +344,18 @@ When controlling bonded slave interfaces using the <systemitem
class="daemon">Ne
<para>
A bond is created using the <filename>bonding</filename> kernel module and
a special network interface called a <firstterm>channel bonding
interface</firstterm>.
</para>
+
<section id="sec-Check_if_Bonding_Kernel_Module_is_Installed">
<title>Check if Bonding Kernel Module is Installed</title>
<para>
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>
+ 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. Note that given a
correct configuration file using the <command>BONDING_OPTS</command>
directive, the bonding module will be loaded as required and therefore does not need to be
loaded separately.</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.
</para>
-
</section>
<section id="sec-Create_a_Channel_Bonding_Interface">
@@ -364,7 +364,7 @@ See the <filename>modprobe(8)</filename> man page for more
command options.
To create a channel bonding interface, create a file in the <filename
class="directory">/etc/sysconfig/network-scripts/</filename> directory
called
<filename>ifcfg-bond<replaceable>N</replaceable></filename>,
replacing <replaceable>N</replaceable> with the number for the interface, such
as <filename>0</filename>.
</para>
<para>
- The contents of the file can be based on a configuration file for whatever type
of interface is getting bonded, such as an Ethernet interface. The essential differences
are that the <option>DEVICE</option> directive is
<option>bond<replaceable>N</replaceable></option>, replacing
<replaceable>N</replaceable> with the number for the interface, and TYPE=Bond.
The <option>NM_CONTROLLED</option> directive can be added to prevent
<application>NetworkManager</application> from configuring this device.
+ The contents of the file can be based on a configuration file for whatever type
of interface is getting bonded, such as an Ethernet interface. The essential differences
are that the <option>DEVICE</option> directive is
<option>bond<replaceable>N</replaceable></option>, replacing
<replaceable>N</replaceable> with the number for the interface, and
<command>TYPE=Bond</command>. In addition, set
<command>BONDING_MASTER=yes</command>.
</para>
<example id="ex-Example_ifcfg-bond0_Interface_Configuration_File">
@@ -375,6 +375,7 @@ See the <filename>modprobe(8)</filename> man page for more
command options.
<programlisting>DEVICE=bond0
NAME=bond0
TYPE=Bond
+BONDING_MASTER=yes
IPADDR=192.168.1.1
PREFIX=24
ONBOOT=yes
@@ -392,7 +393,6 @@ The NAME directive is useful for naming the connection profile in
<application>N
For further instructions and advice on configuring the bonding module and to
view the list of bonding parameters, see <xref
linkend="sec-Using_Channel_Bonding"/>.
</para>
</important>
-
</section>
<section id="sec-Creating_SLAVE_Interfaces">
@@ -424,14 +424,14 @@ SLAVE=yes</programlisting>
<para>
To activate a bond, bring up all the slaves. As <systemitem
class="username">root</systemitem>, issue the following commands:
- <screen>~]# <command> /usr/sbin/ifup
ifcfg-eth0</command>
+ <screen>~]# <command>ifup ifcfg-eth0</command>
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/7)</screen>
- <screen>~]# <command> /usr/sbin/ifup
ifcfg-eth1</command>
+ <screen>~]# <command>ifup ifcfg-eth1</command>
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/8)</screen>
</para>
<para>
Note that if editing interface files for interfaces which are currently
<quote>up</quote>, set them down first as follows:
-<synopsis>/usr/sbin/ifdown
ifcfg-eth<replaceable>N</replaceable></synopsis>
+<synopsis>ifdown eth<replaceable>N</replaceable></synopsis>
Then when complete, bring up all the slaves, which will bring up the bond (provided it
was not set <quote>down</quote>).
</para>
<para>
@@ -490,6 +490,7 @@ Then when complete, bring up all the slaves, which will bring up the
bond (provi
<programlisting>DEVICE=bondN
NAME=bondN
TYPE=Bond
+BONDING_MASTER=yes
IPADDR=192.168.1.1
PREFIX=24
ONBOOT=yes
@@ -560,19 +561,16 @@ BONDING_OPTS="<replaceable>bonding parameters separated
by spaces</replaceable>"
<primary>channel bonding</primary>
<secondary>parameters to bonded interfaces</secondary>
</indexterm>
- <para>It is a good idea to test which channel bonding module parameters
work best for your bonded interfaces before adding them to the <parameter
-
class="option">BONDING_OPTS="<replaceable><bonding
parameters></replaceable>"</parameter> directive in your bonding
interface configuration file (<filename>ifcfg-bond0</filename> for example).
Parameters to bonded interfaces can be configured without unloading (and reloading) the
bonding module by manipulating files in the <systemitem
+ <para>It is a good idea to test which channel bonding module parameters
work best for your bonded interfaces before adding them to the
<option>BONDING_OPTS="<replaceable>bonding
parameters</replaceable>"</option> directive in your bonding interface
configuration file (<filename>ifcfg-bond0</filename> for example). Parameters
to bonded interfaces can be configured without unloading (and reloading) the bonding
module by manipulating files in the <systemitem
class="filesystem">sysfs</systemitem> file
system.</para>
<para>
<systemitem
class="filesystem">sysfs</systemitem> is a virtual file
system that represents kernel objects as directories, files and symbolic links.
<systemitem
class="filesystem">sysfs</systemitem> can be used to query
for information about kernel objects, and can also manipulate those objects through the
use of normal file system commands. The <systemitem
class="filesystem">sysfs</systemitem> virtual file system
is mounted under the <filename>/sys/</filename> directory. All bonding
interfaces can be configured dynamically by interacting with and manipulating files under
the <filename>/sys/class/net/</filename> directory. </para>
- <para>In order to determine the best parameters for your bonding interface,
create a channel bonding interface file such as
<filename>ifcfg-bond0</filename> by following the instructions in <xref
linkend="sec-Create_a_Channel_Bonding_Interface" />. Insert the
<parameter
- class="option">SLAVE=yes</parameter> and <parameter
- class="option">MASTER=bond0</parameter> directives in the
configuration files for each interface bonded to bond0. Once this is completed, you can
proceed to testing the parameters.</para>
- <para>First, bring up the bond you created by running
<command>/usr/sbin/ifup
<option>bond<replaceable><N></replaceable></option></command>
as <systemitem class="username">root</systemitem>:</para>
- <screen>~]# <command>/usr/sbin/ifup
bond0</command></screen>
+ <para>In order to determine the best parameters for your bonding interface,
create a channel bonding interface file such as
<filename>ifcfg-bond0</filename> by following the instructions in <xref
linkend="sec-Create_a_Channel_Bonding_Interface" />. Insert the
<option>SLAVE=yes</option> and <option>MASTER=bond0</option>
directives in the configuration files for each interface bonded to
<literal>bond0</literal>. Once this is completed, you can proceed to testing
the parameters.</para>
+ <para>First, bring up the bond you created by running <command>ifup
<option>bond<replaceable>N</replaceable></option></command>
as <systemitem class="username">root</systemitem>:</para>
+ <screen>~]# <command>ifup
bond0</command></screen>
<para>If you have correctly created the
<filename>ifcfg-bond0</filename> bonding interface file, you will be able to
see <computeroutput>bond0</computeroutput> listed in the output of running
<command> ip link show</command> as <systemitem
class="username">root</systemitem>:</para>
<screen>~]# <command>ip link show</command>
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode
DEFAULT
@@ -586,8 +584,8 @@ BONDING_OPTS="<replaceable>bonding parameters separated by
spaces</replaceable>"
<para>To view all existing bonds, even if they are not up,
run:</para>
<screen>~]$ <command>cat
/sys/class/net/bonding_masters</command>
bond0</screen>
- <para>You can configure each bond individually by manipulating the files
located in the
<filename>/sys/class/net/bond<replaceable><N></replaceable>/bonding/</filename>
directory. First, the bond you are configuring must be taken down:</para>
- <screen>~]# <command>/usr/sbin/ifdown bond0</command>
+ <para>You can configure each bond individually by manipulating the files
located in the
<filename>/sys/class/net/bond<replaceable>N</replaceable>/bonding/</filename>
directory. First, the bond you are configuring must be taken down:</para>
+ <screen>~]# <command>ifdown bond0</command>
</screen>
<para>As an example, to enable MII monitoring on bond0 with a 1 second
interval, run as <systemitem
class="username">root</systemitem>:</para>
<screen>~]# <command>echo 1000 >
/sys/class/net/bond0/bonding/miimon</command>
@@ -599,9 +597,9 @@ bond0</screen>
<para>...or, using the name of the mode:</para>
<screen>~]# <command>echo balance-alb >
/sys/class/net/bond0/bonding/mode</command>
</screen>
- <para>After configuring options for the bond in question, you can bring it
up and test it by running <command>/usr/sbin/ifup
bond<replaceable><N></replaceable></command>. If you
decide to change the options, take the interface down, modify its parameters using
<systemitem class="filesystem">sysfs</systemitem>, bring it back up,
and re-test.</para>
+ <para>After configuring options for the bond in question, you can bring it
up and test it by running <command>ifup
bond<replaceable>N</replaceable></command>. If you decide to change the
options, take the interface down, modify its parameters using <systemitem
class="filesystem">sysfs</systemitem>, bring it back up, and
re-test.</para>
<para>Once you have determined the best set of parameters for your bond,
add those parameters as a space-separated list to the <parameter
- class="option">BONDING_OPTS=</parameter> directive of the
<filename>/etc/sysconfig/network-scripts/ifcfg-bond<replaceable><N></replaceable>
+ class="option">BONDING_OPTS=</parameter> directive of the
<filename>/etc/sysconfig/network-scripts/ifcfg-bond<replaceable>N</replaceable>
</filename> file for the bonding interface you are configuring. Whenever
that bond is brought up (for example, by the system during the boot sequence if the
<parameter
class="option">ONBOOT=yes</parameter> directive is set),
the bonding options specified in the <parameter
class="option">BONDING_OPTS</parameter> will take effect
for that bond.</para>
@@ -614,7 +612,7 @@ bond0</screen>
<varlistentry>
<term>
-
<literal>ad_select=<replaceable><value></replaceable>
+ <literal>ad_select=<replaceable>value</replaceable>
</literal>
</term>
<listitem>
@@ -663,7 +661,7 @@ bond0</screen>
<varlistentry>
<term>
-
<literal>arp_interval=<replaceable><time_in_milliseconds></replaceable>
+
<literal>arp_interval=<replaceable>time_in_milliseconds</replaceable>
</literal>
</term>
<listitem>
@@ -672,14 +670,14 @@ bond0</screen>
<!-- <title>Make sure you specify all required
parameters</title> -->
<para>It is essential that both
<literal>arp_interval</literal> and
<literal>arp_ip_target</literal> parameters are specified, or, alternatively,
the <literal>miimon</literal> parameter is specified. Failure to do so can
cause degradation of network performance in the event that a link fails.</para>
</important>
- <para>If using this setting while in
<literal>mode=0</literal> or <literal>mode=1</literal> (the two
load-balancing modes), the network switch must be configured to distribute packets evenly
across the NICs. For more information on how to accomplish this, see <ulink
url="https://www.kernel.org/doc/Documentation/networking/bonding.txt...;.
+ <para>If using this setting while in
<literal>mode=0</literal> or <literal>mode=2</literal> (the two
load-balancing modes), the network switch must be configured to distribute packets evenly
across the NICs. For more information on how to accomplish this, see <ulink
url="https://www.kernel.org/doc/Documentation/networking/bonding.txt...;.
</para>
<para>The value is set to <userinput>0</userinput> by
default, which disables it.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
-
<literal>arp_ip_target=<replaceable><ip_address></replaceable><optional>,<replaceable><ip_address_2></replaceable>,…<replaceable><ip_address_16></replaceable></optional>
+
<literal>arp_ip_target=<replaceable>ip_address</replaceable><optional>,<replaceable>ip_address_2</replaceable>,…<replaceable>ip_address_16</replaceable></optional>
</literal>
</term>
<listitem>
@@ -688,7 +686,7 @@ bond0</screen>
</varlistentry>
<varlistentry>
<term>
-
<literal>arp_validate=<replaceable><value></replaceable>
+ <literal>arp_validate=<replaceable>value</replaceable>
</literal>
</term>
<listitem>
@@ -697,7 +695,7 @@ bond0</screen>
</varlistentry>
<!-- <varlistentry>
<term>
-
<literal>debug=<replaceable><number></replaceable>
+ <literal>debug=<replaceable>number</replaceable>
</literal>
</term>
<listitem>
@@ -716,7 +714,7 @@ bond0</screen>
</varlistentry> -->
<varlistentry>
<term>
-
<literal>downdelay=<replaceable><time_in_milliseconds></replaceable>
+
<literal>downdelay=<replaceable>time_in_milliseconds</replaceable>
</literal>
</term>
<listitem>
@@ -726,7 +724,7 @@ bond0</screen>
<varlistentry>
<term>
-
<literal>fail_over_mac=<replaceable><value></replaceable>
+ <literal>fail_over_mac=<replaceable>value</replaceable>
</literal>
</term>
<listitem>
@@ -738,7 +736,7 @@ bond0</screen>
</listitem>
<listitem>
<para>
- <userinput>active</userinput> or
<userinput>1</userinput> — The <quote>active</quote>>
<literal>fail_over_mac</literal> policy indicates that the
+ <userinput>active</userinput> or
<userinput>1</userinput> — The <quote>active</quote>
<literal>fail_over_mac</literal> policy indicates that the
MAC address of the bond should always be the MAC address of the currently active slave.
The MAC address of the slaves is not changed; instead, the MAC address of the bond changes
during a failover.</para>
<para>
This policy is useful for devices that cannot ever alter their MAC address, or for
devices that refuse incoming broadcasts with their own source MAC (which interferes with
the ARP monitor). The disadvantage of this policy is that every device on the network must
be updated via gratuitous ARP, as opposed to the normal method of switches snooping
incoming traffic to update their ARP tables. If the gratuitous ARP is lost, communication
may be disrupted.
@@ -760,7 +758,7 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
</varlistentry>
<varlistentry>
-
<term>lacp_rate=<replaceable><value></replaceable>
+ <term>lacp_rate=<replaceable>value</replaceable>
</term>
<listitem>
<para>Specifies the rate at which link partners should transmit
LACPDU packets in 802.3ad mode. Possible values are:</para>
@@ -776,16 +774,17 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
</itemizedlist>
</listitem>
</varlistentry>
+
<varlistentry>
<term>
-
<literal>miimon=<replaceable><time_in_milliseconds></replaceable>
+
<literal>miimon=<replaceable>time_in_milliseconds</replaceable>
</literal>
</term>
<listitem>
<para>Specifies (in milliseconds) how often MII link monitoring
occurs. This is useful if high availability is required because MII is used to verify that
the NIC is active. To verify that the driver for a particular NIC supports the MII tool,
type the following command as root:</para>
- <screen>~]# <command>ethtool
<replaceable><interface_name></replaceable> | grep "Link
detected:"</command>
+ <screen>~]# <command>ethtool
<replaceable>interface_name</replaceable> | grep "Link
detected:"</command>
</screen>
- <para>In this command, replace
<replaceable><interface_name</replaceable>> with the name of the
device interface, such as <userinput>eth0</userinput>, not the bond interface.
If MII is supported, the command returns:</para>
+ <para>In this command, replace
<replaceable>interface_name</replaceable>> with the name of the device
interface, such as <userinput>eth0</userinput>, not the bond interface. If MII
is supported, the command returns:</para>
<screen>Link detected: yes</screen>
<para>If using a bonded interface for high availability, the module
for each NIC must support MII. Setting the value to <userinput>0</userinput>
(the default), turns this feature off. When configuring this setting, a good starting
point for this parameter is <userinput>100</userinput>.</para>
<important>
@@ -796,11 +795,11 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
</varlistentry>
<varlistentry>
<term>
-
<literal>mode=<replaceable><value></replaceable>
+ <literal>mode=<replaceable>value</replaceable>
</literal>
</term>
<listitem>
- <para>Allows you to specify the bonding policy. The
<replaceable><value></replaceable> can be one of:</para>
+ <para>Allows you to specify the bonding policy. The
<replaceable>value</replaceable> can be one of:</para>
<itemizedlist>
<listitem>
<para>
@@ -835,7 +834,7 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
</varlistentry>
<!--<varlistentry>
<term>
-
<literal>num_unsol_na=<replaceable><number></replaceable>
+ <literal>num_unsol_na=<replaceable>number</replaceable>
</literal>
</term>
<listitem>
@@ -845,17 +844,17 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
</varlistentry> not supported by NM -->
<varlistentry>
<term>
-
<literal>primary=<replaceable><interface_name></replaceable>
+
<literal>primary=<replaceable>interface_name</replaceable>
</literal>
</term>
<listitem>
<para>Specifies the interface name, such as
<userinput>eth0</userinput>, of the primary device. The
<literal>primary</literal> device is the first of the bonding interfaces to be
used and is not abandoned unless it fails. This setting is particularly useful when one
NIC in the bonding interface is faster and, therefore, able to handle a bigger
load.</para>
- <para>This setting is only valid when the bonding interface is in
<userinput>active-backup</userinput> mode. See <ulink
url="https://www.kernel.org/doc/Documentation/networking/bonding.txt...
/usr/share/doc/kernel-doc-<replaceable><kernel-version></replaceable>/Documentation/networking/bonding.txt</filename>-->
for more information.</para>
+ <para>This setting is only valid when the bonding interface is in
<userinput>active-backup</userinput> mode. See <ulink
url="https://www.kernel.org/doc/Documentation/networking/bonding.txt...
/usr/share/doc/kernel-doc-<replaceable>kernel-version</replaceable>/Documentation/networking/bonding.txt</filename>-->
for more information.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>
-
<literal>primary_reselect=<replaceable><value></replaceable>
+
<literal>primary_reselect=<replaceable>value</replaceable>
</literal>
</term>
<listitem>
@@ -908,7 +907,7 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
<varlistentry>
<term>
-
<literal>updelay=<replaceable><time_in_milliseconds></replaceable>
+
<literal>updelay=<replaceable>time_in_milliseconds</replaceable>
</literal>
</term>
<listitem>
@@ -917,7 +916,7 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
</varlistentry>
<varlistentry>
<term>
-
<literal>use_carrier=<replaceable><number></replaceable>
+ <literal>use_carrier=<replaceable>number</replaceable>
</literal>
</term>
<listitem>
@@ -941,7 +940,7 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
</varlistentry>
<varlistentry>
<term>
-
<literal>xmit_hash_policy=<replaceable><value></replaceable>
+
<literal>xmit_hash_policy=<replaceable>value</replaceable>
</literal>
</term>
<listitem>
@@ -950,7 +949,7 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
<listitem>
<para>
<userinput>0</userinput> or
<userinput>layer2</userinput> — Default setting. This parameter uses the XOR
of hardware MAC addresses to generate the hash. The formula used is:</para>
-
<screen>(<replaceable><source_MAC_address></replaceable>
XOR <replaceable><destination_MAC></replaceable>) MODULO
<replaceable><slave_count></replaceable>
+
<screen>(<replaceable>source_MAC_address</replaceable> XOR
<replaceable>destination_MAC</replaceable>) MODULO
<replaceable>slave_count</replaceable>
</screen>
<para>This algorithm will place all traffic to a particular
network peer on the same slave, and is 802.3ad compliant.</para>
</listitem>
@@ -958,9 +957,9 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
<para>
<userinput>1</userinput> or
<userinput>layer3+4</userinput> — Uses upper layer protocol information (when
available) to generate the hash. This allows for traffic to a particular network peer to
span multiple slaves, although a single connection will not span multiple
slaves.</para>
<para>The formula for unfragmented TCP and UDP packets used
is:</para>
-
<screen>((<replaceable><source_port></replaceable> XOR
<replaceable><dest_port></replaceable>) XOR
- ((<replaceable><source_IP></replaceable> XOR
<replaceable><dest_IP></replaceable>) AND
<constant>0xffff</constant>)
- MODULO <replaceable><slave_count></replaceable>
+ <screen>((<replaceable>source_port</replaceable> XOR
<replaceable>dest_port</replaceable>) XOR
+ ((<replaceable>source_IP</replaceable> XOR
<replaceable>dest_IP</replaceable>) AND
<constant>0xffff</constant>)
+ MODULO <replaceable>slave_count</replaceable>
</screen>
<para>For fragmented TCP or UDP packets and all other
<systemitem class="protocol">IP</systemitem> protocol traffic, the
source and destination port information is omitted. For non-<systemitem
class="protocol">IP</systemitem> traffic, the formula is the same as
the <command>layer2</command> transmit hash policy.</para>
<para>This policy intends to mimic the behavior of certain
switches; particularly, Cisco switches with PFC2 as well as some Foundry and IBM
products.</para>
@@ -970,9 +969,9 @@ This policy is useful for devices that cannot ever alter their MAC
address, or f
<para>
<userinput>2</userinput> or
<userinput>layer2+3</userinput> — Uses a combination of layer2 and layer3
protocol information to generate the hash.</para>
<para>Uses XOR of hardware MAC addresses and <systemitem
class="protocol">IP</systemitem> addresses to generate the hash. The
formula is:</para>
-
<screen>(((<replaceable><source_IP></replaceable> XOR
<replaceable><dest_IP></replaceable>) AND
<constant>0xffff</constant>) XOR
- ( <replaceable><source_MAC></replaceable> XOR
<replaceable><destination_MAC></replaceable> ))
- MODULO <replaceable><slave_count></replaceable>
+ <screen>(((<replaceable>source_IP</replaceable> XOR
<replaceable>dest_IP</replaceable>) AND
<constant>0xffff</constant>) XOR
+ ( <replaceable>source_MAC</replaceable> XOR
<replaceable>destination_MAC</replaceable> ))
+ MODULO <replaceable>slave_count</replaceable>
</screen>
<para>This algorithm will place all traffic to a particular
network peer on the same slave. For non-<systemitem
class="protocol">IP</systemitem> traffic, the formula is the same as
for the layer2 transmit hash policy.</para>
<para>This policy is intended to provide a more balanced
distribution of traffic than layer2 alone, especially in environments where a layer3
gateway device is required to reach most destinations.</para>