(RADIATOR) Session database with mysql

tdn at tdn.co.ke tdn at tdn.co.ke
Fri Jan 17 07:18:54 CST 2003


> I will need to see the complete configuration file (no secrets)
> together with a trace 4 debug from Radiator showing what is happening.

Below find the cfg file and a trace 4 log

FYI
----
This radius server receives request from a proxy radius server, and from it
appears most
of the stale sessions are from the remote-out-of-town Nases.

Another question, is there any way i can configure radius to give a more
meaningful message to the person
trying to connect and fails because of Max sessions exeeded?


CFG file
======================================
LogDir          /usr/local/radiator
DbDir           /usr/local/radiator/raddb
Trace           4
LogFile                 %L/logfile/logfile.%Y%m%d

<SessionDatabase SQL>
        Identifier InSQL

        DBSource        dbi:mysql:radonline:1.1.1.1
        DBUsername      xx
        DBAuth          xxx


        AddQuery insert into radonline (username, \
                                        nasidentifier, \
                                        nasipaddress, \
                                        nasport, \
                                        acctsessionid, \
                                        time_stamp, \
                                        framedipaddress, \
                                        nasporttype, \
                                        servicetype, \
                                        calledstationid, \
                                        callingstationid, \
                                        usrchassiscallslot, \
                                        usrchassiscallchannel) \
                        values ('%u', \
                                '%N', \
                                '%{NAS-IP-Address}', \
                                0%{NAS-Port}, \
                                '%{Acct-Session-Id}',  \
                                %{Timestamp}, \
                                '%{Framed-IP-Address}', \
                                '%{NAS-Port-Type}', \
                                '%{Service-Type}', \
                                '%{Called-Station-Id}', \
                                '%{Calling-Station-Id}', \
                                0%{USR-Chassis-Call-Slot}, \
                                0%{USR-Chassis-Call-Channel} )

       DeleteQuery delete from radonline where
acctsessionid='%{Acct-Session-Id}' and username='%u'

       ClearNasQuery    delete from radonline where nasidentifier='%N'

       CountQuery    select
nasidentifier,nasport,acctsessionid,framedipaddress from radonline where
username='%u'
</SessionDatabase>

#Primary Proxy Radius Server
<Client 1.1.1.1>
        Secret xxx
        DefaultRealm    domain.dom
</Client>

#Secondary Proxy Radius Server
<Client 2.2.2.2>
        Secret xxx
        DefaultRealm    domain.dom
</Client>

# Mainly for the radpwtst utility
<Client DEFAULT>
        Secret  mysecret
        DupInterval 0
       DefaultRealm domain.dom
</Client>

<AuthBy FILE>
        Identifier myISDN
        Filename /usr/local/radiator/raddb/users.isdn
</AuthBy>

<AuthBy GROUP>
        Identifier myAsync
        AuthByPolicy ContinueUntilAccept
                <AuthBy FILE>
                        Filename /usr/local/radiator/raddb/users-to-migrate
                </AuthBy>
                <AuthBy FILE>
                        Filename /usr/local/radiator/raddb/users
                </AuthBy>
</AuthBy>


<Handler Realm=domain.dom,NAS-Port-Type = Async>
        # Remove spaces - spaces are generally not allowed
        # but lusers type them anyway, and are a pain
        RewriteUsername s/\s+//g
        # Strip the realm
        RewriteUsername s/\@adomain\.dom$//
        AuthBy myAsync
        AcctLogFileName %L/detail/detail.%Y%m%d
        PasswordLogFileName %L/logfile/passwords/logfile.%Y%m%d
        MaxSessions 1
</Handler>


<Handler Realm=africaonline.co.ke,NAS-Port-Type = ISDN>
        # Remove spaces - spaces are generally not allowed
        # but lusers type them anyway, and are a pain
        RewriteUsername s/\s+//g
        # Strip the realm
        RewriteUsername s/\@domain\.dom$//
        AuthBy myISDN
        AcctLogFileName %L/detail/detail.%Y%m%d
        PasswordLogFileName %L/logfile/passwords/logfile.%Y%m%d
</Handler>


Trace 4 logs
==================================================================
Fri Jan 17 15:45:54 2003: DEBUG: do query is: insert into radonline
(username, nasidentifier, nasipaddress, nasport, acctsessionid, time_stamp,
framedipaddress, nasporttype, servicetype, calledstationid,
callingstationid, usrchassiscallslot, usrchassiscallchannel) values
('ec143pop', 4.4.4.4, 4.4.4.4,' 01025, '67109142',  1042807857, 8.8.8.8,
'Async', 'Framed-User', '', '', 05, 01 )

Fri Jan 17 15:45:54 2003: DEBUG: Handling request with Handler
'Realm=domain.dom,NAS-Port-Type = Async'
Fri Jan 17 15:45:54 2003: DEBUG: Rewrote user name to ec143pop at domain.dom
Fri Jan 17 15:45:54 2003: DEBUG: Rewrote user name to ec143pop
Fri Jan 17 15:45:54 2003: DEBUG: InSQL Adding session for ec143pop, 3.3.3.3,
1025
Fri Jan 17 15:45:54 2003: DEBUG: do query is: delete from radonline where
acctsessionid='67109142' and username='ec143pop'




----- Original Message -----
From: "Hugh Irvine" <hugh at open.com.au>
To: <tdn at tdn.co.ke>
Cc: <radiator at open.com.au>
Sent: 16-01-2003 5:08 AM
Subject: Re: (RADIATOR) Session database with mysql


>
> Hello -
>
> The usual reason for stale records being left in the session database
> is missing stop records. In other words, if you do not receive a stop
> record when a user session completes, then you will not delete that
> users record from the session database.
>
> It is also possible that the delete query that you show below is not
> correct. Have you checked a trace 4 to make sure that this is doing the
> right thing and deleting the correct record?
>
> I will need to see the complete configuration file (no secrets)
> together with a trace 4 debug from Radiator showing what is happening.
>
> regards
>
> Hugh
>
>
> On Wednesday, Jan 15, 2003, at 21:22 Australia/Melbourne,
> <tdn at tdn.co.ke> wrote:
>
> > Hello,
> >
> > Am trying to implement a session database using a mysql database.
> > My problem is that i notice that there are so many cases when people
> > have
> > actually logged out, but not
> > deleted from the database.
> >
> > (see my database structure and part of my cfg file)
> >
> > create table radonline (
> >         username       char(50) NOT NULL,
> >         nasidentifier   char(50),
> >          nasipaddress char(15),
> >         nasport         int,
> >         acctsessionid   char(30) NOT NULL,
> >         time_stamp               int,
> >         framedipaddress          char(15),
> >         nasporttype              char(10),
> >         servicetype              char(20),
> >         calledstationid          char(16),
> >         callingstationid         char(16),
> >          usrchassiscallslot       int,
> >          usrchassiscallchannel    int,
> >
> >         UNIQUE RADONLINE_I (nasidentifier, username),
> >         INDEX RADONLINE_I2 (username)
> > );
> >
> >
> >
> > cfg file
> > =========
> >
> >
> > SessionDatabase SQL>
> >         Identifier InSQL
> >
> >         DBSource        dbi:mysql:radonline:1.1.1.1
> >         DBUsername     xxxx
> >         DBAuth         xxx
> >
> >
> >         AddQuery insert into radonline (username, \
> >                                         nasidentifier, \
> >                                         nasipaddress, \
> >                                         nasport, \
> >                                         acctsessionid, \
> >                                         time_stamp, \
> >                                         framedipaddress, \
> >                                         nasporttype, \
> >                                         servicetype, \
> >                                         calledstationid, \
> >                                         callingstationid, \
> >                                         usrchassiscallslot, \
> >                                         usrchassiscallchannel) \
> >                         values ('%u', \
> >                                 '%N', \
> >                                 '%{NAS-IP-Address}', \
> >                                 0%{NAS-Port}, \
> >                                 '%{Acct-Session-Id}',  \
> >                                 %{Timestamp}, \
> >                                 '%{Framed-IP-Address}', \
> >                                 '%{NAS-Port-Type}', \
> >                                 '%{Service-Type}', \
> >                                 '%{Called-Station-Id}', \
> >                                 '%{Calling-Station-Id}', \
> >                                 0%{USR-Chassis-Call-Slot}, \
> >                                 0%{USR-Chassis-Call-Channel} )
> >
> >        DeleteQuery delete from radonline where acctsessionid='%4' and
> > nasipaddress='%2' and username='%u'
> >
> >        ClearNasQuery    delete from radonline where nasidentifier='%N'
> >
> >        CountQuery    select
> > nasidentifier,nasport,acctsessionid,framedipaddress from radonline
> > where
> > username='%u'
> > </SessionDatabase>
> >
> > TDN
> >
> > ===
> > 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.
> >
> >
>
> --
> Radiator: the most portable, flexible and configurable RADIUS server
> anywhere. Available on *NIX, *BSD, Windows 95/98/2000, NT, MacOS X.
> -
> Nets: internetwork inventory and management - graphical, extensible,
> flexible with hardware, software, platform and database independence.
>
> ===
> 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.
>

===
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