RE: [RadiusNT] Concurrency Control

Ronnie D. Franklin ( ronnie@itexas.net )
Fri, 25 Jun 1999 12:30:35 -0500

It is in the RadiusNT documentation....

Here is what I think is the latest version of the SNMP function...

SNMP Concurrency Checking

One of the main problems with concurrency control is when RadiusNT does
not correctly track the on-line users. This can cause a user to be
inadvertently denied access when they should not be. To prevent this
from happening, RadiusNT can verify that the user is on-line at the time
of authentication by using SNMP. This feature only allows RadiusNT to
do a real time verification check to see if the user is still on-line.
It will not update the calls online list or correct any other problems
pertaining to the calls online. It is designed to prevent incorrect
concurrency denial rather than to always prevent logins because of
concurrency limits.

For RadiusNT to query the NAS to verify the user, it must know the SNMP
community and the specific OID for the port the user is listed to be
on. The SNMP Community is stored in the Servers table, Community
field. Although this is typically "pubic", you may have changed it for
security reasons. The OID for each port is stored in the ServerPorts
table, SNMPUser field. The contents of this field will change for each
port. Currently, it must be a static entry for each port and may differ
from NAS models and vendors.

For a Livingston Portmaster 2, the OID is
".1.3.6.1.4.1.307.3.2.1.1.1.4.x" where x is the port number. From an
SQL perspective, you can populate the ServerPorts table by using a
derivative of the following SQL statement. For other NAS vendors you
should consult the NAS documentation to see how it supports SNMP and
what the specific OID is.

Update ServerPorts
Set SNMPUser = ".1.3.6.1.4.1.307.3.2.1.1.1.4." + convert(varchar(5),
Port+1)
Where ServerID = x

The ServerID should match an entry from the Servers table for the NAS
you want to update.

The following table shows the Base OID for several popular vendors and
terminal servers:

Vendor Model Base OID Comments

Lucent Portmaster2 .1.3.6.1.4.1.307.3.2.1.1.1.4.x Ports are 1 to 30 or 1
to the number of ports in the PM.
Lucent Portmaster3 .1.3.6.1.4.1.307.3.2.1.1.1.4.x 1 on the PM3 is S0.
The ports are 2-25/26-49 (T1) or 2-24/26-48 (PRI).
Cisco AS5248 .1.3.6.1.4.1.9.2.9.2.1.18.x Ports are 1-48 for a 48 port
dual T1.
Ascend Max 4xxx .1.3.6.1.4.1.529.12.3.1.4. ServerType MUST be set to 5-8
for this to work
USR HyperARC .1.3.6.1.4.1.429.4.10.1.1.18.x Starts at 1513 for the first
port and increment in same formula as the ports are reported to
RadiusNT.

When running against SQL Server, RadiusNT calls the following stored
procedure to retrieve information about each port the user is listed on.

CREATE PROCEDURE RadCheckOnlineSNMP @UserName varchar(64) AS

Select s.IPAddress, s.ServerType, s.Community, sp.SNMPUser,
sp.AcctSessionID