1 、ACL匹配机制

首先,小编为大家介绍ACL匹配机制。上一期提到,ACL在匹配报文时遵循“一旦命中即停止匹配”的原则。其实,这句话就是对ACL匹配机制的一个高度的概括。当然,ACL匹配过程中,还存在很多细节。比如,ACL不存在系统会怎么处理?ACL存在但规则不存在系统会怎么处理?为了对整个ACL匹配过程展开详细的介绍,小编画了一张ACL匹配流程图,相信对大家理解ACL匹配机制能有所帮助。

从整个ACL匹配流程可以看出,报文与ACL规则匹配后,会产生两种匹配结果:匹配”和“不匹配”

l  匹配(命中规则):指存在ACL,且在ACL中查找到了符合匹配条件的规则。不论匹配的动作是“permit”还是“deny”,都称为“匹配”,而不是只是匹配上permit规则才算“匹配”。

l  不匹配(未命中规则):指不存在ACL,或ACL中无规则,再或者在ACL中遍历了所有规则都没有找到符合匹配条件的规则。切记以上三种情况,都叫做“不匹配”。

无论报文匹配ACL的结果是“不匹配”、“允许”还是“拒绝”,该报文最终是被允许通过还是拒绝通过,实际是由应用ACL的各个业务模块来决定的。不同的业务模块,对命中和未命中规则报文的处理方式也各不相同。例如,在Telnet模块中应用ACL,只要报文命中了permit规则,就允许通过;而在流策略中应用ACL,如果报文命中了permit规则,但流行为动作配置的是deny,该报文会被拒绝通过。

2 、ACL规则匹配顺序

从上面的ACL匹配报文流程图中,可以看到,只要报文未命中规则且仍剩余规则,系统会一直从剩余规则中选择下一条与报文进行匹配。

系统是根据什么样的顺序来选择规则进行报文匹配的呢?

回答这个问题之前,先来看个例子。假设我们先后执行了以下两条命令进行配置:

rule deny ip destination 1.1.0.0 0.0.255.255   //表示拒绝目的IP地址为1.1.0.0网段的报文通过

rule permit ip destination 1.1.1.0 0.0.0.255   //表示允许目的IP地址为1.1.1.0网段的报文通过,该网段地址范围小于1.1.0.0网段范围

这条permit规则与deny规则是相互矛盾的。对于目的IP=1.1.1.1的报文,如果系统先将deny规则与其匹配,则该报文会被禁止通过。相反,如果系统先将permit规则与其匹配,则该报文会得到允许通过。

因此,对于规则之间存在重复或矛盾的情形,报文的匹配结果与ACL规则匹配顺序是息息相关的。下面,小编就为大家介绍ACL定义的两种规则匹配顺序:配置顺序(config)和自动排序(auto)。

配置顺序,即系统按照ACL规则编号从小到大的顺序进行报文匹配,规则编号越小越容易被匹配。后插入的规则,如果你指定的规则编号更小,那么这条规则可能会被先匹配上。

ACL规则的生效前提,是要在业务模块中应用ACL。当ACL被业务模块引用时,你可以随时修改ACL规则,但规则修改后是否立即生效与具体的业务模块相关。关于ACL的应用,在后续连载的应用篇中,小编还将为大家详细介绍。

自动排序,是指系统使用“深度优先”的原则,将规则按照精确度从高到底进行排序,系统按照精确度从高到低的顺序进行报文匹配。规则中定义的匹配项限制越严格,规则的精确度就越高,即优先级越高,那么该规则的编号就越小,系统越先匹配。例如,有一条规则的目的IP地址匹配项是一台主机地址2.2.2.2/32,而另一条规则的目的IP地址匹配项是一个网段2.2.2.0/24,前一条规则指定的地址范围更小,所以其精确度更高,系统会优先将报文与前一条规则进行匹配。

在自动排序的ACL中配置规则,不允许自行指定规则编号。系统能自动识别出该规则在这条ACL中对应的优先级,并为其分配一个适当的规则编号。

例如,在auto模式的acl 3001中,存在以下两条规则。

如果在acl 3001中插入rule deny ip destination 1.1.1.1 0(目的IP地址是主机地址,优先级高于上图中的两条规则),系统将按照规则的优先级关系,重新为各规则分配编号。插入新规则后,新的排序如下。

可以看到,rule deny ip destination 1.1.1.1 0的优先级最高,排列最靠前。

3、ACL规则匹配项

最后,我们来说说ACL规则最核心的部分??规则匹配项。

在上一期中,小编在介绍ACL分类时,就已经提到各类ACL的规则定义描述。比如,基本ACL可以使用报文的源IP地址作为匹配选项;高级ACL则更高一筹,不仅可以使用源IP地址,还能使用目的IP地址、协议类型、端口号等等。

今天小编为大家讲解几个最常用的匹配选项??协议类型、目的地址和生效时间段。

PS:源地址的使用方法与目的地址同理,小编不再赘述。

协议类型

格式为:protocol-number | icmp | tcp | udp | gre | igmp | ip | ipinip | ospf

高级ACL支持过滤的报文类型很多,常用的协议类型包括: ICMP(协议号1)、TCP(协议号6)、UDP(协议号17)、GRE(协议号47)、IGMP(协议号2)、IP(指任何IP层协议)、IPinIP(协议号4)、OSPF(协议号89)。protocol-number取值可以是1~255。

什么情况下可以使用协议类型作为匹配项?

例如,交换机某个接口下的用户存在大量的攻击者,你希望能够禁止这个接口下的所有用户接入网络。这时,通过指定协议类型为IP来屏蔽这些用户的IP流量,就可以达到目的。配置如下:

rule deny ip //表示拒绝IP报文通过

再如,交换机上打开透明防火墙功能后,在缺省情况下,透明防火墙会在域间丢弃所有入域间的报文,包括业务报文和协议报文。如果你希望像OSPF这样的动态路由协议报文能正常通过防火墙,保证路由互通,这时,通过指定协议类型为OSPF即可解决问题。配置如下:

rule permit ospf  //表示允许OSPF报文通过

目的地址

格式为:destination { destination-address destination-wildcard | any }

destination-address:指定报文的目的地址。

destination-wildcard:指定通配符掩码。可以为0,相当于0.0.0.0,表示目的地址为主机地址。

any:表示对任意目的地址都匹配。

什么情况下可以使用目的地址作为匹配项?

例如,某公司有一台非常重要的服务器,其IP地址为1.1.1.1,现希望对该服务器的访问权限进行限制。这时,你可以通过指定目的地址为匹配选项来解决该问题。配置如下:

rule deny ip destination 1.1.1.1 0  //表示拒绝目的地址是1.1.1.1的报文通过

小编提醒:在将目的地址定义为ACL规则匹配项时,还需要同时指定通配符掩码,用来与目的地址字段共同确定一个地址范围。

通配符掩码的格式与IP地址相同,也是一个32比特位的数字字符串,用于指示目的IP地址中的哪些位将被检查。各比特位中,0表示“检查相应的位”,1表示“不检查相应的位”,

概括为一句话就是“检查0,忽略1”。 如图所示,以8比特为例,通配符的低8位如果为全0,就表示对目的IP地址的低8位全部进行检查;全1就表示全部忽略。有多少位为0,就表示检查多少位;有多少位为1,就表示忽略多少位。

访问控制列表-ACL匹配规则的更多相关文章

  1. 用访问控制列表(ACL)实现包过滤

      用访问控制列表(ACL)实现包过滤 一.ACL概述 1.ACL(Access Control List,访问控制列表)是用来实现数据包识别功能的 2.ACL可以应用于诸多方面 a>.b包过滤 ...

  2. 第10章 网络安全(5)_访问控制列表ACL

    6. 访问控制列表ACL 6.1 标准访问控制列表 (1)标准ACL ①标准ACL是基于IP数据包的源IP地址作为转发或是拒绝的条件.即,所有的条件都是基于源IP地址的. ②基本不允许或拒绝整个协议组 ...

  3. 基本的访问控制列表ACL配置

    摘要: 访问控制列表ACL (Access Control L ist)是由permit或 deny语句组成的一系列有顺序的规则集合,这些规则根据数据包的源地址.目的地址.源端口.目的端口等信息  来 ...

  4. HCNA Routing&Switching之访问控制列表ACL

    前文我们了解了DHCP服务相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15147870.html:今天我们来聊一聊访问控制列表ACL: ACL(ac ...

  5. 网络访问控制列表ACL(读懂这篇就基本够了,后面有配置案例)

    一.访问控制列表是什么? 访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接口上的数据包进行过滤,允许其通过或丢弃.访问控制列表被广泛地应用于路由器和三层交换机,借助于访问 ...

  6. 由于 web 服务器上此资源的访问控制列表(acl)配置或加密设置,您无权查看此目录或页面。

    场景:IIS中遇到无法预览的有关问题(HTTP 异常 401.3 - Unauthorized 由于 Web 服务器上此资源的访问控制列表(ACL)配置或加密设置 IIS中遇到无法预览的问题(HTTP ...

  7. CCNA网络工程师学习进程(8)访问控制列表ACL

    前面几节我们介绍了路由器的路由配置,接下来几节我们将介绍路由器的高级配置应用,包括ACL.NAT.DHCP.PPP.VPN和远程连接等的配置.     (1)ACL概述:   ACL(Access C ...

  8. 访问控制列表 ACL

    访问控制列表(Access Control List,ACL) 是路由器和交换机接口的指令列表,用来控制端口进出的数据包.其目的是为了对某种访问进行控制. 作用 ACL可以限制网络流量.提高网络性能. ...

  9. Linux 系统访问控制列表ACL

    常见的文件系统的一般权限(rwx).特殊权限(SUID,SGID,STICK).隐藏权限(chattr)其实有个共性——权限是针对某一类用户设置的.而如果希望对某个指定的用户进行单独的权限控制,那么就 ...

随机推荐

  1. 如何打war包和jar包

    1.jar包的导出 答:右键项目,export—jarfile  生成. 2.war包的导入 答:方法一:右键项目,export—WAR file 生成. 方法二:[ant文件]—[deploy-be ...

  2. Python学习之路:MINST实战第一版

    1.项目介绍: 搭建浅层神经网络完成MNIST数字图像的识别. 2.详细步骤: (1)将二维图像转成一维,MNIST图像大小为28*28,转成一维就是784. (2)定义好神经网络的相关参数: # M ...

  3. canvas反向裁剪技巧

    我们都知道在canvas 可以通过clip来实现剪裁功能,其步骤一般是先设置要裁剪的区域(路径),然后通过ctx.clip()的实现裁剪,裁剪之后,后续的绘制只能在裁剪的区域显示效果,比如如下一段代码 ...

  4. 如何布局您的PC站和移动站,并表达两者之间内容的对应关系

      如何布局您的PC站和移动站,并表达两者之间内容的对应关系 目前较流量的PC站与移动站配置方式有三种,百度站在搜索引擎角度将这三种分别称为跳转适配.代码适配和自适应,以下为这三种配置方式的名词解释及 ...

  5. 一种利用ADO连接池操作MySQL的解决方案(VC++)

    VC++连接MySQL数据库 常用的方式有三种:ADO.mysql++,mysql API ; 本文只讲述ADO的连接方式. 为什么要使用连接池? 对于简单的数据库应用,完全可以先创建一个常连接(此连 ...

  6. DNS分离解析IPV6与IPV4用户

    IPV6改造中经常会遇到,网站使用了CDN,但是CDN厂商还不支持IPV6的情况,而AAAA.A.CNAME记录互相冲突,想实现IPV6用户得到AAAA记录,IPV4用户得到CNAME记录的需求. 解 ...

  7. Vue02

    3.Vue对象提供的属性功能 过滤器,就是vue允许开发者自定义的文本格式化函数,可以使用在两个地方:输出内容和操作数据中. 定义过滤器的方式有两种. 1 使用Vue.filter()进行全局定义 V ...

  8. 工作小应用:EXCEL查找两列重复数据

    工作案例:excel存在A列.B列,需要找出B列没有A列的数据,具体做法如下(以office2007做案例): 1.点击 公式-定义名称 ,选中A列,填写名称“AAA”,选中B列,填写名称“BBB”: ...

  9. wc命令详解

    基础命令学习目录首页 原文链接:http://www.cnblogs.com/peida/archive/2012/12/18/2822758.html Linux系统中的wc(Word Count) ...

  10. Linux基础入门--01~03