View Single Post

   
  #3 (permalink)  
Old 01-16-2008, 10:17 AM
Dave Miner
 
Posts: n/a
Default Re: DHCP server `failover'

Tim Bradshaw wrote:
> [This isn't strictly a Solaris admin question, sorry.]
>
> We're using Sun's DHCP server to provide config to a bunch of Windows
> clients. This isn't any kind of HA environment - they're desktop boxes
> which can be rebooted, though it would be a pain to reboot them all.
> Currently we have a single DHCP server which is due to be retired.
> I'm planning on having a pair of boxes which have DHCP servers
> configured (identically) on them. If the live box goes down we'd then
> start the server on the other one.
>
> The question is: do I need to worry about keeping the DHCP tables
> coherent between the boxes (bearing in mind that this is *not* an HA
> environment)? My initial guess was that I don't: clients will just
> ask to renew their current addresses, and the new box will pick up the
> allocations that way. I think it won't hand out duplicate addresses
> because it will ping before handing out an address and will find a
> machine responding. The bad case is if some machine is temporarily
> unresponsive when it won't respond to the ping & will then get unhappy
> later. This will probably be few machines though and I can live with
> that, especially as we're expecting server failure to be a rare event
> (they're reasonably redundant machines).
>


You do need to provide some level of coherency, which could be as simple
as exporting out the configuration every so often (dhcpconfig -X <some
file> -a ALL -m ALL -o ALL) and copying it to the backup server so that
you can import it (dhcpconfig -I <some file>) when needed. Or you place
the data stores on some HA NFS service and share them (which we do
support) or in a SAN that's dual-ported and can be failed over.

If your backup server doesn't have any idea about existing allocations,
you'll get into this scenario:

- primary goes down
- start server on secondary
- running clients continue to use existing leases
- as leases expire (they can't be extended by the secondary since it
doesn't know about them at all), or clients which weren't running are
started, they request an address; the server picks an address out of the
pool, and attempts to ping to be sure it's free. If nobody responds,
fine, it can be used; if someone does respond, that address gets marked
as unusable, and is taken out of service until the administrator marks
it as available again. Pool of addresses shrinks, perhaps to the point
where you no longer have enough addresses for all your clients. You can
write scripts to go out and reap the addresses which have been marked
unusable to work around this, but at that point you probably should have
just been doing the dhcpconfig export/import I describe above.

Not that you probably want it, but we do sell a thing called the Netra
HA suite which provides a real high availability option,
http://www.sun.com/software/netrahasuite/index.xml.

Dave
Reply With Quote