(RADIATOR) FailureBackoffTime not working correctly with MSSQL
Randall
radiator at diskserv.com
Thu Mar 23 12:39:17 CST 2006
I have a problem with MS SQL and
FailureBackoffTime. I use ODBC connections to
connect Radiator to MS SQL Server in a private
system. I have two SQL Servers running MS SQL. I
can not seem to get Radiator to switch to the
second SQL server (MSRadiusBack) when it can not
communicate with the Primary Server
(MSRadius). Here is my config listed below. Any ideas?
Thanks, Randall
# windows.cfg
#
BindAddress xx.xx.xx.x
AuthPort 1645
AcctPort 1646
# Define Globals
# Master Radius Database
DefineFormattedGlobalVar MSSQLServer MSRadius
DefineFormattedGlobalVar MSSQLServerBack MSRadiusBack
DefineFormattedGlobalVar MSSQLUser radiususer
DefineFormattedGlobalVar MSSQLPassword radiuspass
DefineFormattedGlobalVar MSSQLFailureBackoffTime 1
# Read Only Slave Radius Database
DefineFormattedGlobalVar MSSQLAuthServer MSRadius
DefineFormattedGlobalVar MSSQLAuthServerBack MSRadiusBack
Foreground
LogStdout
# %L in any file name path
LogDir c:\Radlogs
LogFile %L/logfile-XX-XXX-XX-X-%Y%m%d.log
# %D in any file name path
DbDir c:\Radius
# DictionaryFile %D/dictionary,%D/dictionary.ascend
# For AASP Use the Following
DictionaryFile %D/dictionary
# Rewrite Username to be all Lower Case
RewriteUsername tr/{A-Z]/[a-z]/
# RewriteUserName to have UserName portion case
sensitive and realm portion lower case
#RewriteUsername s/(?<=@)(.*)$/lc($1)/e
# This will log at DEBUG level: very verbose
# User a lower trace level in production systems, typically use 3
Trace 4
# Monitor connection
<Monitor>
BindAddress xx.xxx.xx.x
Port xxxx
Username user
Password pass
</Monitor>
# SessionDatabase SQL entries
#' Set override of SessionDatabase Queries
<SessionDatabase SQL>
FailureBackoffTime %{GlobalVar:MSSQLFailureBackoffTime}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServer}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServerBack}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
Identifier Radonline
AddQuery insert into
RADONLINE(USERNAME,NASIDENTIFIER,NASPORT,ACCTSESSIONID,TIME_STAMP,FRAMEDIPADDRESS,NASPORTTYPE,SERVICETYPE,
Calling_Station_Id, Called_Station_Id,
Framed_Protocol, Realm, Ascend_Xmit_Rate,
Nas_Name) values
('%u','%1',%2,%3,%{Timestamp},'%{Framed-IP-Address}','%{NAS-Port-Type}','%{Service-Type}',
'%{Calling-Station-Id}', '%{Called-Station-Id}',
'%{Framed-Protocol}', '%W', '%{Ascend-Xmit-Rate}','%{NAS-Identifier}')
DeleteQuery delete from RADONLINE
where NASIDENTIFIER = '%1' AND NASPORT='%2'
ClearNasQuery
CountQuery select NASIDENTIFIER,
NASPORT, ACCTSESSIONID, FRAMEDIPADDRESS, USERNAME
from RADONLINE where USERNAME='%u'
</SessionDatabase>
# Trace level log file with messages
<Log SQL>
FailureBackoffTime %{GlobalVar:MSSQLFailureBackoffTime}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServer}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServerBack}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
Table radlog
Identifier RadLog
Trace 3
LogQuery insert into %3
(TIME_STAMP,PRIORITY,MESSAGE) values (%t, %0, %2)
</LOG>
<StatsLog SQL>
Identifier RadStatsLog
FailureBackoffTime %{GlobalVar:MSSQLFailureBackoffTime}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServer}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServerBack}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
# The logging interval in seconds (Default 600 Seconds or 10 Mins)
# Interval 1800
Interval 3600
# You can configure the SQL query to be used for each log.
# %0, %1 etc are replaced by each statistic, in alphabetical order
# of their name.This example just logs the time, object type, id and
# average responseTime
InsertQuery insert into radstatslog
(TIME_STAMP,TYPE,IDENTIFIER,ACCESSACCEPTS,ACCESSCHALLENGES,ACCESSREJECTS,ACCESSREQUESTS,
\
ACCOUNTINGREQUESTS,ACCOUNTINGRESPONSES,BADAUTHACCESSREQUESTS,BADAUTHACCOUNTINGREQUESTS,BADAUTHREQUESTS,DROPPEDACCESSREQUESTS,
\
DROPPEDACCOUNTINGREQUESTS,DROPPEDREQUESTS,DUPACCESSREQUESTS,DUPACCOUNTINGREQUESTS,DUPLICATEREQUESTS,MALFORMEDACCESSREQUESTS,
\
MALFORMEDACCOUNTINGREQUESTS,PROXIEDNOREPLY,PROXIEDREQUESTS,REQUESTS,RESPONSETIME)
values \
(%0, '%1', '%2', %3, %4, %5, %6, %7,
%8, %9, %10, %11, %12, %13, %14, %15, %16, %17, %18, %19, %20, %21, %22, %23)
</StatsLog>
#' Enabled Client List from SQL database
<ClientListSQL>
FailureBackoffTime %{GlobalVar:MSSQLFailureBackoffTime}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServer}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServerBack}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
GetClientQuery select NASIDENTIFIER,SECRET,IGNOREACCTSIGNATURE, \
DUPINTERVAL,DEFAULTREALM,NASTYPE,SNMPCOMMUNITY,LIVINGSTONOFFS, \
LIVINGSTONHOLE,NULL,NULL, \
REWRITEUSERNAME,NOIGNOREDUPLICATES,PREHANDLERHOOK, \
IDENTIFIER,DEFAULTREPLY,NULL,STRIPFROMREPLY, \
ALLOWINREPLY,ADDTOREPLY,ADDTOREPLYIFNOTEXIST,DYNAMICREPLY
FROM RADCLIENTS
</ClientListSQL>
<Realm DEFAULT>
<AuthBy INTERNAL>
AuthResult REJECT
AcctStopResult ACCEPT
AcctStartResult ACCEPT
DefaultResult REJECT
</AuthBy>
</Realm>
<AuthLog SQL>
FailureBackoffTime %{GlobalVar:MSSQLFailureBackoffTime}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServer}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServerBack}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
Table Authlog
Identifier AllAuthLogID
# SuccessQuery insert into Authlog
(TIME_STAMP, USERNAME, TYPE, REASON,
REQUESTPASSWORD, PRIORITY, EVENTTIME, NASIP,
NASID, NASIDENTIFIER, TESTTYPE, CORRECTPASSWORD,
REALM) values (%t, '%n', 1, %1, '%P', %0, '%G',
'%N', %I, '%{NAS-Identifier}', '%T', %3, '%W')
FailureQuery insert into Authlog
(TIME_STAMP, USERNAME, TYPE, REASON,
REQUESTPASSWORD, PRIORITY, EVENTTIME, NASIP,
NASID, NASIDENTIFIER, TESTTYPE, CORRECTPASSWORD,
REALM) values (%t, '%n', 0, %1, '%P', %0, '%G',
'%N', %I, '%{NAS-Identifier}', '%T', %3, '%W')
LogFailure 1
LogSuccess 0
</AuthLog>
<AuthBy SQL>
Identifier RejectUsers
FailureBackoffTime %{GlobalVar:MSSQLFailureBackoffTime}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServer}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServerBack}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
DateFormat '%b $e,%Y %H:%M:%S'
AuthSelect select "Reject:User is
Suspended or reached Realm or User Cap Limit"
from Reject_Users where USERNAME=%0
AuthColumnDef 0, Auth-Type, check
AcceptIfMissing
NoDefault
</AuthBy>
<AuthBy SQL>
# SQLRecoveryFile is Version 3.8 or higher
Identifier AllAccounting
SQLRecoveryFile %L/SQLRecoveryFile.sql
FailureBackoffTime %{GlobalVar:MSSQLFailureBackoffTime}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServer}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
DBSource dbi:ODBC:%{GlobalVar:MSSQLServerBack}
DBUsername %{GlobalVar:MSSQLUser}
DBAuth %{GlobalVar:MSSQLPassword}
DateFormat '%b $e,%Y %H:%M:%S'
HandleAcctStatusTypes Stop
AcctInsertQuery insert into %0(%1) values (%2)
AuthSelect
AcctSQLStatement delete
from RADONLINE where acctsessionid = '%{Acct-Session-Id}'
AcctSQLStatement delete
from RADONLINE where USERNAME = '%u'
AccountingTable Accounting
AcctColumnDef User_Name,User-Name
AcctColumnDef
Start_Time,%t-0%{Acct-Session-Time},literal
AcctColumnDef Stop_Time,Timestamp
AcctColumnDef State,State
AcctColumnDef Password,Password
AcctColumnDef Expiration,Expiration
AcctColumnDef Service_Type,Service-Type
AcctColumnDef Framed_Protocol,Framed-Protocol
AcctColumnDef
Ascend_Assign_IP_Pool,Ascend-Assign-IP-Pool
AcctColumnDef Ascend_Idle_Limit,Ascend-Idle-Limit
AcctColumnDef
Ascend_Maximum_Channels,Ascend-Maximum-Channels
AcctColumnDef
Ascend_Minimum_Channels,Ascend-Minimum-Channels
AcctColumnDef Framed_IP_Address,Framed-IP-Address
AcctColumnDef Framed_IP_Netmask,Framed-IP-Netmask
AcctColumnDef NAS_IP_Address,NAS-IP-Address
AcctColumnDef NAS_Port,NAS-Port
AcctColumnDef NAS_Port_Type,NAS-Port-Type
AcctColumnDef Acct_Status_Type,Acct-Status-Type
AcctColumnDef Acct_Delay_Time,Acct-Delay-Time
AcctColumnDef Acct_Session_Id,Acct-Session-Id
AcctColumnDef Acct_Authentic,Acct-Authentic
AcctColumnDef Acct_Session_Time,Acct-Session-Time
AcctColumnDef Acct_Input_Octets,Acct-Input-Octets
AcctColumnDef Acct_Output_Octets,Acct-Output-Octets
AcctColumnDef Acct_Input_Packets,Acct-Input-Packets
AcctColumnDef Acct_Output_Packets,Acct-Output-Packets
AcctColumnDef
Ascend_Disconnect_Cause,Ascend-Disconnect-Cause
AcctColumnDef
Ascend_Connect_Progress,Ascend-Connect-Progress
AcctColumnDef Ascend_Xmit_Rate,Ascend-Xmit-Rate
AcctColumnDef Ascend_Data_Rate,Ascend-Data-Rate
AcctColumnDef
Ascend_PreSession_Time,Ascend-PreSession-Time
AcctColumnDef
Ascend_Pre_Input_Octets,Ascend-Pre-Input-Octets
AcctColumnDef
Ascend_Pre_Output_Octets,Ascend-Pre-Output-Octets
AcctColumnDef
Ascend_Pre_Input_Packets,Ascend-Pre-Input-Packets
AcctColumnDef
Ascend_Pre_Output_Packets,Ascend-Pre-Output-Packets
AcctColumnDef Ascend_First_Dest,Ascend-First-Dest
AcctColumnDef Ascend_Multilink_ID,Ascend-Multilink-ID
AcctColumnDef
Ascend_Num_In_Multilink,Ascend-Num-In-Multilink
AcctColumnDef Acct_Link_Count,Acct-Link-Count
AcctColumnDef
Acct_Multi_Session_Id,Acct-Multi-Session-Id
AcctColumnDef Ascend_Modem_PortNo,Ascend-Modem-PortNo
AcctColumnDef Ascend_Modem_SlotNo,Ascend-Modem-SlotNo
AcctColumnDef Calling_Station_Id,Calling-Station-Id
AcctColumnDef Called_Station_Id,Called-Station-Id
AcctColumnDef CHAP_Password,CHAP-Password
AcctColumnDef Connect_Info,Connect-Info
AcctColumnDef Ascend_Handle_IPX,Ascend-Handle-IPX
AcctColumnDef NAS_Identifier,NAS-Identifier
AcctColumnDef CHAP_Challenge,CHAP-Challenge
AcctColumnDef
Ascend_Netware_timeout,Ascend-Netware-timeout
AcctColumnDef Proxy_State,Proxy-State
AcctColumnDef Class,Class
AcctColumnDef Framed_Compression,Framed-Compression
AcctColumnDef Port_Limit,Port-Limit
AcctColumnDef Acct_Terminate_Cause,Acct-Terminate-Cause
AcctColumnDef
CVX_SS7_Session_ID_Type,CVX-SS7-Session-ID-Type
AcctColumnDef CVX_Terminate_Cause,CVX-Terminate-Cause
AcctColumnDef Login_IP_Host,Login-IP-Host
AcctColumnDef User_Password,User-Password
AcctColumnDef Framed_Routing,Framed-Routing
AcctColumnDef Filter_Id,Filter-Id
AcctColumnDef Framed_MTU,Framed-MTU
AcctColumnDef Login_Service,Login-Service
AcctColumnDef Login_TCP_Port,Login-TCP-Port
AcctColumnDef Framed_Route,Framed-Route
AcctColumnDef Framed_IPX_Network,Framed-IPX-Network
AcctColumnDef Termination_Action,Termination-Action
AcctColumnDef Vendor_specific,Vendor-specific
AcctColumnDef Acct_Input_Gigawords,Acct-Input-Gigawords
AcctColumnDef
Acct_Output_Gigawords,Acct-Output-Gigawords
AcctColumnDef Old_Password,Old-Password
AcctColumnDef Reply_Message,Reply-Message
AcctColumnDef Callback_Number,Callback-Number
AcctColumnDef Callback_ID,Callback-ID
AcctColumnDef User_Realm,User-Realm
AcctColumnDef CVX_Identification,CVX-Identification
AcctColumnDef Ascend_Source_Auth,Ascend-Source-Auth
AcctColumnDef Session_Authentic,Session-Authentic
AcctColumnDef Event_Timestamp,Event-Timestamp
AcctColumnDef
cvx_ppp_inactivity_limit,CVX-PPP-Inactivity-Limit
AcctColumnDef GRIC_Timestamp,GRIC-Timestamp
AcctColumnDef Ascend_Modem_ShelfNo,Ascend-Modem-ShelfNo
AcctColumnDef Ascend_Owner_IP_Addr,Ascend-Owner-IP-Addr
AcctColumnDef
Tunnel_Client_Endpoint,Tunnel-Client-Endpoint
AcctColumnDef
Tunnel_Server_Endpoint,Tunnel-Server-Endpoint
AcctColumnDef Idle_Timeout,Idle-Timeout
AcctColumnDef Tunnel_Type,Tunnel-Type
AcctColumnDef Class_1,Class-1
AcctColumnDef Tunnel_ID,Tunnel-ID
AcctColumnDef Ascend_FR_Direct,Ascend-FR-Direct
AcctColumnDef CVX_VPOP_ID,CVX-VPOP-ID
AcctColumnDef
CVX_Terminate_Component,CVX-Terminate-Component
AcctColumnDef Timestamp,Timestamp
AcctColumnDef Realm,%W,formatted
</AuthBy>
# Authenticate realms with this
# Manual location 6.15
#Include %D/Includes/1xxx.cfg
#Include %D/Includes/2xxx.cfg
..
#Include %D/Includes/200xxx.cfg
--
Archive at http://www.open.com.au/archives/radiator/
Announcements on radiator-announce at open.com.au
To unsubscribe, email 'majordomo at open.com.au' with
'unsubscribe radiator' in the body of the message.
More information about the radiator
mailing list