




已阅读5页,还剩60页未读, 继续免费阅读
(电路与系统专业论文)acl技术研究及其新特性实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
杭州电子科技大学硕士学位论文 i摘 要 本文主要研究用于以太网交换机和路由器中的访问控制技术。在详细分析访问控制列表实现方案的基础上,针对其弊端提出了一种可使其动态修改的设计方法,从而不仅增强了其功能特性,优化了 mqc 动态修改的性能,提高了其配置修改的响应速度。 文章首先介绍了一种支持各种网络通信设备的通用路由平台,给出了它的组成结构以及各个开发组件所提供的功能,这是访问控制列表软件工作的硬件环境。然后分析了访问控制列表在网络操作系统中的角色和功能,分析了支持它的底层功能模块以及引用它的一些业务模块,这些和它交互的模块决定了它的功能特性和应用。本文还介绍了访问控制列表模块在网络通信中的各种应用,包括 user- interface、http、qos 包过滤、防火墙、ipsec、snmp、路由策略和策略路由等。 本文的重点是访问控制列表软件的一种实现方法。从数据结构分析、全局变量和处理流程分析,详细介绍了访问控制列表软件的工作原理和机制,包括其从配置命令行到被业务模块应用中可能涉及到的所有重要处理。还特别分析了它所支持的分片处理和加速功能特性。 通过对访问控制列表实现细节的分析发现,它的配置和引用存在一些问题。对于已经被使用的 acl,就被固定好了,不能删除,不能修改,除非先解除它与应用模块的绑定关系。在网络环境越来越复杂多变的今天,移动通信网广泛应用,上网者的流动性很大。可能随时需要更改网络安全策略的配置,这对网络管理人员来说就非常不方便。本文通过分析一个引用 acl的模块 mqc(模块化 qos 命令)的配置下发过程,提出了一种 acl可以被动态地修改的方法。该方法通过 mqc 在 acl 注册动态修改通知链,标记 acl 下发驱动的节点信息,可以在不必解除 acl 与外部模块的绑定关系的情况下就能实现对 acl 配置的修改。组网测试表明,这种方法支持 acl的动态修改,同时提高了 mqc 动态修改的效率。目前已经应用在某公司的高端以太网交换路由产品当中。 关键词:访问控制列表,网络安全,服务质量,通用路由平台,网络通信设备 杭州电子科技大学硕士学位论文 iiabstract this paper studied the access control technology in ethernet switches and routers. after a detailed analizing of its implementation program and its shortcomings, it proposed a design method of dynamic modification which results in not only enhanced its features but also optimized the performance of dynamic modification of the mqc. configuration changes to mqc became shorten on its response time. this paper firstly introduced a kind of generic routing platform. it can support verious of network communication equipments. its composition and function was analized. it is the hardware environment for the access control lists software to work. it then analyzed the roles and functions of access control lists in the network operating system. it analized bottom function modules which it need, as well as some business modules that it reference by. these interactions through modules determine its functional properties and applications. this paper also introduced a variety of applications of access control list module in network communication system, including the user- interface, http, qos packet filter, firewall, ipsec, snmp, routing strategy and policy routing etc. it described configuration and use style of acl, as well as the functions. this paper emphatically described an implementation of access control list software. it described the data structure, global variables, process flow, showed the works and mechanisms of access control list software, including its important processing may be involved from the command line configuration to be applied in bussiness module. in particular, its processing to support fragment and acceleration features was analized as well. through the analyzing of the access control list s implementation in detail, it had been found that there are some problems to its configuration and reference. the acl which has been used can not be deleted or modified unless lifting its binding to application modules first. today the network environment has become increasingly complex, the mobile communication network is widely used, and internet users are highly mobile. the network security policy configuration may be changed at any time. this is very inconvenient for network managers. through analyzing the configuration process of mqc (modular qos command) module which reference to the acl module, this paper presented an approach by which acl can be dynamicly modified. this method registers a notification chain for mqc dynamically changes in the acl module, and m arkes drivers node information for mqc issue. it can achieve the right acl configuration changes without lifting the acl binding relationship to the external modules. the test result showed that this approach supports the acl dynamic changes, while increased the efficiency of mqc dynamically changes. it 杭州电子科技大学硕士学位论文 iiihas been used among upscale ethnet switch routing products in a company now. keywords:access control list, network security, quality of service, generic routing platform, network communications equipment 杭州电子科技大学 学位论文原创性声明和使用授权说明 原创性声明 本人郑重声明: 所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品或成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名: 日期: 年 月 日 学位论文使用授权说明 本人完全了解杭州电子科技大学关于保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属杭州电子科技大学。本人保证毕业离校后,发表论文或使用论文工作成果时署名单位仍然为杭州电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。 (保密论文在解密后遵守此规定) 论文作者签名: 日期: 年 月 日 指导教师签名: 日期: 年 月 日 杭州电子科技大学硕士学位论文 11 绪论 1.1 网络安全与访问控制列表 当今世界的信息化发展到前所未有的程度,这和计算机网络技术的发展是分不开的。因特网把全世界的计算机用户、网络终端用户连结在一起,织成一个庞大的通信网络。随着 3g技术、嵌入式技术的快速发展,大到列车,小到手表,所有的电子设备都有能力作为通信终端接入这个庞大的因特网,从而向多功能和智能化跨出巨大一步。随着网络规模扩大,网络安全越来越受到人们重视。在所有的网络使用者当中,有一类用户尤其需要安全地使用网络,那就是电子商务用户。他们以网络为平台进行网上交易,如果这个过程中遭遇到黑客攻击,他们将损失惨重。因此,在这个电子商务同样迅速增长的时代,网络的安全控制显得尤为重要。 如果把网络中的设备分为两类,那么可以这样分:一类是终端,可以存有网络资源,也可以向网络索取资源。另一类是通信媒介和辅助设备,主要是转发路由设备,他们负责帮助用户实现网络通信的功能,是网络数据交换的必经之路,在网络通信中起着重要作用。为了实现网络通信安全可靠,可以在这些通信设备上采取安全防控措施。 在路由交换设备当中, 有一种基于报文分类的安全控制策略, 就是访问控制类表1(access control list,简称 acl) 。它通过解析报头,可以把经过设备的报文的各种信息提取出来,然后就我们所关心的信息进行检查,与事先规定好的控制策略相比较。如果符合我们的要求就放行或执行我们所规定的一些处理,否则就丢弃报文,从而可以阻止报文通过。这样一方面我们可以阻止外来用户对内部资源的非法访问, 另一方面也可以限制内部用户使用外部网络。 此外,acl在网络通信当中还可以当做一种通用的流分类方法使用。它被众多其它网络通信功能,如 qos、ip 限速、队列技术、策略路由、防火墙等引用后,可以大大加强那些模块的功能,显著提高网络性能2。acl是一种使用广泛的数据流分类方法。 作为网络通信中的一个基础和重要的课题,acl的性能表现直接影响通信设备的安全可靠性和转发效率。因此,对它的深入研究非常必要。 1.2 分布式网络设备 1.2.1 分布式网络设备的硬件结构 网络设备可以分为集中式和分布式两种模型。集中式设备只有一块单板。所有的控制逻辑和数据转发业务都由其自己完成,其接口数量有限,网络用户的数量将被限制,只能用在小型网络中。分布式设备有多个单板,这些单板可以分为两种类型:控制板和业务板。控制板又称主板,主要做一些控制逻辑的处理;业务板又称接口板,主要用来在主板的控制下转发数据3。这样就把控制通路和数据通路分离开来,同时可以增加接口板的数量以增强数据转发能力。本文所设计的访问控制列表软件是在分布式设备的结构下实现的,提供板间通信和热插拔等功能。同时通过分分布式宏的裁剪和定制,也可以用于集中式设备中。 杭州电子科技大学硕士学位论文 2现在的分布式模型是一个典型的主备模型,主板从事一些业务处理4,备板是主板的一个备份。当主控板突然发生故障(例如死机) ,备板在一定时间内没有收到主板的消息,就自动变为主板,接替主板进行工作。或者正在运行的设备,如果给它升级,然后主备倒换,再给原来的主控板升级,用户的业务可以尽可能地不间断。下图中的两个主板一个是主用主控板,一个是备用主控板。 主板1主板2接口板1接口板2 图 1- 1 网络设备的分布式模型 1.2.2 分布式系统常用板间通信方法 (1) ha ha(high available)是高可用性的意思,通过主板和备用板间的数据传输与备份,它可以保证有异常发生的时候网络业务不受影响。它已经单独作为一个模块管理来完成多数主板和备用板间的通信任务。 正常情况下,主板先运行起来,当有备用板插入的时候,主控板就把自己的一些信息告诉备板,因为信息比较多,时间比较长,所以被形象地称为批备(批量备份的意思) 。 当主板和备用板都在位的情况下,如果用户此时操作设备(例如命令行) ,或者应用模板的一些存储信息要变(状态机旋转) ,主板需要将信息及时地告诉备板,以方便备用板记忆。因为信息较少,实时性好,所以称为实备(实时备份的意思) 。 当主板和备用板都在位,有些信息比较多,且实时性要求不高时,可以使用定时发送一段信息的方式传输,所以称为定时备份。 (例如大量表项同步,使用批量备份会使 cpu 很忙)主备倒换的时候,备用板要将自己变成主板,就要激活一些业务和状态机,同时需要和接口板通信,依靠数据平滑。 (可能这时备用板有主控板所需要的所有信息,但是不能确定都是正确的,所以需要再确认一下) (2) ipc 有时候 ha 通信并不能满足应用模块的需要,或者不能及时发送(大量 ha 信息存在的时候,只能按照一定次序延迟发送) ,或者支持的大小类型不能满足要求,所以应用模块自己可以直接使用 ipc 进行发送。 自己发送 ipc 要考虑的东西很多,例如 ipc 基本压包,解包,失败重传,发送速率(太多会占 cpu) 。ipc 是 vos(后文中 comare 提供的一种虚拟操作系统)提供的一种不同设备杭州电子科技大学硕士学位论文 3间或不同单板间或不同进程间的一种通信机制,用以支持分布式系统。 在具体应用中,ipc 为不同板间、主控板与接口板间、接口板与接口板间、unit 的主控板和子卡之间提供了一种可靠传输的机制,而具体的通讯手段实现由底层驱动提供。为了保证 ipc 的可移植性,ipc 模块对上层应用的接口为消息方式,也可以采用回调函数方式,而与底层函数的接口则为函数调用。 高层应用ipc高层应用ipc底层驱动 图 1- 2 ipc 板间通信示意图 (3) rpc ipc 只能保证消息被对端的 ipc 接收,并不能保证对端的实体处理了消息,发送方并不知道对端的处理结果。在某些应用中,需要知道接收方的处理情况,例如查询接口板某个接口的网管状态信息等。这些信息都需要知道接收方的实体是否处理了消息,并且在一定时间内返回处理结果。发送方请求和接收方对请求的处理回应是一个完整的过程,这一点与远程过程调用(rpc)类似,因此提出了 rpc 的概念。rpc 是建立在 ipc 之上的,是 ipc 的一个具体应用, 系统初始化时就建立好了固定的 rpc 通道, 并且 rpc 采用的通信方式为异步 ipc,并采用回调函数的处理方式处理上层应用的请求。 用户发送任务同步取发送ipcipc同步取接收请求处理函数(回调函数)同异步取模块请求消息应答消息 图 1- 3 rpc 板间通信示意图 (4) cfa 配置代理模块为应用模块提供主控板到接口板配置下发的通道。主控板应用模块配置处理模块需要下发到接口板的配置消息提交给配置代理下发到接口板,接口板配置代理将配置杭州电子科技大学硕士学位论文 4消息下发给应用模块配置消息处理模块。接口板配置应答消息由配置代理返回给主控板应用模块。 cmpapp cfgcfaapp cfgcfa主控板接口板配置消息应答消息 图 1- 4 cfa 板间通信示意图 图中的 cmp 是配置管理平面,它能屏蔽各个应用程序给用户提供统一的配置管理方法,解析用户的配置消息下发给各应用程序的配置管理模块(就是图中的 app cfg模块) 。 访问控制列表软件中的大部分控制板和业务板间的通信功能是通过ipc和cfa方式完成的。由于 cfa 是单独管理的面向配置命令的配置数据同步方法,应用模块开发者使用比较省心方便,但某些通信只能用 ipc 来完成,比如删除所有 acl时的处理等,在后面将会详细讨论。 1.3 路由交换机操作系统 本文所介绍的所有功能和新特性都是在 comware 软件平台中实现的,它是一个可支持众多 ip 路由交换产品的可移植性强大的通用路由平台。其组成结构如下图所示。 应用程序vxworkslinuxwindowsvos硬件 图 1- 5 comware 软件平台结构 comware 在实际的操作系统之上放了一个 vos 层,完成对实际操作系统的封装,并向上提供应用接口。这样做的优点是: 杭州电子科技大学硕士学位论文 5(1) 摆脱了对特定操作系统的依赖,易于跨操作系统移植。 (2) 利用 vos 层的封装,对系统资源可以提供更有效的管理并提供更多、更丰富的调试定位手段。 本文实现的访问控制列表软件就在 comware 软件平台结构处于 vos 之上的应用程序层中,是其所支持的众多应用程序之一。 1.3.1 comware 系统启动流程 comware系统启动一般顺序为:先基础模块,后个别模块;先底层模块,后上层模块;先被依赖模块,后依赖模块。启动一般可以分为两个阶段: 第一阶段:各模块完成自己的初始化,以及驱动接口的加载; 第二阶段:各模块以预先排好的顺序,完成相关系统资源(如任务、队列、定时器等)的创建,以及各个模块相关部分的初始化。 系统启动流程示意图如下: startendstartendstartend硬件自检bootroom引导软件启动bsp启动comware启动加载启动段第一阶段启动第二阶段启动激活系统 图 1- 6 系统启动流程 1.3.2 comware 平台的组件结构 支撑:对上层各个模块提供操作系统所具备的各种功能。包括 vos(内存管理、任务调度、消息队列、事件、定时器、ipc 与 rpc、中断、断言等) ;基本的函数库(字符串处理、字节序转换等) ; 基本的数据结构 (单链表/双链表/avl树/hash表等) ; 数据报文描述块mbuf;虚拟文件系统 vfs;waitlist;接口管理;设备管理;配置管理;信息中心等。 lan:local area network 局域网。主要标准来自 ieee,主要包括:vlan 管理、garp/gvrp/gmrp/hvrp、stp/rstp/mstp、link- aggreation/lacp、rpr/rrpp、qos(流杭州电子科技大学硕士学位论文 6量限速和整形,队列管理,拥塞避免)等功能。 另外还有 route、mpls、wan 等组件也各司其职,共同完成一个庞大复杂的增强型网络操作系统 comware。 comware未来的发展方向为:结构更清晰;模块间耦合更低;完全组件化设计;模块可以动态加载;更加可靠;系统拥有自愈能力,及时发现异常,并能自动恢复;可抢占的实时系统,响应更及时;更高的资源利用率;更高的处理性能。 1.3.3 平台与产品的关系 平台是用来收集用户配置,将配置信息解析保存并下发给驱动实现报文转发功能的。所说的产品就是针对某款具体的芯片驱动,将平台的各种功能经过转换后变为简单的硬件中寄存器的操作5。具体联系体现在以下几点: (1) 产品给平台提供能力集规格。比如一些数据参数的上下限等。产品硬件不支持的功能参数平台不可下发。 (2) 产品给平台提供下发驱动的数据结构,平台怎样将控制数据和报文组织起来传给驱动是由硬件特性决定的。 (3) 各个产品的平台特性不相同,从通用平台上经过裁剪和定制得到每款产品自己的配置平台。裁剪方式如下: #ifdef (/* 分布式产品 */) /* 分布式产品支持的一些功能 */ #endif #ifdef (/* sr8800 */) /* sr8800 路由交换机具有的一些特性 */ #endif 1.3.4 组件化编程 在当前的 comware 系统中,引入了以 com(component object model,组件对象模型)技术为基础的面向组件的编程方法。com 是一种以组件为发布单元的对象模型,使得各软件组件可以通过统一的方式进行交互。com 接口绝不会被直接访问,接口总是通过一个指针被访问的。一个 com 的接口指针就是一个指向接口虚函数表的间接指针。一个接口可以拥有自己隐藏的、私有的数据,这些数据只能通过对接口函数的调用才可以完成。如下图模型: 杭州电子科技大学硕士学位论文 7接口指针指针(pvtable)指针函数1指针函数2指针函数3实现对象vtable 图 1- 7 comware 组件化编程模型 1.4 本文的研究重点 本文主要研究用于以太网交换机和路由器中的访问控制技术。包括其概念原理、类型特点、用户接口、实现方案以及它在网络中的各种应用等,并在详细分析其实现方案的基础上,针对其弊端提出了一种可使其动态修改的设计方法,从而不仅增强了其功能特性,使 acl配置更加灵活,而且还优化了 mqc 动态修改的性能,缩短了其配置修改的响应速度。 在内容上论文组织如下: 第 2 章: 介绍了访问控制列表的构成和概念、配置特点和工作机制,分别介绍了几种常见类型的acl。较全面地介绍了访问控制列表在网络中的应用情况。 第 3 章: 详细分析了访问控制列表软件在路由平台中的一种实现方法,并在仔细分析其特点的基础上找出不足之处。 第 4 章: 提出一种支持 acl动态修改功能的实现方法,从整体构思、模块划分、处理过程到数据结构和驱动接口的设计都给出了详细的阐述。并对提出的方法进行了组网测试验证,结果证明了方法的有效性。 第 5 章: 本章对全文内容进行了总括,归纳了本文的主要贡献以及创新点,并指出进一步可以进行研究的内容,作为下个阶段研究的重点。 杭州电子科技大学硕士学位论文 82 访问控制列表的原理及应用 2.1 访问控制列表的构成 访问控制列表是由一系列的访问控制规则所组成的,有时还会跟时间段结合起来。即:acl = rule + time- range 。其中的 rule 就是具体的访问控制列表子规则,其中的 time- range就是时间段。访问控制列表的形象如下表所示: 图 2- 1 访问控制列表结构 一个访问控制列表的简单配置过程有以下几个步骤6: (1) 明确功能需求。明确控制对象以及这些控制对象的控制策略是放行、丢弃还是其它处理。 (2) 分析待控制数据的转发路径,确定适合的位置下发访问表。 (3) 编写访问表,并将之下发到相应的接口。 (4) 测试验证访问表。 访问表通常选择数据包的包头信息作为流分类选项。二层分类选项包括:以太网帧承载的数据类型、源/目的 mac 地址、以太网帧封装格式、vlan id、入/出端口等7。三、四层流分类选项包括:协议类型、源/目的 ip 地址、源/目的端口号、dscp 等。其过滤元素位置如下图所示: | 源/目的 ip 地址 | 源/目的端口号 | 应用程序 | 数据 | ip header tcp header application level header data l3/l4 过滤 应用网关 图 2- 2 tcp/ip 包过滤元素示意图 2.2 软件 acl 与硬件 acl 用 acl来实现报文流的分类过滤有硬件 acl与软件 acl之分。 访问控制列表 策略 1 : acl1 策略 2 : acl2 策略 3 : acl3 策略 n : acln 杭州电子科技大学硕士学位论文 92.2.1 硬件 acl 硬件 acl就是指报文主要靠转发芯片来实现分类过滤功能。一般是下发在二层口。传统交换机的接口就是二层口,二层口一般是指工作在 iso 模型第二层(链路层)的接口。在这一层,报文从接口进入后直接转入 asic,而不是上送 cpu。cpu 只做控制功能,不直接参与报文的具体过滤处理,具体的报文过滤处理由硬件来完成。在交换机中,平台配置好 acl相关信息,然后通过驱动将这些数据下发的到 asic,生成一系列动作表项,然后由这些表项来匹配报文。用硬件来过滤报文,处理速度快,实时性好。但如果经过这些表项的匹配处理,还是不能确定此报文的转发去向,那么 asic 就会将这些报文上送 cpu,交给协议栈软件处理。 在设备中存在的重要的表项比如 mac 表(二层转发引擎)和路由表(三层转发引擎) 。但在这之前,报文还必须经过访问控制检查后才能进入后续处理。故流分类表项在芯片中是处理报文的第一关卡。在硬件芯片中报文的过滤过程一般分为如下四级: ft1ft2ft3ft4acl1acl2acl3acl4action1tc1action2tc2. . . . 图 2- 3 流分类在芯片中的处理机制 (1) 流模板(flowtemplate) 。前面提到,acl要想下发到芯片中实现功能,需要流模板的支持,否则芯片无法提取需要匹配的字段。流模板首先将报文中需要匹配的字段通过掩码提取出来(比如提取报文的服务类型字段) ,然后将此信息送往后面与它关联的 acl表项。 (2) acl表项。平台配置好 acl信息下发驱动成功后,在芯片中就会生成与平台配置的acl 信息一致的一系列表项。每个表项都匹配一个特定信息的报文,比如某个目的 ip 地址。报文按照顺序匹配 acl规则,一旦命中,就被送往后面与之关联的动作。 (3) 动作类型 (action) 。 就是 acl规则中的 “permit” 、“deny” 动作。 如果关联到了 “deny” ,报文就直接被丢弃,不再进入后续处理流程。如果没有丢弃,就重定向到后面的 tc 处理。 (4) 流量调节(traffic condition) 。到这里可以说已经完成了流分类过程,接下来就是流行为了。既然已经匹配好了,接下来就会被应用各种流量的控制动作,比如进入某令牌桶,按照一定速率进行转发。 2.2.2 软件 acl 传统路由器的接口是三层接口。这种接口收到的报文会上送 cpu 处理。在三层口下发的acl就称为软件 acl,它无需下发到芯片当中,由 cpu 对收到的报文用对应的 acl规则进杭州电子科技大学硕士学位论文 10行匹配,返回匹配结果。软件 acl占用 cpu 和内存资源较多,耗时也较长。如果成功匹配,就称为命中。报文上送 cpu 后处理流程大致如下: 报文解析报文是否配置acl基本acl命中流程高级acl命中流程返回处理结果转往其它处理是否 图 2- 4 报文命中流程 其中 acl命中报文的思想可以分为以下几个步骤: (1) 判断该 acl组下是否有规则,没有则进入 9,有则进入 2。 (2) 判断该规则是否使能,未使能则进入 3,使能则进入 4。 (3) 查找下一条规则,存在下一条规则则进入 2,不存在则进入 9。 (4) 判断该规则的动作类型是 acl_permit 还是 acl_deny, 是 acl_permit则进入5,是 acl_deny则进入 7。 (5) 对需要匹配的项目如源 ip 地址等信息分别进行匹配,匹配成功为 0,不成功为 1,对匹配的结果进行累加,进入 6。 (6) 若累加的结果为 0,返回 acl_permit,以及是否进行日志和计数,否则进入 3。 (7) 对需要匹配的项目分别进行匹配,匹配成功为 0,不成功为 1,对匹配的结果进行累加,进入 8。 (8) 若累加的结果为 0,返回 acl_deny,以及是否进行日志和计数,否则进入 3。 (10) 返回 acl_notfound。 软件 acl命中算法的关键是分类的精度和命中的效率。 分类精度直接决定流分类的功能是否强大,种类是否丰富。命中效率则会影响设备的发包率。 2.3 配置顺序和步长 2.3.1 匹配顺序 前文提到,acl是由一系列规则组成的,每个规则都有自己的匹配标准和执行动作。这些标准和执行动作可能不一样,报文不可能同时命中所有规则,那就存在一个匹配顺序的问题。acl 的匹配顺序有两种类型:自动顺序和配置顺序。自动顺序又叫深度优先规则8,它优先匹配指定目标范围小的规则; 配置顺序就是按照用户配置 acl的时间先后顺序来匹配报杭州电子科技大学硕士学位论文 11文。下面是高级 acl的深度优先匹配顺序9: (1) 如果规则的匹配目标中带有 vpn 实例,则优先匹配此 acl规则; (2) 如果规则中包含目标的协议类型,指定了 ip 协议承载的协议类型的规则优先匹配; (3) 检查规则目标的源/目的 ip 地址范围,ip 地址范围小的规则优先匹配; (4) 检查规则目标的端口号,端口号范围小的规则优先匹配; (5) 上述范围都一样的就按照配置顺序匹配; 报文按照一定的顺序匹配报文,如果命中了某一条规则就停止匹配,按照命中的这条规则指定的动作类型执行动作。 2.3.2 步长 每条 acl规则都有编号,这些编号可能不是 1、2、3 这样挨着编的。可能隔着一定的长度,如 1、3、5、7 这样每隔 2 编一个 acl号码,那这里的 2 就是此 acl规则组的步长。系统一般会在初始化是会指定一个默认的规则步长。如果用户不配置步长,就按照这个默认步长来为 acl编号。 给 acl隔一定的步长编号可以方便在任意位置插入规则。比如 acl编号为 1、3、5、7,想要在第一条和第二条规则之间插入一条规则, 就可以配置新规则的编号为 2。 如果当前 acl的步长为 2,acl 规则为 1、3、5、7,当用户配置规则步长改变为 4 时,各条 acl 的编号就会按照新配置的规则步长重新编号为 1、5、9、13。 如果当前 acl 规则编号为 1、5、9、13,并且配置的规则步长为 4。这时配置一条新的规则,指定它的编号为 15,则全部编号变为 1、5、9、13、15。如果删除第三条 acl,则编号变为 1、5、13、15。这时再配置一条新的 acl 规则,不指定编号,系统就会从最小编号开始,每隔当前步长检查编号是否存在,一旦找到空闲编号就以此编号加入新的 acl规则,即编号变为 1、5、9、13、15。再配置一条不指定编号的规则后编号变为 1、5、9、13、15、17。 2.4 各种类型的 acl 2.4.1 基本 acl 基本 acl又叫标准 acl,是最早出现的流分类过滤方法,它只匹配报文的源ip 地址信息, 消耗资源少,功能有限。它根据源 ip 地址来决定报文的过滤动作。 例如服务器 b 的地址是 ,连接在 routera 的 ge1/0 端口上。要实现除了源 ip地址为 /24 的主机外,其它主机都可以访问服务器 b。就可以配置如下基本访问控制列表以实现功能: # 创建标准 acl2009 routera acl number 2009 # 配置除了源地址为 /24 的主机外都不可以访问服务器 a routera- acl- basic- 2009 rule 0 deny source 24 杭州电子科技大学硕士学位论文 12routera- acl- basic- 2009 rule 5 permit any # 配置流分类 c1 匹配 acl2009 routera- classifier- c1if- math acl 20009 # 配置流行为 b1 放行匹配的流 routera- behavior- b1filter permit # 创建策略关联规则和动作 routeraqos policy p1 routera- qos- policy- p1classifier c1 behavior b1 # 将此策略应用到 routera 的 ge1/0 口实现此访问控制功能 routera- gigbitehernet- 1/0qos apply policy p1 outbound 以上是使用 qos 方式配置基本 acl,直接下发在物理端口来实现访问控制的功能的。 2.4.2 高级 acl 基本的 acl只能控制源 ip 地址,不能控制到端口。如果要基于某种协议进行访问控制,基本的 acl 也不太方便10。要控制到第四层的端口,就需要使用到扩展 ip 访问控制列表,又称作高级访问表。 高级访问表根据报文的源 ip 地址、目的 ip 地址、ip 承载的协议类型、协议的特性等第三、四层信息确定匹配规则。其匹配顺序为:先匹配带 vpn 实例的规则,然后再按照深度优先规则匹配三层信息,如果都相同则匹配四层的端口号等信息,最后按照配置顺序进行匹配11。 比如使用高级 acl 允许 0/24 网段的主机发送端口号为 23 的 tcp 报文,可做如下配置: # 创建高级 acl3009 routera acl number 3009 # 允许地址为 0/24 网段、端口号为 23 的报文通过 routera- acl- adv- 3009 rule 0 permit tcp source 24 source- port eq 23 # 将此 acl应用到防火墙上面去。 routera- gigbitehernet- 1/0 packet- filter acl 3009 outbound 这是采用包过滤方式应用高级 acl实现访问控制的。 2.4.3 二层 acl 上面基本和高级的 acl检测范围覆盖了报文的三四层信息,对于二层信息却检测不到。于是出现了可以过滤 mac 地址等二层信息的 acl。二层 acl根据报文的源 mac 地址、目的 mac 地址、802.1p 优先级、二层协议类型等二层信息定制匹配规则12。可以将流量控制精确到主机。匹配顺序也符合深度优先匹配,先按照源 mac 地址深度优先匹配,然后按照目的 mac 地址深度优先匹配,最后按照配置顺序匹配。 杭州电子科技大学硕士学位论文 13例如配置二层 acl,允许来自 mac 地址为 1.1.1 .1.f.f 的主机的报文可以通过,可以做如下配置: # 创建二层 acl4009 routera acl number 4009 # 允许源 mac 地址为 .f.f的报文通过 routera- acl- 4009 rule 0 permit .f.f # 将此 acl应用到防火墙上面去。 routera- gigbitehernet- 1/0 packet- filter acl 4009 outbound 可以使用 display命令来查看当前系统运行的 acl资源,还可以使用 undo 命令删除配置的 acl。 # 显示端口 ge1/0 下运行的 acl资源 routera- gigbitehernet- 1/0display acl all basic acl 2009 rule acls step is 5 rule 0 deny source 24 # 删除端口 ge1/0 下的所有 acl routera- gigbitehernet- 1/0undo acl all 2.4.4 基于时间的 acl 时间段(time- range)用来描述一个特定的时间范围。用户或许会有这样的需求:让某些acl规则只在某个或某些特定时间内才生效,在其它时间段不利用他们进行报文过滤,从而实现按时间段的过滤功能。这时我们可以先配置一个或多个时间段,然后在某些规则中通过时间段名称引用这些时间段,那么这条规则就会只在该指定的时间段内生效,从而实现基于时间段的报文过滤13。 如果某规则中引用的这个时间段没有被配置,系统就会给出提示信息,同时也允许这条规则创建成功,但是这条规则不能够马上生效。 对时间段的配置有如下两种情况:周期时间和绝对时间14。 配置周期时间段:采用每周周几的形式;例如如果用户通过命令 time- range start- time to end- time days 定义了一个周期时间段15,则只有系统时钟在该周期时间段内,该时间段才进入激活状态。 配置绝对时间段:采用从起始时间到结束时间的形式16。例如如果用户通过命令time- range from time1 date1 to time2 date2|to time2 date2定义了一个绝对时间段,则只有系统时钟在该绝对时间段内,该时间段才进入激活状态。 2.4.5 命名的 acl 在人们对 acl 频繁应用过程中发现基于编号的 acl 的配置和管理有很多不方便之处,杭州电子科技大学硕士学位论文 14于是产生了命名的 acl。命名的 ip acl提供的主要优点是17: (1) 解决 acl号码不足的问题。 (2) 可以自由地删除 acl中的一条语句,而不必删除整个 acl。 (3) 可以为每个 acl取一个有意义的名字,便于日后的管理与维护18。 其主要不足之处在于:无法实现在任意位置加入新的 acl条目。 2.4.6 自反的 acl 在私网用户与公网进行通信过程中渐渐产生了这样一种需求:私网用户只想跟某些外网主机通信,而这些主机在事先是不确定的。其它非法主机不允许访问私网。如果在私网入口应用访问表过滤外网数据,因为开始不确定过滤哪些数据,所以无法实施策略。 于是产生一种这样的访问控制策略:只有被私网主动访问过的主机才允许访问私网,没有被访问过的外部网络主机不能通过私网的网关。这样就可以实现一种单向的访问控制了。这样就需要在私网入口临时生成访问表。这些访问表允许最近被访问的外部主机发出的数据可以通过访问过滤策略19。 这就是一种自反的访问表。自反访问表一般下发在私网路由器入端口。它首先记录下从路由器发出去报文的源地址/端口、目的地址/端口等信息,然后在路由器的入口方向自动创建一个访问表,只允许这样的报文通过:源地址/端口号和目的地址/端口号正好是刚才记录报文的目的地址/端口号和源地址/端口号20- 21。 这样刚才被私网用户访问的外部主机就可以给私网用户恢复报文了,而其他没被访问的主机仍然通不过控制检查。 但是由于私网用户访问外部主机具有随机性和不确定性。所以临时生成的访问表如果一段时间内没有再收到来自内网的数据,就要自动删除,防止产生永恒的合法用户。 2.4.7 流模板与用户自定义 acl 用户自定义 acl可以以报文的报文头、ip 头等为基准,指定从第几个字节开始与掩码进行“与”操作,将从报文提取出来的字符串和用户定义的字符串进行比较,找到匹配的报文,然后进行相应的处理。这样就可灵活匹配报文任何字段,从而大大增加了其流分类功能22。 但由于硬件特性的限制,自定义 acl无法直接下发被硬件识别。它必须通过一种叫做流模板的配置过滤后才能下发到芯片中发挥作用。 流模板的主要功能是对硬件下发的 acl规则中能包含的信息进行限制。 在接口下发的 acl规则中包含的信息必须是该接口下发流模板中定义信息的子集。比如,流模板定义了源 ip 地址、目的 ip 地址、源 tcp 端口、目的 tcp 端口等限制,只有在上述范围内的 acl 规则可以正确下发到硬件中,用于包过滤、qos 等功能;否则 acl规则将不能下发到硬件中,导致包过滤、qos 等功能不能引用此 acl规则。 设备支持的流模板包括缺省流模板和用户自定义流模板。初始状态下,接口下默认配置缺省流模板。用户自定义流模板在全局配置,在接口应用,分为 basic 和 extend 两种,其中basic 为基本流模板,是为匹配基本和高级 acl而用的。而 extend 为扩展流模板,是为了支持用户 acl 而设置的。不同的芯片支持的流模板和用户自定义 acl 的规格也不尽相同。流杭州电子科技大学硕士学位论文 15模板在系统启动时就生成一个默认流模板,该流模板主要是用来配合非用户 acl和 mqc 使用的。如果默认流模板中有这些域,比如 source- ip,那么配置基本 acl时,就不需要先下发流模板,使用缺省流模板即可。 2.5 acl 对分片报文的处理 传统的报文过滤方法过滤分片报文时,仅仅匹配首片报文,对于后续的分片报文就统统放过,不再匹配。这样一来,如果攻击者伪造非首片分片报文,就可能逃过报文过滤,攻击成功23- 24。 现在的设备一般都提供对所有分片报文的过滤功能,对报文进行标准匹配和精确匹配。默认是采用标准匹配,如果 acl 规则包含有高级过滤选项(不仅限于三层信息) ,则设备提供精确匹配,即除了三层信息外,还可以对所有配置的匹配规则项进行检查。 表 2- 1 ip 报文的格式如下 4 位版本 4 位首部长度 8 位服务类型(tos) 16 位长度(字节数) 16 位标识 3 位标志 13 位片偏移 8 位生存时间 ttl 8 位协议 16 位首部校验和 32 位源 ip 地址(基本 acl 能匹配该域) 32 位目的 ip 地址 选项(如果有) 数据 其中基本 acl能匹配源和目的 ip 地址域;高级 acl除了上述功能外,还能匹配 8 位服务类型和 16 位标识域。如果该 ip 报文为 tcp 或 udp 或 icmp 报文,则高级 acl还能识别tcp/udp/icmp 头中端口号信息(tcp/udp)或 icmp 消息类型。 2.6 acl 支持加速功能分析 一般使用 acl匹配报文时是线性查找匹配, 就是按照匹配顺序把报文依次跟每一条配置的 acl 规则去比较,如果命中就停止匹配。假设配置了 1000 条规则,并且假设报文一直匹配到最后一条 acl规则时才命中,那么这个匹配过程将占用很多时间,匹配效率低下25,严重影响设备转发性能。 acl加速功能就是为了解决在配置了大量规则后最后一条匹配效率低下的问题而产生的26。这种情况在启用了 acl 加速功能后就能大大
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学武术与民族传统体育专业题库- 传统武术文化传承与当代教学
- 2025年钢琴演奏级考试模拟试卷:钢琴演奏级音乐理论试题
- 2025年大学社会体育指导与管理专业题库- 大学社会体育改革与发展探讨
- 2025年大学特殊教育专业题库- 特殊教育的社交技能培养
- 2025年大学科学教育专业题库- 科学教育的评价与反馈机制
- 2025年社会工作师职业水平考试初级综合能力模拟题解析试卷
- 2025年大学卫生教育专业题库- 卫生教育在大学生情绪情感调控能力培养中的作用
- 2025年大学人文教育专业题库- 人文教育与心理健康
- 2025年大学警卫学专业题库-校园安全事件应急处置
- 2025年大学劳动教育专业题库- 大学生如何更好地运用专业知识
- 爱国教育主题班会课件:山河已无恙吾辈当自强
- 第3课 展望物联网教学设计-2025-2026学年初中信息技术(信息科技)八年级上册鲁教版(信息科技)
- 2025秋新教材统编版八年级上册道德与法治第十一课 军强才能国安 教案(共2课时)
- 电梯安全总监培训记录课件
- 2025四川省水电投资经营集团有限公司所属电力公司员工招聘6人备考模拟试题及答案解析
- 房地产中介居间服务合同5篇
- 机加工员工质量培训
- 华北理工大学2016年《互换性及技术测量》期末考试复习题
- 医学影像学总论-X线课件
- 大班科学《神奇的洞洞》课件
- 第二次全国陆生野生动物资源调查技术规程
评论
0/150
提交评论