(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