摘要:本文主要探索在网络安全教学及网络中采用云平台和sdn网络结合的方法来满足各种教学网络安全模拟、网络攻防及网络执法演练。同时配合sdn网络及控制器技术来实现各种级别的网络攻击模拟,流量控制,流量分发和牵引的处理。同时通过sdn网络体系来满足各种级别的网络安全教学模拟和实际仿真试验。
关键词:云平台、sdn、kvm、虚拟机模板、流量控制、openflow、vmware
针对国内目前日益严重的网络安全形势,需要加速人才培训和环境模拟试验。可是网络安全涉及的面广,环境复杂。很难全面地反映整个方面的问题,如何解决网络安全人员的培训和环境模拟试验成了一个重要的问题。我们针对整个需求设计了一套完善而可靠的基于大数据云计算环境的网络安全人员培训和网络安全实训模拟试验环境。
采用大数据云计算环境和灵活性是完全符合网络安全模拟环境和灵活性要求。因为它提供了足够灵活的环境建设和环境灵活设置的模式。可以把无限多的可能性都通过系统模板的方式保存和建立起来。以便随时调用和重组。采用大数据云计算方式来组建和搭建网络安全环境模拟和网络执法仿真。
由于网络安全与执法需要的环境复杂涉及的面相对多。需要一套可以灵活满足这样需求的系统和网络体系。在具体设计和应用中,我们采用全部基于sdn的网络体系来配套并满足这样的需求。
sdn技术
sdn(software define network简写)网络的最终目标是服务于多样化的业务应用创新。因此随着sdn技术的部署和推广,将会有越来越多的业务应用被研发,这类应用将能够便捷地通过sdn北向接口调用底层网络能力,按需使用网络资源。
sdn推动业务创新已经是业界不争的事实,它可以被广泛地应用在云数据中心、宽带传输网络、移动网络等种种场景中,其中为云计算业务提供网络资源服务就是一个非常典型的案例。众所周知,在当前的云计算业务中,服务器虚拟化、存储虚拟化都已经被广泛应用,它们将底层的物理资源进行池化共享,进而按需分配给用户使用。相比之下,传统的网络资源远远没有达到类似的灵活性,而sdn的引入则能够很好地解决这一问题。
sdn通过标准的南向接口屏蔽了底层物理转发设备的差异,实现了资源的虚拟化,同时开放了灵活的北向接口供上层业务按需进行网络配置并调用网络资源。现有所有的云计算领域中知名的openstack、cloudstack、hpyer-v、vmware等就是可以工作在sdn应用层的云管理平台,通过在其网络资源管理组件中增加sdn管理插件,管理者和使用者可利用sdn北向接口便捷地调用sdn控制器对外开放的网络能力。当有云主机组网需求(例如建立用户专有的vlan)被发出时,相关的网络策略和配置可以在云管理平台的界面上集中制定并进而驱动sdn控制器统一地自动下发到相关的网络设备上。
因此,网络资源可以和其他类型的虚拟化资源一样,以抽象的资源能力的面貌统一呈现给业务应用开发者,开发者无需针对底层网络设备的差异耗费大量开销从事额外的适配工作,这有助于业务应用的快速创新。
sdn控制器及北向接口技术初探
sdn控制层是sdn的大脑,负责对底层转发设备的集中统一控制,同时向上层业务提供网络能力调用的接口,在sdn架构中具有举足轻重的作用,sdn控制器也是sdn关注的焦点。从技术实现上看,控制器除了南向的网络控制和北向的业务支撑外,还需要关注东西的扩展,以避免sdn集中控制导致的性能和安全瓶颈问题,sdn控制器也在南向、北向、东西向上引入了相应的核心技术,有效解决与各层通信以及控制集群横向扩展的难题。
当前,业界有很多基于openflow控制协议的开源的控制器实现,例如nox、onix、floodlight等,它们都有各自的特色设计,能够实现链路发现、拓扑管理、策略制定、表项下发等支持sdn网络运行的基本操作。虽然不同的控制器在功能和性能上仍旧存在差异,但是从中已经可以总结出 sdn控制器应当具备的技术特征,从这些开源系统的研发与实践中得到的经验和教训将有助于推动sdn控制器的规范化发展。
另外,用于网络集中化控制的控制器作为sdn网络的核心,其性能和安全性非常重要,其可能存在的负载过大、单点失效等问题一直是sdn领域中亟待解决的问题。当前,业界对此也有了很多探讨,从部署架构、技术措施等多个方面提出了很多有创见的方法。
sdn控制器对网络的控制主要是通过南向接口协议实现,包括链路发现、拓扑管理、策略制定、表项下发等,其中链路发现和拓扑管理主要是控制其利用南向接口的上行通道对底层交换设备上报信息进行统一监控和统计;而策略制定和表项下发则是控制器利用南向接口的下行通道对网络设备进行统一控制。
sdn北向接口是通过控制器向上层业务应用开放的接口,其目标是使得业务应用能够便利地调用底层的网络资源和能力。通过北向接口,网络业务的开发者能以软件编程的形式调用各种网络资源;同时上层的网络资源管理系统可以通过控制器的北向接口全局把控整个网网络的资源状态,并对资源进行统一调度。因为北向接口是直接为业务应用服务的,因此其设计需要密切联系业务应用需求,具有多样化的特征。同时,北向接口的设计是否合理、便捷,以便能被业务应用广泛调用,会直接影响到sdn控制器厂商的市场前景。
与南向接口方面已有openflow等国际标准不同,北向接口方面还缺少业界公认的标准,因此,北向接口的协议制定成为当前sdn领域竞争的焦点,不同的参与者或者从用户角度出发,或者从运营角度出发,或者从产品能力角度出发提出了很多方案。据悉,目前至少有20种控制器,每种控制器会对外提供北向接口用于上层应用开发和资源编排。虽然北向接口标准当前还很难达成共识,但是充分的开放性、便捷性、灵活性将是衡量接口优劣的重要标准,例如rest api就是上层业务应用的开发者比较喜欢的接口形式。部分传统的网络设备厂商在其现有设备上提供了编程接口供业务应用直接调用,也可被视作是北向接口之一,其目的是在不改变其现有设备架构的条件下提升配置管理灵活性,应对开放协议的竞争。
控制器负责整个sdn网络的集中化控制,对于把握全网置资源视图、改善网络资源交付都具有非常重要的作用。但控制能力的集中化,也意味着控制器局的安全性和性能成为全网的瓶颈;另外,单一的控制器也无法应对跨多个地域的sdn网络问题,需要多个sdn控制器组成的分布式集群,以避免单一的控制器节点 在可靠性、扩展性、性能方面的问题。目前,用于多个控制器之间沟通和联系的东西向接口还没定义标准,但专家表示,一些非常成熟的集群技术可以被运用到 sdn网络中来解决上述难题。
sdn交换机及南向接口技术初探
sdn的核心理念之一就是将控制功能从网络设备中剥离出来,通过中央控制器实现网络可编程,从而实现资源的优化利用,提升网络管控效率。
工作在基础设施层的sdn交换机虽然不在需要对逻辑控制进行过多考虑,但作为sdn网络中负责具体数据转发处理的设备,为了完成高速数据转发,还是 要遵循交换机工作原理。本质上看,传统设备中无论是交换机还是路由器,其工作原理都是在收到数据包时,将数据包中的某些特征域与设备自身存储的一些表项进行比对,当发现匹配时则按照表项的要求进行相应处理。sdn交换机也是类似的原理,但是与传统设备存在差异的是,设备中的各个表项并非是由设备自身根据周边的网络环境在本地自行生成的,而是由远程控制器统一下发的,因此各种复杂的控制逻辑(例如链路发现、地址学习、路由计算等等)都无需在sdn交换机中实现。
sdn交换机可以忽略控制逻辑的实现,全力关注基于表项的数据处理,而数据处理的性能也就成为评价sdn交换机优劣的最关键指标,因此,很多高性能 转发技术被提出,例如基于多张表以流水线方式进行高速处理的技术。另外,考虑到sdn和传统网络的混合工作问题,支持混合模式的sdn交换机也是当前设备 层技术研发的焦点。同时,随着虚拟化技术的出现和完善,虚拟化环境将是sdn交换机的一个重要应用场景,因此sdn交换机可能会有硬件、软件等多种形态。 例如,ovs(open vswitch,开放虚拟交换标准)交换机就是一款基于开源软件技术实现的能够集成在服务器虚拟化hypervisor中的交换机,具备完善的交换机功 能,在虚拟化组网中起到了非常重要的作用。
sdn交换机只负责网络高速转发,保存的用于转发决策的转发表信息来自控制器,sdn交换机需要在远程控制器的管控下工作,与之相关的设备状态和控制指令都需要经由sdn的南向接口传达,从而实现集中化统一管理。
在本项目中和设计中完全采用基于sdn交换机构建整个网络体系就可以满足越发复杂的需求。同时灵活调度相关的网络资源和重新构建各种网络形态。同时sdn控制器就可以满足整个模拟系统复杂的网络方面的应用需求。
openflow技术
伴随sdn技术同步发展的还有openflow协议。openflow标准的名称是openflow switch specification,因此它本身是一份设备规范,其中规定了作为sdn基础设施层转发设备的openflow交换机的基本组件和功能要求,以及用于由远程控制器对交换机进行控制的openflow协议。
当前最知名的南向接口莫过于onf倡导的openflow协议。作为一个开放的协议,openflow突破了传统网络设备厂商对设备能力接口的壁垒,经过多年的发展,在业界的共同努力下,当前已经日臻完善,能够全面解决sdn网络中面临的各种问题。
当前,openflow已经获得了业界的广泛支持,并成为了sdn领域的事实标准,例如ovs交换机就能够支持openflow协议。 openflow解决了如何由控制层把sdn交换机所需的用于和数据流做匹配的表项下发给转发层设备的问题,同时onf还提出了of-config协议, 用于对sdn交换机进行远程配置和管理,其目标都是为了更好地对分散部署的sdn交换机实现集中化管控。
openflow在sdn领域中的重要地位不言而喻,甚至大家一度产生过openflow就等同于sdn的误解。实际上,openflow只是基于开放协议的sdn实现中可使用的南向接口之一,后续可能还会有很多的南向接口(例如forces、pce-p等等)被陆续应用和推广。但必须承认的 是,openflow就是为sdn而生的,因此它与sdn的契合度最高。相信在以onf为领导的产业各方的大力推动下,它在未来的发展前景也将更加明朗。
openflow交换机利用基于安全连接的openflow协议与远程控制器相通信。其中,流表(flow table)是openflow交换机的关键组件,负责数据包的高速查询和转发。
流表概念
在openflow v1.1和v1.2中,交换机中的流表项虽然还是由三部分组成,但是相应的名称已经发生了变化。其中,v1.0中定义的包头域(header fields)和动作(actions)被分别更名为匹配域(match fields)和指令(instructions)。之所以对包头域进行改名,是因为流表项中的入端口等元组信息并不是属于数据包头的内容,因此将其改为匹配域将更为确切。而使用指令一词替代动作,则主要是因为openflow交换机中多流表的引入。在多流表场景中,虽然数据包在前一流表中出现了匹配,但是交换机后续的操作仍旧可能是将其转到下一流表中继续进行匹配,而并非像v1.0一样马上依照流表动作对数据包做具体操作。因此,新版本的openflow将相关的动作统一更名为指令。openflow v1.1和v1.2中定义的流表结构如图1-2所示。
图1-2 openflow v1.1和v1.2的流表结构
而在openflow v1.3之后,流表结构的内容又一次发生了变化,增加了优先级(priority)、超时定时器(timeouts)和cookie等内容,从而将原来流表结构中的三部分扩展至六部分,如图1-3所示。
图1-3 openflow v1.3的流表结构
如图1-3所示,openflow v1.3的流表结构的各个域的说明如下。
匹配域:对数据包匹配。包括入端口和数据包报头,以及由前一个表指定的可选的元数据。
优先级:流表项的匹配次序。
计数器:更新匹配数据包的计数。
指令:修改动作集或流水线处理。
超时定时器:一个流的最长有效时间或最大空闲时间。
cookie:由控制器选择的不透明数据值。控制器用来过滤流统计数据、流改变和流删除。但处理数据包时不能使用。
openflow关键技术
openflow提供了一个开放的协议,用户可以通过该协议对不同的交换机中的流表进行控制。研究者可以通过选择数据转发通路以及它们需要怎样的处理来轻松地控制数据流的走向。通过这种方式,研宄人员可以在网络中尝试创新型的路由协议、安全网络模型、新型网络服务、甚至可以用其替换现有的tcp/ip协议。一个完整的openflow网络是由一个openflow控制器和一个或者多个openflow交换机组成。
openflow交换机是整个openflow网络的核心部件,主要管理数据层的转发。openflow交换机接收到数据包后,首先会在本地的流表上查找转发端口,如果没有匹配,则把数据包转发给控制器,由控制层决定转发端口。openflow交换机主要由三个部分组成:交换机中的流表、与远程控制器连接的安全通道、连接交换机与控制器之间通信使用的标准openflow协议:
(1)交换机流表表中的每一个表项包含一个动作,flow按表项匹配后执行相应的动作。
(2)安全通道连接交换机和控制器的接口,实现控制器和交换机之间网络数据包以及交互指令的传输。
(3)openflow协议描述控制器和交换机之间交互所用信息的标准,以及控制器和交换机接口标准。
openflow交换机具体工作原理如下:
(1)开启openflow控制器,通过安全通道与openflow交换机进行信息交互并完成连接。
(2) openflow交换机中的流表中可以保存若干流表项,每个流表项由匹配域,计数器和动作组成。
(3)数据流进入openflow交换机后根据流表项中的匹配域进行匹配,找到流表项的数据流修改计数值,然后openflow交换机根据查询的动作对数据包进行处理。
(4)若进入openflow交换机的数据流没有匹配成功,则通过安全通道发送到控制器,由控制器的决策模块进行处理。
openflow控制器负责控制openflow交换机中的流表。包括对流表的添加、修改以及删除等基本操作。这些基本操作功能的实现基于在控制器上开发的程序。实现控制器的硬件设备较为灵活,可以是一台运行简单应用的pc机,也可以通过虚拟机模拟完成。控制器上控制程序的功能设计使得openflow网络得以提供丰富的应用,体现openflow网络的灵活性和扩展性的特点。
openflow网络中交换机和控制器之间通信采用openflow协议。openflow协议规定交换机和控制器之间互通控制信息时,通过可靠传输的安全通道进行消息的传输。控制信息包括建立连接消息、配置交换机消息、读取状态消息、修改状态消息、配置队列消息等。控制器消息的主要功能是实现交换机通过安全通道向控制器发送数据包以及控制器向交换机下发命令等操作。
多云环境模拟
在网络安全及执法专业中需要用到大量的实验和网络模拟试验。如果需要构建一个完善而可靠的系统,必然非常困难而且无法实现。因为在网络安全和执法中需要熟悉和了解的知识太多,而且非常复杂。我们希望通过虚拟化云技术和sdn网络技术来进行灵活构建一套完善而可靠的网络安全及执法的环境仿真和试验环境。通过这样的方式来满足教学和实际的需求。
核心包括几个方面。包括目前所有的网络虚拟化化环境(kvm系列、vmware、xen、微软hyper-v等)。满足所有的网络安全的环境需求。所有的交换机全部采用高密度的sdn交换机。接口全部是万兆光纤。sdn交换机之间采用40g直连。
sdn系统与云系统的连接示意图如下:
多云系统整体连接架构图如下:
系统中包含目前所有的虚拟化环境。这样可以满足实际教育的需求。其中vmware和微软azure均为商业化产品。xen及kvm系列为开源类产品。通过在各种虚拟化环境的系统来满足各种各样的环境模拟需求。涉及网络方面的可以通过sdn控制器、openflow配置和其他软件配合完成。
典型案例ddos攻击清洗。我们采用以下的sdn架构就可以满足这个实验需求。
网络安全及执法试验环境模拟,通过虚拟化平台把各种平台和环境做成标准模板库。方便共享和调用。可以包括微软windows server系列、linux系列、freebsd系列、solaris系列、mac os系列等均可以建立成标准的环境,然后生成标准模板共所有的用户调用、整合和应用。
系统镜像
可以展示当前的镜像信息,包括:镜像名称、操作系统类型、操作系统版本、操作系统架构、镜像可用状态、镜像大小、创建时间
可以查看共有镜像和私有镜像
通过建立统一的安全环境镜像(公有镜像和私有镜像)。公有镜像为统一的环境和结构。私有镜像为特殊的或专用的系统来构建。通过镜像环境和sdn网络配合,就可以满足我们的设计要求。涉及网络攻击的试验,就需要在sdn上配置封锁域和做流量牵引,以保证系统和网络安全。
总结
以上技术的探讨为一种初步的经验总结。由于网络安全及执法需要涉及的技术和灵活性是无法估量的。采用传统的架构和方式是无法满足需求的。我们希望在此抛砖引玉和同行共同探讨相关技术和完善架构。目前采用多云架构和sdn网络来构建是能满足目前已知的网络安全及执法教学需求。同时希望大家共同研究进步。 |