[Dnsmasq-discuss] Bonding interactions with dnsmasq: ip address allocation

Paul Smith psmith at gnu.org
Wed Mar 30 18:55:13 BST 2011


Hi all.  I have a system where the server (running dnsmasq) talks to
clients over a bonded network link using mode 6 bonding.  The clients
get their IP address information from the server running dnsmasq.

I don't want to get into the details of mode 6 bonding but suffice it to
say that the result for us is that which leg of the bond is used ends up
being based solely on the IP address; if the IP address (as a 32bit
number) is even then the traffic goes over one leg and if the IP address
is odd, it goes over the other leg.

For systems with a lot of clients the default "random" assignment of IP
addresses works fine; it tends to balance out.

For systems with fewer clients, life is not so good.  For a system with
6 clients if we get an even 3/3 split between even and odd IPs, then
things are great.  However, if we happen to get a 4/2, 5/1, or even 6/0
split then the traffic is badly out of balance on the bond and our
performance takes a severe hit.


I'm assuming that there's nothing in dnsmasq today that would help me
with this problem.  Does anyone have a thought about how to address
this?  One option, of course, is to get the source (today I use the
default dnsmasq provided by Red Hat) and make some changes myself that
enforce an even/odd distribution on IP addresses handed out by the
lease.

Other options like predefining the IP address based on MAC or whatever
aren't really feasible (I don't know all the MACs and clients can be
replaced at any time).

Ideas/thoughts/alternatives?


Thanks!

PS. Yes I know mode 6 bonding is sub-optimal; unfortunately I need to
PXE boot over this link and other bonding modes don't work with PXE
unless your PXE driver (provided with the BIOS on the hardware
remember!) has support for it... *sigh*




More information about the Dnsmasq-discuss mailing list