访问控制列表acl

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ACL作用:

ACL(Access Control List,访问控制列表),是一系列运用到路由器接口的指令列表,路由根据ACL中指定的条件对经过路由器接口的数据包进行检查。针对IP协议在路由的每个端口可以创建两个ACL:一个用于过滤进入端口的数据,另外一个用于过滤流出端口的数据。ACL的作用大致分为下面这几点:

限制网络流量,提高网络性能。

提供数据流控制。

为网络访问提供基本的安全层。

决定转发或阻止哪些类型的数据流。

工作流程:

a)当路由器的进入方向的接口收到一个分组的时候,首先检查它是否是可路由的,如果不

可路由(比如并非是发往本路由的分组),则直接丢弃。

b)如果可路由,接下来判断进入方向的接口是否配置了ACL,如果没有配置进入方向的ACL,

则直接查询路由表,然后根据路由表中找到的端口准备往外转发;如果配置了进入方向的ACL则检查指令组是否允许该分组通过,不允许则丢弃,允许则查询路由表,选择外出接口准备往外转发,从这里可以看出入站的ACL检查是在查询路由表之前执行的。c)外出接口选择好之后,再检查外出接口上有没有配置ACL,如果配置了ACL则检查ACL

指令组是否允许,没有配置ACL则直接转发。

"ACL指令组"是逐条执行的,在逐条执行的过程中,只要发现有一条匹配,则使用那一条规定动作确定允许或拒绝(比如执行第一条的时候就匹配了,那么就使用第一条规定的动作允许或拒绝,后面的语句就不会被执行了),如果所有指令都不匹配,默认的动作是拒绝。

通配符掩码

路由器使用通配符掩码(Wildcard Masking)与源或目标地址一起来分辨匹配的地址范围,在访问控制列表中,将通配符掩码中的位设置成1表示忽略IP地址中对应的位,设置成0表示必须精确匹配IP地址中对应的位,如:

192.168.1.0 0.0.0.255

这个例子中,通配符掩码是0.0.0.255,前面24位是0,最后8位是1,也就是前面24位必须精确匹配,最后8位是什么都没关系。将这个通配符和前面的IP地址192.168.1.0结合起来意思就是,匹配从192.168.1.0到192.168.1.255的所有IP地址。

又如:

192.168.16.0 0.0.7.255

这个例子中,通配符掩码的第三个数是7,IP地址的第三位是16,对他们进行分解转化成二进制;

7 = 00000 111

16 = 00010 000

前面说过,通配符掩码中0的部分必须精确匹配,1的部分什么都可以,也就是说16的二进制表示法前面的5位(00010)必须精确匹配,最后3位的取值范围可以是(000-111),那么就是;

00010 000-00010 111,转化成十进制就是16-23。

所以这条规则匹配的IP地址范围是"192.168.16.0-192.168.23.255"。

192.168.1.0 0.0.0.254

匹配192.168.1.0中所有偶数IP地址。

192.168.1.1 0.0.0.254

匹配192.168.1.0中所有奇数IP地址。

上面这些例子说明了怎么通过规则中的通配符掩码确定匹配的IP地址范围,如果一个数据包中包含了源IP地址"192.168.0.2"到达路由器,假设路由器上的访问控制列表语句中包含"192.168.0.0 0.0.0.255",路由器按照下面的步骤匹配这个IP地址:

1)使用访问控制列表中的地址对"192.168.0.0 0.0.0.255"执行逻辑或操作(192.168.0.0和0.0.0.255执行逻辑或运算),得到结果192.168.0.255。

2)用地址对中的通配符掩码(0.0.0.255)和数据包头中的IP(192.168.0.2)执行逻辑或操作,结果为192.168.0.255。

3)将得到的两个结果相减,如果结果是0则匹配,如果结果非0,则说明不匹配。对接下来的ACL条目都重复以上三步相同的操作。

在IP访问控制列表地址掩码对中,有两个关键词可以用来省略一些输出:

"any":它可以用来代替地址掩码对"0.0.0.0 255.255.255.255",该地址掩码对匹配任何IP地址。

"host":它可以用来代替通配符掩码"0.0.0.0",该通配符掩码只能匹配一个IP地址。比如"host 192.168.1.1"等同于地址对"192.168.1.1 0.0.0.0"。在标准的访问控制列表中,如果仅匹配一个IP地址,可以省略关键字host,也就是说在标准访问控制列表条目中,没有通配符掩码,说明掩码是"0.0.0.0";而在扩展的访问控制列表中不能省略host关键字。

标准ACL

两中编写方法:

1.Router(config)#access-list {ACL的编号} {deny|permint} {source [source-wildcard]|any}

其中大括号里面的类容表示必选,中括号里面的类容表示可选,

{ACL的编号}:

标准ACL的编号范围是1-99之间的整数,

扩展ACL的编号是100-199之间的整数。

{source [source-wildcard]|any} :

指定了一个IP地址范围,使用地址对的形式,比如, "192.168.1.0 0.0.0.255","host 192.168.1.1"或者"any"。

2.Router(config)#ip access-list standard {ACL的编号|ACL名称}

Router(config-std-nacl)#[ Sequence Number] {deny|permint} {source [source-wildcard]|any}

在接口应用:

Router(config-if)#ip access-group { ACL的编号|ACL名称} {in|out}

示例试验:

相关文档
最新文档