Reference Guide

Access Control Lists (ACLs) | 117
ACL Optimization
If an access list contains duplicate entries, FTOS deletes one entry to conserve CAM space.
Standard and Extended ACLs take up the same amount of CAM space. A single ACL rule uses 2 CAM
entries whether it is identified as a standard or extended ACL.
Determine the Order in Which ACLs are Used to Classify Traffic
When you link class-maps to queues using the service-queue command, FTOS matches the class-maps
according to queue priority (queue numbers closer to 0 have lower priorities). For example, Figure 7-2,
class-map cmap2 is matched against ingress packets before cmap1.
ACLs acl1 and acl2 have overlapping rules because the address range 20.1.1.0/24 is within 20.0.0.0/8.
Therefore, (without the keyword
order) packets within the range 20.1.1.0/24 match positive against cmap1
and are buffered in queue 7, though you intended for these packets to match positive against cmap2 and be
buffered in queue 4.
In cases such as these, where class-maps with overlapping ACL rules are applied to different queues, use
the
order keyword to specify the order in which you want to apply ACL rules (Figure 7-2). The order can
range from 0 to 254. FTOS writes to the CAM ACL rules with lower order numbers (order numbers closer
to 0) before rules with higher order numbers so that packets are matched as you intended. By default, all
ACL rules have an order of 254.
Figure 7-2. Using the Order Keyword in ACLs
FTOS(conf)#ip access-list standard acl1
FTOS(config-std-nacl)#permit 20.0.0.0/8
FTOS(config-std-nacl)#exit
FTOS(conf)#ip access-list standard acl2
FTOS(config-std-nacl)#permit 20.1.1.0/24 order 0
FTOS(config-std-nacl)#exit
FTOS(conf)#class-map match-all cmap1
FTOS(conf-class-map)#match ip access-group acl1
FTOS(conf-class-map)#exit
FTOS(conf)#class-map match-all cmap2
FTOS(conf-class-map)#match ip access-group acl2
FTOS(conf-class-map)#exit
FTOS(conf)#policy-map-input pmap
FTOS(conf-policy-map-in)#service-queue 7 class-map cmap1
FTOS(conf-policy-map-in)#service-queue 4 class-map cmap2
FTOS(conf-policy-map-in)#exit
FTOS(conf)#interface tengig 1/0
FTOS(conf-if-te-1/0)#service-policy input pmap