Virtual server can't set reply attributes

Alan DeKok aland at deployingradius.com
Fri Sep 5 13:44:49 CEST 2014


Paul wrote:
> My configuration include two local virtual servers for two differnt
> realms. Everything was fine on freeradius 2.2.5.

  OK.

> Now I try to move configuration to the release 3 (3.0.4 rc2).
> I have a problem with attributes set on the local virual server.
> These attributes found in the SQL, but not returned to the NAS with
> Access-Accept. (debug output below)
> User 'test1' has own attribute in the radreply SQL table:
> SELECT * FROM radreply WHERE username = 'test1';
> +------+----------+--------------+----+------------------------------------------------+
> | id   | username | attribute    | op | value
>                 |
> +------+----------+--------------+----+------------------------------------------------+
> | 8880 | test1    | Cisco-AVPair | += | "Cisco-AVPair +=
> "ip:inacl=ACL_VIRT_SECURE_IN" |
> +------+----------+--------------+----+------------------------------------------------+

  That's wrong.  Why are you using Cisco-AVPair twice?  It should be:

	Cisco-AVPair
	+=
	"ip:inacl=ACL_VIRT_SECURE_IN"

> (0)  sql : EXPAND %{%{Stripped-User-Name}:-%{%{User-Name}:-DEFAULT}}
> (0)  sql :    --> test1
> (0)  sql : SQL-User-Name set to 'test1'
> rlm_sql (sql): Reserved connection (4)
> (0)  sql : EXPAND SELECT id, username, attribute, value, op FROM
> radcheck WHERE username = BINARY '%{SQL-User-Name}' ORDER BY id
> (0)  sql :    --> SELECT id, username, attribute, value, op FROM
> radcheck WHERE username = BINARY 'test1' ORDER BY id
> rlm_sql (sql): Executing query: 'SELECT id, username, attribute,
> value, op FROM radcheck WHERE username = BINARY 'test1' ORDER BY id'
> (0)  sql : User found in radcheck table
> (0)  sql : Check items matched

  That's good.

> (0)  sql : EXPAND SELECT id, username, attribute, value, op FROM
> radreply WHERE username = BINARY '%{SQL-User-Name}' ORDER BY id
> (0)  sql :    --> SELECT id, username, attribute, value, op FROM
> radreply WHERE username = BINARY 'test1' ORDER BY id
> rlm_sql (sql): Executing query: 'SELECT id, username, attribute,
> value, op FROM radreply WHERE username = BINARY 'test1' ORDER BY id'
> (0)  sql : User found in radreply table

  That's good.

> (0)  sql : EXPAND SELECT groupname FROM radusergroup WHERE username =
> BINARY '%{SQL-User-Name}' ORDER BY priority
> (0)  sql :    --> SELECT groupname FROM radusergroup WHERE username =
> BINARY 'test1' ORDER BY priority
> rlm_sql (sql): Executing query: 'SELECT groupname FROM radusergroup
> WHERE username = BINARY 'test1' ORDER BY priority'
> (0)  sql : User not found in any groups

  That shouldn't matter.

> rlm_sql (sql): Released connection (4)
> rlm_sql (sql): Closing connection (0), from 1 unused connections
> rlm_sql_mysql: Socket destructor called, closing socket

  That's not good.  It looks like the "pool" configuration is wrong.
The module should NOT be closing connections immediately.

> (0) Sending Access-Accept packet to host x.x.53.4 port 1645, id=38, length=0
> Sending Access-Accept Id 38 from x.x.52.133:1812 to x.x.53.4:1645
> (0) Finished request
> Waking up in 0.3 seconds.
> (...)

  OK... and what does the debug log look like for 2.2.5?  Are you using
the same SQL tables?  Or different ones?

  Alan DeKok.


More information about the Freeradius-Users mailing list