(RADIATOR) AddressAllocator SQL & Ascend

Justin Scott jhs at ocs-tx.com
Mon Jan 28 16:09:40 CST 2002


Gents,

I've been thru the last 6 months of archives, and didn't find anything quite like what's happening to me when I'm trying to use my AddressAllocator SQL setup.

Issue: Client wants to be able to have "hot standby" MAX 4000 chassis in facility where the PRIs can be moved from one MAX to another in case of failure.

I figure using AddressAllocator SQL will eliminate the needs to have an IP pool defined on each of the hot standby chassis, thereby making much more efficient use of our Pool IP Space.

Anyhow...  AddressAllocator does not seem to run for any client who should be getting a DynIP from the SQL pool.  The max takes the call, tries to authenticate, is not given an IP address, and disconnects the call.

My test max works fine with and without Allocator configured if it is set with a pool defined internally. 

I have removed the internal pool information, changed the Answer profile to state "Assign Addr=No", and still when it's set with no pool, and Allocator is enabled, no IP is even queried from the database in RADPOOL to be replied back to the NAS.

The log shows nothing in regards to RADPOOL table except for the reclaim checks during startup and every reclaim interval.  It also shows nothing in regards to AuthBy DYNADDRESS or AddressAllocator.

Here is my config file:  Please tell me there is a simple error in the way it's been constructed, because I've given myself a monster headache trying to figure this one out. :)

As always, I maintain that Radiator should win an award as best software of the new millenium or something... I have nothing but good things to say about it to my collegues.  The only problems really are that sometimes I cannot seem to speak its language properly. :)

cheers,
j

#Foreground
#LogStdout
LogDir          c:/radiator/logs
DbDir           c:/radiator/raddb
# User a lower trace level in production systems:
#Trace           4
Trace           3

RewriteUsername tr/A-Z/a-z/
RewriteUsername s/ //g
UsernameCharset a-zA-Z0-9\.-_@

# You will probably want to add other Clients to suit your site,
# one for each NAS you want to work with
<Client DEFAULT>
        Secret xxx
        DupInterval 15
</Client>

# Ensure the SQL DynIP Pool is in a sane state
<AddressAllocator SQL>
        Identifier SQLAllocate
        DBSource        dbi:ODBC:Radiator
        DBUsername      xxx
        DBAuth          xxx
        # Our maximum IP Lease Time is 12 hours
        DefaultLeasePeriod      43200
        # Check for expired Leases once every five minutes
        LeaseReclaimInterval    300
        # Define valid pool of addresses
        <AddressPool DynIP1>
                Subnetmask      255.255.255.255
                DNSServer       10.1.1.1
                Range           10.4.1.1 10.4.1.254
        </AddressPool>
</AddressAllocator>

# This is our default Realm.
<Realm DEFAULT>

   AuthByPolicy ContinueUntilAccept
   RejectHasReason

        # We do our Authentication by SQL using ODBC
        <AuthBy SQL>
        DBSource        dbi:ODBC:Radiator
        DBUsername      xxx
        DBAuth          xxx

        # These are the criteria we pull from the database to ensure we have
        # a valid user who is not expired.  We use the radattr "Class" to
        # tell the maxen what the CID for this customer is for accounting
        # purposes
        AuthSelect select PASSWORD,CID,EXPIREDATE,VALIDDATE,REPLYATTR,MAXSESSIONS from tblsubscribers where USERNAME = %0
        AuthColumnDef   0,User-Password,check
        AuthColumnDef   1,Class,reply
        AuthColumnDef   2,Expiration,check
        AuthColumnDef   3,ValidFrom,check
        AuthColumnDef   4,GENERIC,reply
        AuthColumnDef   5,Simultaneous-Use,check

        # We need to add some extra reply items for this realm:
        AddToReply      Idle-Timeout = 900
        AddToReply      Ascend-Maximum-Time = 43200

        # Set up the accounting table defenitions
        AccountingTable tblaccounting
        AcctColumnDef   CID,Class
        AcctColumnDef   TIME_STAMP,Timestamp,integer-date
        AcctColumnDef   USERNAME,User-Name
        AcctColumnDef   ACCTSTATUSTYPE,Acct-Status-Type
        AcctColumnDef   ACCTDELAYTIME,Acct-Delay-Time,integer
        AcctColumnDef   ACCTINPUTOCTETS,Acct-Input-Octets,integer
        AcctColumnDef   ACCTOUTPUTOCTETS,Acct-Output-Octets,integer
        AcctColumnDef   ACCTSESSIONID,Acct-Session-Id
        AcctColumnDef   ACCTSESSIONTIME,Acct-Session-Time,integer
        AcctColumnDef   ACCTTERMINATECAUSE,Ascend-Disconnect-Cause
        AcctColumnDef   NASIDENTIFIER,NAS-IP-Address
        AcctColumnDef   NASPORT,NAS-Port,integer
        AcctColumnDef   MODEMPORT,Ascend-Modem-PortNo
        AcctColumnDef   MODEMSLOT,Ascend-Modem-SlotNo
        AcctColumnDef   FRAMEDIPADDRESS,Framed-IP-Address
        AcctColumnDef   CALLER,Calling-Station-Id
        AcctColumnDef   CALLING,Called-Station-Id
        AcctColumnDef   XMTRATE,Ascend-Xmit-Rate
        AcctColumnDef   RCVRATE,Ascend-Data-Rate
	</AuthBy>

        # Now we assign IP Addrs
        <AuthBy DYNADDRESS>
                Allocator       SQLAllocate
                PoolHint        DynIP1
                MapAttribute    yiaddr,Framed-IP-Address
                MapAttribute    subnetmask,Framed-IP-Netmask
        </AuthBy>
</Realm>

<SessionDatabase SQL>
        DBSource        dbi:ODBC:Radiator
        DBUsername      xxx
        DBAuth          xxx
</SessionDatabase>

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