Re: : Failover mechanism in DCCA

Bernard Aboba <[email protected]>
Newsgroups gmane.ietf.aaa
Message-ID <[email protected]>
> These, I understand are more of BASE protocol functionalities and should
> be transparent to DCCA client. (Assuming DCCA would be layered on BASE)

The BASE failover facilities described in RFC 3539 operate only on
the first hop, and assume that state is not being kept, and therefore that
one AAA server is as good as another.

This is not necessarily true for the DCCA application, which builds state
on the Diameter client and server that may or may not be replicated to an
alternative server.  The result is that pure BASE failover functionality
can result in failover to a DCCA server without the required state.  This
is why DCCA needs to be able to control the failover behavior via the
CC-Session-Failover AVP.  My understanding is that if this AVP is not set
to FAILOVER_SUPPORTED then Diameter Base failover is turned off.

> In scenarios where DCCA client talking to Agents, and an Agent could be
> serving the requests for a particular realm 3 hops away, do we need to
> start all over again to try the alternate secondary server which could
> have been reached from the same Agent ? Further, how would the DCCA
> client know which is the alternate server that needs to be tried ?

Diameter clients utilize the Watchdog functionality defined in RFC 3539 to
diagnose failures in the first hop.  Unless a Diameter client receives an
error message, it may be quite difficult for it to diagnose the cause of
a failure beyond the first hop.  In general, receipt of error messages is
not guaranteed for all potential failure scenarios.

> As far as I see, DCCA should include Dest-Host AVP for the subsequent
> requests after initial CCA received *IF* failover_is_not_supported else
> it shouldn't include this AVP so that the BASE/Agents can do a failover
> to other servers in a given realm.

In general, RFC 3539 tries to avoid failover while segments are still in
flight since this violates the law of "conservation of packets".  That
is why Diameter DCCA can terminate service early (prior to expiration of
the minimum Tw timer) but does not initiate a new request unless a
protocol error has been received, indicating that segments are no longer
in flight.  This enables DCCA to maintain conservative behavior.

> But, with the above approach it is not guaranteed that we always try the
> server which replied with initial CCA before failing over to the other
> alternate servers.

I'm also not sure how this approach can avoid multiple failovers and
violation of "conservation of packets".
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.