[RADIATOR] duplicate EAP Responses

Heikki Vatiainen hvn at open.com.au
Mon Nov 30 09:46:38 CST 2015


On 24.11.2015 1.57, David Zych wrote:

> Its description in the manual says "The RFCs say that IGNORE is the
> correct behaviour, but..." -- do you know what RFC language in
> particular this is referring to?  I am most definitely not an expert and
> might have overlooked something elsewhere, but I just noticed that
> rfc3579#section-2.2 seems to offer helpful and relevant guidance,
> recommending an Access-Reject for fatal errors or in the case of
> non-fatal errors an Access-Challenge option (up to a limit of 5 invalid
> EAP packets within a single session).

I did some investigation on this, and I think this is how PEAP 
fragmentation problem (request to send more fragments when there's 
nothing to send) was decided to be handled to match the EAP RFC. The 
PEAP drafts do not say anything about what to do in the case when more 
data is needed but none is left. RFC 3579 Section 4.1 mandates 
discarding requests in many cases when they are unexpected or contain 
incorrect values.

Note that this is the only case when IGNORE is returned: the other PEAP 
errors cause REJECTs. In general there is always a response and the NAS 
is kept happy.

> One more thought on this sub-topic: regardless of what RADIUS reply we
> eventually send back (or don't), I think it would be very helpful for
> Radiator to log EAP errors with at least INFO severity level so that
> they'll be visible in a typical production environment.  Currently I
> only see them in DEBUG.

Thanks for the suggestion. In addition to logging requests that hit 
EAPErrorReject there seem to be a couple of errors that are logged as 
DEBUG but could be raised to INFO. For example, the case when an EAP 
method that the client asks is not available might be one of these.

> Looking forward to it!  I figured it might take some time.  :)

So far I've taken a look at the specs and talked a bit about ignoring 
the PEAP fragment requests and how to handle duplicate EAP requests.

When re-reading the spec (RFC 3579 Section 4.1), it says that the 
authenticator is responsible retransmitting the EAP request to the 
*peer* (aka client or supplicant). However, notice that the duplicate 
you are seeing is the EAP *response* to the request sent by Radiator. 
I'd say this means the NAS should resend the RADIUS request containing 
the original EAP response instead of sending a new RADIUS request with 
the resent EAP response. It does get hairy :(

However, even if Radiator does not resend EAP requests, correctly 
rejecting the RADIUS requests should keep the RADIUS server up from the 
perspective of NAS while allowing the client to recover by doing 
reauthentication.

Thanks,
Heikki

-- 
Heikki Vatiainen <hvn at open.com.au>

Radiator: the most portable, flexible and configurable RADIUS server
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald,
Platypus, Freeside, TACACS+, PAM, external, Active Directory, EAP, TLS,
TTLS, PEAP, TNC, WiMAX, RSA, Vasco, Yubikey, MOTP, HOTP, TOTP,
DIAMETER etc. Full source on Unix, Windows, MacOSX, Solaris, VMS, 
NetWare etc.


More information about the radiator mailing list