访问控制列表使用目的: 1、限制网络流量、提高网络性能。例如队列技术,不仅限制了网络流量,而且减少了拥塞 2、提供对通信流量的控制手段。例如可以用其控制通过某台路由器的某个网络的流量 3、提供了网络访问的一种基本安全手段。例如在公司中,允许财务部的员工计算机可以访问财务服务器而拒绝其他部门访问财务服务器 4、在路由器接口上,决定某些流量允许或拒绝被转发。例如,可以允许FTP的通信流量,而拒绝TELNET的通信流量。 工作原理: ACL中规定了两种操作,所有的应用都是围绕这两种操作来完成的:允许、拒绝 注意:ACL是CISCO IOS中的一段程序,对于管理员输入的指令,有其自己的执行顺序,它执行指令的顺序是从上至下,一行行的执行,寻找匹配,一旦匹配则停止继续查找,如果到末尾还未找到匹配项,则执行一段隐含代码——丢弃DENY.所以在写ACL时,一定要注意先后顺序。 例如:要拒绝来自172.16.1.0/24的流量,把ACL写成如下形式 允许172.16.0.0/18 拒绝172.16.1.0/24 允许192.168.1.1/24 拒绝172.16.3.0/24 那么结果将于预期背道而驰,把表一和表二调换过来之后,再看一下有没有问题: 拒绝172.16.1.0/24 允许172.16.0.0/18 允许192.168.1.1/24 拒绝172.16.3.0/24 发现172.16.3.0/24和刚才的情况一样,这个表项并未起到作用,因为执行到表二就发现匹配,于是路由器将会允许,和我们的需求完全相反,那么还需要把表项四的位置移到前面 最后变成这样: 拒绝172.16.1.0/24 拒绝172.16.3.0/24 允许172.16.0.0/18 允许192.168.1.1/24 可以发现,在ACL的配置中的一个规律:越精确的表项越靠前,而越笼统的表项越靠后放置。 ACL是一组判断语句的集合,它主要用于对如下数据进行控制: 1、入站数据; 2、出站数据; 3、被路由器中继的数据 工作过程 1、无论在路由器上有无ACL,接到数据包的处理方法都是一样的:当数据进入某个入站口时,路由器首先对其进行检查,看其是否可路由,如果不可路由那么就丢弃,反之通过查路由选择表发现该路由的详细信息——包括AD,METRIC……及对应的出接口; 2、这时,我们假定该数据是可路由的,并且已经顺利完成了第一步,找出了要将其送出站的接口,此时路由器检查该出站口有没有被编入ACL,如果没有ACL 的话,则直接从该口送出。如果该接口编入了ACL,那么就比较麻烦。第一种情况——路由器将按照从上到下的顺序依次把该数据和ACL进行匹配,从上往下,逐条执行,当发现其中某条ACL匹配,则根据该ACL指定的操作对数据进行相应处理(允许或拒绝),并停止继续查询匹配;当查到ACL的最末尾,依然未找到匹配,则调用ACL最末尾的一条隐含语句deny any来将该数据包丢弃。 对于ACL,从工作原理上来看,可以分成两种类型: 1、入站ACL 2、出站ACL 上面的工作过程的解释是针对出站ACL的。它是在数据包进入路由器,并进行了路由选择找到了出接口后进行的匹配操作;而入站ACL是指当数据刚进入路由器接口时进行的匹配操作,减少了查表过程 并不能说入站表省略了路由过程就认为它较之出站表更好,依照实际情况而定: 如图所示,采用基本的ACL——针对源的访问控制 要求如下: 1、拒绝1.1.1.2访问3.1.1.2但允许访问5.1.1.2 2、拒绝3.1.1.2访问1.1.1.2但允许访问5.1.1.2 采用基本的ACL来对其进行控制 R1(config)#access-list 1 deny 1.1.1.2 0.0.0.255
R1(config)#access-list 1 permit any
R1(config)#int e0
R1(config-if)#access-group 1 in
R2(config)#access-list 1 deny 3.1.1.2 0.0.0.255
R2(config)#access-list 1 permit any
R2(config)#int e0
R2(config-if)#access-group 1 in |
从命令上来看,配置似乎可以满足条件。 假定从1.1.1.2有数据包要发往3.1.1.2,进入路由器接口E0后,这里采用的是入站表,则不需查找路由表,直接匹配ACL,发现有语句 access-list 1 deny 1.1.1.2 0.0.0.255拒绝该数据包,丢弃;假定从3.1.1.2有数据包要发往1.1.1.2,同上。 当1.1.1.2要和5.1.1.2通信,数据包同样会被拒绝掉 当3.1.1.2要和5.1.1.2通信,数据包也会被拒绝掉 该ACL只能针对源进行控制,所以无论目的是何处,只要满足源的匹配,则执行操作。 如何解决此问题? 1、把源放到离目标最近的地方,使用出站控制; 2、使ACL可以针对目的地址进行控制。 第一项很好理解,因为标准的ACL只能针对源进行控制,如果把它放在离源最近的地方,那么就会造成不必要的数据包丢失的情况,一般将标准ACL放在离目标最近的位置! 第二种办法,要针对目标地址进行控制。因为标准ACL只针对源,所以,这里不能采用标准ACL,而要采用扩展ACL.但是它也有它的劣势,对数据的查找项目多,虽然控制很精确,但是速度却相对慢些。 简单比较以下标准和扩展ACL 标准ACL仅仅只针对源进行控制 扩展ACL可以针对某种协议、源、目标、端口号来进行控制 从命令行就可看出 标准: Router(config)#access-list list-number 扩展: Router(config)#access-list list-number protocol source {source-mask destination destination-mask} [operator operand] [established] [log] Protocol—用来指定协议类型,如IP、TCP、UDP、ICMP以及IGRP等 Source and destination—源和目的,分别用来标示源地址及目的地址 Source-mask and destination-mask—源和目的的通配符掩码 Operator operand—It,gt,eq,neq(分别是小于、大于、等于、不等于)和一个端口号 Established—如果数据包使用一个已建连接(例如,具有ACK位组),就允许TCP信息通过 为了避免过多的查表,所以扩展ACL一般放置在离源最近的地方 看完上面的内容后,那么大家可以看以下几道关于CISCO访问控制列表的例题: 1、What are two reasons that a network administrator would use access lists? (Choose two.) A:to control vty access into a router B:to control broadcast traffic through a router C:to filter traffic as it passes through a router D:to filter traffic that originates from the router E:to replace passwords as a line of defense against security incursions Answers: A, C 注:该题主要考察CISCO考生对ACL作用的理解:网络管理员在网络中使用ACL的两个理由? A选项指出了CISCO 访问列表的一个用法:通过VTY线路来访问路由器的访问控制; ACL不能对穿越路由器的广播流量作出有效控制。 选项C也指明了ACL的另一个作用,那就是过滤穿越路由器的流量。这里要注意了,是“穿越”路由器的流量才能被ACL来作用,但是路由器本身产生的流量,比如路由更新报文等,ACL是不会对它起任何作用的:因为ACL不能过滤由路由器本身产生的流量,那么D也是错误的; 2、For security reasons, the network administrator needs to prevent pings into the corporate networks from hosts outside the internetwork. Which protocol should be blocked with access control lists? A: IP B: ICMP C: TCP D: UDP Answers: B 安全起见,网络管理员想要阻止来自Internet上的外部主机PING企业内部网络,哪种协议必须在访问列表中被阻塞掉?PING使用的是ICMP协议,在ACL中,我们可以自己来定义需要被允许或者拒绝某些协议的流量。该题选B 3、Refer to the exhibit. The access list has been configured on the S0/0 interface of router RTB in the outbound direction. Which two packets, if routed to the interface, will be denied? (Choose two.) access-list 101 deny tcp 192.168.15.32 0.0.0.15 any eq telnet access-list 101 permit ip any any 
访问控制列表 A:source ip address: 192.168.15.5; destination port: 21 B:source ip address:, 192.168.15.37 destination port: 21 C:source ip address:, 192.168.15.41 destination port: 21 D:source ip address:, 192.168.15.36 destination port: 23 E:source ip address: 192.168.15.46; destination port: 23 Correct Answers: B, E 如图,在RTB上配置了访问列表,控制从S0/0口出去向外部的由192.168.15.32/29网段发起的telnet流量,其它流量允许通过。telnet使用23号端口,由此可以排除掉ABC三个选项。该题选择D,E. |