英语原文共 13 页
在基于OpenFlow的软件定义网络中,获得类似于NetFlow/IPFIX提供的流级测量值具有挑战性,因为它要求在流表中每个流安装一个条目。埃斯。这种方法不能很好地扩展,因为流表中的条目数量有限而且很小。此外,用生成流量的应用程序标记流将极大地丰富这些报告,因为它将为网络性能和安全性等提供非常有价值的信息。在本文中,我们提出了一个可扩展的流量监测解决方案,完全兼容当前现成的OpenFlow开关.测量在交换机中维护,并异步发送到SDN控制器。此外,还使用DPI和机器学习(ML)技术相结合对流进行分类,特别侧重于识别Web和加密通信量。为了扩展性,根据交换机中可用的OpenFlow特性,我们设计了两种不同的流量采样方法。我们在OpenDaylight中实现了我们的监控解决方案,并在一个使用OpenvSwitch的测试床上对其进行了评估,我们还使用了一些DPI和ML工具,以在准确性和Perf之间找到最佳的折衷方案。我们使用实际流量的实验结果表明,测量和分类系统是准确的,并且大大降低了部署它们的成本。
1.介绍
流量监控是网络管理和安全的基石,因为它为一些任务提供了必要的信息,如安全策略执行、交通工程或故障排除。随着软件定义网络(Sdn)范式的出现更重要的是执行细粒度的监视,以最优地利用集中式控制平面提供的可能性,它可以用网络的全局视图来做出决策。
目前,用于网络监视的遗留网络中部署最多的解决方案之一是NetFlow/IPFIX。市场上有很多基于NetFlow的工具,它们利用流级测量中的信息来推断一些关于网络的有用信息。这些工具提供各种各样的服务,如异常检测、分布式拒绝服务(DDoS)检测或带宽监视。
关于SDN范式,OpenFlow[1]已经成为南向接口的主要协议(在控制和数据平面),它允许使用流统计信息在交换机中维护记录,并包含一个接口,该接口允许被动或主动地检索此信息,该接口可以用来提供与NetFlow类似的报告。。
SDN的一个固有问题是它的可伸缩性。因此,要正确设计监控系统,最重要的是要考虑网络和处理管理费用来存储和收集流量统计。一方面,由于控制器通常管理网络中的大量交换机,因此尽可能减少控制器的负载是很重要的。另一方面,使用OpenFlow实现每个流监视的最简单的方法是为交换机表中的每个流维护一个条目。通过这种方式,监视网络中的所有流会产生很大的限制,因为现在OpenFlow商品交换机由于其有限的硬件而不支持大量的流条目。是资源(即TCAM条目的数量和处理能力)
此外,测量报告中的流经常使用基于端口的分类技术标记(例如,通过协议).然而,这些技术正变得越来越过时,因为它们不太适合当前的情况。如今,越来越频繁地发现不同的应用程序共享同一个端口(例如,基于web的应用程序)或使用不出名的避免被检测的端口(例如,P2P应用程序)。特别是,我们可以在HTTP和HTTPS端口后面发现各种各样的应用程序,从一些对延迟非常敏感的服务(例如VoIP)到其他性能非常敏感的服务。依赖于平均带宽(例如云存储)。这反映出有必要进行更全面的分类,以便系统能够提供有关生成流量的特定应用程序的信息(例如Netflix)。关于交通分类研究领域的最新动向,主要有两条主线。。一方面,基于深度分组检测的技术对数据包的有效载荷进行分析,以识别流量;通常,它们可以执行详尽的分类(例如,在应用层),达到高精度水平。然而,对通信量中的每个数据包执行DPI是资源欺诈。在所有情况下都是可行的。另一方面,提出了基于机器学习(ML)的其它解决方案,以减轻DPI分类的负担。这些技术在按应用程序级协议(例如SMTP、DNS)对流量进行分类时,能够达到与DPI工具类似的精度。但是,它们无法准确地识别应用程序(例如,Gmail,在相同的应用协议(例如HTTP)上产生流量。在这些情况下,DPI通常远远优于ML分类器。
基于上述,我们提出了一种基于OpenFlow的可扩展监控解决方案,该解决方案实现了流采样和流级流量分类,并特别强调了标识。网络和加密的流量。与NetFlow/IPFIX一样,对于每个采样的流,我们在交换机中维护一个流条目,它记录持续时间以及数据包和字节计数。此外,我们的体系巧妙地将遗留网络中使用的一些最先进的流量分类技术结合在一起,为产生流量的应用程序提供有标记的流记录。更详细地说,我们的监测系统具有以下新特点:
可扩展性:我们在两个不同的维度中解决了标度问题:(I)减少控制器的开销;(Ii)以减少开关流表中所需的条目数。为此,我们设计了两种采样方法,它们依赖于当前现成开关中的OpenFlow特性。我们实现流采样,因为它更容易提供UT需要修改OpenFlow规范,尽管我们也计划在将来提供数据包抽样实现。我们注意到我们的方法只需要最初安装交换机中的一些规则将自动操作,以随机区分要采样的业务。据我们所知,没有符合这一办法的解决办法。例如,iSTAMP[2]建议根据“标记”最信息流的算法对通信量进行采样。但是,此解决方案特别针对特定流的检测,如我们的解决方案提供了网络流的通用报告。
完全兼容OpenFlow:我们的监控系统仅使用OpenFlow 1.1.0以来存在的本机特性实现流采样。这使我们的建议对当前更加务实和现实。严重依赖OpenFlow的SDN部署。此外,为了向后兼容,我们还提出了一种与OpenFlow 1.0.0兼容的不太有效的监视方案。与传统网络中的NetFlow不同,OpenFlow允许独立地监视网络的特定部分,这在新出现的SDN/NFV场景中非常有趣。我们在文献中发现一些SDN的监控建议依赖于与OpenFlow不同的协议。例如,OpenSample[3]使用sFlow执行流量采样,在当前的SDN交换机中,sFlow比NetFlow更常见。.但是,我们认为sFlow具有较高的资源消耗,因为它将每个采样包发送到外部收集器并维护那里的统计信息。相反,我们的系统维护统计直接在开关中进行抽动,并在流过期时检索它们。我们的系统使用的流条目独立于执行不同网络功能(例如转发)的其他模块安装的其他条目。这使我们的系统能够透明地操作,并特别选择最适当的超时以获得精确的测量结果。
流量分类:我们的系统结合一些最先进的技术进行流级分类.特别是,我们将特定的DPI或ML技术应用于不同类型的通信根据他们在准确性和成本之间的权衡。类似于[4]和[5],我们使用HTTP头和加密(SSL/TLS)连接的证书中的信息来揭开隐藏的应用程序网络和加密通信的背后。此外,我们将DNS流量作为补充信息源进行处理,以发现与不同流相关联的域名。这反过来又能帮上忙来识别应用程序。对于我们评估的不同分类技术,我们分别根据实际情况和在基于Openflow的SDN环境中部署它们的成本来衡量它们的准确性。
本文其余部分的结构如下:第二节介绍了我们的流程监控系统的体系结构。第三节介绍了我们的流量测量系统。第三节介绍了我们的流量测量系统。第四节介绍了我们的流程分类系统。在第五节中,我们评估了我们的监测系统在TES中的准确性和开销贡献。使用OpenvSwitch,在OpenDaylight[6]中实现,并结合不同的流量分类技术。第六节对相关工作进行了总结。最后,在第7节中,我们总结并提到了今后工作的一些方面。
2.我们监控系统的体系结构
图1给出了在SDN控制器(即控制平面)中实现的流量监控系统的结构。我们将其划分为两个不同的逻辑子系统,称为“流”。测量系统“和”流量分类系统“。前者负责在OpenFlow交换机中安装流量条目,以执行流量采样和维护每流统计数据。在这里方法,当交换机中的流项过期时,此系统异步收集相应流的测量值(数据包和字节计数和持续时间)。注意,我们通过它的五元组。同时,流分类系统能够识别出在业务中产生每个流的应用程序。为此,本系统结合了不同的深包督察传输(DPI)和机器学习技术用于流量分类,并最终提供与每个流相关联的标签的报告。因此,我们的监控系统结合了这两个子系统的输出,最终提供了一个报告,其中包括流量中的每个流,其相关的测量值和标识生成它的应用程序的标签。本文的以下两部分详细描述了构成我们的监测系统的流量测量系统(第3节)和流量分类系统(第4部分)。
- 流量测量系统
我们的流量测量系统完全依赖OpenFlow规范来获得类似于遗留网络中的NetFlow/IPFIX的流级测量。这在SDN中并不新鲜,因为有些作品,如[7],之前也用过类似的方法。然而,据我们所知,以前没有工作提出基于OpenFlow的方法来实现流量采样,并以NetFlow/IPFIX的方式提供报告。.在分离的记录中随机采样流量和维护每流统计数据,这些统计数据最终会报告给收集器。由于我们知道OpenFlow有许多在规范中被归类为“可选”的特性,所以我们设计了两种不同的抽样方法,并对不同级别的特性提出了不同的要求。开关里有。总之,这些方法包括在交换机中安装一组条目,这些条目允许我们区分要采样的通信量。因此,我们只发送第一个数据包。其中,要监视的流和控制器负责安装响应特定的流条目,以维护流量测量。
我们的测量系统利用OpenFlow的多表特性,OpenFlow 1.1.0提供。尽管如此,我们还是提出了一种对开关有一定限制的替代解决方案。支持OpenFlow 1.0.0(更多细节见3.2节)。多个表的支持使我们能够解耦在sdn控制器中操作的不同模块的条目集。其他网络任务。通过这种方式,我们的系统在这个表中安装了一些条目来采样流量并维护被监视流的记录。第一个表中的所有条目至少有一条指令要指示。数据包到另一个表,其中其他模块可以安装具有不同目的条目(例如转发)。集中在我们的系统运行的表上,三个不同的条目块可以根据它们的优先级字段进行区分。有一个流级(5元组)条目的第一个块作为流记录。然后,具有较低优先级的条目块定义要采样的分组。最后,我们添加了一个优先级最低的默认条目,该条目将不匹配任何先前条目的数据包指向下一个表。此系统的关键点位于第二个条目块上,下面描述的方法安装规则用于定义采样的数据包。当一个新包到达交换机时,操作模式是首先检查它是否已经在一个按流量监视项中。如果与这些条目中的任何一个匹配,则更新数据包和字节计数器,并将数据包定向到下一个表。如果没有,则会遍历定义它是否必须使用的条目块。不管是否取样。如果它与其中一个匹配,则将该分组转发到下一个表和控制器(消息中的数据包),以在第一个块中添加一个特定条目,以对该流的后续分组进行采样。最后,如果数据包与前面的任何规则不匹配,则直接指向下一个表。
3.1拟议抽样方法
我们在这里介绍了为我们的测量系统设计的两种方法,并讨论了每个方法所需的OpenFlow特性。一种是基于散列函数,它非常容易执行流采样。因此,在无法实现IP后缀的情况下,提出了一种基于IP后缀的备份机制。我们的抽样机制包括在包抽样(PSAMP)协议规范[8]中,它与IPFIX协议规范兼容。根据PSAMP的术语,第一个方法与基于哈希的筛选的定义相匹配。虽然第二种方法可以归类为属性匹配筛选,但是如果数据包报头中的特定字段等于预定义的一组值,则选择数据包。我们假设这些开关支持OpenFlow 1.1.0和更高版本,它们至少支持多个表。但是,在3.2节中,我们对如何使用OpenFlow 1.0.0实现替代解决方案提出了一些意见。
3.1.1基于IP后缀的采样
该方法基于IP地址匹配的流量采样。为此,控制器主动为特定IP地址范围添加一个具有匹配字段的条目。典型在传统的路由选择中,IP地址的匹配是基于IP前缀的。相反,我们考虑使用一个掩码来检查ip的最后n个位,也就是说,我们用特定的ip对流进行采样。后缀。通过这种方式,我们取样了一组更有代表性的流,因为我们监视来自网络中不同子网(IP前缀)的流。为了实现这一点,只需要一个通配符条目来筛选源地址或目标地址或它们的组合所需的IP后缀。为了控制要采样的流数,我们粗略地考虑到,平均来说,流沿整个ip范围是均匀分布的(稍后我们用实的方法分析这个假设)。(见第5.1.1节)。因此,对于固定的掩码,采样的流数将除以到达交换机的流量总数的2。我们知道,通常会有一些IP比其他IP产生更多的流量,但是这种方法允许控制要监视的流的数量。此外,如果我们考虑对IP进行选择,而不是单个IP,可以更好地控制这种效果。在这种情况下,如果我们采样一个产生大量流的主机的IP地址,则只采样那些与源和目标IP后缀匹配的流。一般说来,我们的抽样比率可以由下列表达式定义:采样率=1/(2m n)。其中lsquo;mrsquo;是为源IP后缀检查的位数,lsquo;nrsquo;是为目标IP后缀检查的位数。
这种方法类似于基于主机(或基于主机对)的采样,因为我们使用IP地址来选择要采样的数据包。。然而,基于主机的方案通常为单个或一组主机提供聚合通信量的统计信息。相反,我们通过单对或对ip后缀对通信量进行采样,但在在流粒度级别上划分统计信息。此外,为了避免选择中的偏差,可以通过简单地替换OpenFlow表中的采样规则来周期性地更改IP后缀。
为了实现这种方法,OpenFlow唯一可选的要求是支持任意的IP掩码来检查后缀,因为有些交换机只支持IP的前缀掩码。我们还在一份技术报告[9]中提出并评估了一种基于端口号的替代方法,用于不支持带有后缀的ip掩码的交换机,但这种方法需要大量的端口号来获取通信量的条目数。
3.1.2基于散列的流采样
该方法包括计算数据包报头的传统5元组字段上的散列函数,如果哈希值在特定范围内,则选择该哈希函数。为了实现这个方法,我们使用OpenFlow的组表特性。在OpenFlow中,组表包含许多桶,这些桶依次由一组操作组成。因此,如果选择一个桶,它的所有ac条件将应用于数据包。对于该方法的实现,我们利用SELECT机制来平衡组内不同桶之间的负载。水桶选择取决于交换机中实现的选择算法(OpenFlow规范外部),该算法应该在桶间执行相等或加权的负载分担。在图2b中,我们可以看到选项卡。为此设计了LES结构。在这种情况下,所有IP数据包都指向下一个表以及一个组表,其中只有一
以上是毕业论文外文翻译,课题毕业论文、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。