学术堂首页 | 文献求助论文范文 | 论文题目 | 参考文献 | 开题报告 | 论文格式 | 摘要提纲 | 论文致谢 | 论文查重 | 论文答辩 | 论文发表 | 期刊杂志 | 论文写作 | 论文PPT
学术堂专业论文学习平台您当前的位置:学术堂 > 计算机论文 > 计算机网络论文

SDN架构与Open Flow技术

来源:学术堂 作者:陈老师
发布于:2017-02-25 共5595字
  第二章 相关背景知识介绍
  
  本章主要内容是 SDN 架构和 OpenFlow 技术的背景知识介绍,以及围绕数据包回溯技术和故障排除技术为中心对 SDN 安全策略进行分析介绍。2.1 节中介绍 SDN 架构和 OpenFlow协议的流表项和控制器与交换机之间的通信机制,2.2 节和 2.3 节分别介绍数据包回溯技术和故障排除技术背景知识和相关研究内容。
  
  2.1 SDN 架构与 OpenFlow 技术
  
  本节首先介绍 SDN 架构的背景,然后介绍 OpenFlow 协议的流表项和三种消息类型。SDN是构造网络的一种新型概念,而 OpenFlow 协议是 SDN 控制平面与数据平面之间一种通信接口。如图 2.1 所示,传统网络架构将控制软件固化在网络设备中,无论是控制软件还是数据转发都是分布式的。相比于传统网络架构,SDN 架构中控制平面和数据平面分离,将网络服务从网络设备提取出来集中到控制层中,由分布式控制转变为集中控制。SDN 架构中的数据包转发是基于流的,而不是基于目标地址的。广义上的流是定义在数据包字段的值集合上的匹配标准和动作,狭义上的流是源地址和目的地址之间的数据包的序列。属于同一个流的所有数据包在网络设备上有相同的转发规则,而不必考虑路由器、交换机、防火墙或中间盒等网络设备的差异性。对流的编程有很大的灵活性,编程粒度仅受限于流表的支持范围。控制逻辑被转移到称作控制器或 NOS(Network Operating Network,网络操作系统)的外部实体上面。NOS 是运行在商品服务器上的软件技术平台,提供底层资源的抽象接口,以满足用户基于全局网络视图对转发设备的编程,其作用类似一个传统的操作系统。SDN 的一个基本特征就是通过 NOS 实现网络的可编程性,NOS 的作用是软件应用程序与数据平面的网络设备进行交互的媒介。
  
  NOS 的消息使用开放的技术方案 OpenFlow 解释成基础设施层的网络设备可以理解的指令,这些指令对流表[6](Flow Table)进行编程。利用 OpenFlow 协议,将实际的数据流转化为用于生产和研发的抽象的流,研究人员通过捕获路由器上的数据包获得流,然后进行处理。
  
  研究人员还可以尝试新的路由协议、安全模型、寻址方案,甚至放弃传统的 IP 协议。在相同的网络中,用于生产的数据流也能够与用于研究的数据流分离并被单独处理。OpenFlow 交换机的数据路径包括流表、操作,操作在一个最小匹配集合的基础上是可扩展的。
  
  综上所述,相比于传统网络的 IP 转发协议,SDN 架构中的 OpenFlow 协议的基本思想很简单:利用以太网交换机和路由器的流表来实现共同的网络功能集,如防火墙、NAT(NetworkAddress Translation,网络地址转换)、QoS(Quality of Service,服务质量)和信息的收集统计。
  
  虽然每个供应商实现的流表是不同的,但是通用的功能集是确定的,并且能够在大部分交换机和路由器中运行功能集。OpenFlow 协议的目的就是为了开发这个共同的功能集。
  
  2.1.1 流表项
  
  在最早的 OpenFlow1.0 协议中没有考虑多级匹配规则,每个流表项仅包括匹配域、动作和计数器三部分。如表 2.1 所示,匹配域指要匹配的数据包的报头部分,包含网络入口、以太网端口和 IP 协议数据包报头等,并通过掩码可以选择在任意位置进行匹配。如表 2.2 所示,动作指协议中定义的动作集或管道处理,计数器指计算匹配的数据包的数目。
  
  对进入交换机的数据包作为值与流表项的匹配域进行比较,单次比较既可以匹配特定值,也可以直接使用 ANY 匹配任意值。如果 OpenFlow 交换机支持任意比特位匹配,利用掩码可以选择以太网源地址、目标地址或 IP 源地址、目标地址等字段更精确地指定匹配域。
  
  数据包匹配的优先级基于与流表项关联的值。优先级的数值越大,表示具有更高的优先级。带有精确匹配的流表项具有最高优先级,带有通配符的流表项通过相关联的值进行比较,高优先级的流表项必须在低优先级的之前被匹配。如果多个流表项具有相同的优先级,交换机随机选择进行匹配。对于每个匹配成功的流表项,计数器在匹配后被更新。如果数据包最后没有匹配成功,则由 OpenFlow 交换机通过安全通道发送给控制器。
  
  OpenFlow 协议定义了许多原子动作,便于交换机处理数据包,也便于解释控制器下发的消息,通过这些动作控制基于流的细粒度的数据包转发。OpenFlow 协议将接入网、私人主机、服务器和控制器等网络元素互相连接在一起,无论何时何地,网络管理员直接通过控制器获得全局视图,对网络进行流表配置。因此网络配置的更新和维护都不需要交换机上任何固件的改变,只需要网络管理员通过上层应用进行自动化配置。
  
  2.1.2 消息
  
  信道[25]是 OpenFlow 交换机连接到控制器的消息通道。控制器在发送消息配置和管理交换机之前,要先接收交换机发送到控制器的 Hello 消息,并返回 Hello 消息到交换机完成信道建立的过程。控制器与交换机之间的消息是可以由用户自己定义的,但所有的 OpenFlow 信道传输的消息只有被 OpenFlow 协议格式化以后才可以正常通信。信道的安全性体现在传输的消息支持 TLS(Transport Layer Security Protocol,安全传输层协议)加密,用户也可以选择直接用 TCP(Transmission Control Protocol,传输控制协议)进行传输通信。信道支持控制器与 OVS[26](Open Virtual Switch,开放虚拟交换机)之间进行通信,而 OVS 是驻留在虚拟机内的管理程序并提供了虚拟机与物理机之间接口的软件交换机。
  
  OpenFlow 协议支持三种消息类型,控制器-交换机消息、异步消息和对称消息,每种消息都有多个子消息类型。控制器-交换机消息由控制器发起,用于管理或检查交换机的状态,需要交换机应答。异步消息用来将网络事件或交换机状态的变化更新到控制器,由交换机发起。对称消息可由交换机或控制器任意一侧发起。有些如 Packet-in、Packet-out、Flow-mod、Flow-removed、Barrier-request/reply 等消息类型在 OpenFlow 协议中有特殊的用法,下面具体解释。
  
  Packet-in 消息用于当交换机收到的数据包没有匹配成功时将其发送到控制器,控制器使用该消息中携带的数据包来创建流表项。Packet-out 消息是控制器用来将数据包发送给交换机,控制器可以使用这个消息将自己创建的数据包从交换机转发出去,或者用来将 Packet-in 消息中的数据包重新发回给交换机。Flow-mod 消息用来将控制器创建的流表项发送给交换机,该流表项有硬超时和空闲超时两个定时器。硬超时用来说明流表项在指定的时间内失效,而空闲超时没有失效时间。Flow-removed 消息是交换机用来通知控制器将流表项删除的原因,消息内容还包含计数器和流表项的生命周期。Barrier-request/reply 消息的用法比较特殊,交换机收到 Flow-mod 和 Packet-out 消息后无论是否执行都不会将结果通知控制器。如果控制器需要知道执行结果,则发送 Barrier-request 消息给交换机,当交换机收到这个消息并且执行完成后,就发送一个 Barrier-reply 消息。
  
  2.2 数据包回溯策略
  
  本节内容介绍传统 IP 回溯与 SDN 回溯中的相关研究热点,传统 IP 回溯受到硬件交换机内部固件的兼容性制约,技术复杂而且实现困难。SDN 回溯策略则不受这种制约,可供选择的技术更多,从用途上大体可以分为两类。一类是作为网络服务集成到框架工具中,只是提供数据包回溯功能的组件,数据包回溯并不是框架工具的核心功能。另一类是在测试环境中用于改善基于 OpenFlow 的上层应用的效率,如统计数据包数量或者数据平面负载不均衡的问题,这类应用数据包回溯是核心功能。IP 回溯中具有代表性的是基于网络入口的回溯方案[27]和基于数据包标记的回溯方案[28].
  
  基于网络入口的回溯方案[27]在入口处记录并过滤数据包,并且拒绝非法 IP 地址的数据包进入网络,路由器需要对网络中的数据包进行合法性检查。入口过滤存在的不足是每一个路由器都要配置过滤功能,而这会影响路由器的转发能力。基于数据包标记的 IP 回溯[28]在数据包传输时,指定的关键路由器要对所转发的数据包进行复制、计算并存储每个数据包的摘要,由回溯系统根据数据包摘要信息,根据路由器的转发过程中的摘要信息构造出数据包的完整传输路径。其它的数据包回溯技术[29]
  
  如链路测试法、基于 ICMP(Internet Control Message Protocol,Internet 控制报文协议)的追踪方法、日志记录法等方法客观上存在的限制因素太多,而数据包标记法相对来说只需要管理员记录追踪、不需要数据包改变报头。
  
  另外一些适用于特定场景的 IP 回溯的技术方案。李国剑等人在文献[30]提出基于神经网络的主动 IP 源地址回溯方案,回溯方案在伪造 IP 源地址的攻击手段场景下仍然有效。根据神经网络技术与陷阱技术相结合的思想设计实验流程及算法,对正常路由转发的影响很少并且具有较低的错误率。斯通等人在文献[31]提出的 IP 回溯方案中,网络管理员首先需要通过 IP隧道连接边界路由器和中心路由器建立覆盖网。当边界路由器连接的用户受到来自网络的攻击时,使用动态路由不直接转发攻击数据包,而是发给中心路由器。数据包溯源时,从离用户最近的中心路由器开始,沿着 lP 隧道逐跳地回溯攻击数据包经过的路由器,直到回溯至离攻击数据包最近的边界路由器为止。埃贡等人在文献[32]提出的 IP 回溯方案基于日志记录,通过路由器缓存数据包报头 TTL(Time To Live)域的值进行数据包回溯。实际缓存的数据包信息数量应该基于路由器缓存空间大小,如果超过最大容量则把信息转移到外存上,最好每隔固定时间进行一次缓存,回溯时则通过检查路由器缓存信息计算数据包的转发路径。为了减小路由器上的存储数据包信息的缓存空间,一般对数据包信息采用哈希函数压缩后再存储。
  
  SDN 回溯策略作为网络调试和故障排除中常用的技术之一,PathTracer[26]能够对数据链路层的转发路径进行回溯,允许通过数据包跟踪来检查低级别的转发行为。OpenSample[33]提出的 SDN 回溯方案,实现对数据包进行实时、低延迟和灵活的监控功能,而不会明显影响控制平面的负载和性能。sFlow[34]提出的解决方案采取抽样技术,适用于 SDN 这种高速的数据包转发网络,以组件方式能够灵活的集成到应用程序中,提供高性能和高效的网络监控。
  
  SDN traceroute[35]提出数据包路径跟踪方案,允许用户查询关于经过转发设备的以太网数据包的路径和用于检查数据包的转发行为,但是不能体现出上层应用策略的安全特征。
  
  2.3 故障排除策略
  
  本节在介绍故障排除技术的背景知识之前,首先介绍事件和故障这两个故障排除中重要的概念,然后对故障排除技术在 SDN 中的研究热点分别进行介绍。
  
  事件[36](Event)是网络元素的状态的外在或内在的变化。一般情况下伴随着故障出现事件也会出现,但是两者并没有必然的关系,即有事件发生但不能肯定故障的存在。能够确定故障存在的事件称为阳性事件,不能确定的则称为阴性事件。根据事件发生的位置可以分为外部事件和内部事件,外部事件由环境引起,内部事件由内部软件触发。故障[36](Fault,Problem或 Root cause)代表另一类网络状态,它可能引起其它事件,但自身不由其它事件引起。故障根据持续时间的长短分为(1)永久的(2)间歇性的(3)瞬时性的。永久故障在网络中的一直存在,直到采取措施故障消除为止。间歇故障是不连续的或周期性地发生,能够短时间内轻微影响服务质量,但是频繁的重复发生的间歇性故障会显着危及服务质量。瞬时故障指存在时间短,对服务质量的影响也是最小的,瞬时故障通常由自动恢复程序主动修复。
  
  NetSight[37]是 SDN 中较早出现的策略层故障排除工具,主动收集数据包的历史元数据信息,并把这些信息可以通过接口封装后应用到网络调试、回溯、监控、分层网络探测等领域。
  
  Tulip[38]采用了基于带外探针的主动探测技术,解决的问题包括单向数据包丢失和乱序,无法解决瞬时或特定应用的丢包问题。Orchid[39]通过维护数据包中的计数器,记录下沿路径的每个路由器信息。通过对比数据包中的计数器和路由器上对该数据流所维护的计数器,路由器知道数据流的下一个数据包,这样就由计数器来对数据包的传输负责。系统可以收集这些数据包的计数器信息来统计有关数据包丢失的数量和确定丢失的位置。Barak 等人在文献[40]提出带外故障定位方案,定位过程通过路径节点间交换一种强加密的摘要实现,其中一个节点可以随意丢弃、修改或注入数据包。Argyraki 等人在文献[41]提出了另一种带外的故障定位方案,每个管理域通过发送反馈每个数据流的流量来确定数据包的丢失和延迟。Ofrewind[42]是较早提出在 SDN 中进行故障排除的方案,基于日志记录和回放完成故障排除,在交换机和控制器间的中间层代理对全局网络配置信息进行记录,通过回放选出最小的错误事件的集合。NDB[43](Network Debugger)提供了另外一种 SDN 调试工具,该方案为每一个数据包创建了一个邮戳(Postcard),邮戳包含数据包报头、匹配的流规则、交换机信息和转发的端口。通过邮戳管理系统,网络管理员使用原语实现数据包路径中断点回溯功能。
  
  为了检测路径中有故障的链路,SDN-RADAR[44]提供了一种启发式算法,将网络中链路关联特定权重值,较大的权重表示有较高概率发生故障。该算法发现由越多性能不好的路径共享的链路,该链路上发生服务质量问题的可能性也越大,因此给这条链路指定较高的权重。如果通过该链路的路径都没有发生服务质量问题,则它会得到最小的权重值零。通过以上分析,根据是否对数据包封装的分类方法,分成带内和带外两种故障排除技术。
  
  带外的技术能够跟踪识别端到终端的路径,但这些工具有时是不准确的,因为它们不能识别数据包丢失的位置,好处是不需要交换机固件支持。带内的技术大多利用数据包报头内不经常使用的字段,需要交换机固件支持。
  
  2.4 本章小结

  
  本章首先介绍 SDN 架构及 OpenFlow 协议及相关技术的发展现状,然后介绍了数据包回溯和故障排除相关方案的研究进展。传统 IP 回溯技术由于受到交换机硬件技术限制,无法深入解决数据包传输过程中丢包、修改等安全问题,因此需要利用 SDN 技术通过控制面安全策略形象化描述,然后才能进一步对故障事件分析、设计算法、软件编程。通过对 OpenFlow技术进行综合分析,为下面进行基于 SDN 的应用开发和网络仿真打下基础。
相关标签:
  • 报警平台
  • 网络监察
  • 备案信息
  • 举报中心
  • 传播文明
  • 诚信网站