Proxy RADIUS Configuration (.pro) File
For each proxy realm that you want to configure on the Steel-Belted Radius Carrier server, you must create a file called
RealmName.pro, whereRealmNameis the name of the realm, and you must add this RealmName to the [Realms] section of the proxy.ini file.
[Auth] Section
The [Auth] section of a
RealmName.pro file (Table 86) configures authentication for the proxy realm. The key parameters in these sections are:
- TargetsSection, which names the target selection strategy you want to use.
- FilterIn and FilterOut, which name the attribute or sub-attribute filters you want applied to request and response packets, respectively.
[Acct] Section
The [Acct] section of a
RealmName.pro file (Table 87) configures accounting. The key parameters in these sections are:
- TargetsSection, which names the target selection strategy you want to use.
- FilterIn and FilterOut, which name the attribute or sub-attribute filters you want applied to request and response packets, respectively.
- If set to 0, the Steel-Belted Radius Carrier server sends an accounting acknowledgement immediately (for example, after Steel-Belted Radius Carrier records an accounting message).
- If set to 1, the Steel-Belted Radius Carrier server waits for a response from the target realm before sending an accounting acknowledgement.
NOTE: Set the Block parameter to 0 if your network access device is not able to deal with long acknowledgment delays to accounting requests gracefully.
The FilterOut=
nameparameter causes Steel-Belted Radius Carrier to apply the filtering rules found in the[name]section of filter.ini. These rules are applied while Steel-Belted Radius Carrier is processing the incoming RADIUS request packet, and before it directs the packet out to the destination realm. You may also think of this as filtering various attributes and values out of the request before directing it to the realm.The FilterIn=
nameparameter causes Steel-Belted Radius Carrier to apply the filtering rules found in the[name]section of filter.ini. These rules are applied after Steel-Belted Radius Carrier has received a response in from the destination realm, and while it is preparing the RADIUS response packet for its client. You may also think of this as filtering various attributes and values in to the response before returning it to the client.Specifies the number of times a timeout may occur when attempting to contact servers within the realm, before a failure is declared and the attempts are stopped.
A list of times, in seconds, to wait when attempting to contact a target server before timing out. The first value is the time to wait before the first timeout, and so on.
The number of items in the list should not exceed the NumAttempts setting. If NumAttempts is greater, the last number listed is reused for subsequent timeouts.
NOTE: You can specify RequestTimeout or RequestTimeoutMills, but not both.
A list of times, in milliseconds, to wait when attempting to contact a target server before timing out. The first value is the time to wait before the first timeout, and so on.
The number of items in the list should not exceed the NumAttempts setting. If NumAttempts is greater, the last number listed is reused for subsequent timeouts.
NOTE: You can specify RequestTimeout or RequestTimeoutMills, but not both.
Specifies the number of target servers that are participating in "round-robin" load balancing. The count begins from the top of the list in the
[name]section identified by TargetsSection. Other listed targets are only used after the round-robin targets fail for a particular request.If a setting is supplied for this parameter, accounting packets are forwarded to a list of realms. The setting given must be a section name defined in the proxyrl.ini file that lists the realms to which the accounting packets are forwarded.
See Proxyrl.ini File.
- If set to 1, strip the realm name from the username before forwarding.
- If set to 0, name stripping is disabled.
NOTE: For proxy realms, realm name stripping is disabled (StripRealm = 0) by default. If you want to enable it, you must explicitly set StripRealm to 1.
nameidentifies a section called [name] that appears elsewhere in the .pro file. This section lists all the targets in a proxy realm. When it receives a request for this proxy realm, Steel-Belted Radius Carrier selects a target from this list.Having the TargetsSection parameter available in the
[Auth]and[Acct]sections permits you to name different target selection parameters for proxy RADIUS authentication and accounting.The default value of name is AcctTargets; in which case the name of the section is
[AcctTargets].
- If set to
yes, inbound proxy responses for this realm use the master Steel-Belted Radius Carrier dictionary when accounting attributes are filtered in.- If set to
no, proxy responses for this realm use the client-specific dictionary when accounting attributes are filtered in.NOTE: This value overrides the global setting configured in the UseMasterDictionary parameter in the proxy.ini file.
[AutoStop] Section
The [AutoStop] section of a realm configuration file permits you to activate the Proxy AutoStop feature. When this feature is enabled, an AutoStop request is automatically recorded and associated with the session in the current sessions database when the initial Accounting-Start message is received. This AutoStop message may be used later to simulate an Accounting-Stop message which is fed back into the request processing engine, causing it to be forwarded to the appropriate realms and for the normal processes of ending the user session to be enacted.
Set to 0 to disable AutoStop for the current realm.
Table 89 lists the parameters in other configuration files you must enable (set to 1) for AutoStop to operate.
[Called-Station-ID] Section
The [Called-Station-ID] section of a
RealmName.pro file allows the target realm to be selected based on DNIS. The [Called-Station-ID] section lists each DNIS string that identifies the realm. If this string is found in the Called-Station-Id attribute of an incoming RADIUS request, the request is assumed to be addressed to this realm.[Called-Station-ID]StringStringMwhere
Stringis a DNIS string.[Called-Station-ID]800555121280055512136175551212You can also use wildcards, as in the following example:
[Called-Station-ID]800*508*Target Selection Rules
Each [
name] section of aRealmName.pro file specifies a set of rules that Steel-Belted Radius Carrier can use to select a target for proxy-forwarding within the proxy realm. Each [name] section consists of a list of target servers. For any particular request, if the first listed server fails to respond (or is presumed down), the other servers are tried in the order listed. A [name] section is activated by referencing it from the [Auth] and [Acct] sections.
[Auth]TargetsSection=nameB[Acct]TargetsSection=nameA[nameA]Server=nServer=nM[nameB]Server=nServer=nMwhere
Serveris the name of a server configured as a target for standard proxy RADIUS forwarding, andnis explained in the next section.
Servermust match a Proxy entry in the Steel-Belted Radius Carrier database. This Proxy entry provides the address and shared secret for the target server. All other settings in the Proxy entry (retry policy, proxy accounting) are overridden by the settings that you configure in theRealmName.pro file.
NOTE: If your server has multiple interface cards, you may add a parameter referring to the interface to each line to order the outgoing proxy traffic for the realm through a particular interface. See [Interfaces] Section.
Round-Robin Load Balancing
If you have multiple target servers in a realm, you can select whether to use them in round-robin fashion (load balancing), primary/backup fashion, or a combination of both. The value of the RoundRobin entry in the [Auth] or [Acct] section indicates the number of targets that are to be used in round-robin fashion. The count begins from the top of list in the [name] section. Other listed targets are used only if the round-robin targets fail for a particular request. If RoundRobin is 0 or 1, all requests are routed to the first target in the [name] list, assuming that it is up, the others are tried in the order listed.
If RoundRobin is 2 or greater (say,
n), each request is routed to a different target server, in rotation among the firstnlisted targets. Requests are then load- balanced evenly among those targets. For any particular request, if one target fails to respond, other targets are attempted. The round-robin targets are tried first; if they all fail to respond, any additional targets are then tried in the order in which they appear in the list.In the following example, RoundRobin is 3. Under normal circumstances, requests are balanced in round-robin fashion among the first three targets. The first request goes to Bert; the next goes to Ernie; the next to George; the next to Bert; the next to Ernie; the next to George; and so on. If any of these servers go down at some point, the other two are tried, in list order. The fourth target (Mary) receives requests only when other targets are down.
[Auth]RoundRobin=3NumAttempts=8TargetsSection=Targets[Targets]Bert=1Ernie=1George=1Mary=5Selecting a Backup Server
If RoundRobin is set to 0, Steel-Belted Radius Carrier makes a selection from the other servers in the list only if the primary server is down.
[Auth]RoundRobin=0NumAttempts=8TargetsSection=Targets[Targets]Bert=1Ernie=1In this case, Bert is used until there is a problem; then Ernie becomes the server of second choice.
Realm Retry Policy
Each target selection rule in the [
name] section permits you to name a target and assign it a numeric value:[name]Server=nServer=nMThe
nsetting indicates the number of times to retry requests to this target server when no response is received within the amount of time set by RequestTimeout in the [Auth] or [Acct] section.The number of attempts to all servers within the entire realm is given by the NumAttempts value in the [Auth] or [Acct] section. For example, the NumAttempts is 8 and there are three target servers, each with
nset to 3:[Auth]NumAttempts=8TargetsSection=Targets[Targets]Bert=3Ernie=3George=3All three servers are down when a request comes into the realm. The first target (Bert) is tried 3 times; then the second target (Ernie) is tried 3 times; and the third target (George) is tried 2 times. At this point, the number of tries to all servers in the realm is 8, which equals NumAttempts. Steel-Belted Radius Carrier returns a failure response from the realm.
NOTE: A third attempt to George will not be made unless you edited the
RealmName.pro file, increased NumAttempts to 9, and reloaded Steel-Belted Radius Carrier.
[FastFail] Section
The [FastFail] section of a realm configuration file permits you to fine-tune retry policies for individual realms, and for specific targets within a realm. If you provide a [FastFail] section, the ProxyFastFail parameter in the radius.ini [Configuration] section is ignored.
[ModifyUser] Section
The [ModifyUser] section of a realm configuration file permits you to decorate a realm, where the realm is determined by other means, such as DNIS or attribute mapping.
This is used mainly to enhance directed realms. For example, the following two users are in the database: george@gm and george@ford. Either user can log in as george, as Steel-Belted Radius Carrier would determine the realm, for example, by DNIS. Based on the realm, Steel-Belted Radius Carrier would append either @gm or @ford to the user name, and then use the Native User directed method to authenticate.
This methodology can also be used in a double-proxy situation. The first proxy uses DNIS to determine a realm, then decorates the name and forwards it to the next hop server. This second proxy (which may be a legacy RADIUS server that does not understand DNIS) can then handle realms based on the name decoration.
[SpooledAccounting] Section
Proxy spooling is configured within the [SpooledAccounting] section of a
RealmName.pro file.[SpooledAccounting]Enable=1RolloverSeconds=600RolloverSize=1048576Directory=./all_acct_dataRetryInterval=60ShutdownDelay=20
NOTE: Do not enable proxy spooling for realms that are not enabled for accounting.
Retry Sequence
If Steel-Belted Radius Carrier receives an accounting packet for a realm, and the target system is down, Steel-Belted Radius Carrier implements the
RealmName.pro retry configuration, as in the following example:[Acct]RequestTimeout=5, 3, 5NumAttempts=3In this example, Steel-Belted Radius Carrier attempts to proxy forward the accounting packet to the target IP address, as it would in a non-SpooledAccounting scenario. Three attempts are made; the first waits for five seconds before timing out, the second three seconds, and the third five seconds.
If there is still no response from the target after three attempts, the RetryInterval in the [SpooledAccounting] section is applied. If RetryInterval equals 60, then five seconds after the last unsuccessful NumAttempts is completed, Steel-Belted Radius Carrier waits another sixty seconds and then attempts the entire retry policy again.