ACL分类
分类 | 编号范围 | 参数 |
基本ACL | 2000~2999 | 源IP地址等 |
高级ACL | 3000~3999 | 源IP地址、目的IP地址、源端口、目的端口等 |
二层ACL | 4000~4999 | 源MAC地址、目的MAC地址、以太帧协议类型等 |
入栈ACL | 在网络入口处对数据包进行检查,如果被deny,则不需要路由,如果permits,然后进行路由 |
出栈ACL | 进入路由器的包被路由后进行outbound接口,然后进行outbound访问列表匹配 |
ACL规则
一个ACL可以由多条”deny|permit”语句组成,每一条语句描述了一条规则,设备收到数据流量后,会逐条匹配ACL规则,看其是否匹配。如果不匹配,则匹配下一条,一旦找到一条匹配的规则,则执行规则中的定义的动作,并不再继续与后续规则进行匹配。如果找不到匹配规则,则设备不对报文进行任何处理。需要注意的是,ACL中定义的这些规则可能存在重复或矛盾的地方。规则的匹配顺序决定了规则的优先级。ACL通过设置规则的优先级来处理规则之间的矛盾或重复的情形。
配置顺序按照ACL规则编号(rule-id)从小到达的顺序进行匹配。设备会在创建ACL的过程中自动为每一条规则分配一个编号,规则编号决定了规则被匹配的顺序。例如,如果将步长设定为5,则规则编号将按照5、10、15,….这样的规律自动分配。通过设置步长,使规则之间留有一定的空间,用户可以在已存在的两个规则之间插入新的规则。路由器匹配规则时默认采用匹配顺序。
基本ACL配置
Acl number 命令用来创建一个acl,并进入acl视图。
Rule(rule-id){deny|permit} source{source-address source-widcard|any}命令用来增加或修改acl的规则。Deny用来指定拒绝符合条件的数据包,permit用来指定允许符合条件的数据包,source用来指定acl规则匹配报文的源地址信息,any标识任意源地址。
Traffic-filter{inbound|outbound}acl{acl-number}命令用来在接口上配置基于ACL对报文进行过滤;
高级ACL配置
基本ACL可以依据源IP地址进行报文过滤,而高级ACL能够依据源/目的IP地址、源/目的端口号、网络层及传输层协议以及IP流量分类和TCP标记值等各种参数(SYN|ack|fin等)进行报文过滤。
Rule deny tcp source 192.168.1.0 0.0.0.255 destination 172.16.10.1 0.0.0.0 destination-port eq 21用于限制源地址范围是192.168.1.0/24,目的之地为172.168.10.1端口号为21的所有TCP报文;
Rule deny tcp source 192.168.2.0 0.0.0.255 destination 172.168.10.2 0.0.0.0 用于限制源地址范围是192.168.2.0/24,目的地址是172.16.10.2的所有TCP报文
Rule permit ip 用于匹配所有IP报文,并对报文执行允许动作。