Hi,

we have been running a multi-instance radiator setup for Eduroam for a long 
time, without many fundamental changes over the past years.
As the hardware has been written off and both hardware and OS will soon be 
unsupported, it was time to build a new setup.

So new hardware, new OS and the latest version of radiator.
It seemed to me a golden opportunity to also review the Radiator configuration 
and try to simplify it wherever possible.
But now I run into a problem that is somewhat explainable, but on the other 
hand, is not what I would expect, so I was wondering if anyone else has 
encountered the same or that maybe my presumptions are incorrect?

The old setup on a single server was as follows:
* First a front-end Radiator process with a FarmSize 4; this one rejects all 
wrong accounts and forwards specific realms to another radius server, our own 
realm to the backend instances and the rest to the national Eduroam h

* There are 4 very basic backend instances with a handler for the inner and 
outer tunnels and a LDAP authentication backend

* Then there are other instances for special purposes: seperate SSID for a more 
secure network used for examinations, one several more for specific testing 
purposes.


The server itself is oversized for this setup and the load generated and barely 
broke a sweat on busy moments.
With newer hardware, I would like to get rid of the many instances and 
configuration files for each.
So I broke everything down to the seperate components and Lego'd it back 
together in a single instance with a farmsize of 4.

Everything seemed in order: all regular handlers work perfectly, rejecting 
realm-less requests, proxying other realms, etcetera.
However, EAP sessions for our own realm did not always work and sometimes broke 
up with the following error:

     INFO: Access rejected for ######@ru.nl: EAP Response type 21 in unexpected 
state.
          NAS did RADIUS server failover for an ongoing EAP authentication?



This does happen most, but not all of the times and it completely disappears 
when using a farmsize of 0.
So, it seems logical to me that EAP sessions get assigned to different child 
processes each time which then causes the EAP session to break.


So, my first question: is that indeed what is happening?
And the second one:  are  ESP sessions and FarmSize by definition incompatible 
and do I need to go back to the front-/back-end setup again, or is there 
something I'm missing?
I've read almost every config in the goodies bag containing EAP and/or 
FarmSize, but to no avail; everything seams to point to [EAP/HASH] balancing 
sessions to a different instance or server.




The most important settings of my testing environment:


[...]


FarmSize                    4
FarmChildHook               file:"/etc/radiator/hooks/farmchild.pl"

DupCache                    shared
EAP_UseState


[...]

# Generic EAP-settings

<AuthBy FILE>
   Identifier                  EAP4WIFI
   EAPType                     TTLS,PEAP
   EAPTLS_CertificateType      PEM
   EAPTLS_CAFile               /etc/pki/tls/certs/ca-bundle.crt
   EAPTLS_CertificateChainFile /etc/radiator/cert/#####.pem
   EAPTLS_PrivateKeyFile       /etc/radiator/cert/#####.key
   EAPTLS_MaxFragmentSize      1300
   EAPTLS_TraceState
   EAPTLS_Protocols            TLSv1.3 TLSv1.2
   EAPTLS_Ciphers              
DEFAULT:!EXPORT:!LOW:!RC4:!MD5:!SSLv2:!DES:!NULL:TLSv1.2:TLSv1.3
   EAPTLS_DHFile               /etc/radiator/cert/ffdhe2048
   EAPTLS_ECDH_Curve           prime256v1
   AutoMPPEKeys
</AuthBy>


[...]


# INNER TUNNELS

<Handler TunnelledByTTLS=1>
   RewriteUsername             s/^([^@]+).*/$1/
   <AuthBy LDAP2>
      Version                  3
      UsernameMatchesWithoutRealm
      HoldServerConnection
      Host                     ######
      Port                     636
      UseSSL
      SSLCAFile                /etc/pki/tls/certs/ca-bundle.crt
      AuthDN                   cn=######,ou=######,o=######,c=######
      AuthPassword            ######
      BaseDN                   o######,c######
      Scope                    subtree
      UsernameAttr             uid
      SearchFilter             (&(uid=%1))
      EAPType                  MSCHAP-V2
      NoDefault
   </AuthBy>
   PostProcessingHook          file:"/etc/radiator/hooks/eap_acct_username.pl"
   AuthLog                     tlslog
</Handler>


[...]


# OUTER TUNNEL


<Handler Client-Identifier=####, Realm=/^####\.####$/i>
   PreAuthHook                 sub { ${$_[0]}->add_attr('Category', '#####');}
   AuthBy                      EAP4WIFI

   AddToReply                  Tunnel-Type="VLAN"
   AddToReply                  Tunnel-Medium-Type="802"
   PostProcessingHook          file:"/etc/radiator/hooks/wifi_vlan.pl"
   AuthLog                     authlog
</Handler>

[...]




Everything that doesn't concern our realm is fine and it works with a single 
child, but not with more childs.
It looks like the EAP/HASH Balance issue,, but I can't use that within this 
setup without having to build multiple instances again.

So, what am I missing?
Is it just impossible or have I overlooked some settings for this?



With kind regards,



ydo




--
Ydo Ehlers | IT Beheerder | ICT Service Center | Radboud Universiteit | Postbus 
9102, 6500 HC Nijmegen | (024) 361 78 94 |www.ru.nl/isc<http://www.ru.nl/isc>
Dit bericht en elke eventuele bijlage is uitsluitend bestemd voor de 
geadresseerde(n) en kan vertrouwelijke informatie bevatten. Indien u niet de 
geadresseerde bent mag u dit bericht en de bijlage niet kopiƫren of aan derden 
ter inzage geven of verspreiden. U wordt verzocht de afzender hiervan 
onmiddellijk op de hoogte te stellen en het bericht te vernietigen.
_______________________________________________
radiator mailing list
[email protected]
https://lists.open.com.au/mailman/listinfo/radiator

Reply via email to