访问控制列表(Access Control List,ACL) 是路由器和交换机接口的指令列表,用来控制端口进出的数据包。ACL适用于所有的被路由协议,如IP、IPX、AppleTalk等。
ACL的作用:
ACL可以限制网络流量、提高网络性能。
ACL提供对通信流量的控制手段。
ACL是提供网络安全访问的基本手段。
ACL可以在路由器端口处决定哪种类型的通信流量被转发或被阻塞。
3P 原则:
在上应用 ACL 的一般规则。您可以为每种协议 (per protocol)、每个方向 (per direction)、每个接口 (per interface) 配置一个 ACL:
每种协议一个 ACL:要控制接口上的流量,必须为接口上启用的每种协议定义相应的 ACL。
每个方向一个 ACL :一个 ACL 只能控制接口上一个方向的流量。要控制入站流量和出站流量,必 须分别定义两个 ACL。
每个接口一个 ACL :一个 ACL 只能控制一个接口(例如0/0)上的流量。
ACL分类
目前有三种主要的ACL:标准ACL、扩展ACL及命名ACL。其他的还有标准MAC ACL、时间控制ACL、以太协议 ACL 、IPv6 ACL等。
标准的ACL使用 1 ~ 99 以及1300~1999之间的数字作为表号,扩展的ACL使用 100 ~ 199以及2000~2699之间的数字作为表号。
标准ACL可以阻止来自某一网络的所有通信流量,或者允许来自某一特定网络的所有通信流量,或者拒绝某一协议簇(比如IP)的所有通信流量。
扩展ACL比标准ACL提供了更广泛的控制范围。例如,网络管理员如果希望做到“允许外来的Web通信流量通过,拒绝外来的FTP和Telnet等通信流量”,那么,他可以使用扩展ACL来达到目的,标准ACL不能控制这么精确。
在标准与扩展访问控制列表中均要使用表号,而在命名访问控制列表中使用一个字母或数字组合的字符串来代替前面所使用的数字。使用命名访问控制列表可以用来删除某一条特定的控制条目,这样可以让我们在使用过程中方便地进行修改。 在使用命名访问控制列表时,要求路由器的IOS在11.2以上的版本,并且不能以同一名字命名多个ACL,不同类型的ACL也不能使用相同的名字。
随着网络的发展和用户要求的变化,从IOS 12.0开始,思科(CISCO)路由器新增加了一种基于时间的访问列表。通过它,可以根据一天中的不同时间,或者根据一星期中的不同日期,或二者相结合来控制网络数据包的转发。这种基于时间的访问列表,就是在原来的标准访问列表和扩展访问列表中,加入有效的时间范围来更合理有效地控制网络。首先定义一个时间范围,然后在原来的各种访问列表的基础上应用它。
基于时间访问列表的设计中,用time-range 命令来指定时间范围的名称,然后用absolute命令,或者一个或多个periodic命令来具体定义时间范围。
ACL的应用位置
在创建访问控制列表之后,必须将其应用到某个接口才可开始生效。ACL 控制的对象是进出接口的流量。
路由器接口有出和入两个方向:出;经过路由器准备出去的数据;入;准备进入路由器的数据
标准ACL要尽量靠近目的端。
扩展ACL要尽量靠近源端。
路由器接口检查ACL条目的规则:
自上而下;如果匹配第一条则不再往下检查,如果最后没有一条规则匹配,则根据默认的规则丢弃该数据包。添加acl的接口数据包,要么允许,要么拒绝
命令格式:
access-list:访问列表命令。
access-list-number:访问列表号码,值为1~99.
permit:允许。
deny:拒绝。
举例说明:
config t
access-list 1 permit 192.168.1.0 0.0.0.255 创建标准列表1、允许192.168.1.0网段的所有流量
access-list 1 deny 0.0.0.0 255.255.255.255或any 标准列表1中拒绝所有,这就话可以不写,拒 绝所有是隐含语句。
应用到接口:
int f0/0 进入f0/0
ip access-group 1 in或out 将标准列表1 应用到接口的in方向或者out方向
show ip access-list 1 查看列表1的信息