ACL中规定了两种操作,所有的应用都是围绕这两种操作来完成的:允许、拒绝
来源:chinaitlab 2008年1月5日
关键字: 网络管理员 职涯
假定从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一般放置在离源最近的地方