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

Capabilities negotiation problem statement



In looking at the Capabilities Negotiation draft, I was struck by the 
vagueness of the problem statement. 

RADIUS has existed without capabilities negotiation for more than a decade 
now.  As far as I know,  there are not even any Vendor-Specific 
implementations.  Given the level of experimentation on other areas (see 
RFC 2882) this is surprising.  If this problem is so important and 
pervasive (as the draft argues) how come the industry seems to have 
ignored it for a decade, without creating huge problems? 

The answer is that RADIUS already enables NASes and RADIUS servers with 
different capabilities to interoperate.  For example, RFC 2865 allows a 
NAS to ignore attributes it does not understand, and this is how most 
existing RADIUS client implementations behave.  This allows a RADIUS server 
to send attributes to a NAS without having to worry about whether it 
understands them, as long as those attributes can be safely ignored. 

Similarly, a NAS does not need to know whether a RADIUS server understands 
an attribute in order to send it, as long as the attribute can be safely 
discarded by the RADIUS server.

As a result, the real issue is specification of mandatory attributes, 
not "capability-negotiation" per se.  Note that a proposal for 
mandatory/optional marking has recently been put forward in the Design 
Guidelines document. 

Some of the cases where the mandatory/optional issue comes up include: 

a. Where the RADIUS server REQUIRES the NAS to understand an attribute in 
order for access to be provided.  A classic case of this is use of 
security attributes (VLANs, Filters, etc.).  A NAS cannot safely 
ignore a security attribute sent by the RADIUS server.  

This situation is the most common one;  there are documented cases 
where existing behavior has resulted in substantial financial losses.  
At the same time, the behavior of existing implementations can't be 
changed retroactively. 

b. Where the NAS REQUIRES that the RADIUS server send an attribute in 
order for it to provide access. 

Other cases are already handled by the RADIUS protocol as it exists today: 

c. Where the RADIUS server requires an attribute that the NAS does not 
provide in an Access-Request, the server can send an Access-Reject, 
potentially including an Error-Cause (101) attribute.  If the NAS 
understands the Error-Cause attribute, it can correct the problem. 

In looking at the proposal within the Design Guidelines document, it 
appears to me that the Mandatory/Optional functionality described there 
potentially handles both cases a) and b).  In case a), a RADIUS server can 
send an attribute with the "M" bit set.  In case b), a NAS can send an 
attribute with the "M" bit set. 

Given all of this -- what is the problem statement for Capabilities 
Negotiation, and how does it differ from the problem statement for 
Mandatory/Optional attributes? 

--
to unsubscribe send a message to radiusext-request@ops.ietf.org with
the word 'unsubscribe' in a single line as the message text body.
archive: <http://psg.com/lists/radiusext/>