[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Watchdog logic



In a previous message (http://ops.ietf.org/lists/radiusext/2008/msg00857.html) Alan DeKok
pointed out:

"With TCP, there is a connection between client and server.  The
watchdog timer algorithm in RFC 3539 is defined per *connection*. So an
ID has to be reserved, because the client can't open a new connection to
test if an existing connection is still alive."

While it's true that the watchdog timer algorithm is defined per connection,
it seems like Status-Server is about determining whether a server is up
or not. The only way to determine whether a connection is down
is to wait for it to close (either via a RESET or timeout). RFC 3539
attempts to detect a failure at the application layer prior to connection failure.

I'm wondering what the implications would be of using two separate connections,
one for Status-Server/Access-Accept and the other
one for Access-Request/Access-Accept transactions.

The failover logic would change, to be sure. For example,
a connection failure on the Request/Accept connection would probably trigger
failover, regardless of the state of the Status-Server/Accept connection.
Also, the state of the two connections could get out of
sync; for example, if the Request/Accept connection was quite busy,
then the Status/Accept connection might send little or no traffic,
which might cause middleboxes (e.g. a NAT) to lose connection state
on the Status/Accept connection. In such a situation, you might just
be able to bring up another Status/Accept connection rather than
triggering failover.