Failover/load-balancing with dhcp client bug on "seconds elapsed" field
Simon Hobson
dhcp1 at thehobsons.co.uk
Thu Apr 15 15:46:47 UTC 2010
Daniel Duarte wrote:
>>Yes. Both servers will respond and offer the same address, the
>>client will accept one of the offers.
>We've just finished testing the configuration. It solved our
>problems. The clients are finally being served (thanks for the tip).
>
>However we saw a different behaviour than expected. DHCP1 now
>immediately answers the discovers, but dhcp0 continues ignoring
>them. From what we saw we believe that:
>- the pool is no longer being balanced between servers (confirmed on
>the leases file);
>- however the clients seem to continue being split between servers.
There are two cases to consider. If a client already has a lease and
is renewing it then it will attempt to renew with the server that
issued the lease. As long as that server keeps responding then the
client will not spontaneously switch servers.
If the client does not already have a lease, or it has been unable to
renew and it's lease is running out, then it will broadcast Discover
packets in an attempt to get an offer from any server(s) available.
Under these conditions, clients will tend to get split between
servers according to how quickly they respond - how a client selects
which offer to accept is undefined, in practice most clients seem to
just take the first one that meets it's requirements.
In the third case where a client has a lease but is configuring an
interface (booting up, waking from sleep, cable just plugged in, ...)
then in principal it has several options available to it - it
shouldn't just carry on using the address as it may have moved to a
different network where it's not valid. The main one is to broadcast
a request for the address it already has a lease for and get
confirmation from any DHCP server that it may continue using it. The
ack may come from a different server to the one that originally
leased the address and the client will switch - in practice, this is
likely to be on teh basis of which answers first.
>Looks like that dhcp0 will only answer when seconds elapsed becomes
>greater than the configured max seconds.
That will still be true - it's doing what you told it to !
> On this specific scenario, it means that the only redundancy
>available for dhcp1 is to manually shut down the server and changing
>dhcp0 to partner down mode.
>
If they aren't running failover, then there is nothing to alter.
Either server will either answer or not according to how you
configure it - if your clients are broken in a manner that conflicts
with your config, then yes, you have no redundancy (but all you have
to do is remove the max seconds config that's stopping one of them
answering.)
--
Simon Hobson
Visit http://www.magpiesnestpublishing.co.uk/ for books by acclaimed
author Gladys Hobson. Novels - poetry - short stories - ideal as
Christmas stocking fillers. Some available as e-books.
More information about the dhcp-users
mailing list