I am having problemas deploying a redundant freeradius with mysql Here my sql.conf # -*- text -*- ## ## sql.conf -- SQL modules ## ## $Id$ ###################################################################### # # Configuration for the SQL module # # The database schemas and queries are located in subdirectories: # # sql/DB/schema.sql Schema # sql/DB/dialup.conf Basic dialup (including policy) queries # sql/DB/counter.conf counter # sql/DB/ippool.conf IP Pools in SQL # sql/DB/ippool.sql schema for IP pools. # # Where "DB" is mysql, mssql, oracle, or postgresql. # sql sql1{ # # Set the database to one of: # # mysql, mssql, oracle, postgresql # database = "mysql" # # Which FreeRADIUS driver to use. # driver = "rlm_sql_${database}" # Connection info: server = "xxx.xxx.xxx.xxx" #port = 3306 login = "radius" password = "radius" # Database table configuration for everything except Oracle radius_db = "radiusprod" # If you are using Oracle then use this instead # radius_db = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=your_sid)))" # If you want both stop and start records logged to the # same SQL table, leave this as is. If you want them in # different tables, put the start table in acct_table1 # and stop table in acct_table2 acct_table1 = "radacct" acct_table2 = "radacct" # Allow for storing data after authentication postauth_table = "radpostauth" authcheck_table = "radcheck" authreply_table = "radreply" groupcheck_table = "radgroupcheck" groupreply_table = "radgroupreply" # Table to keep group info usergroup_table = "usergroup" # If set to 'yes' (default) we read the group tables # If set to 'no' the user MUST have Fall-Through = Yes in the radreply table # read_groups = yes # Remove stale session if checkrad does not see a double login deletestalesessions = yes # Print all SQL statements when in debug mode (-x) ######### ROML PONER SQLTRACE NO!############# sqltrace = no ############################################## sqltracefile = ${logdir}/sqltrace.sql # number of sql connections to make to server num_sql_socks = 8 #num_sql_socks = 40 # number of seconds to dely retrying on a failed database # connection (per_socket) connect_failure_retry_delay = 60 # lifetime of an SQL socket. If you are having network issues # such as TCP sessions expiring, you may need to set the socket # lifetime. If set to non-zero, any open connections will be # closed "lifetime" seconds after they were first opened. lifetime = 0 # Maximum number of queries used by an SQL socket. If you are # having issues with SQL sockets lasting "too long", you can # limit the number of queries performed over one socket. After # "max_qeuries", the socket will be closed. Use 0 for "no limit". max_queries = 0 # Set to 'yes' to read radius clients from the database ('nas' table) # Clients will ONLY be read on server startup. For performance # and security reasons, finding clients via SQL queries CANNOT # be done "live" while the server is running. # readclients = yes # Table to keep radius client info nas_table = "nas" # Read driver-specific configuration $INCLUDE sql/${database}/dialup.conf } sql sql2{ # # Set the database to one of: # # mysql, mssql, oracle, postgresql # database = "mysql" # # Which FreeRADIUS driver to use. # driver = "rlm_sql_${database}" # Connection info: server = "127.0.0.1" #port = 3306 login = "radius" password = "radius" # Database table configuration for everything except Oracle radius_db = "radiusprod" # If you are using Oracle then use this instead # radius_db = "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SID=your_sid)))" # If you want both stop and start records logged to the # same SQL table, leave this as is. If you want them in # different tables, put the start table in acct_table1 # and stop table in acct_table2 acct_table1 = "radacct" acct_table2 = "radacct" # Allow for storing data after authentication postauth_table = "radpostauth" authcheck_table = "radcheck" authreply_table = "radreply" groupcheck_table = "radgroupcheck" groupreply_table = "radgroupreply" # Table to keep group info usergroup_table = "usergroup" # If set to 'yes' (default) we read the group tables # If set to 'no' the user MUST have Fall-Through = Yes in the radreply table # read_groups = yes # Remove stale session if checkrad does not see a double login deletestalesessions = yes # Print all SQL statements when in debug mode (-x) ######### ROML PONER SQLTRACE NO!############# sqltrace = no ############################################## sqltracefile = ${logdir}/sqltrace.sql # number of sql connections to make to server num_sql_socks = 8 #num_sql_socks = 40 # number of seconds to dely retrying on a failed database # connection (per_socket) connect_failure_retry_delay = 60 # lifetime of an SQL socket. If you are having network issues # such as TCP sessions expiring, you may need to set the socket # lifetime. If set to non-zero, any open connections will be # closed "lifetime" seconds after they were first opened. lifetime = 0 # Maximum number of queries used by an SQL socket. If you are # having issues with SQL sockets lasting "too long", you can # limit the number of queries performed over one socket. After # "max_qeuries", the socket will be closed. Use 0 for "no limit". max_queries = 0 # Set to 'yes' to read radius clients from the database ('nas' table) # Clients will ONLY be read on server startup. For performance # and security reasons, finding clients via SQL queries CANNOT # be done "live" while the server is running. # readclients = yes # Table to keep radius client info nas_table = "nas" # Read driver-specific configuration $INCLUDE sql/${database}/dialup.conf } radius.conf instantiate { # # Allows the execution of external scripts. # The entire command line (and output) must fit into 253 bytes. # # e.g. Framed-Pool = `%{exec:/bin/echo foo}` exec # # The expression module doesn't do authorization, # authentication, or accounting. It only does dynamic # translation, of the form: # # Session-Timeout = `%{expr:2 + 3}` # # So the module needs to be instantiated, but CANNOT be # listed in any other section. See 'doc/rlm_expr' for # more information. # expr # # We add the counter module here so that it registers # the check-name attribute before any module which sets # it # daily expiration logintime # subsections here can be thought of as "virtual" modules. # # e.g. If you have two redundant SQL servers, and you want to # use them in the authorize and accounting sections, you could # place a "redundant" block in each section, containing the # exact same text. Or, you could uncomment the following # lines, and list "redundant_sql" in the authorize and # accounting sections. # #redundant redundant_sql { # sql1 # sql2 #} redundant redundant_sql { sql1 sql2 handled } redundant redundant_sqlip { sqlippool1 sqlippool2 handled } } sqlippool.conf ## Configuration for the SQL based IP Pool module (rlm_sqlippool) ## ## The database schemas are available at: ## ## raddb/sql/DB/ippool.sql ## ## $Id$ sqlippool sqlippool1 { ######################################### ## SQL instance to use (from sql.conf) ## ## ## If you have multiple sql instances, such as "sql sql1 {...}", ## use the *instance* name here: sql1. ######################################### sql-instance-name = "sql1" ## SQL table to use for ippool range and lease info ippool_table = "radippool" ## IP lease duration. (Leases expire even if Acct Stop packet is lost) lease-duration = 3600 ## Attribute which should be considered unique per NAS ## Using NAS-Port gives behaviour similar to rlm_ippool. (And ACS) ## Using Calling-Station-Id works for NAS that send fixed NAS-Port ## ONLY change this if you know what you are doing! pool-key = "%{NAS-Port}" # pool-key = "%{Calling-Station-Id}" ################################################################ # # WARNING: MySQL has certain limitations that means it can # hand out the same IP address to 2 different users. # # We suggest using an SQL DB with proper transaction # support, such as PostgreSQL, or using MySQL # with InnoDB. # ################################################################ # # Use the same database as configured in the "sql" module, "database" # configuration item. Change the "postgresql" name below to be the # same as the "database" field of the SQL module referred to in the # "sql-instance-name", above. # $INCLUDE sql/mysql/ippool.conf ## Logging configuration. (Comment out to disable logging) sqlippool_log_exists = "Existing IP: %{reply:Framed-IP-Address} \ (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" sqlippool_log_success = "Allocated IP: %{reply:Framed-IP-Address} from %{control:Pool-Name} \ (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" sqlippool_log_clear = "Released IP %{Framed-IP-Address}\ (did %{Called-Station-Id} cli %{Calling-Station-Id} user %{User-Name})" sqlippool_log_failed = "IP Allocation FAILED from %{control:Pool-Name} \ (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" sqlippool_log_nopool = "No Pool-Name defined \ (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" } sqlippool sqlippool2 { ######################################### ## SQL instance to use (from sql.conf) ## ## ## If you have multiple sql instances, such as "sql sql1 {...}", ## use the *instance* name here: sql1. ######################################### sql-instance-name = "sql2" ## SQL table to use for ippool range and lease info ippool_table = "radippool" ## IP lease duration. (Leases expire even if Acct Stop packet is lost) lease-duration = 3600 ## Attribute which should be considered unique per NAS ## Using NAS-Port gives behaviour similar to rlm_ippool. (And ACS) ## Using Calling-Station-Id works for NAS that send fixed NAS-Port ## ONLY change this if you know what you are doing! pool-key = "%{NAS-Port}" # pool-key = "%{Calling-Station-Id}" ################################################################ # # WARNING: MySQL has certain limitations that means it can # hand out the same IP address to 2 different users. # # We suggest using an SQL DB with proper transaction # support, such as PostgreSQL, or using MySQL # with InnoDB. # ################################################################ # # Use the same database as configured in the "sql" module, "database" # configuration item. Change the "postgresql" name below to be the # same as the "database" field of the SQL module referred to in the # "sql-instance-name", above. # $INCLUDE sql/mysql/ippool.conf ## Logging configuration. (Comment out to disable logging) sqlippool_log_exists = "Existing IP: %{reply:Framed-IP-Address} \ (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" sqlippool_log_success = "Allocated IP: %{reply:Framed-IP-Address} from %{control:Pool-Name} \ (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" sqlippool_log_clear = "Released IP %{Framed-IP-Address}\ (did %{Called-Station-Id} cli %{Calling-Station-Id} user %{User-Name})" sqlippool_log_failed = "IP Allocation FAILED from %{control:Pool-Name} \ (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" sqlippool_log_nopool = "No Pool-Name defined \ (did %{Called-Station-Id} cli %{Calling-Station-Id} port %{NAS-Port} user %{User-Name})" } sites-enable/default authorize { preprocess chap mschap suffix eap { ok = return } redundant_sql detail pap expiration logintime pap } authenticate { Auth-Type PAP { pap } Auth-Type CHAP { chap } Auth-Type MS-CHAP { mschap } unix eap } preacct { preprocess acct_unique suffix } accounting { detail { fail = 1 } redundant_sql radutmp redundant_sqlip } session { radutmp detail { fail = 1 } redundant_sql } post-auth { detail { fail = 1 } redundant_sqlip redundant_sql exec Post-Auth-Type REJECT { attr_filter.access_reject } } pre-proxy { } post-proxy { eap } The result after a radiusd -X is /etc/raddb/sql.conf[116]: Instantiation failed for module "sql2" /etc/raddb/radiusd.conf[771]: Failed to find module "sql2". /etc/raddb/radiusd.conf[771]: Failed to parse "sql2" entry. /etc/raddb/sites-enabled/default[1]: Errors parsing authorize section.
Rhommel Lamas wrote:
I am having problemas deploying a redundant freeradius with mysql
Here my sql.conf
Which is not needed.
The result after a radiusd -X is
/etc/raddb/sql.conf[116]: Instantiation failed for module "sql2" /etc/raddb/radiusd.conf[771]: Failed to find module "sql2". /etc/raddb/radiusd.conf[771]: Failed to parse "sql2" entry. /etc/raddb/sites-enabled/default[1]: Errors parsing authorize section.
And you have carefully deleted the most useful log messages, which were the earlier ones. The point of debug output is to *read it*. If you only look at the last 3 lines of text, you're going to miss important messages. Alan DeKok.
FreeRADIUS Version 2.1.7, for host x86_64-redhat-linux-gnu, built on Mar 31 2010 at 00:14:28 Copyright (C) 1999-2009 The FreeRADIUS server project and contributors. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. You may redistribute copies of FreeRADIUS under the terms of the GNU General Public License v2. Starting - reading configuration files ... including configuration file /etc/raddb/radiusd.conf including configuration file /etc/raddb/proxy.conf including configuration file /etc/raddb/clients.conf including files in directory /etc/raddb/modules/ including configuration file /etc/raddb/modules/policy including configuration file /etc/raddb/modules/smsotp including configuration file /etc/raddb/modules/etc_group including configuration file /etc/raddb/modules/preprocess including configuration file /etc/raddb/modules/radutmp including configuration file /etc/raddb/modules/chap including configuration file /etc/raddb/modules/realm including configuration file /etc/raddb/modules/expr including configuration file /etc/raddb/modules/logintime including configuration file /etc/raddb/modules/unix including configuration file /etc/raddb/modules/exec including configuration file /etc/raddb/modules/attr_filter including configuration file /etc/raddb/modules/detail.example.com including configuration file /etc/raddb/modules/acct_unique including configuration file /etc/raddb/modules/detail including configuration file /etc/raddb/modules/cui including configuration file /etc/raddb/modules/ippool including configuration file /etc/raddb/modules/pam including configuration file /etc/raddb/modules/passwd including configuration file /etc/raddb/modules/counter including configuration file /etc/raddb/modules/detail.log including configuration file /etc/raddb/modules/inner-eap including configuration file /etc/raddb/modules/perl including configuration file /etc/raddb/modules/otp including configuration file /etc/raddb/modules/mac2ip including configuration file /etc/raddb/modules/mac2vlan including configuration file /etc/raddb/modules/expiration including configuration file /etc/raddb/modules/sqlcounter_expire_on_login including configuration file /etc/raddb/modules/files including configuration file /etc/raddb/modules/attr_rewrite including configuration file /etc/raddb/modules/echo including configuration file /etc/raddb/modules/checkval including configuration file /etc/raddb/modules/linelog including configuration file /etc/raddb/modules/sradutmp including configuration file /etc/raddb/modules/mschap including configuration file /etc/raddb/modules/always including configuration file /etc/raddb/modules/smbpasswd including configuration file /etc/raddb/modules/digest including configuration file /etc/raddb/modules/wimax including configuration file /etc/raddb/modules/sql_log including configuration file /etc/raddb/modules/pap including configuration file /etc/raddb/eap.conf including configuration file /etc/raddb/sql.conf including configuration file /etc/raddb/sql/mysql/dialup.conf including configuration file /etc/raddb/sql/mysql/dialup.conf including configuration file /etc/raddb/sql/mysql/counter.conf including configuration file /etc/raddb/sqlippool.conf including configuration file /etc/raddb/sql/mysql/ippool.conf including configuration file /etc/raddb/sql/mysql/ippool.conf including configuration file /etc/raddb/policy.conf including files in directory /etc/raddb/sites-enabled/ including configuration file /etc/raddb/sites-enabled/inner-tunnel including configuration file /etc/raddb/sites-enabled/default including configuration file /etc/raddb/sites-enabled/control-socket group = radiusd user = radiusd including dictionary file /etc/raddb/dictionary main { prefix = "/usr" localstatedir = "/var" logdir = "/var/log/radius" libdir = "/usr/lib64/freeradius" radacctdir = "/var/log/radius/radacct" hostname_lookups = no max_request_time = 30 cleanup_delay = 6 max_requests = 2048 allow_core_dumps = no pidfile = "/var/run/radiusd/radiusd.pid" checkrad = "/usr/sbin/checkrad" debug_level = 0 proxy_requests = yes log { stripped_names = no auth = yes auth_badpass = yes auth_goodpass = no msg_badpass = "Wrong Password" } security { max_attributes = 200 reject_delay = 1 status_server = yes } } radiusd: #### Loading Realms and Home Servers #### proxy server { retry_delay = 5 retry_count = 3 default_fallback = yes dead_time = 120 wake_all_if_all_dead = no } realm LOCAL { authhost = LOCAL accthost = LOCAL } realm xxxx { authhost = LOCAL accthost = LOCAL } realm xxxx { authhost = LOCAL accthost = LOCAL } realm xxxx { authhost = LOCAL accthost = LOCAL } realm xxxx { authhost = LOCAL accthost = LOCAL } realm xxx.xxx { authhost = LOCAL accthost = LOCAL } realm ade.service { authhost = LOCAL accthost = LOCAL } radiusd: #### Loading Clients #### radiusd: #### Instantiating modules #### instantiate { Module: Linked to module rlm_exec Module: Instantiating exec exec { wait = no input_pairs = "request" shell_escape = yes } Module: Linked to module rlm_expr Module: Instantiating expr Module: Linked to module rlm_expiration Module: Instantiating expiration expiration { reply-message = "Password Has Expired " } Module: Linked to module rlm_logintime Module: Instantiating logintime logintime { reply-message = "You are calling outside your allowed timespan " minimum-timeout = 60 } } radiusd: #### Loading Virtual Servers #### server inner-tunnel { modules { Module: Checking authenticate {...} for more modules to load Module: Linked to module rlm_pap Module: Instantiating pap pap { encryption_scheme = "auto" auto_header = no } Module: Linked to module rlm_chap Module: Instantiating chap Module: Linked to module rlm_mschap Module: Instantiating mschap mschap { use_mppe = yes require_encryption = no require_strong = no with_ntdomain_hack = no } Module: Linked to module rlm_unix Module: Instantiating unix unix { radwtmp = "/var/log/radius/radwtmp" } Module: Linked to module rlm_eap Module: Instantiating eap eap { default_eap_type = "md5" timer_expire = 60 ignore_unknown_eap_types = no cisco_accounting_username_bug = no max_sessions = 2048 } Module: Linked to sub-module rlm_eap_md5 Module: Instantiating eap-md5 Module: Linked to sub-module rlm_eap_leap Module: Instantiating eap-leap Module: Linked to sub-module rlm_eap_gtc Module: Instantiating eap-gtc gtc { challenge = "Password: " auth_type = "PAP" } Module: Linked to sub-module rlm_eap_mschapv2 Module: Instantiating eap-mschapv2 mschapv2 { with_ntdomain_hack = no } Module: Checking authorize {...} for more modules to load Module: Linked to module rlm_realm Module: Instantiating suffix realm suffix { format = "suffix" delimiter = "@" ignore_default = no ignore_null = no } Module: Linked to module rlm_files Module: Instantiating files files { usersfile = "/etc/raddb/users" acctusersfile = "/etc/raddb/acct_users" preproxy_usersfile = "/etc/raddb/preproxy_users" compat = "no" } Module: Checking session {...} for more modules to load Module: Linked to module rlm_radutmp Module: Instantiating radutmp radutmp { filename = "/var/log/radius/radutmp" username = "%{User-Name}" case_sensitive = yes check_with_nas = yes perm = 384 callerid = yes } Module: Checking post-proxy {...} for more modules to load Module: Checking post-auth {...} for more modules to load Module: Linked to module rlm_attr_filter Module: Instantiating attr_filter.access_reject attr_filter attr_filter.access_reject { attrsfile = "/etc/raddb/attrs.access_reject" key = "%{User-Name}" } } # modules } # server server { modules { Module: Checking authenticate {...} for more modules to load Module: Checking authorize {...} for more modules to load Module: Linked to module rlm_preprocess Module: Instantiating preprocess preprocess { huntgroups = "/etc/raddb/huntgroups" hints = "/etc/raddb/hints" with_ascend_hack = no ascend_channels_per_line = 23 with_ntdomain_hack = no with_specialix_jetstream_hack = no with_cisco_vsa_hack = no with_alvarion_vsa_hack = no } Module: Loading virtual module redundant_sql Module: Linked to module rlm_sql Module: Instantiating sql1 sql sql1 { driver = "rlm_sql_mysql" server = "xxx.xxx.xxx.xxx" port = "" login = "radius" password = "radius" radius_db = "radiusprod" read_groups = yes sqltrace = no sqltracefile = "/var/log/radius/sqltrace.sql" readclients = yes deletestalesessions = yes num_sql_socks = 8 lifetime = 0 max_queries = 0 sql_user_name = "%{%{Stripped-User-Name}:-%{%{User-Name}:-DEFAULT}}" default_user_profile = "DEFAULT" nas_query = "SELECT id, nasname, shortname, type, secret FROM nas" authorize_check_query = "SELECT id, UserName, Attribute, Value, op FROM radcheck WHERE Username = '%{SQL-User-Name}' ORDER BY id" authorize_reply_query = "SELECT id, UserName, Attribute, Value, op FROM radreply WHERE Username = '%{SQL-User-Name}' ORDER BY id" authorize_group_check_query = "SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Attribute,radgroupcheck.Value,radgroupcheck.op FROM radgroupcheck,usergroup WHERE usergroup.Username = '%{SQL-User-Name}' AND usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id" authorize_group_reply_query = "SELECT radgroupreply.id,radgroupreply.GroupName,radgroupreply.Attribute,radgroupreply.Value,radgroupreply.op FROM radgroupreply,usergroup WHERE usergroup.Username = '%{SQL-User-Name}' AND usergroup.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.id" accounting_onoff_query = "UPDATE radacct SET AcctStopTime='%S', AcctSessionTime=unix_timestamp('%S') - unix_timestamp(AcctStartTime), AcctTerminateCause='%{Acct-Terminate-Cause}', AcctStopDelay = '%{Acct-Delay-Time}' WHERE AcctSessionTime=0 AND AcctStopTime=0 AND NASIPAddress= '%{NAS-IP-Address}' AND AcctStartTime <= '%S'" accounting_update_query = "UPDATE radacct SET FramedIPAddress = '%{Framed-IP-Address}', AcctSessionTime = '%{Acct-Session-Time}', AcctInputOctets = '%{Acct-Input-Octets}', AcctOutputOctets = '%{Acct-Output-Octets}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress= '%{NAS-IP-Address}'" accounting_update_query_alt = "INSERT into radacct (AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay) values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', '%{NAS-Port-Type}', DATE_SUB('%S',INTERVAL (%{Acct-Session-Time:-0} + %{Acct-Delay-Time:-0}) SECOND), '%{Acct-Session-Time}', '%{Acct-Authentic}', '', '%{Acct-Input-Octets}', '%{Acct-Output-Octets}', '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '0')" accounting_start_query = "INSERT into radacct (AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', '%{NAS-Port-Type}', '%S', '0', '0', '%{Acct-Authentic}', '%{Connect-Info}', '', '0', '0', '%{Called-Station-Id}', '%{Calling-Station-Id}', '', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '%{Acct-Delay-Time}', '0')" accounting_start_query_alt = "UPDATE radacct SET AcctStartTime = '%S', AcctStartDelay = '%{Acct-Delay-Time}', ConnectInfo_start = '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}'" accounting_stop_query = "UPDATE radacct SET AcctStopTime = '%S', AcctSessionTime = '%{Acct-Session-Time}', AcctInputOctets = '%{Acct-Input-Octets}', AcctOutputOctets = '%{Acct-Output-Octets}', AcctTerminateCause = '%{Acct-Terminate-Cause}', AcctStopDelay = '%{Acct-Delay-Time}', ConnectInfo_stop = '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}'" accounting_stop_query_alt = "INSERT into radacct (AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', '%{NAS-Port-Type}', DATE_SUB('%S', INTERVAL (%{Acct-Session-Time:-0} + %{Acct-Delay-Time:-0}) SECOND), '%S', '%{Acct-Session-Time}', '%{Acct-Authentic}', '', '%{Connect-Info}', '%{Acct-Input-Octets}', '%{Acct-Output-Octets}', '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Acct-Terminate-Cause}', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '0', '%{Acct-Delay-Time}')" group_membership_query = "SELECT GroupName FROM usergroup WHERE UserName='%{SQL-User-Name}'" connect_failure_retry_delay = 60 simul_count_query = "" simul_verify_query = "SELECT RadAcctId, AcctSessionId, UserName, NASIPAddress, NASPortId, FramedIPAddress, CallingStationId, FramedProtocol FROM radacct WHERE UserName='%{SQL-User-Name}' AND AcctStopTime = 0" postauth_query = "INSERT into radpostauth (id, user, pass, reply, date) values ('', '%{User-Name}', '%{User-Password:-Chap-Password}', '%{reply:Packet-Type}', NOW())" safe-characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /" } rlm_sql (sql1): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked rlm_sql (sql1): Attempting to connect to radius@xxx.xxx.xxx.xxx:/radiusprod rlm_sql (sql1): starting 0 rlm_sql (sql1): Attempting to connect rlm_sql_mysql #0 rlm_sql_mysql: Starting connect to MySQL server for #0 rlm_sql (sql1): Connected new DB handle, #0 rlm_sql (sql1): starting 1 rlm_sql (sql1): Attempting to connect rlm_sql_mysql #1 rlm_sql_mysql: Starting connect to MySQL server for #1 rlm_sql (sql1): Connected new DB handle, #1 rlm_sql (sql1): starting 2 rlm_sql (sql1): Attempting to connect rlm_sql_mysql #2 rlm_sql_mysql: Starting connect to MySQL server for #2 rlm_sql (sql1): Connected new DB handle, #2 rlm_sql (sql1): starting 3 rlm_sql (sql1): Attempting to connect rlm_sql_mysql #3 rlm_sql_mysql: Starting connect to MySQL server for #3 rlm_sql (sql1): Connected new DB handle, #3 rlm_sql (sql1): starting 4 rlm_sql (sql1): Attempting to connect rlm_sql_mysql #4 rlm_sql_mysql: Starting connect to MySQL server for #4 rlm_sql (sql1): Connected new DB handle, #4 rlm_sql (sql1): starting 5 rlm_sql (sql1): Attempting to connect rlm_sql_mysql #5 rlm_sql_mysql: Starting connect to MySQL server for #5 rlm_sql (sql1): Connected new DB handle, #5 rlm_sql (sql1): starting 6 rlm_sql (sql1): Attempting to connect rlm_sql_mysql #6 rlm_sql_mysql: Starting connect to MySQL server for #6 rlm_sql (sql1): Connected new DB handle, #6 rlm_sql (sql1): starting 7 rlm_sql (sql1): Attempting to connect rlm_sql_mysql #7 rlm_sql_mysql: Starting connect to MySQL server for #7 rlm_sql (sql1): Connected new DB handle, #7 rlm_sql (sql1): Processing generate_sql_clients rlm_sql (sql1) in generate_sql_clients: query is SELECT id, nasname, shortname, type, secret FROM nas rlm_sql (sql1): Reserving sql socket id: 7 rlm_sql (sql1): Adding client xxx.xxx.xxx.xxx (xxxx, server=<none>) to clients list rlm_sql (sql1): Read entry nasname=xxx.xxx.xxx.xxx,shortname=xxxxxxxx,secret=xxx rlm_sql (sql1): Released sql socket id: 7 Module: Instantiating sql2 sql sql2 { driver = "rlm_sql_mysql" server = "127.0.0.1" port = "" login = "radius" password = "radius" radius_db = "radiusprod" read_groups = yes sqltrace = no sqltracefile = "/var/log/radius/sqltrace.sql" readclients = yes deletestalesessions = yes num_sql_socks = 8 lifetime = 0 max_queries = 0 sql_user_name = "%{%{Stripped-User-Name}:-%{%{User-Name}:-DEFAULT}}" default_user_profile = "DEFAULT" nas_query = "SELECT id, nasname, shortname, type, secret FROM nas" authorize_check_query = "SELECT id, UserName, Attribute, Value, op FROM radcheck WHERE Username = '%{SQL-User-Name}' ORDER BY id" authorize_reply_query = "SELECT id, UserName, Attribute, Value, op FROM radreply WHERE Username = '%{SQL-User-Name}' ORDER BY id" authorize_group_check_query = "SELECT radgroupcheck.id,radgroupcheck.GroupName,radgroupcheck.Attribute,radgroupcheck.Value,radgroupcheck.op FROM radgroupcheck,usergroup WHERE usergroup.Username = '%{SQL-User-Name}' AND usergroup.GroupName = radgroupcheck.GroupName ORDER BY radgroupcheck.id" authorize_group_reply_query = "SELECT radgroupreply.id,radgroupreply.GroupName,radgroupreply.Attribute,radgroupreply.Value,radgroupreply.op FROM radgroupreply,usergroup WHERE usergroup.Username = '%{SQL-User-Name}' AND usergroup.GroupName = radgroupreply.GroupName ORDER BY radgroupreply.id" accounting_onoff_query = "UPDATE radacct SET AcctStopTime='%S', AcctSessionTime=unix_timestamp('%S') - unix_timestamp(AcctStartTime), AcctTerminateCause='%{Acct-Terminate-Cause}', AcctStopDelay = '%{Acct-Delay-Time}' WHERE AcctSessionTime=0 AND AcctStopTime=0 AND NASIPAddress= '%{NAS-IP-Address}' AND AcctStartTime <= '%S'" accounting_update_query = "UPDATE radacct SET FramedIPAddress = '%{Framed-IP-Address}', AcctSessionTime = '%{Acct-Session-Time}', AcctInputOctets = '%{Acct-Input-Octets}', AcctOutputOctets = '%{Acct-Output-Octets}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress= '%{NAS-IP-Address}'" accounting_update_query_alt = "INSERT into radacct (AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay) values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', '%{NAS-Port-Type}', DATE_SUB('%S',INTERVAL (%{Acct-Session-Time:-0} + %{Acct-Delay-Time:-0}) SECOND), '%{Acct-Session-Time}', '%{Acct-Authentic}', '', '%{Acct-Input-Octets}', '%{Acct-Output-Octets}', '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '0')" accounting_start_query = "INSERT into radacct (AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', '%{NAS-Port-Type}', '%S', '0', '0', '%{Acct-Authentic}', '%{Connect-Info}', '', '0', '0', '%{Called-Station-Id}', '%{Calling-Station-Id}', '', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '%{Acct-Delay-Time}', '0')" accounting_start_query_alt = "UPDATE radacct SET AcctStartTime = '%S', AcctStartDelay = '%{Acct-Delay-Time}', ConnectInfo_start = '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}'" accounting_stop_query = "UPDATE radacct SET AcctStopTime = '%S', AcctSessionTime = '%{Acct-Session-Time}', AcctInputOctets = '%{Acct-Input-Octets}', AcctOutputOctets = '%{Acct-Output-Octets}', AcctTerminateCause = '%{Acct-Terminate-Cause}', AcctStopDelay = '%{Acct-Delay-Time}', ConnectInfo_stop = '%{Connect-Info}' WHERE AcctSessionId = '%{Acct-Session-Id}' AND UserName = '%{SQL-User-Name}' AND NASIPAddress = '%{NAS-IP-Address}'" accounting_stop_query_alt = "INSERT into radacct (AcctSessionId, AcctUniqueId, UserName, Realm, NASIPAddress, NASPortId, NASPortType, AcctStartTime, AcctStopTime, AcctSessionTime, AcctAuthentic, ConnectInfo_start, ConnectInfo_stop, AcctInputOctets, AcctOutputOctets, CalledStationId, CallingStationId, AcctTerminateCause, ServiceType, FramedProtocol, FramedIPAddress, AcctStartDelay, AcctStopDelay) values('%{Acct-Session-Id}', '%{Acct-Unique-Session-Id}', '%{SQL-User-Name}', '%{Realm}', '%{NAS-IP-Address}', '%{NAS-Port}', '%{NAS-Port-Type}', DATE_SUB('%S', INTERVAL (%{Acct-Session-Time:-0} + %{Acct-Delay-Time:-0}) SECOND), '%S', '%{Acct-Session-Time}', '%{Acct-Authentic}', '', '%{Connect-Info}', '%{Acct-Input-Octets}', '%{Acct-Output-Octets}', '%{Called-Station-Id}', '%{Calling-Station-Id}', '%{Acct-Terminate-Cause}', '%{Service-Type}', '%{Framed-Protocol}', '%{Framed-IP-Address}', '0', '%{Acct-Delay-Time}')" group_membership_query = "SELECT GroupName FROM usergroup WHERE UserName='%{SQL-User-Name}'" connect_failure_retry_delay = 60 simul_count_query = "" simul_verify_query = "SELECT RadAcctId, AcctSessionId, UserName, NASIPAddress, NASPortId, FramedIPAddress, CallingStationId, FramedProtocol FROM radacct WHERE UserName='%{SQL-User-Name}' AND AcctStopTime = 0" postauth_query = "INSERT into radpostauth (id, user, pass, reply, date) values ('', '%{User-Name}', '%{User-Password:-Chap-Password}', '%{reply:Packet-Type}', NOW())" safe-characters = "@abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_: /" } rlm_sql (sql2): Driver rlm_sql_mysql (module rlm_sql_mysql) loaded and linked rlm_sql (sql2): Attempting to connect to radius@127.0.0.1:/radiusprod rlm_sql (sql2): starting 0 rlm_sql (sql2): Attempting to connect rlm_sql_mysql #0 rlm_sql_mysql: Starting connect to MySQL server for #0 rlm_sql (sql2): Connected new DB handle, #0 rlm_sql (sql2): starting 1 rlm_sql (sql2): Attempting to connect rlm_sql_mysql #1 rlm_sql_mysql: Starting connect to MySQL server for #1 rlm_sql (sql2): Connected new DB handle, #1 rlm_sql (sql2): starting 2 rlm_sql (sql2): Attempting to connect rlm_sql_mysql #2 rlm_sql_mysql: Starting connect to MySQL server for #2 rlm_sql (sql2): Connected new DB handle, #2 rlm_sql (sql2): starting 3 rlm_sql (sql2): Attempting to connect rlm_sql_mysql #3 rlm_sql_mysql: Starting connect to MySQL server for #3 rlm_sql (sql2): Connected new DB handle, #3 rlm_sql (sql2): starting 4 rlm_sql (sql2): Attempting to connect rlm_sql_mysql #4 rlm_sql_mysql: Starting connect to MySQL server for #4 rlm_sql (sql2): Connected new DB handle, #4 rlm_sql (sql2): starting 5 rlm_sql (sql2): Attempting to connect rlm_sql_mysql #5 rlm_sql_mysql: Starting connect to MySQL server for #5 rlm_sql (sql2): Connected new DB handle, #5 rlm_sql (sql2): starting 6 rlm_sql (sql2): Attempting to connect rlm_sql_mysql #6 rlm_sql_mysql: Starting connect to MySQL server for #6 rlm_sql (sql2): Connected new DB handle, #6 rlm_sql (sql2): starting 7 rlm_sql (sql2): Attempting to connect rlm_sql_mysql #7 rlm_sql_mysql: Starting connect to MySQL server for #7 rlm_sql (sql2): Connected new DB handle, #7 rlm_sql (sql2): Processing generate_sql_clients rlm_sql (sql2) in generate_sql_clients: query is SELECT id, nasname, shortname, type, secret FROM nas rlm_sql (sql2): Reserving sql socket id: 7 rlm_sql (sql2): Read entry nasname=xxx.xxx.xxx.xxx,shortname=xxxxx,secret=xxxx rlm_sql (sql2): Adding client xxx.xxx.xxx.xxx (xxx, server=<none>) to clients list WARNING: Ignoring duplicate client xxx.xxx.xxx.xxx rlm_sql (sql2): Read entry nasname=xxx.xxx.xxx.xxx,shortname=xxxxx,secret=xxxxxxxx rlm_sql (sql2): Adding client xxx.xxx.xxx.xxx (xxxxx, server=<none>) to clients list Failed to add duplicate client xxx rlm_sql (sql2): Failed to add client xxx.xxx.xxx.xxx (xxx) to clients list. Maybe there's a duplicate? Failed to load clients from SQL. rlm_sql (sql2): Closing sqlsocket 7 rlm_sql (sql2): Closing sqlsocket 6 rlm_sql (sql2): Closing sqlsocket 5 rlm_sql (sql2): Closing sqlsocket 4 rlm_sql (sql2): Closing sqlsocket 3 rlm_sql (sql2): Closing sqlsocket 2 rlm_sql (sql2): Closing sqlsocket 1 rlm_sql (sql2): Closing sqlsocket 0 /etc/raddb/sql.conf[116]: Instantiation failed for module "sql2" /etc/raddb/radiusd.conf[775]: Failed to find module "sql2". /etc/raddb/radiusd.conf[775]: Failed to parse "sql2" subsection. /etc/raddb/radiusd.conf[770]: Failed to parse "group" subsection. /etc/raddb/sites-enabled/default[1]: Errors parsing authorize section. On Oct 26, 2010, at 4:12 PM, Alan DeKok wrote:
Rhommel Lamas wrote:
I am having problemas deploying a redundant freeradius with mysql
Here my sql.conf
Which is not needed.
The result after a radiusd -X is
/etc/raddb/sql.conf[116]: Instantiation failed for module "sql2" /etc/raddb/radiusd.conf[771]: Failed to find module "sql2". /etc/raddb/radiusd.conf[771]: Failed to parse "sql2" entry. /etc/raddb/sites-enabled/default[1]: Errors parsing authorize section.
And you have carefully deleted the most useful log messages, which were the earlier ones.
The point of debug output is to *read it*. If you only look at the last 3 lines of text, you're going to miss important messages.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
I see that the problema is that i have the clients loaded in both Databases but how can i do to avoid it seeing duplicates? On Oct 26, 2010, at 8:27 PM, Alan DeKok wrote:
Rhommel Lamas wrote:
FreeRADIUS Version 2.1.7, for host x86_64-redhat-linux-gnu, built on Mar 31 2010 at 00:14:28 ...
And you now need to *READ* the debug output. The answer to the problem is in there.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
1.- What happens when i have my clients on the Mysql Database and it appears duplicated? 2.- When i make a radiusd -X and one of my mysql is down it cant start keeps giving me errors but if i start both it starts ok On Oct 26, 2010, at 8:27 PM, Alan DeKok wrote:
Rhommel Lamas wrote:
FreeRADIUS Version 2.1.7, for host x86_64-redhat-linux-gnu, built on Mar 31 2010 at 00:14:28 ...
And you now need to *READ* the debug output. The answer to the problem is in there.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
On 10/27/2010 09:47 AM, Rhommel Lamas wrote:
1.- What happens when i have my clients on the Mysql Database and it appears duplicated?
You KNOW what happens; it doesn't work. Don't have duplicate clients.
2.- When i make a radiusd -X and one of my mysql is down it cant start keeps giving me errors
So fix the errors!
but if i start both it starts ok
The only one of your mysql servers has bad data. You have bad data in your database, or your config files - fix one of them.
Just resolved the Clients it only check for clients on the local Database. Working out the problem at start with one of the databases, but The radius Works perfect if one of the databases fails after it starts On Oct 27, 2010, at 11:42 AM, Phil Mayers wrote:
On 10/27/2010 09:47 AM, Rhommel Lamas wrote:
1.- What happens when i have my clients on the Mysql Database and it appears duplicated?
You KNOW what happens; it doesn't work.
Don't have duplicate clients.
2.- When i make a radiusd -X and one of my mysql is down it cant start keeps giving me errors
So fix the errors!
but if i start both it starts ok
The only one of your mysql servers has bad data.
You have bad data in your database, or your config files - fix one of them. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Is there any chance that freeradius start without both databases online? On Oct 27, 2010, at 11:42 AM, Phil Mayers wrote:
On 10/27/2010 09:47 AM, Rhommel Lamas wrote:
1.- What happens when i have my clients on the Mysql Database and it appears duplicated?
You KNOW what happens; it doesn't work.
Don't have duplicate clients.
2.- When i make a radiusd -X and one of my mysql is down it cant start keeps giving me errors
So fix the errors!
but if i start both it starts ok
The only one of your mysql servers has bad data.
You have bad data in your database, or your config files - fix one of them. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Because it doesn't start i think it should at least start right? On Oct 27, 2010, at 2:01 PM, Alan DeKok wrote:
Rhommel Lamas wrote:
Is there any chance that freeradius start without both databases online?
Why?
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
For example i have 2 Databases server, and 1 radius server, i need to configure it for failover. I already configured both Sql instances, and both sqlippool instances. When i start radius i see two scenarios: 1.- If both Databases are up and running Radius Works. 2.- If one of my mysql is down radius won't start because it fails to connect to the database that is down. Is this the right way or i am failling on something? On Oct 27, 2010, at 2:54 PM, Alan DeKok wrote:
Rhommel Lamas wrote:
Because it doesn't start i think it should at least start right?
And do... what?
What exactly do you plan on doing with a RADIUS server that can't write accounting to SQL, or read authentication from SQL?
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Rhommel Lamas wrote:
For example i have 2 Databases server, and 1 radius server, i need to configure it for failover. I already configured both Sql instances, and both sqlippool instances.
OK.
When i start radius i see two scenarios: 1.- If both Databases are up and running Radius Works.
That's the intent.
2.- If one of my mysql is down radius won't start because it fails to connect to the database that is down.
That's also the intent.
Is this the right way or i am failling on something?
It's the way it works now. We're looking into making it more flexible in the future. Alan DeKok.
ok i was getting crazy around here thought it was something about my configuration :) Good To know that Sql instances should have a variable that you can setup in case you are using a failover and it adjust some parameters like 1.- readclients: Actually i had to set the variable readclients to NO on one of my sql instances, i think it would be helpfull to set that on the radiusd.conf something like readclients = sql_redundant. 2.- sqlippool.conf: I think it wouldbe helpfull if sql-instance-name could be assigned from a redundant instance declared on the radiusd.conf Of course those are ideas i don't know you guys have more experience on this maybe mine are lame. Thanks for the Help. Rhommel Lamas. On Oct 27, 2010, at 4:17 PM, Alan DeKok wrote:
Rhommel Lamas wrote:
For example i have 2 Databases server, and 1 radius server, i need to configure it for failover. I already configured both Sql instances, and both sqlippool instances.
OK.
When i start radius i see two scenarios: 1.- If both Databases are up and running Radius Works.
That's the intent.
2.- If one of my mysql is down radius won't start because it fails to connect to the database that is down.
That's also the intent.
Is this the right way or i am failling on something?
It's the way it works now. We're looking into making it more flexible in the future.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
Hi, i left the redundant for a while and today i am trying again, and it fails I have this on the radiusd.conf detail { fail = 1 } redundant redundant_sql { sql1 sql2 handled } redundant redundant_sqlip { sqlippool1 sqlippool1 #notfound = return handled } And on the sites-enable/default authorize { preprocess chap mschap suffix eap { ok = return } redundant_sql pap expiration logintime pap } authenticate { Auth-Type PAP { pap } Auth-Type CHAP { chap } Auth-Type MS-CHAP { mschap } unix eap } preacct { preprocess acct_unique suffix } accounting { detail redundant_sql radutmp redundant_sqlip } session { radutmp redundant_sql } post-auth { redundant_sql redundant_sqlip exec Post-Auth-Type REJECT { attr_filter.access_reject } } pre-proxy { } post-proxy { eap } And Sql stills fail when one of the database isn't available. Is this configuration right? On Wed, Oct 27, 2010 at 4:36 PM, Rhommel Lamas <roml@rhommell.com> wrote:
ok i was getting crazy around here thought it was something about my configuration :) Good To know that Sql instances should have a variable that you can setup in case you are using a failover and it adjust some parameters like
1.- readclients: Actually i had to set the variable readclients to NO on one of my sql instances, i think it would be helpfull to set that on the radiusd.conf something like readclients = sql_redundant. 2.- sqlippool.conf: I think it wouldbe helpfull if sql-instance-name could be assigned from a redundant instance declared on the radiusd.conf
Of course those are ideas i don't know you guys have more experience on this maybe mine are lame.
Thanks for the Help.
Rhommel Lamas.
On Oct 27, 2010, at 4:17 PM, Alan DeKok wrote:
Rhommel Lamas wrote:
For example i have 2 Databases server, and 1 radius server, i need to configure it for failover. I already configured both Sql instances, and both sqlippool instances.
OK.
When i start radius i see two scenarios: 1.- If both Databases are up and running Radius Works.
That's the intent.
2.- If one of my mysql is down radius won't start because it fails to connect to the database that is down.
That's also the intent.
Is this the right way or i am failling on something?
It's the way it works now. We're looking into making it more flexible in the future.
Alan DeKok. - List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html
-- Best Regards, Rhommel A. Lamas N. Sent from my Blackberry 8900.
participants (3)
-
Alan DeKok -
Phil Mayers -
Rhommel Lamas