DHCP code in 2.0.4+

Alan DeKok aland at deployingradius.com
Sun Jun 7 23:14:38 CEST 2009


Karl Auer wrote:
>> They're trivial once you're storing leases in a transactional database.
> 
> With all due respect, Arran, no, they are not.
> 
> Two DHCP servers in a failover relationship must communicate with each
> other, each maintaining information about the state of leases that the
> other has.

  There's a miscommunication here.  Arran is talking about two servers
sharing a common view of their leases, and synchronizing that view with
each other, to maintain a consistent response to client machines.

  You're talking about the ISC fail-over protocol.

  The two views just don't meet.

> If they do so via a shared database (which seems to be what
> you are suggesting, apologies if not) then the entire point of failover
> is lost. And that is quite apart from the carefully timed state
> management that must occur during takeover or recovery in the case where
> a server drops out, is not reachable by its peer or is deliberately
> taken offline. Not to mention the possibility of having several servers
> participating in various failover relationships.

  I disagree.   Really.

  I spent most of a year working with DHCP in a previous life.  Your
comment is "correct", where the word "correct" has connotations of
"theoretical analysis that conveniently ignores real-world situations".

  Like losing the entire d*mned lease database.  Or working in settings
like (1) enterprises, where 99.99% of lease renewals are for the same
MAC/IP setting, or broadband/dial-up ISP's, who have interest in *not*
handing out the same IP to the same MAC for any period of time,

> No - not trivial. 

  90% of the situations are trivial to handle.  The other 10% can go buy
a $500,000 solution.  The people selling the $500K solution are welcome
to the support nightmare.

> Hence my interest in how freeradius will be doing all this.

  It will do it *very* well, or not at all.

  Alan DeKok.



More information about the Freeradius-Users mailing list