Cisco IOS可以配置很多类型的ACL,下面是最常见也就是最常用的ACL类型;
标准ACL
扩展ACL
命令的IP ACL
锁和秘钥(动态ACL)
自反ACL(Reflexive ACL)
Established ACL
使用时间范围的时间 ACL (Time-Based ACL)
分布式时 ACL
Turbo ACL
限速ACL(rACL)
设备保护ACL (I ACL)
过境ACL (Transit ACL)
分类ACL (Classification ACL)
使用ACL调试流量
1.标准ACL
标准ACL是最基本的ACL类型,它将配置在列表中的IP地址和数据包的源IP地址进行比较,以此来监控流量。标准ACL只能通过源IP地址指定需要放行和阻塞的流量。
用数字的标准ACL语法格式如下。
access-list access-list-number {deny |permit } source {source-wildcard} [log]
注:命令语句中用大括号{}标识的部门是必选项,用中括号[]标识的部分是可选项;
当一个数据包与某个ACL条目发生匹配的时候,使用关键字log可以生成一个信息日志消息。设备会把所有和该ACL相匹配的数据包以日志的形式发送给Console接口、缓存或系统日志服务器。这个消息中包含了ACL编号、数据包处理结果的通告消息(被允许还是拒绝)、源地址、以及数据包的数量。
标准ACL编号的取值范围都在1~99之间,也可以取扩展范围1300~1999间的任意值;
用数字定义的标准ACL示例
Router(config)#access-list 1 permit192.168.1.0 0.0.0.0
Router(config)#access-list 1 permit139.65.0.0 0.0.255.255
(Note:implicit deny)
源/源的反掩码的设置如果为0.0.0.0/255.255.255.255,那么可以用关键字any来代替。全0位的反掩码也有省略写法,如10.1.1.10.0.0.0 也可写为host 10.1.1.1
在定义ACL以后,要把它应用到接口上(入方向或出方向)
Router(config)#interface<interface-name>
Router(config)#ip access-group{access-list-number | name } {in | out}
案例:
下面是使用标准 ACL的例子,该ACL过滤了所有源地址不是10.1.1.0/24的流量。这个例子除了一条permit语句之外,其后还有一个隐含的拒绝语句,这个隐含拒绝会阻塞其他所有流量。
1.定义一个标准的ACL
Router(config)#access-list 1permit 10.1.1.0 0.0.0.255
2.将其应用到接口上面
Router(config)#interface Serial 0
Router(config)#ip access-group 1in
2.扩展ACL
扩展ACL在过滤流量的时候可以更加具体的对流量进行定义,它可以基于源地址、目的地址、指定协议、端口和标记(flag)对流量实施过滤,针对各类协议定义,扩展访问列表的编号范围在100~199之间,也可以取扩展值2000~2699间的任意值。扩展ACL的语句格式如下所示:
定义一个扩展的IP ACL
Access-list access-list-number[dynamic dynamic-name [timeoutminutes ]] {deny | permit } protocol source source-wildcard destinationdestination-wildcard [precedence precedence ] [tos tos ] [log | log-input ][time-range time-range-name] [fragments]
定义一个扩展的TCP ACL
Access-list access-list-number[dynamic dynamic-name [timeoutminutes ]] {deny | permit } tcp source source-wildcard [operator [port ]]destination destination-wildcard [operator [port] ] [established ] [precedenceprecedence ] [tos tos ] [log | log-input ] [time-range time-rage-name ][fragments]
定义一个扩展的 UDP ACL
Access-list access-list-number[dynamic dynamic-name [timeoutminutes ]] {deny | permit } udp sourcesource-wildcard [operator [port ]] destination destination-wildcard [operator[port] ] [established ] [precedence precedence ] [tos tos ] [log | log-input ][time-range time-rage-name ] [fragments]
定义一个扩展的ICMP(用户数据报协议)ACL
Access-list access-list-number[dynamic dynamic-name [timeoutminutes ]] {deny | permit } icmp source source-wildcard destinationdestination-wildcard
[icmp-type ] [icmp-code] | icmp-message [precedenceprecedence ] [tos tos] [log |log-input ] [time-range time-range-name][fragments]
定义一个扩展的IGMP(internet组管理协议)ACL
Access-list access-list-number [dynamic dynamic-name[timeout minites ]] {deny | permit } igmp source source-wildcard destinationdestination-wildcard [igmp-type]
[precedence precedence ] [tos tos ] [log | log-input ][time-range time-range-name] [fragments]
案例:
1.定义一个扩展ACL
Router(config)#access-list 101 permit tcp any host172.16.1.1 eq smtp
Router(config)#access-list 101 permit tcp any any eq domain
Router(config)#access-list 101 permit udp any any eq domain
Router(config)#access-list 101 permit icmp any any echo
Router(config)#access-list 101 permit icmp any any echo-reply
2.将其应用在接口上面
Router(config)#interface Serial0
Router(config)#ip access-group 101 in
3.命名的IP ACL
Cisco IOS增加了可以使用名称来命名的ACL功能。这项功能可以应用在标准ACL和扩展ACL上面,也就是用一个名字代替数字来给ACL命名,所有其他参数都保存不变。这是在常规ACL基础上面添加的特性。定义命名的ACL可以使用下面的语法结构。
Router(confug)#ip access-list {standard | extended}access-list-name
下面例子中的ACL被命名为myacl,这个列表匹配所有来之网络192.16.1.10/24及来之主机172.65.1.1的流量。
1.命名的标准ACL
Ip access-list standard myacl
Permit 192.168.1.0 0.0.0.255
Permit host 172.65.1.1
(Note:implicit deny)
2.命名扩展的ACL
Ip access-list extended myacl
Permit tcp any host 172.16.1.1 eq smtp
Permit tcp any eq domain
Permit udp any eq domain
Permit icmp any any
(Note:implicit deny)
本文出自 “业精于勤荒于嬉” 博客,谢绝转载!