On Wed, 2012-02-01 at 20:59 +0700, Fajar A. Nugraha wrote:
2012/2/1 Antonio Modesto <modesto@isimples.com.br>:
But I don't want to use per-user pools, if it is possible, the better solution for me would be setting the pool based on some information of the NAS, because my routing topology doesn't permit a single pool for all cities that we attend.
It depends.
If your NAS sends some attribute that you can use (e.g NAS-IP-Address), AND the number of possible values for that attribute is small, AND you use FR2, you can just use unlang in authorize or post-auth section to set pool-name. Manpage of unlang: http://freeradius.org/radiusd/man/unlang.html Look at "if" and "update" keyword. Alan already wrote the "update" example.
Another possibility is to store the NAS-IP-Address (or whatever attribute you use) <-> Pool-Name mapping in your own sql table, and using unlang you can do something like
update control { Pool-Name := "%{sql: SELECT pool_name FROM nas_pool_name WHERE nas_ip_address='%{NAS-IP-Address}'"
Yes, good idea, I can create a custom table for that. I just need to understand how this stuff (authorize, post-auth) works, I'm a little lost with these things. So far I didn't get setting the pool_name to a custom name, I am testing with the default "sqlippool". My production radius server is running freeradius 1.1.8, I installed freeradius 2 in another server with another SQL database and copied the configuration files from the production server to the test server and changed some stuff to get it running, then I am doing these tests in this server. I don't know if Freeradius 2.x are compatible with freeradius 1.1.8 configuration files. Thanks and sorry for the amount of questions. Regards.
}
... where nas_pool_name is your own custom table.