channel bonding/trunking and diskless booting

serguei.patchkovskii at serguei.patchkovskii at
Mon Sep 15 15:32:55 EDT 2003

----- Original Message ----- 
From: <bvds at>
To: <beowulf at>
Cc: "Ashwin Bijur" <abijur at>
Sent: Saturday, September 13, 2003 5:43 PM
Subject: channel bonding/trunking and diskless booting

> I looked into this and decided that channel bonding 
> could not be done in a system with diskless booting
> unless there was a separate network to handle the
> booting.

Not true. I configured a 90-node cluster at the University of Calgary last fall to do exactly that. The system has two 100Mbit networks between the nodes, with only one of those attached to the front node. This "front" network is used for remote boot,
then gets bonded with the the "back" network for the internode traffic.

Getting this to work requires a bit of trickery with the network startup scripts. You have to create a temporary ram filesystem, copy -statically linked-
ifenslave, ifconfig, route, shell, and the setup script to that filesystem, then activate channel
bonding and set up the routing. The key with routing in such network is that it is perfectly possible
to direct outgoing packets to systems, which are not fully attached to both networks, to the appropriate slaved interface.

For a case where both networks are attached to the 
front node, there is an additional complication, as
you do not necessarily know which interface PXE will
try first. This can be solved by assigning unique 
subnets to both interfaces, which are -different- 
from the bonded subnet. Having done this, you can 
use set up IP routing on the front node such that it
will respond through the correct interface while PXE 
is active.

Debugging such setup is a bitch - but once it works, it works really well!


Beowulf mailing list, Beowulf at
To change your subscription (digest mode or unsubscribe) visit

More information about the Beowulf mailing list