<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Linux_Howto_Network_Bonding</id>
	<title>Linux Howto Network Bonding - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Linux_Howto_Network_Bonding"/>
	<link rel="alternate" type="text/html" href="https://onnocenter.or.id/wiki/index.php?title=Linux_Howto_Network_Bonding&amp;action=history"/>
	<updated>2026-04-07T17:04:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.4</generator>
	<entry>
		<id>https://onnocenter.or.id/wiki/index.php?title=Linux_Howto_Network_Bonding&amp;diff=34947&amp;oldid=prev</id>
		<title>Onnowpurbo: /* Pranala Menarik */</title>
		<link rel="alternate" type="text/html" href="https://onnocenter.or.id/wiki/index.php?title=Linux_Howto_Network_Bonding&amp;diff=34947&amp;oldid=prev"/>
		<updated>2012-12-05T05:25:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Pranala Menarik&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:25, 5 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l533&quot; &gt;Line 533:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 533:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Linux Howto Network Bonding]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Linux Howto Network Bonding]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Network Bonding di Ubuntu]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Network Bonding di Ubuntu]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Ubuntu Bonding Network Interface]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
	<entry>
		<id>https://onnocenter.or.id/wiki/index.php?title=Linux_Howto_Network_Bonding&amp;diff=34945&amp;oldid=prev</id>
		<title>Onnowpurbo: /* Pranala Menarik */</title>
		<link rel="alternate" type="text/html" href="https://onnocenter.or.id/wiki/index.php?title=Linux_Howto_Network_Bonding&amp;diff=34945&amp;oldid=prev"/>
		<updated>2012-12-05T05:22:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Pranala Menarik&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 05:22, 5 December 2012&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;                   &lt;/del&gt;Linux Ethernet Bonding Driver mini-howto&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Linux Ethernet Bonding Driver mini-howto&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Initial release : Thomas Davis &amp;lt;tadavis at lbl.gov&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Initial release : Thomas Davis &amp;lt;tadavis at lbl.gov&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l532&quot; &gt;Line 532:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 532:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Konfigurasi Networking Bonding]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Konfigurasi Networking Bonding]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Linux Howto Network Bonding]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Linux Howto Network Bonding]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [[Network Bonding di Ubuntu]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
	<entry>
		<id>https://onnocenter.or.id/wiki/index.php?title=Linux_Howto_Network_Bonding&amp;diff=34941&amp;oldid=prev</id>
		<title>Onnowpurbo: New page:                    Linux Ethernet Bonding Driver mini-howto  Initial release : Thomas Davis &lt;tadavis at lbl.gov&gt; Corrections, HA extensions : 2000/10/03-15 :   - Willy Tarreau &lt;willy at me...</title>
		<link rel="alternate" type="text/html" href="https://onnocenter.or.id/wiki/index.php?title=Linux_Howto_Network_Bonding&amp;diff=34941&amp;oldid=prev"/>
		<updated>2012-12-05T05:19:41Z</updated>

		<summary type="html">&lt;p&gt;New page:                    Linux Ethernet Bonding Driver mini-howto  Initial release : Thomas Davis &amp;lt;tadavis at lbl.gov&amp;gt; Corrections, HA extensions : 2000/10/03-15 :   - Willy Tarreau &amp;lt;willy at me...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;                   Linux Ethernet Bonding Driver mini-howto&lt;br /&gt;
&lt;br /&gt;
Initial release : Thomas Davis &amp;lt;tadavis at lbl.gov&amp;gt;&lt;br /&gt;
Corrections, HA extensions : 2000/10/03-15 :&lt;br /&gt;
  - Willy Tarreau &amp;lt;willy at meta-x.org&amp;gt;&lt;br /&gt;
  - Constantine Gavrilov &amp;lt;const-g at xpert.com&amp;gt;&lt;br /&gt;
  - Chad N. Tindel &amp;lt;ctindel at ieee dot org&amp;gt;&lt;br /&gt;
  - Janice Girouard &amp;lt;girouard at us dot ibm dot com&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note :&lt;br /&gt;
------&lt;br /&gt;
The bonding driver originally came from Donald Becker's beowulf patches for&lt;br /&gt;
kernel 2.0. It has changed quite a bit since, and the original tools from&lt;br /&gt;
extreme-linux and beowulf sites will not work with this version of the driver.&lt;br /&gt;
&lt;br /&gt;
For new versions of the driver, patches for older kernels and the updated&lt;br /&gt;
userspace tools, please follow the links at the end of this file.&lt;br /&gt;
&lt;br /&gt;
Installation&lt;br /&gt;
============&lt;br /&gt;
&lt;br /&gt;
1) Build kernel with the bonding driver&lt;br /&gt;
---------------------------------------&lt;br /&gt;
For the latest version of the bonding driver, use kernel 2.4.12 or above&lt;br /&gt;
(otherwise you will need to apply a patch).&lt;br /&gt;
&lt;br /&gt;
Configure kernel with `make menuconfig/xconfig/config', and select&lt;br /&gt;
&amp;quot;Bonding driver support&amp;quot; in the &amp;quot;Network device support&amp;quot; section. It is&lt;br /&gt;
recommended to configure the driver as module since it is currently the only way&lt;br /&gt;
to pass parameters to the driver and configure more than one bonding device.&lt;br /&gt;
&lt;br /&gt;
Build and install the new kernel and modules.&lt;br /&gt;
&lt;br /&gt;
2) Get and install the userspace tools&lt;br /&gt;
--------------------------------------&lt;br /&gt;
This version of the bonding driver requires updated ifenslave program. The&lt;br /&gt;
original one from extreme-linux and beowulf will not work. Kernels 2.4.12&lt;br /&gt;
and above include the updated version of ifenslave.c in Documentation/network&lt;br /&gt;
directory. For older kernels, please follow the links at the end of this file.&lt;br /&gt;
&lt;br /&gt;
IMPORTANT!!!  If you are running on Redhat 7.1 or greater, you need&lt;br /&gt;
to be careful because /usr/include/linux is no longer a symbolic link&lt;br /&gt;
to /usr/src/linux/include/linux.  If you build ifenslave while this is&lt;br /&gt;
true, ifenslave will appear to succeed but your bond won't work.  The purpose&lt;br /&gt;
of the -I option on the ifenslave compile line is to make sure it uses&lt;br /&gt;
/usr/src/linux/include/linux/if_bonding.h instead of the version from&lt;br /&gt;
/usr/include/linux.&lt;br /&gt;
&lt;br /&gt;
To install ifenslave.c, do:&lt;br /&gt;
    # gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux/include ifenslave.c -o ifenslave &lt;br /&gt;
    # cp ifenslave /sbin/ifenslave&lt;br /&gt;
&lt;br /&gt;
3) Configure your system&lt;br /&gt;
------------------------&lt;br /&gt;
Also see the following section on the module parameters. You will need to add&lt;br /&gt;
at least the following line to /etc/conf.modules (or /etc/modules.conf):&lt;br /&gt;
&lt;br /&gt;
	alias bond0 bonding&lt;br /&gt;
&lt;br /&gt;
Use standard distribution techniques to define bond0 network interface. For&lt;br /&gt;
example, on modern RedHat distributions, create ifcfg-bond0 file in&lt;br /&gt;
/etc/sysconfig/network-scripts directory that looks like this:&lt;br /&gt;
&lt;br /&gt;
DEVICE=bond0&lt;br /&gt;
IPADDR=192.168.1.1&lt;br /&gt;
NETMASK=255.255.255.0&lt;br /&gt;
NETWORK=192.168.1.0&lt;br /&gt;
BROADCAST=192.168.1.255&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
BOOTPROTO=none&lt;br /&gt;
USERCTL=no&lt;br /&gt;
&lt;br /&gt;
(put the appropriate values for you network instead of 192.168.1).&lt;br /&gt;
&lt;br /&gt;
All interfaces that are part of the trunk, should have SLAVE and MASTER&lt;br /&gt;
definitions. For example, in the case of RedHat, if you wish to make eth0 and&lt;br /&gt;
eth1 (or other interfaces) a part of the bonding interface bond0, their config&lt;br /&gt;
files (ifcfg-eth0, ifcfg-eth1, etc.) should look like this:&lt;br /&gt;
&lt;br /&gt;
DEVICE=eth0&lt;br /&gt;
USERCTL=no&lt;br /&gt;
ONBOOT=yes&lt;br /&gt;
MASTER=bond0&lt;br /&gt;
SLAVE=yes&lt;br /&gt;
BOOTPROTO=none&lt;br /&gt;
&lt;br /&gt;
(use DEVICE=eth1 for eth1 and MASTER=bond1 for bond1 if you have configured&lt;br /&gt;
second bonding interface). &lt;br /&gt;
&lt;br /&gt;
Restart the networking subsystem or just bring up the bonding device if your&lt;br /&gt;
administration tools allow it. Otherwise, reboot. (For the case of RedHat&lt;br /&gt;
distros, you can do `ifup bond0' or `/etc/rc.d/init.d/network restart'.)&lt;br /&gt;
&lt;br /&gt;
If the administration tools of your distribution do not support master/slave&lt;br /&gt;
notation in configuration of network interfaces, you will need to configure&lt;br /&gt;
the bonding device with the following commands manually:&lt;br /&gt;
&lt;br /&gt;
    # /sbin/ifconfig bond0 192.168.1.1 up&lt;br /&gt;
    # /sbin/ifenslave bond0 eth0&lt;br /&gt;
    # /sbin/ifenslave bond0 eth1&lt;br /&gt;
&lt;br /&gt;
(substitute 192.168.1.1 with your IP address and add custom network and custom&lt;br /&gt;
netmask to the arguments of ifconfig if required).&lt;br /&gt;
&lt;br /&gt;
You can then create a script with these commands and put it into the appropriate&lt;br /&gt;
rc directory.&lt;br /&gt;
&lt;br /&gt;
If you specifically need that all your network drivers are loaded before the&lt;br /&gt;
bonding driver, use one of modutils' powerful features : in your modules.conf,&lt;br /&gt;
tell that when asked for bond0, modprobe should first load all your interfaces :&lt;br /&gt;
&lt;br /&gt;
probeall bond0 eth0 eth1 bonding&lt;br /&gt;
&lt;br /&gt;
Be careful not to reference bond0 itself at the end of the line, or modprobe will&lt;br /&gt;
die in an endless recursive loop.&lt;br /&gt;
&lt;br /&gt;
4) Module parameters.&lt;br /&gt;
---------------------&lt;br /&gt;
The following module parameters can be passed:&lt;br /&gt;
&lt;br /&gt;
    mode=&lt;br /&gt;
&lt;br /&gt;
Possible values are 0 (round robin policy, default) and 1 (active backup&lt;br /&gt;
policy), and 2 (XOR).  See question 9 and the HA section for additional info.&lt;br /&gt;
&lt;br /&gt;
    miimon=&lt;br /&gt;
&lt;br /&gt;
Use integer value for the frequency (in ms) of MII link monitoring. Zero value&lt;br /&gt;
is default and means the link monitoring will be disabled. A good value is 100&lt;br /&gt;
if you wish to use link monitoring. See HA section for additional info.&lt;br /&gt;
&lt;br /&gt;
    downdelay=&lt;br /&gt;
&lt;br /&gt;
Use integer value for delaying disabling a link by this number (in ms) after&lt;br /&gt;
the link failure has been detected. Must be a multiple of miimon. Default&lt;br /&gt;
value is zero. See HA section for additional info.&lt;br /&gt;
&lt;br /&gt;
    updelay=&lt;br /&gt;
&lt;br /&gt;
Use integer value for delaying enabling a link by this number (in ms) after&lt;br /&gt;
the &amp;quot;link up&amp;quot; status has been detected. Must be a multiple of miimon. Default&lt;br /&gt;
value is zero. See HA section for additional info.&lt;br /&gt;
&lt;br /&gt;
    arp_interval=&lt;br /&gt;
&lt;br /&gt;
Use integer value for the frequency (in ms) of arp monitoring.  Zero value &lt;br /&gt;
is default and means the arp monitoring will be disabled.  See HA section&lt;br /&gt;
for additional info.   This field is value in active_backup mode only.&lt;br /&gt;
&lt;br /&gt;
    arp_ip_target=&lt;br /&gt;
&lt;br /&gt;
An ip address to use when arp_interval is &amp;gt; 0.  This is the target of the&lt;br /&gt;
arp request sent to determine the health of the link to the target.  &lt;br /&gt;
Specify this value in ddd.ddd.ddd.ddd format.&lt;br /&gt;
&lt;br /&gt;
If you need to configure several bonding devices, the driver must be loaded&lt;br /&gt;
several times. I.e. for two bonding devices, your /etc/conf.modules must look&lt;br /&gt;
like this:&lt;br /&gt;
&lt;br /&gt;
alias bond0 bonding&lt;br /&gt;
alias bond1 bonding&lt;br /&gt;
&lt;br /&gt;
options bond0 miimon=100&lt;br /&gt;
options bond1 -o bonding1 miimon=100&lt;br /&gt;
&lt;br /&gt;
5) Testing configuration&lt;br /&gt;
------------------------&lt;br /&gt;
You can test the configuration and transmit policy with ifconfig. For example,&lt;br /&gt;
for round robin policy, you should get something like this:&lt;br /&gt;
&lt;br /&gt;
[root]# /sbin/ifconfig&lt;br /&gt;
bond0     Link encap:Ethernet  HWaddr 00:C0:F0:1F:37:B4  &lt;br /&gt;
          inet addr:XXX.XXX.XXX.YYY  Bcast:XXX.XXX.XXX.255  Mask:255.255.252.0&lt;br /&gt;
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:7224794 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:3286647 errors:1 dropped:0 overruns:1 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0 &lt;br /&gt;
&lt;br /&gt;
eth0      Link encap:Ethernet  HWaddr 00:C0:F0:1F:37:B4  &lt;br /&gt;
          inet addr:XXX.XXX.XXX.YYY  Bcast:XXX.XXX.XXX.255  Mask:255.255.252.0&lt;br /&gt;
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:3573025 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:1643167 errors:1 dropped:0 overruns:1 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:100 &lt;br /&gt;
          Interrupt:10 Base address:0x1080 &lt;br /&gt;
&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 00:C0:F0:1F:37:B4  &lt;br /&gt;
          inet addr:XXX.XXX.XXX.YYY  Bcast:XXX.XXX.XXX.255  Mask:255.255.252.0&lt;br /&gt;
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:3651769 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:1643480 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:100 &lt;br /&gt;
          Interrupt:9 Base address:0x1400 &lt;br /&gt;
&lt;br /&gt;
Questions :&lt;br /&gt;
===========&lt;br /&gt;
&lt;br /&gt;
1.  Is it SMP safe?&lt;br /&gt;
&lt;br /&gt;
	Yes.  The old 2.0.xx channel bonding patch was not SMP safe.&lt;br /&gt;
	The new driver was designed to be SMP safe from the start.&lt;br /&gt;
&lt;br /&gt;
2.  What type of cards will work with it?&lt;br /&gt;
&lt;br /&gt;
	Any Ethernet type cards (you can even mix cards - a Intel&lt;br /&gt;
	EtherExpress PRO/100 and a 3com 3c905b, for example).&lt;br /&gt;
	You can even bond together Gigabit Ethernet cards!&lt;br /&gt;
&lt;br /&gt;
3.  How many bonding devices can I have?&lt;br /&gt;
&lt;br /&gt;
	One for each module you load. See section on module parameters for how&lt;br /&gt;
	to accomplish this.&lt;br /&gt;
&lt;br /&gt;
4.  How many slaves can a bonding device have?&lt;br /&gt;
&lt;br /&gt;
	Limited by the number of network interfaces Linux supports and the&lt;br /&gt;
	number of cards you can place in your system.&lt;br /&gt;
&lt;br /&gt;
5.  What happens when a slave link dies?&lt;br /&gt;
&lt;br /&gt;
	If your ethernet cards support MII status monitoring and the MII&lt;br /&gt;
	monitoring has been enabled in the driver (see description of module&lt;br /&gt;
	parameters), there will be no adverse consequences. This release&lt;br /&gt;
	of the bonding driver knows how to get the MII information and&lt;br /&gt;
	enables or disables its slaves according to their link status.&lt;br /&gt;
	See section on HA for additional information.&lt;br /&gt;
&lt;br /&gt;
	For ethernet cards not supporting MII status, or if you wish to &lt;br /&gt;
	verify that packets have been both send and received, you may&lt;br /&gt;
	configure the arp_interval and arp_ip_target.  If packets have&lt;br /&gt;
	not been sent or received during this interval, an arp request&lt;br /&gt;
	is sent to the target to generate send and receive traffic.  &lt;br /&gt;
	If after this interval, either the successful send and/or &lt;br /&gt;
	receive count has not incremented, the next slave in the sequence&lt;br /&gt;
	will become the active slave.&lt;br /&gt;
&lt;br /&gt;
	If neither mii_monitor and arp_interval is configured, the bonding&lt;br /&gt;
	driver will not handle this situation very well. The driver will &lt;br /&gt;
	continue to send packets but some packets will be lost. Retransmits &lt;br /&gt;
	will cause serious degradation of performance (in the case when one&lt;br /&gt;
	of two slave links fails, 50% packets will be lost, which is a serious&lt;br /&gt;
	problem for both TCP and UDP).&lt;br /&gt;
&lt;br /&gt;
6.  Can bonding be used for High Availability?&lt;br /&gt;
&lt;br /&gt;
	Yes, if you use MII monitoring and ALL your cards support MII link&lt;br /&gt;
	status reporting. See section on HA for more information.&lt;br /&gt;
&lt;br /&gt;
7.  Which switches/systems does it work with?&lt;br /&gt;
&lt;br /&gt;
	In round-robin mode, it works with systems that support trunking:&lt;br /&gt;
	&lt;br /&gt;
	* Cisco 5500 series (look for EtherChannel support).&lt;br /&gt;
	* SunTrunking software.&lt;br /&gt;
	* Alteon AceDirector switches / WebOS (use Trunks).&lt;br /&gt;
	* BayStack Switches (trunks must be explicitly configured). Stackable&lt;br /&gt;
	  models (450) can define trunks between ports on different physical&lt;br /&gt;
	  units.&lt;br /&gt;
	* Linux bonding, of course !&lt;br /&gt;
	&lt;br /&gt;
	In Active-backup mode, it should work with any Layer-II switches.&lt;br /&gt;
&lt;br /&gt;
8.  Where does a bonding device get its MAC address from?&lt;br /&gt;
&lt;br /&gt;
	If not explicitly configured with ifconfig, the MAC address of the&lt;br /&gt;
	bonding device is taken from its first slave device. This MAC address&lt;br /&gt;
	is then passed to all following slaves and remains persistent (even if&lt;br /&gt;
	the the first slave is removed) until the bonding device is brought&lt;br /&gt;
	down or reconfigured.&lt;br /&gt;
	&lt;br /&gt;
	If you wish to change the MAC address, you can set it with ifconfig:&lt;br /&gt;
&lt;br /&gt;
	  # ifconfig bond0 ha ether 00:11:22:33:44:55&lt;br /&gt;
&lt;br /&gt;
	The MAC address can be also changed by bringing down/up the device&lt;br /&gt;
	and then changing its slaves (or their order):&lt;br /&gt;
	&lt;br /&gt;
	  # ifconfig bond0 down ; modprobe -r bonding&lt;br /&gt;
	  # ifconfig bond0 .... up&lt;br /&gt;
	  # ifenslave bond0 eth...&lt;br /&gt;
&lt;br /&gt;
	This method will automatically take the address from the next slave&lt;br /&gt;
	that will be added.&lt;br /&gt;
	&lt;br /&gt;
	To restore your slaves' MAC addresses, you need to detach them&lt;br /&gt;
	from the bond (`ifenslave -d bond0 eth0'), set them down&lt;br /&gt;
	(`ifconfig eth0 down'), unload the drivers (`rmmod 3c59x', for&lt;br /&gt;
	example) and reload them to get the MAC addresses from their&lt;br /&gt;
	eeproms. If the driver is shared by several devices, you need&lt;br /&gt;
	to turn them all down. Another solution is to look for the MAC&lt;br /&gt;
	address at boot time (dmesg or tail /var/log/messages) and to&lt;br /&gt;
	reset it by hand with ifconfig :&lt;br /&gt;
&lt;br /&gt;
	  # ifconfig eth0 down&lt;br /&gt;
	  # ifconfig eth0 hw ether 00:20:40:60:80:A0&lt;br /&gt;
&lt;br /&gt;
9.  Which transmit polices can be used?&lt;br /&gt;
&lt;br /&gt;
	Round robin, based on the order of enslaving, the output device&lt;br /&gt;
	is selected base on the next available slave.  Regardless of&lt;br /&gt;
	the source and/or destination of the packet.&lt;br /&gt;
&lt;br /&gt;
	XOR, based on (src hw addr XOR dst hw addr) % slave cnt.  This&lt;br /&gt;
	selects the same slave for each destination hw address.&lt;br /&gt;
&lt;br /&gt;
	Active-backup policy that ensures that one and only one device will&lt;br /&gt;
	transmit at any given moment. Active-backup policy is useful for&lt;br /&gt;
	implementing high availability solutions using two hubs (see&lt;br /&gt;
	section on HA).&lt;br /&gt;
&lt;br /&gt;
High availability&lt;br /&gt;
=================&lt;br /&gt;
&lt;br /&gt;
To implement high availability using the bonding driver, you need to&lt;br /&gt;
compile the driver as module because currently it is the only way to pass&lt;br /&gt;
parameters to the driver. This may change in the future.&lt;br /&gt;
&lt;br /&gt;
High availability is achieved by using MII status reporting. You need to&lt;br /&gt;
verify that all your interfaces support MII link status reporting. On Linux&lt;br /&gt;
kernel 2.2.17, all the 100 Mbps capable drivers and yellowfin gigabit driver&lt;br /&gt;
support it. If your system has an interface that does not support MII status&lt;br /&gt;
reporting, a failure of its link will not be detected!&lt;br /&gt;
&lt;br /&gt;
The bonding driver can regularly check all its slaves links by checking the&lt;br /&gt;
MII status registers. The check interval is specified by the module argument&lt;br /&gt;
&amp;quot;miimon&amp;quot; (MII monitoring). It takes an integer that represents the&lt;br /&gt;
checking time in milliseconds. It should not come to close to (1000/HZ)&lt;br /&gt;
(10 ms on i386) because it may then reduce the system interactivity. 100 ms&lt;br /&gt;
seems to be a good value. It means that a dead link will be detected at most&lt;br /&gt;
100 ms after it goes down.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
   # modprobe bonding miimon=100&lt;br /&gt;
&lt;br /&gt;
Or, put in your /etc/modules.conf :&lt;br /&gt;
&lt;br /&gt;
   alias bond0 bonding&lt;br /&gt;
   options bond0 miimon=100&lt;br /&gt;
&lt;br /&gt;
There are currently two policies for high availability, depending on whether&lt;br /&gt;
a) hosts are connected to a single host or switch that support trunking&lt;br /&gt;
b) hosts are connected to several different switches or a single switch that&lt;br /&gt;
   does not support trunking.&lt;br /&gt;
&lt;br /&gt;
1) HA on a single switch or host - load balancing&lt;br /&gt;
-------------------------------------------------&lt;br /&gt;
It is the easiest to set up and to understand. Simply configure the&lt;br /&gt;
remote equipment (host or switch) to aggregate traffic over several&lt;br /&gt;
ports (Trunk, EtherChannel, etc.) and configure the bonding interfaces.&lt;br /&gt;
If the module has been loaded with the proper MII option, it will work&lt;br /&gt;
automatically. You can then try to remove and restore different links&lt;br /&gt;
and see in your logs what the driver detects. When testing, you may&lt;br /&gt;
encounter problems on some buggy switches that disable the trunk for a&lt;br /&gt;
long time if all ports in a trunk go down. This is not Linux, but really&lt;br /&gt;
the switch (reboot it to ensure).&lt;br /&gt;
&lt;br /&gt;
Example 1 : host to host at double speed&lt;br /&gt;
&lt;br /&gt;
          +----------+                          +----------+&lt;br /&gt;
          |          |eth0                  eth0|          |&lt;br /&gt;
          | Host A   +--------------------------+  Host B  |&lt;br /&gt;
          |          +--------------------------+          |&lt;br /&gt;
          |          |eth1                  eth1|          |&lt;br /&gt;
          +----------+                          +----------+&lt;br /&gt;
&lt;br /&gt;
  On each host :&lt;br /&gt;
     # modprobe bonding miimon=100&lt;br /&gt;
     # ifconfig bond0 addr&lt;br /&gt;
     # ifenslave bond0 eth0 eth1&lt;br /&gt;
&lt;br /&gt;
Example 2 : host to switch at double speed&lt;br /&gt;
&lt;br /&gt;
          +----------+                          +----------+&lt;br /&gt;
          |          |eth0                 port1|          |&lt;br /&gt;
          | Host A   +--------------------------+  switch  |&lt;br /&gt;
          |          +--------------------------+          |&lt;br /&gt;
          |          |eth1                 port2|          |&lt;br /&gt;
          +----------+                          +----------+&lt;br /&gt;
&lt;br /&gt;
  On host A :                             On the switch :&lt;br /&gt;
     # modprobe bonding miimon=100           # set up a trunk on port1&lt;br /&gt;
     # ifconfig bond0 addr                     and port2&lt;br /&gt;
     # ifenslave bond0 eth0 eth1&lt;br /&gt;
&lt;br /&gt;
2) HA on two or more switches (or a single switch without trunking support)&lt;br /&gt;
---------------------------------------------------------------------------&lt;br /&gt;
This mode is more problematic because it relies on the fact that there&lt;br /&gt;
are multiple ports and the host's MAC address should be visible on one&lt;br /&gt;
port only to avoid confusing the switches.&lt;br /&gt;
&lt;br /&gt;
If you need to know which interface is the active one, and which ones are&lt;br /&gt;
backup, use ifconfig. All backup interfaces have the NOARP flag set.&lt;br /&gt;
&lt;br /&gt;
To use this mode, pass &amp;quot;mode=1&amp;quot; to the module at load time :&lt;br /&gt;
&lt;br /&gt;
    # modprobe bonding miimon=100 mode=1&lt;br /&gt;
&lt;br /&gt;
Or, put in your /etc/modules.conf :&lt;br /&gt;
&lt;br /&gt;
    alias bond0 bonding&lt;br /&gt;
    options bond0 miimon=100 mode=1&lt;br /&gt;
&lt;br /&gt;
Example 1: Using multiple host and multiple switches to build a &amp;quot;no single&lt;br /&gt;
point of failure&amp;quot; solution.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                |                                     |&lt;br /&gt;
                |port3                           port3|&lt;br /&gt;
          +-----+----+                          +-----+----+&lt;br /&gt;
          |          |port7       ISL      port7|          |&lt;br /&gt;
          | switch A +--------------------------+ switch B |&lt;br /&gt;
          |          +--------------------------+          |&lt;br /&gt;
          |          |port8                port8|          |&lt;br /&gt;
          +----++----+                          +-----++---+&lt;br /&gt;
          port2||port1                           port1||port2&lt;br /&gt;
               ||             +-------+               ||&lt;br /&gt;
               |+-------------+ host1 +---------------+|&lt;br /&gt;
               |         eth0 +-------+ eth1           |&lt;br /&gt;
               |                                       |&lt;br /&gt;
               |              +-------+                |&lt;br /&gt;
               +--------------+ host2 +----------------+&lt;br /&gt;
                         eth0 +-------+ eth1&lt;br /&gt;
&lt;br /&gt;
In this configuration, there are an ISL - Inter Switch Link (could be a trunk),&lt;br /&gt;
several servers (host1, host2 ...) attached to both switches each, and one or&lt;br /&gt;
more ports to the outside world (port3...). One an only one slave on each host&lt;br /&gt;
is active at a time, while all links are still monitored (the system can&lt;br /&gt;
detect a failure of active and backup links).&lt;br /&gt;
&lt;br /&gt;
Each time a host changes its active interface, it sticks to the new one until&lt;br /&gt;
it goes down. In this example, the hosts are not too much affected by the&lt;br /&gt;
expiration time of the switches' forwarding tables.&lt;br /&gt;
&lt;br /&gt;
If host1 and host2 have the same functionality and are used in load balancing&lt;br /&gt;
by another external mechanism, it is good to have host1's active interface&lt;br /&gt;
connected to one switch and host2's to the other. Such system will survive&lt;br /&gt;
a failure of a single host, cable, or switch. The worst thing that may happen&lt;br /&gt;
in the case of a switch failure is that half of the hosts will be temporarily&lt;br /&gt;
unreachable until the other switch expires its tables. &lt;br /&gt;
&lt;br /&gt;
Example 2: Using multiple ethernet cards connected to a switch to configure&lt;br /&gt;
           NIC failover (switch is not required to support trunking). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          +----------+                          +----------+&lt;br /&gt;
          |          |eth0                 port1|          |&lt;br /&gt;
          | Host A   +--------------------------+  switch  |&lt;br /&gt;
          |          +--------------------------+          |&lt;br /&gt;
          |          |eth1                 port2|          |&lt;br /&gt;
          +----------+                          +----------+&lt;br /&gt;
&lt;br /&gt;
  On host A :                                 On the switch :&lt;br /&gt;
     # modprobe bonding miimon=100 mode=1     # (optional) minimize the time&lt;br /&gt;
     # ifconfig bond0 addr                    # for table expiration&lt;br /&gt;
     # ifenslave bond0 eth0 eth1&lt;br /&gt;
&lt;br /&gt;
Each time the host changes its active interface, it sticks to the new one until&lt;br /&gt;
it goes down. In this example, the host is strongly affected by the expiration&lt;br /&gt;
time of the switch forwarding table.&lt;br /&gt;
&lt;br /&gt;
3) Adapting to your switches' timing&lt;br /&gt;
------------------------------------&lt;br /&gt;
If your switches take a long time to go into backup mode, it may be&lt;br /&gt;
desirable not to activate a backup interface immediately after a link goes&lt;br /&gt;
down. It is possible to delay the moment at which a link will be&lt;br /&gt;
completely disabled by passing the module parameter &amp;quot;downdelay&amp;quot; (in&lt;br /&gt;
milliseconds, must be a multiple of miimon).&lt;br /&gt;
&lt;br /&gt;
When a switch reboots, it is possible that its ports report &amp;quot;link up&amp;quot; status&lt;br /&gt;
before they become usable. This could fool a bond device by causing it to&lt;br /&gt;
use some ports that are not ready yet. It is possible to delay the moment at&lt;br /&gt;
which an active link will be reused by passing the module parameter &amp;quot;updelay&amp;quot;&lt;br /&gt;
(in milliseconds, must be a multiple of miimon).&lt;br /&gt;
&lt;br /&gt;
A similar situation can occur when a host re-negotiates a lost link with the&lt;br /&gt;
switch (a case of cable replacement).&lt;br /&gt;
&lt;br /&gt;
A special case is when a bonding interface has lost all slave links. Then the&lt;br /&gt;
driver will immediately reuse the first link that goes up, even if updelay&lt;br /&gt;
parameter was specified. (If there are slave interfaces in the &amp;quot;updelay&amp;quot; state,&lt;br /&gt;
the interface that first went into that state will be immediately reused.) This&lt;br /&gt;
allows to reduce down-time if the value of updelay has been overestimated.&lt;br /&gt;
&lt;br /&gt;
Examples :&lt;br /&gt;
&lt;br /&gt;
    # modprobe bonding miimon=100 mode=1 downdelay=2000 updelay=5000&lt;br /&gt;
    # modprobe bonding miimon=100 mode=0 downdelay=0 updelay=5000&lt;br /&gt;
&lt;br /&gt;
4) Limitations&lt;br /&gt;
--------------&lt;br /&gt;
The main limitations are :&lt;br /&gt;
  - only the link status is monitored. If the switch on the other side is&lt;br /&gt;
    partially down (e.g. doesn't forward anymore, but the link is OK), the link&lt;br /&gt;
    won't be disabled. Another way to check for a dead link could be to count&lt;br /&gt;
    incoming frames on a heavily loaded host. This is not applicable to small&lt;br /&gt;
    servers, but may be useful when the front switches send multicast&lt;br /&gt;
    information on their links (e.g. VRRP), or even health-check the servers.&lt;br /&gt;
    Use the arp_interval/arp_ip_target parameters to count incoming/outgoing&lt;br /&gt;
    frames.  &lt;br /&gt;
&lt;br /&gt;
Resources and links&lt;br /&gt;
===================&lt;br /&gt;
&lt;br /&gt;
Current development on this driver is posted to:&lt;br /&gt;
 - http://www.sourceforge.net/projects/bonding/&lt;br /&gt;
&lt;br /&gt;
Donald Becker's Ethernet Drivers and diag programs may be found at :&lt;br /&gt;
 - http://www.scyld.com/network/&lt;br /&gt;
&lt;br /&gt;
You will also find a lot of information regarding Ethernet, NWay, MII, etc. at&lt;br /&gt;
www.scyld.com.&lt;br /&gt;
&lt;br /&gt;
For new versions of the driver, patches for older kernels and the updated&lt;br /&gt;
userspace tools, take a look at Willy Tarreau's site :&lt;br /&gt;
 - http://wtarreau.free.fr/pub/bonding/&lt;br /&gt;
 - http://www-miaif.lip6.fr/willy/pub/bonding/&lt;br /&gt;
&lt;br /&gt;
To get latest informations about Linux Kernel development, please consult&lt;br /&gt;
the Linux Kernel Mailing List Archives at :&lt;br /&gt;
   http://boudicca.tux.org/hypermail/linux-kernel/latest/&lt;br /&gt;
&lt;br /&gt;
-- END --&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Referensi==&lt;br /&gt;
&lt;br /&gt;
* http://www.kernel.org/pub/linux/kernel/people/marcelo/linux-2.4/Documentation/networking/bonding.txt&lt;br /&gt;
&lt;br /&gt;
==Pranala Menarik==&lt;br /&gt;
&lt;br /&gt;
* [[Konfigurasi Networking Bonding]]&lt;br /&gt;
* [[Linux Howto Network Bonding]]&lt;/div&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
</feed>