ACL的开启后的默认语句是DENY ANY,且一句一句向下读取。所以在写表的时候记得最后要添加PERMIT ANY语句,否则将全部封杀。 ACL只是一个记录PERMIT和DENY的表,本身没有进或出的提示。 ACL在接口上应用不可以叠加,否则新生效的将替代前一个。

标准访问控制列表 命令: (config)#access-list 1 deny host 10.1.1.1 其中:1的范围可以在1-99和1300-1999 deny或permit host后跟HOST的IP,特单指这台主机。10.1.1.1 0.0.0.0和HOST 10.1.1.1效果相同。 若DENY或PERMIT后直接跟IP,则需使用通配符格式。若为ANY,则与通配符0.0.0.0 255.255.255.255相同。

扩展访问控制列表 命令: (config)#access-list 100 permit     tcp       any     host 10.1.1.1  eq 23          log (4层协议) (源IP)   (目标IP)               (telnet)  (time-range name) ACL100允许任何(any)通过23端口使用TCP协议的数据到达10.1.1.1 其中:100的范围可以在100-199和2000-2699 4层协议支持是extended的主要扩展内容:包括4层的路由协议EIGRP和OSPF,以及UDP和TCP。若为IP,将包括一切INTERNET数据。 eq处可以是其他参数,主要是对通信端口以及bit内容(eg. ack or syn)的限制。 eq后跟端口号或服务名称,ACL将自动把服务名称翻译为相应端口号。 如果上述语句没有后面的EQ 23,则将允许任何到10.1.1.1的TCP。 最后的LOG可有可无,用于条件成立执行ACL时向CONSOLE发送LOG信息。 LOG处也可以使用TIME-RANGE,用于限定此ACL在某一时间内有效,前提是先定义TIME-RANGE的内容

命名的访问控制列表 命令: (config)#ip access-list standard(extended) name 给标准或扩展的ACL取任意名字,之后自动进入该ACL的配置表中 (config-std-nacl)#deny 172.16.28.0 0.0.0.255 命名后的配置命令与非命名访问列表相同

设立ACL后分别在需要的接口应用: (config)#int 接口 (config-if)#ip access-group 1 out(in) 其中:access-group 后跟设定好的ACL号 OUT或IN是站在路由器的角度去看的。对于A-0B1-C结构中组织A访问B,需要在B0口做IN的ACL就可以了,不需要再在B1上做OUT,这点和NAT是不一样的,NAT需要打通往返的隧道

在VTY链路上应用ACL时,使用ip access-class * in,而不是GROUP!!!

标准访问控制列表应放在距离目标最近的位置上(目标的路由入口),扩展访问控制列表应放在靠近源地址的位置(源的路由出口)。 因为标准访问控制列表只是笼统的限制,如果放在源端会影响非目标限制数据。而扩展访问控制列表则可以实现详细的限制要求,包括服务类型,端口号,从哪个IP到哪个IP等,这样放在目标端容易造成网络带宽浪费,因为限制的数据应该越早被限制越好。

==============2层交换机仅支持以下ACL===========================

交换机的ACL只能应用在接口的入口的列表上(只能IN),且只能使用命名的ACL。 命令: (config)#mac access-list extended name 只可以EXTENDED不可以STD!!! (config-ext-macl)#permit any any ? ?处可有可无,用于定义以太帧报头中的以太类型字段,也就是按类型拒绝或允许MAC。 (config-if)#mac access-group name in