Classification Scripts Overview
The service activation engine (SAE) uses classification scripts to determine whether it manages router interfaces, to select default policies, to find subscriber profiles, and to choose Dynamic Host Configuration Protocol (DHCP) profiles. The SAE has three classification scripts:
Interface classification script—When a subscriber’s IP interface comes up on the router, the router sends the subscriber’s login and interface information to the SAE.
The SAE runs the interface classification script to determine whether the SAE:
Manages the interface and if so, what default policies to send to the router
Does not manage the interface, but supports subscriber sessions on JunosE routers for services that use policies managed through an external policy management system
Subscriber classification script—If the SAE is managing the interface, the SAE uses the login and interface information that the router sends to run the subscriber classification script to determine which subscriber profile to load into memory. The SAE runs subscriber classification scripts regardless of whether the interface is being managed or not for the devices other than JunosE.
DHCP classification script—For DHCP subscribers, the SAE runs DHCP classification scripts to choose DHCP profiles.
How Classification Scripts Work
Classification scripts consist of targets and conditions.
A target is the result of the classification script. For example, the result of subscriber classification scripts is an LDAP search string that is used to find a unique subscriber profile. The result of interface classification scripts is a policy group.
Conditions are match criteria. The script attempts to match conditions in the script with information sent from the router. For example, match conditions for a subscriber classification script might be login type or domain name. Match conditions for an interface classification script could be interface IP address or interface description.
Each script can have multiple targets, and each target can have multiple conditions. When an object needs classification, the script processes the targets in turn. Within each target, the script processes conditions sequentially. When it finds that the classification conditions for a target match, it returns the target to the SAE. If the script does not find any targets that can be matched, the classifier engine returns a no-match message to the SAE.
Because classification scripts examine conditions sequentially as the conditions appear in the script, you should put more specific conditions at the beginning of the script and less specific conditions at the end of the script.
Interface Classification Scripts
When a subscriber’s IP interface comes up on the router, the router sends the subscriber’s login and interface information to the SAE. For example, the router might send the following information:
The SAE invokes the interface classification script and provides to the script the information that it received from the router. The script engine matches the information sent from the router to the conditions in the interface classification script. The script examines each condition in sequential order to find a match.
If it finds a match, the script processing stops, and the target for that condition is returned to the SAE. The target is the path of a policy group.
This policy group is one of the following:
The default policy. In this case, the SAE installs the policy on the interface and begins managing the interface.
An empty policy. In this case, the SAE allows subscriber session to start and manages services for the subscriber on routers that run JunosE software. The policies are managed by an external policy management system.
If it does not find a match, the script sends a no-match message to the SAE. For JunosE routers, the SAE does not manage the interface (that is, the policies installed through RADIUS or the CLI remain in effect), does not install policies, and does not attempt to log in subscribers. For the other types of devices, the SAE attempts to log in subscribers regardless of whether the interface is being managed or not.
Subscriber Classification Scripts
When the SAE begins managing an interface, it determines whether a subscriber is associated with the interface by running the subscriber classification script. The SAE also runs the subscriber classification script when certain login events occur. See Login Events for a description of login event types.
To find the matching subscriber profile, the SAE uses interface information that it received from the router when the interface became operational (for example, virtual router name, interface name, interface alias). It also uses login information that it received from the router or the portal application when the subscriber attempted to log in (for example, subscriber IP address, login name, or login event type).
When the SAE runs the subscriber classification script, the script engine matches the information sent from the router to the conditions in the subscriber classification script. The script examines each condition in sequential order to find a match.
If it finds a match, the script processing stops, and the target for the matching condition is returned to the SAE. The target is an LDAP query that uniquely identifies a subscriber profile. The SAE loads the subscriber entry and uses the entry to create a subscriber session in memory.
If it does not find a match, the script sends a no-match message to the SAE. The SAE does not load a subscriber session onto the interface, and services cannot be activated for this session.
DHCP Classification Scripts
DHCP classification scripts choose DHCP profiles. See Assigning DHCP Addresses to Subscribers for information about how DHCP classification scripts are used.
Sharing Information Among Classification Scripts
In many instances, the same classification rule may appear in different classification scripts. You can reuse the same information in different scripts by configuring the information in one script and including that information in another script. Interface, subscriber, and DHCP classification scripts all let you include another script.