ACL分类

ACL类别
规则定义描述
编号范围
基本ACL
仅使用报文的源IP地址、分片标记和时间段信息来定义规则。
2000~2999
高级acl
既可使用报文的源IP地址,也可使用目的地址、IP优先级、ToS、DSCP、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。
3000~3999
二层ACL
可根据报文的以太网帧头信息来定义规则,如根据源MAC地址、目的MAC地址、以太帧协议类型等。
4000~4999
用户自定义ACL
可根据报文偏移位置和偏移量来定义规则。
5000~5999
用户ACL
既可使用IPv4报文的源IP地址或源UCL(User Control List)组,也可使用目的地址或目的UCL组、IP协议类型、ICMP类型、TCP源端口/目的端口、UDP源端口/目的端口号等来定义规则。
6000~9999
ACL规则
接下来,我们来看看图中ACL的 “deny | permit”语句。这些条件语句,我们称作ACL规则(rule)。其中的“deny | permit”,称作ACL动作,表示拒绝/允许。
每条规则都拥有自己的规则编号,如5、10、4294967294。这些编号,可以自行配置,也可以由系统自动分配。
ACL规则的编号范围是0~4294967294,所有规则均按照规则编号从小到大进行排序。系统按照规则编号从小到大的顺序,将规则依次与报文匹配,一旦匹配上一条规则即停止匹配。
除了包含ACL动作和规则编号,我们可以看到ACL规则中还定义了源地址、生效时间段这样的字段。这些字段,称作匹配选项,它是ACL规则的重要组成部分。
其实,ACL提供了极其丰富的匹配选项。你可以选择二层以太网帧头信息(如源MAC、目的MAC、以太帧协议类型)作为匹配选项,也可以选择三层报文信息(如源地址、目的地址、协议类型)作为匹配选项,还可以选择四层报文信息(如TCP/UDP端口号)等等等等。
步长
步长,是指系统自动为ACL规则分配编号时,每个相邻规则编号之间的差值。也就是说,系统是根据步长值自动为ACL规则分配编号的。ACL的缺省步长值是5。通过display acl acl-number命令,可以查看ACL规则、步长等配置信息。通过 step命令,可以修改ACL步长值。
ACL匹配机制
ACL规则匹配顺序
配置顺序,即系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。后插入的规则,如果你指定的规则编号更小,那么这条规则可能会被先匹配上。
自动排序,是指系统使用“深度优先”的原则,将规则按照精确度从高到底进行排序,系统按照精确度从高到低的顺序进行报文匹配。规则中定义的匹配项限制越严格,规则的精确度就越高,即优先级越高,那么该规则的编号就越小,系统越先匹配。例如,有一条规则的目的IP地址匹配项是一台主机地址2.2.2.2/32,而另一条规则的目的IP地址匹配项是一个网段2.2.2.0/24,前一条规则指定的地址范围更小,所以其精确度更高,系统会优先将报文与前一条规则进行匹配。
例如,在auto模式的acl 3001中,存在以下两条规则。
如果在acl 3001中插入rule deny ip destination 1.1.1.1 0(目的IP地址是主机地址,优先级高于上图中的两条规则),系统将按照规则的优先级关系,重新为各规则分配编号。插入新规则后,新的排序如下。
可以看到,rule deny ip destination 1.1.1.1 0的优先级最高,排列最靠前
ACL规则匹配项
协议类型
格式为:protocol-number | icmp | TCP | udp | gre | IGMP | ip | ipinip | ospf
高级ACL支持过滤的报文类型很多,常用的协议类型包括: ICMP(协议号1)、TCP(协议号6)、UDP(协议号17)、GRE(协议号47)、IGMP(协议号2)、IP(指任何IP层协议)、IPinIP(协议号4)、OSPF(协议号89)。protocol-number取值可以是1~255。
目的地址
格式为:destination { destination-address destination-wildcard | any }
destination-address:指定报文的目的地址。
destination-wildcard:指定通配符掩码。可以为0,相当于0.0.0.0,表示目的地址为主机地址。
any:表示对任意目的地址都匹配。
在将地址定义为ACL规则匹配项时,还需要同时指定通配符掩码,用来与地址字段共同确定一个地址范围。通配符掩码的格式与IP地址相同,也是一个32比特位的数字字符串,用于指示目的IP地址中的哪些位将被检查。各比特位中,0表示“检查相应地位”,1表示“不检查相应的位”,概括为一句话就是“检查0,忽略1”。 如图所示,以8比特为例,通配符的低8位如果为全0,就表示对目的IP地址的低8位全部进行检查;全1就表示全部忽略。有多少位为0,就表示检查多少位;有多少位为1,就表示忽略多少位。
生效时间段 time-range
? 第一种模式——相对时间段:以星期为参数来定义时间范围。
格式为:time-range time-name start-time to end-time { days } &<1-7>
time-name:时间段名称,以英文字母开头的字符串。start-time to end-time:开始时间和结束时间。格式为[小时:分钟] to [小时:分钟]。days:有多种表达方式: Mon、Tue、Wed、Thu、Fri、Sat、Sun中的一个或者几个的组合,也可以用数字表达,0表示星期日,1表示星期一,……6表示星期六。 working-day:从星期一到星期五,五天。 daily:包括一周七天。 off-day:包括星期六和星期日,两天。? 第二种模式——绝对时间段:从某年某月某日的某一时间开始,到某年某月某日的某一时间结束。
格式为:time-range time-name from time1 date1 [ to time2 date2 ]
time:格式为 [小时:分钟]。date:格式为[YYYY/MM/DD],表示年/月/日。配置完时间段,千万别忘记要将时间段与ACL规则关联起来,这样才是一条基于时间的ACL的完整配置过程。配置如下:
acl acl-number rule [ rule-id ] { deny | permit } other-options time-range time-name
ACL应用案例
telnet server port 1025 ad number 2001 rule 5 permit source 10.1.1.1 0 //仅允许10.1.1.1主机访问 aaa local-user a dmin 1234 password irreversible-cipher ****** local-user admin 1234 privilege level 3 local-user adminl234 service-type telnet user-interface maximim-vty 8 user-interface ty 0 7 acl 2001 inbound //调用ACL
time-range control-time 08:00 to 17:30 working-day //生效时间工作日8:00- 17:30 number 3002 rule 5 deny ip source 10.10.1.0 0.0.0.255 destination 10.10.4.9 0 time-range control-time traffic classifier c_market operator or precedence 5 if-matched 3002 //调用acl traffic behavior b_market deny traffic policy p_market match-order config classifier c_market behavior b _ market interfæe GigabitEthernet1/0/0 port link-type access pot default vlan 10 traffic-policy p_market inbound
ACL应用方式


还没有评论,来说两句吧...