Hello Felix -

On Mon, 11 Oct 1999, Felix Izquierdo wrote:
> Hugh Irvine wrote:
> > 
> > NOTE FOR ALL READERS WITH ASCEND EQUIPMENT
> > 
> > There is some additional code in Radiator 2.14.1 that will correctly process
> > Ascend's optional online status messages to accomplish this. Ascend's can be
> > configured to send periodic announcements to the Radius host listing all active
> > connections. Radiator 2.14.1 contains some custom code to process these packets
> > and update the SessionDatabase to remove any zombie entries due to lost Stop
> > packets.
> 
> How is this feature implemented? Are they radius packets or snmp traps? 
> 

Radius packets: "Ascend-Access-Event-Request"

> Cisco NAS's can send periodic accounting radius packets ( Alive packets,
> deprecated in Radius RFC ), and from IOS 12.0(6)T, packets/bytes
> counters attributes will be in periodic accounting. Are you planing to
> implement support for this Cisco schema?

The Cisco Alive packets are also handled correctly.

I have included the relevant code segment from Handler.pm:

#
        if ($status_type eq 'Start' || $status_type eq 'Alive')
        {
            # Some Ciscos dont send accounting-on, so we will
            # detect a reboot with the first session (ID 00000001)
            $sessdb->clearNas($nas_id, $p)
                if $session_id eq '00000001';

            # Ciscos sometimes sends Alive. Use them to make _sure_
            # there is an entry in the database
            $sessdb->add($original_username, $nas_id, $nas_port, $p);
        }
        elsif ($status_type eq 'Stop')
        {
            $sessdb->delete($original_username, $nas_id, $nas_port, $p);
        }

        # Detect the various kinds of NAS reboots
        if ($status_type eq 'Accounting-On'
            || $status_type eq 'Accounting-Off'
            || (   ($status_type eq 'Start' || $status_type eq 'Stop' )
                   && $session_id eq '00000000'))
        {
            # Remove all session entries for a given NAS.
            $sessdb->clearNas($nas_id, $p);
        }
    }
    elsif ($self->{HandleAscendAccessEventRequest}
           && $p->code eq 'Ascend-Access-Event-Request')
    {
        # Ascend-Access-Event-Request has a count of the number
        # of sessions the NAS thinks it has in each Class. We can use
        # this to check whether out local session database is correct
        # provided its an SQL session database.
        # Sum the total number of sessions that this NAS thinks it has
        # and compare it to how many in the SessionDatabase.
        # If there is a discrepancy delete any
        # dead sessions from SessionDatabase. Note that we never
        # add sessions to the session database, so this strategy
        # only corrects for lost Stops, not lost Starts.
                                                                      
#

If there are any other special packet types out there that need special
handling, please let us know.

hth

Hugh


--
Radiator: the most portable, flexible and configurable RADIUS server
anywhere. SQL, proxy, DBM, files, LDAP, NIS+, password, NT, Emerald,
Platypus, Freeside, TACACS+, PAM, external, etc etc on Unix, Win95/8,
NT, Rhapsody

===
Archive at http://www.thesite.com.au/~radiator/
To unsubscribe, email '[EMAIL PROTECTED]' with
'unsubscribe radiator' in the body of the message.

Reply via email to