On Sep 5, 2021, at 12:54 PM, Fabricio Viana <fabricioviana@hotmail.com> wrote:
All packets arriving for FreeRadius have only the NAS-IPv6-Address attribute. NAS-IP-Address attribute is not sent by Mikrotik in this scenario.
That's fine.
I am able to authenticate clients successfully, as well as using the radclient command to disconnect. I'm using MySQL database and changed the query to store the NAS-IPv6-Address attribute in the nasipaddress field of the radacct table.
That's only necessary if you're running a very old version of FreeRADIUS. The default queries have supported NAS-IPv6-Address for a long time.
The problem is with checkrad: when I need to check for simultaneous connections I get the following error:
(0) sql: Executing select query: SELECT radacctid, acctsessionid, username, nasipaddress, nasportid, framedipaddress, callingstationid, framedprotocol FROM radacct WHERE username = 'joseph.test' AND acctstoptime IS NULL checkrad: Unknown NAS 255.255.255.255, not checking
The IP address that is in the nasipaddress field is 2804:444:1:1::2 and not 255.255.255.255.
Yes. Unfortunately, the checkrad / Simultaneous-Use code in rlm_sql.c hasn't been updated for v4.
Looking for the error message I found the session.c file in the Freeradius project on Github (https://github.com/redBorder/freeradius/blob/master/src/main/session.c).
Huh? The main FreeRADIUS GitHub repository is at https://github.com/FreeRADIUS/freeradius-server/ It's pointed to from http://freeradius.org. I don't recommend looking at third-party repositories for FreeRADIUS. They are many years out of date.
It seemed to me that checkrad is always waiting for IPv4. In any case I could be wrong because I don't know the C language.
My checkrad script isn't even called.
Below is the Access-Request package and the freeradius -X command output.
Would anyone know how to get around this problem? Check simultaneous users using MySQL and IPv6 as NAS IP address?
Patch rlm_sql.c to accept IPv6 addresses. This requires code changes. I'll take a look. Alan DeKok.