Classifying Interfaces (SRC CLI)
Use the following configuration statements to define interface classification scripts:
A classification script can contain either a target and a condition or a script. If you do not define a script, the classifier must have both a target and a condition.
To define interface classification scripts:
From configuration mode, enter the interface classifier configuration for a device.
user@host# edit shared network device erx-node1 interface-classifierCreate a rule for the classifier. You can create multiple rules for the classifier.
[edit shared network device erx-node1 interface-classifier]user@host# edit rule rule-3Configure either a target or a script for the rule.
Configure the target for the rule.
[edit shared network device erx-node1 interface-classifier rule rule-3]user@host# set target targetIf you configured a target for the rule, you must configure a match condition for the rule. You can create multiple conditions for the rule. See Interface Classification Conditions.
[edit shared network device erx-node1 interface-classifier rule rule-3]user@host# set condition nameConfigure the script for the rule.
[edit shared network device erx-node1 interface-classifier rule rule-3]user@host# edit script(Optional) You can specify a script target.
[edit shared network device erx-node1 interface-classifier rule rule-3 script]user@host# set script-value(Optional) You can include a script that has already been created.
[edit shared network device erx-node1 interface-classifier rule rule-3 script]user@host# set include includewhere include is a reference to an existing script that is included in the script you are configuring.
(Optional) Change the order of rules.
[edit shared network device erx-node1 interface-classifier]user@host# insert rule rule-5 before rule-4(Optional) Rename a rule.
[edit shared network device erx-node1 interface-classifier]user@host# rename rule rule-5 to DHCP(Optional) Verify the classifier rule configuration.
[edit shared network device erx-node1 interface-classifier rule rule-3] user@host# show target /sample/junose/PPP-special; condition { "pppLoginName=\"*@special.com\""; }
(Optional) Verify the interface classifier configuration.
[edit shared network device erx-node1 interface-classifier] user@host# show rule rule-1 { script " # Use the following syntax: # # descr-file ::= [script] section* # section ::= ('[' type ']' nl conditions) | ('[*]' nl script) # type ::= 'a-zA-Z0-9-_'* # nl ::= '\\n' # conditions ::= ((('#'|';') comment) | # (['&'|'|'] field-name ( '='|'=='|'!=') match) nl)* # field-name ::= member of InterfaceObject # match ::= UNIX style filename matching # script ::= regular python script, defined functions need to be # included in the list \"classify\" # # the section-names correspond to a PolicyList object below # o=Policies, o=umc: # [name] => DN: \"policyGroupName=name, o=Policies, o=umc\" # # Use one of the following \"field names\": # pppLoginName - set to \"user@realm\", if interface is PPP # interfaceName - name of the ERX Interface in CLI syntax # virtualRouterName - name of the VR the interface is connected to
"; } rule rule-2 { script " # apply different default policies for PPP subscribers in realm \"special.com\" def log(obj): from net.juniper.smgt.sae import Main icc = Main.theComponentRegistry.get(\"icc.component\") if icc is None: Main.theComponentRegistry.put(\"icc.component\", []) else: icc.append(obj) classify.append(log) "; } rule rule-3 { target /sample/junose/PPP-special; condition { "pppLoginName=\"*@special.com\""; } } rule rule-4 { target /sample/junose/PPP; condition { "pppLoginName!=\"\""; } } rule rule-5 { target /sample/junose/DHCP; condition { "interfaceName=\"fastEthernet*\""; "interfaceName=\"atm*/*.*\""; } }