一种用于检测端口故障的软件定义网络系统的制作方法

文档序号:15074062发布日期:2018-08-01 00:44阅读:172来源:国知局

本发明涉及一种软件定义网络(softwaredefinednetwork,简称sdn)系统、一种用于sdn系统中检测虚拟端口故障的方法,以及一种在计算设备上执行时实现所述方法的计算机程序产品。特别地,本发明建议,当虚拟端口中的流量模式发生改变或流量完全停止时,优选使用本地实现的机制检测sdn中虚拟端口的故障。



背景技术:

sdn是一种计算机组网方法,允许网络管理员通过低级功能抽象化来管理网络业务。这是这样实现的:将决定将流量发送至何处(控制面)的系统与将流量转发给所选目的地(数据面)的底层系统解耦。这种网络拓扑简化了组网。sdn需要某种用于控制面与数据面通信的方法。有一种这样的机制叫做openflow,常被误认为等同于sdn,而其他机制可能也适用该概念。

因而,sdn是这样一种架构,据称它可直接编程,敏捷,动态,可管理,经济高效,可适应,力求适用于当今应用的高带宽、动态性质。sdn架构解耦网络控制与转发功能,使网络控制可直接编程,底层基础设施根据应用与网络业务而抽象化。

sdn架构是特别以编程方式配置的,这意味着sdn使网络实例通过动态自动的sdn程序极快地配置、管理、保障和优化网络资源。

sdn架构是特别集中管理的,这意味着网络智能集中于转发元件等基于软件的sdn控制元件,其维护网络的全局视图,在应用和策略引擎中呈现为单个逻辑交换机。

计算机组网时,通常,当虚拟端口中流量模式发生变化或流量完全停止时,可理解为应用故障和/或未做响应时,需要针对虚拟通信端口的故障检测业务。每当怀疑进程故障时(s-转换),故障检测应发出通知。故障检测影响集群和网络管理以及应用部署和分布式计算。

存在一些故障检测业务的实现方式,然而这些实现方式没有一个被广泛接受。现有本地方案一般是专门的实现方式,未考虑标准化接口或与全局系统中的其他业务和标准的交互。许多问题使得分布式业务未能被接受,而不提供标准接口以及不与现有业务和基础设施进行交互当然是一个因素。

检测这种端口故障通常要使用管理程序元件中的所谓故障检测软件代理。软件代理的概念提供了一种便捷有力的复杂软件实体的描述方式,该实体在一定程度上能够自主性进行动作,以代表主机完成任务。软件代理尝试理解如何轮询应用健康或轮询应用的具体端口状态。因此,软件代理需要轮询sdn的端口上的每个具体应用,而sdn不通用且难以管理。代理需要专有协议且在sdn中产生大量开销。这些代理不具有sdn的全局概况。使用代理是不可能对sdn的虚拟端口进行故障检测业务的。

另一种提供端口故障检测业务的知名架构基于简单网络管理协议(simplenetworkmanagementprotocol,简称snmp)。snmp允许与网络节点和其他管理业务的互操作,其采用提高广泛接受度的期望的现有标准,采用用于监测的标准,允许使用现有工具,从而使得故障检测业务质量高。该基于snmp的故障检测通常安装计数器,以观测sdn中的数据流量。有时会认为snmp是不安全协议,因此通常它在sdn中是去激活的,因此sdn中不会得到snmp功能。虚拟交换机中不支持snmp。snmp采用轮询机制,造成大延时因而不便利。

而另一个故障检测业务是通过openflow得到的和所谓flowexports,请参考usenixassociation协会,2010互联网管理会议之企业网络研究的会议记录第3-3页中tootoonchian,a.和ganjali,y.的“hyperflow:openflow的分布式控制面”(tootoonchian,a.,&ganjali,y.“hyperflow:adistributedcontrolplaneforopenflow”,inproceedingsofthe2010internetnetworkmanagementconferenceonresearchonenterprisenetworkingpp.3-3,usenixassociation)中描述的hyperflow机制。该flowexports产生大量的数据开销,因而采用昂贵的处理资源。这些flowexports具有更低的故障检测粒度,它们难以度量与维持以获得较好的时延。



技术实现要素:

有鉴于上述提及的问题和缺点,本发明旨在改善现有技术,尤其是如上所述的故障检测业务。本发明的目标在于分散故障检测并提高故障检测业务的效率和速度。其可以使故障检测业务适应特定本地流量模式和网络节点,以进一步改善故障检测业务。因此本发明力图避免产生大量开销。需要一种非侵入性方法。相应地,本发明意在提高整体系统性能并降低系统延时。本发明也意在克服所有上述提及的缺点。

本发明的目标通过所附的独立权利要求提供的方案实现。本发明的优势实现方式均在从属权利要求部分中进一步定义。

特别地,本发明优选在网络节点的虚拟端口上利用本地故障检测,以了解某个虚拟端口是未做响应还是未载入。创造性的本地流控制实体在第一阶段进行学习分析,学习流量特征,以确定最佳粒度。此处粒度与并行计算有关,意思是相对于通信的计算量,也即计算与通信量之比。然后,以某种方式触发任意异常行为,即未向/从网络节点传递的数据流量。

本发明第一方面提供一种sdn系统,包括第一网络节点,其包括至少一个虚拟通信端口。本发明系统还包括第二网络节点,其包括至少另一个虚拟通信端口,其中,第一网络节点和所述第二网络节点用于通过其虚拟通信端口交换数据。本发明系统还包括流控制实体,本地置于所述第一网络节点和所述第二网络节点之间,其中,所述流控制实体用于生成用于虚拟端口故障检测的匹配流。

在第一方面的系统中,引入了一种新型本地流控制实体。该实体本地置于所述系统的所述第一网络节点和所述第二网络节点之间。该实体优选为sdn中的虚拟实体。所述实体可以作为sdn应用设置于sdn控制器上。

所述流控制实体以本地的方式进行对所述第一网络节点和所述第二网络节点的控制。就此而言,本发明流控制实体是手动还是自动配置取决于sdn的建立方式以及所采用的sdn控制器。因此,所述第一节点和所述第二节点之间的至少一个数据交换的速度和效率不会受到负面影响,特别地,端口故障检测业务大大改善。

网络节点可以是终端设备的连接点、重新分配点或通信端点。在数据通信中,网络节点可以是数据通信设备(datacommunicationequipment,简称dce),例如,调制解调器、集线器、网桥或交换机;或者也可以是数据终端设备(dataterminalequipment,简称dte),例如,数字电话手机、打印机或上位机,例如,路由器、工作站或服务器。网络节点的定义取决于涉及的网络和协议层。网络节点可以优选为附着于所述系统的激活电子设备,能够通过物理、逻辑或虚拟通信信道创建、接收或传输信息。因此,配线架或跳线盘等被动分配点不是本发明的网络节点。

优选地,所述网络节点为虚拟多层网络交换机等虚拟交换机,旨在通过编程扩展实现有效的网络自动化且支持标准管理接口以及netflow、sflow、span、rspan、cli、lacp802.1ag和openflow等协议;或是虚拟机,其是对特定计算机系统的模拟,该计算机系统基于真实或假想计算机的计算机架构和功能运行。它们的实现方式可以涉及专用硬件、软件或两者的结合。

本发明的匹配流是所述流控制实体生成的数据表项,并输入到至少一个网络节点以观测(虚拟)通信端口行为。该数据表项优选包括虚拟通信端口号和/或网络地址。该匹配流用于检测完整的流量损失,从而检测端口故障。采用该匹配流,可以优选基于空闲超时值检测所述第一网络节点的虚拟端口和所述第二网络节点的另一个虚拟端口之间的数据流量损失。

所述流控制实体具有全覆盖拓扑图。因此,该实体可以看见报文路径,且可以沿着该路径以本地方式查询数据流量。所述流控制实体可用于检测虚拟端口故障和负载。虚拟交换机中一般支持该实体,且该实体易于与sdn控制器集成。所述流控制实体用于安装无进一步动作的流。为了适应流控制实体参数,其可以进行分析和学习场景。因此,可以很容易得到流量模式和应用端口的分析,并得到故障检测机制的最佳粒度,因为它可以发现最接近于网络节点的虚拟通信端口的问题。

端口故障检测优选负责sdn中的任意网络节点故障或死机的检测。每当怀疑连接故障时(s-转换)或被再次信任为未故障(t-转换)时,故障检测发出通知。可选地,某些关于怀疑等级的信息附着在这些通知上。在sdn中,通常当虚拟端口中的流量模式改变或完全停止时,这意味着网络节点中的应用故障或未做响应,则检测到虚拟端口上的故障。

sdn中的通信端口优选作为用于多种通信的操作系统中的端点。其优选为识别业务或进程的虚拟概念。每个网络节点可包括多个虚拟通信端口,以通过不同应用与不同或相同网络节点通信。

根据第一方面,在所述系统的第一种实现形式中,所述系统是一个系统中的虚拟叠加系统,该一个系统还包括物理系统拓扑以及具有逻辑系统拓扑的软件基础设施。

虚拟叠加网络是建立在另一个网络上的计算机网络。可以认为虚拟叠加网络中的网络节点是由虚拟链路或逻辑链路连接的,例如,通过许多物理链路,每个链路对应底层(物理和/或逻辑)网络中的一个路径。例如,端对端网络和客户端服务器应用等分布式系统为虚拟叠加网络。因此,系统的功能得到了极大的提高,通过逻辑和虚拟实体确保了连接的安全性。

在sdn中,网络可以分成三个不同的层:应用面、控制面和数据面。应用面可包括sdn应用,以显式、直接和编程化地方式将其网络需求和想要的网络行为发送给sdn控制面,即sdn控制器。sdn控制器是逻辑集中式实体,负责:(i)将需求从sdn应用下移到sdn数据面;(ii)向sdn应用提供网络的抽象/虚拟叠加图,sdn控制面。sdn控制器与sdn数据面解耦。sdn数据面例如数据路径是逻辑网络拓扑,由sdn控制器控制。该逻辑表示可包括所有物理资源或其子集,因此,sdn数据面是转发物理系统拓扑上实际数据流量的逻辑网络设备。

可以在sdn控制面标准化网络节点的可编程方式和可配置方式时的通信间使用openflow协议。openflow控制多个交换机的来自控制器的业务流,以集中的方式作为控制器和物理或虚拟网元之间的接口。因此,用于流量和组网管理的sdn控制器,如转发元件,已在本发明sdn中实现。

根据第一方面或第一方面的第一种实现形式,在所述系统的第二种实现形式中,所述本地流控制实体生成的匹配流作为流表项输入到所述系统的转发元件。

所述sdn控制器,如所述转发元件,优选为兼容openflow的网络系统中的集中式实体。openflow是通过网络接入网络交换机或路由器的转发面的通信协议。openflow使sdn控制器通过交换机的网络系统确定网络报文的路径。

根据第一方面或第一方面的前述任一实现形式,在所述系统的第三种实现形式中,所述本地流控制实体生成的匹配流包括所述第一网络节点或所述第二网络节点的目的地址,还包括连接测试报文。

sdn中的每个网络节点具有物理、逻辑和/或虚拟地址,通常该网络节点拥有的每个通信端口具有一个该地址。

例如,该地址可以是介质接入控制地址(mediaaccesscontroladdress,简称macaddress),它是分配给网络端口在物理网络段上进行通信的唯一标识。mac地址作为以太网和wifi等大多数ieee802网络技术的网络地址。逻辑上,mac地址用于osi参考模型的mac协议子层中。

该地址也可以为互联网协议地址(internetprotocoladdress,简称ipaddress),其是分配给参与使用互联网协议进行通信的sdn的每个网络节点的数字标签。ip地址满足两个主要功能:主机或网络接口识别和位置寻址。

流控制实体用于,当确定观测的虚拟通信端口无流量时,基于目的地址检测可能的故障情景。

流控制实体能将流量输入沿着所述第一网络节点和所述第二网络节点之间的路径的各种点,并通过sdn应用控制连接测试报文到达合适的目的侧。

根据第一方面或第一方面的前述任一实现形式,在所述系统的第四种实现形式中,所述流控制实体本地置于第一节点侧,以检测所述第一节点或所述第二节点的虚拟端口故障。该实现方式有助于在所述第一节点和所述第二节点间的路径中检测所述第一节点侧的端口故障。故障检测是来向或去向或两者皆有的。在某些情况下,例如,当所述第一节点是优选流量发生器,且端口故障很可能发生在此处时,其可能利于观测来自所述第一节点的流量。

此外或可选地,所述流控制实体本地置于所述第二节点侧,以检测所述第一节点或所述第二节点的虚拟端口故障。该实现方式有助于在所述第一节点和所述第二节点间的路径中检测所述第二节点侧的端口故障。故障检测是来向或去向或两者皆有的。在某些情况下,例如,当所述第二节点是优选流量获得器,且端口故障很可能发生在此处时,其可能利于观测来自所述第二节点的流量。

此外或可选地,所述流控制实体本地置于所述第一节点和所述第二节点之间的虚拟元件中,以检测所述第一节点或所述第二节点的虚拟端口故障。该实现方式有助于检测由于路径问题发生的端口故障。故障检测是来向或去向或两者皆有的。在某些情况下,例如,当虚拟元件是优选流量分发器,且端口故障很可能发生在此处时,其可能利于观测所述第一节点和所述第二节点之间的路径上的流量。

根据第一方面或第一方面的前述任一实现形式,在所述系统的第五种实现形式中,所述本地流控制实体生成的匹配流包括默认空闲超时值,当所述空闲超时值到期时,检测到虚拟端口故障。

所述空闲超时是与执行的事件相关的网络参数,该事件设计成在预定运行时间结束时发生。启动定时元件以进行数据流量模式的观测。若定时器值大于或等于默认超时值,本地流控制实体假设所述第一节点和所述第二节点间的数据流量丢失。因此,故障检测基于严格的定时规则,在端口故障检测时,所述流控制实体生成通知消息。

可以由系统的用户静态地设置所述默认超时值。若学习程序发生,所述流控制实体轮询匹配流,并识别从所述第一节点到所述第二节点传播的数据流量的最小时间。通过学习普通流量模式和学习空闲超时的峰值,识别最小超时。在检测到最小空闲超时时,故障检测可应用于故障检测业务的第二阶段中的匹配流。

根据第一方面或第一方面的前述任一实现形式,在所述系统的第六种实现形式中,本地流控制实体根据所述系统的具体数据模式调节所述默认空闲超时值。

因此,当匹配流到期时,所述流控制实体调节超时值,并进行学习程序,包括学习应用端口的行为和流量模式。所述流控制实体从而学习流量模式,并可根据特定网络节点间的每个特定场景检测故障。因此,可以检测由于负载状态或异常网络节点从其虚拟通信端口发送数据流量时发生的故障。例如因为网络节点关闭,可以检测到未做响应的应用或检测到没有流量流入。

因此,描述了几种检测虚拟端口上故障的方式,例如,可以检测是否并没有流量发生或是例如可以基于osi层检测网络节点中的某些应用是否丢失其流量。

根据第一方面或第一方面的前述任一实现形式,在所述系统的第七种实现形式中,所述本地流控制实体生成的匹配流用于测量所述第一节点和所述第二节点间的数据交换延迟时间值。因此,可以识别所述第一节点和所述第二节点间的流量模式。因此,所述流控制实体的学习周期在实际故障检测服务之前提供。在该学习周期中,所述流控制实体一直在轮询匹配流,并识别最小超时值,因此,其可以通过学习一般流量模式和识别空闲超时的峰值检测故障。

根据第一方面或第一方面的前述任一实现形式,在所述系统的第八种实现形式中,所述本地流控制实体生成的匹配流用于检测流量损失,或用于在开放系统互联模型(opensysteminterconnection,简称osi)中的特定层上输入所述第一节点和所述第二节点间的连接测试报文。

连接测试报文是由sdn的流控制实体配置的报文。该报文基于osi层配置,应在该层观测端口行为。

优选地,连接测试报文是地址解析协议(addressresolutionprotocol,简称arp)报文。arp是用于将网络层地址解析为链路层地址的电信协议,为多址接入网络的关键功能。arp报文用于检测所述第一节点和所述第二节点间的osi层-2上的连通性。若所述流控制实体未获得对arp的响应,可以假设,例如,因为其中一个节点关闭或忙碌或处于故障模式,所述第一节点和所述第二节点间没有任何流量。

优选地,连接测试报文为ping报文。ping是一个计算机网络管理软件工具,用于测试sdn中网络节点的可达性,并测量将消息从源节点发送到目的节点又发送回去的往返时间。ping报文用于检测所述第一节点和所述第二节点间的osi层-3上的连通性。

优选地,连接测试报文是超文本传输协议(hypertexttransferprotocol,简称http)报文。http报文是用于分布式、协同、超媒体信息系统的应用协议。http报文优选为http请求报文。所述流控制实体基于http检查响应报文检查对http请求的响应。http报文用于检测所述第一节点和所述第二节点间的osi层-4上的连通性。

优选地,连接测试报文包括不同osi层的若干连接测试报文,以检测端口行为以及其在不同osi层上的连通性。从而识别端口故障是否仅发生在特定osi层以及端口故障发生在哪个特定osi层上或观测的应用是否在观测的每个osi层上进行响应。

所述流控制实体用于在沿着该路径的各种点中输入流量,以通过sdn应用控制另一侧报文的到达。因此,它能固定流量已损失的点,能测试各种流量类型和模式。

在故障情况下,由于各种原因,被观测业务本身或应用不会发送数据流量。这是通过所述故障检测业务检测的。由于网络节点仍可能通过其他应用发送管理数据或其他数据流量,因此,观测整个网络端口的状态很重要。这可能是通过低层连接测试报文,例如是通过本发明的匹配流中的ping或arp实现的。

根据第一方面或第一方面的前述任一实现形式,在所述系统的第九种实现形式中,所述本地流控制实体用于使所述物理系统拓扑与具有所述逻辑系统拓扑的所述软件基础设施关联。

因此,调查了由虚拟系统通过上述故障检测方案检测到的,所述系统的物理实体或逻辑实体引起的故障。若该故障仅可因物理或逻辑问题发生,所述流控制实体分别进行通知。

根据第一方面或第一方面的前述任一实现形式,在所述系统的第十种形式中,所述本地流控制实体用于检测所述系统的错误配置。

优选地,错误的配置是阻碍某个业务正常应用的不合适网络参数。例如,配置识别包括设置和维持基线,其定义了sdn或子系统架构、组件和及时在任意点上进行的任意部署。其是通过设计、开发、测试和最终交付来识别、记录以及后续跟踪系统任意部分的变化的基础。其还包括对更改请求、更改计划以及其后续批准或不批准的评估。配置识别是控制对系统设计、硬件、固件、软件和文件的修改的过程。它还包括记录和报告配置项目描述的过程。一旦存在怀疑的问题,可以快速确定基线配置的验证和批准的修改。它还包括硬件和软件的独立复核,以评估与已建立的性能要求、适合的标准以及分配的功能性产品基线的遵从性。

根据第一方面或第一方面的前述任一实现形式,在所述系统的第十一种实现形式中,所述本地流控制实体用于将对象访问方法(objectaccessmethod,简称oam)相关的流量输入到匹配流中。

oam是一种访问方法,旨在存储大量大文件,例如图片。这些大文件可导致以下问题,默认空闲超时可能在这些数据传递之前到期或可能以意外方式阻塞网络资源。通过该oam将匹配流输入后,现在可以由sdn应用控制报文到达其他合适的网络节点。

本发明第二方面提供一种用于软件定义网络系统中检测虚拟端口故障的方法。所述方法包括如下步骤:本地流控制实体生成匹配流,其中,所述流控制实体置于所述系统中的第一网络节点和第二网络节点之间;在所述系统的转发元件中输入所述生成的匹配流;在所述第一节点和所述第二节点之间建立所述匹配流,其中,所述匹配流包括使用默认空闲超时值的连接测试报文;在所述超时值到期时,检测虚拟端口故障。

根据第二方面,在所述方法的第一种实现形式中,所述方法还包括如下步骤:若在接收到连接测试报文时所述超时值未到期,上报所述连接测试报文成功接收。

根据第二方面或第二方面的第一种实现形式,在所述方法的第二种实现形式中,所述系统是一个系统中的虚拟叠加系统,该一个系统还包括物理系统拓扑以及具有逻辑系统拓扑的软件基础设施。

根据第二方面或第二方面的前述任一实现形式,在所述方法的第三种实现形式中,所述流控制实体本地置于第一节点侧,以检测所述第一节点或所述第二节点的虚拟端口故障;和/或所述流控制实体本地置于所述第二节点侧,以检测所述第一节点或所述第二节点的虚拟端口故障;和/或所述流控制实体本地置于所述第一节点和所述第二节点之间的虚拟元件中,以检测所述第一节点或所述第二节点的虚拟端口故障。

根据第二方面或第二方面的前述任一实现形式,在所述方法的第四种实现形式中,在所述空闲超时值到期时,检测到虚拟端口故障。

根据第二方面或第二方面的前述任一实现形式,在所述方法的第五种实现形式中,本地流控制实体根据所述系统的具体数据模式调节所述默认空闲超时值。

根据第二方面的前述任一实现形式,在所述方法的第六种实现形式中,所述本地流控制实体生成的匹配流用于测量所述第一节点和所述第二节点间的数据交换延迟时间值。

根据第二方面或第二方面的前述任一实现形式,在所述方法的第七种实现形式中,所述本地流控制实体生成的匹配流用于检测流量损失,或用于在开放系统互联模型中的特定层上输入所述第一节点和所述第二节点间的连接测试报文。

根据第二方面或第二方面的前述任一实现形式,在所述方法的第八种实现形式中,所述本地流控制实体用于使所述物理系统拓扑与具有所述逻辑系统拓扑的所述软件基础设施关联。

根据第二方面或第二方面的前述任一实现形式,在所述方法的第九种实现形式中,所述本地流控制实体用于将对象访问方法相关的流量输入到匹配流中。

根据第二方面或第二方面的前述任一实现形式,在所述方法的第十种实现形式中,所述本地流控制实体用于检测所述系统的错误配置。

第二方面的所述方法实现了第一方面的所述系统的所有上述优势。

本发明第三方面提供了一种计算机程序产品,用于在计算设备上执行时,实现根据第二方面和其任一实现形式所述的检测虚拟端口故障的方法。

通过所述计算机程序产品实现所述方法,可以实现其所有的优势。

需要注意的是,本申请所描述的所有设备、元件、单元和方式均可在软件或硬件元件或它们的任意组合中实现。本申请中描述的各种实体所执行的步骤以及所描述的各种实体要执行的功能均意在指各个实体用于执行各个步骤和功能。即使在具体实施例的下述描述中,完全由外部实体形成的具体功能或步骤未在执行该具体步骤或功能的该实体的具体细节元件的描述中反映,技术人员应清楚可以在各个软件或硬件元件或它们的任意组合中实现这些方法和功能。

附图说明

结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实现形式,其中:

图1示出了本发明实施例的基础系统;

图2示出了本发明第一具体实施例的系统;

图3示出了本发明第二具体实施例的系统;

图4示出了本发明第三具体实施例的系统;

图5示出了本发明第四具体实施例的系统;

图6示出了本发明实施例的方法流程图。

具体实施方式

图1示出了本发明实施例的基础系统100。系统100是sdn系统100,包括第一网络节点101,其包括至少一个虚拟通信端口102。第一网络节点101可以是dce,例如,调制解调器、集线器、网桥或交换机;或者也可以是dte,例如,数字电话手机、打印机或上位机,例如路由器、工作站或服务器。

sdn系统100还包括第二网络节点103,其包括至少另一个虚拟通信端口104。第二网络节点103可以是dce,例如,调制解调器、集线器、网桥或交换机;或者也可以是dte,例如,数字电话送话器、打印机或上位机,例如路由器、工作站或服务器。

第一网络节点101和所述第二网络节点103用于通过其虚拟通信端口102和104交换数据。虚拟通信端口102和104是sdn100中每个网络节点的专用网络连接。其为网络节点101和103以及网络节点101和103上的应用提供可期望来自于物理通信端口的所有必要性能、可靠性与安全性,但增加了虚拟灵活性。与物理端口不同,虚拟通信端口102和104是根据网络节点101和103的要求分别定制的。带宽可以随意在网络节点101和103间分配,安全和服务质量(qualityofservice,简称qos)参数也可以这样。网络节点101和103分别准确得到其所需资源。第一网络节点101和第二网络节点103可以是sdn100中的虚拟交换机(virtualswitch,简称vs)。

虚拟通信端口102和104为sdn提供一种在无专有网络节点扩展或代理的情况下控制网络节点行为的有力方式。因为sdn100控制网络节点101和103所连接的物理接入点并在虚拟通信端口102和104间分配资源,因此其实际上需要较少的网络节点智能。虚拟端口102和104分别适应网络节点101和103,而不是期望网络节点101和103适应sdn100。每个虚拟通信端口102和104提供了额外的安全线。节点101和103分别限定在其各自的虚拟网络中,并设置访问权限以使节点能力和用户角色进行匹配。基于每个用户的防火墙也使接入权限定制化,避免sdn受到权限扩大和内部威胁。

sdn系统100还包括流控制实体105,本地置于第一节点101和第二节点103之间。流控制实体105用于生成用于虚拟端口故障检测的匹配流106。

本地流控制实体105用于为系统100中的虚拟端口102和104分别配置匹配流。该匹配流可用于来向或去向通信,其得到最高优先级但不进行任何动作。匹配流106包括默认空闲超时值,该值在学习期还可以更改。当匹配流106到期时,生成故障检测消息,通知sdn100检测到虚拟端口故障。

流控制实体105学习流量模式,并可以基于此检测故障。因此,匹配流106中的默认超时值可随着在学习程序中本地流控制实体105发现的数据流量模式变化。例如,在学习阶段,当匹配流106到期而数据流量已经传递时,流控制实体105可调节超时值。该调节重复预定次数,以找到具有该通信场景典型的传播损失的数据传输所需要设置的最小超时值,该传播损失基于应用端口和应用端口的流量模式。

流控制实体105检测由于负载或异常发送端口102和104的流量的故障。流控制实体105基于检测的应用端口故障检测未做响应的应用。例如,在网络节点101和103关闭时,流控制实体105检测没有流量进入。若使用了较好的检测度量标准,粒度仍然良好。

流控制实体105具有全覆盖拓扑图,意味着该实体可以看见第一节点101和第二节点103之间的报文路径,且可以沿着该路径查询报文。流控制实体105可以在沿着第一节点101和第二节点103间的该路径的各种点中输入oam流量,以通过sdn应用控制各自另一侧上报文的到达。流控制实体105能固定流量损失的点,能测试各种流量类型和模式。流控制实体105知道内容管理系统(contentmanagementsystem,简称cms)配置。内容管理系统是计算机应用,允许内容发布、编辑与修改、组织、删除以及来自中央接口的维护。流控制实体105可以检测错误的配置,例如防火墙,或负载均衡器,或动态主机配置协议(dynamichostconfigurationprotocol,简称dhcp),或网络地址转换(networkaddresstranslation,简称nat)和/或域名系统(domainnamesystem,简称dns)的业务配置。

匹配流106包括待观测网络节点101和103的目的地址。目的地址例如可以为openflow端口号。因此检测到了流量损失。此外或可选地,目的地址可以为业务tcp/udp端口号。其可通过云/服务编排配置。采用深度报文检测(deeppacketinspection,简称dpi)的学习机制可应用于检测网络节点101和103后的业务并可自动应用匹配流106。

图2示出了本发明第一具体实施例的系统100。其中,系统100是虚拟叠加系统203。该虚拟叠加系统203覆盖了逻辑拓扑202和物理拓扑201。流控制实体105可以通过发明性端口故障检测业务使物理拓扑201与具有逻辑拓扑202的软件基础设施关联。流控制实体106中的匹配流106用于检测不同故障场景。

匹配流106检测到在特定端口102和104上未得到流量。这是通过默认空闲超时值实现的。在安装完成匹配流106时,启动定时器事件。若在设定的默认时间未在观测的端口102和104上得到流量,匹配流106指示超时值到期。因此,在到达大于或等于超时值的定时器值时,检测到端口故障。

此外,匹配流106用于调查端口在哪个osi层上是非活动的。因此,匹配流106优选地配置至少一个连接测试报文。

第一连接测试报文可包括arp报文。若基于发送arp报文未得到响应,流控制实体105在osi模型的数据链路层2检测端口故障。

另一个连接测试报文可包括ping报文。若基于发送ping报文未得到响应,流控制实体105在osi模型的网络层3检测端口故障。

另一个连接测试报文可包括http报文。若基于发送http请求未得到响应,流控制实体105在osi模型的传输层4检测端口故障。

在优选实施例中,合并连接测试报文。因此,匹配流106包括流控制实体105配置的特定连接测试报文,这些报文包括多个不同的osi模型层报文,以观测连接测试报文之一是否未获得响应。因此,可能会出现由于流控制实体105获得arp响应,端口102和104可在数据链路层2上提供连通性。可能还会出现由于流控制实体105获得的网络节点101和103已对ping进行响应,端口102和104也可在网络层3上提供连通性。可能还会出现由于网络节点101和103未响应http请求,端口102和104不在传输层4上提供连通性。因此,流控制实体105在端口102或端口104中检测端口故障并将该故障指定为层4故障。

图3示出了本发明第二具体实施例的系统100。此处,对物理拓扑201和逻辑拓扑202的组件做更细致的描述。

物理拓扑201可包括第一计算设备300和第二计算设备312。这些计算设备300和312通过物理网络313物理互连,其可以是有线连接或无线连接。计算设备300和312可以是任一物理网络节点,例如上位机、客户端、服务器、手机或网络201中的分布点,例如物理交换机或物理路由器。计算设备300和312可以是如上所述的网络节点101和103。

逻辑拓扑202以管道示出。第一虚拟机(virtualmachine,简称vm)301在第一计算设备300中安装与处理,逻辑上与第二vm311相连,第二vm在第二计算设备312上安装与处理。

多个逻辑和虚拟实例置于拓扑202的第一vm301和第二vm311之间的逻辑路径上。

例如,安装安全组(securitygroup,简称sg)302和310以控制vm301和311以及特定子网之间的流量。与在操作系统(operatingsystem,简称os)级别控制的防火墙不同,sg在网络层控制,独立于在vm301和311运行的os。在sg302和310中,定义了访问控制规则,例如,源ip地址、目的ip地址、端口、协议和/或允许或拒绝等专有动作。

例如,安装虚拟交换机(virtualswitch,简称vs)303和309以控制vm301和311之间的流量。vs303和309是允许vm301和311互相通信并能检查不同报文的软件程序。vs303和309可以理解为如上所述的虚拟端口102和104。

例如,安装虚拟路由器304以在vm301和311间路由数据流量。例如,在vm301和311之间的逻辑路径中提供网络访问控制表(networkaccesscontrollist,简称nacl)305。例如,在vm301和311之间的逻辑路径中提供防火墙即服务(firewallasaservice,简称fwaas)306。例如,在vm301和311之间的逻辑路径中提供负载均衡即服务(loadbalancerasaservice,简称lbaas)307。例如,在vm301和311之间的逻辑路径中提供虚拟专用网(virtualprivatenetwork,简称vpn)307。

实例300到312仅为示例。更多的逻辑和虚拟实例可以在逻辑拓扑202和虚拟叠加系统203中使用。

在虚拟叠加系统203中,参考了实例300到312中的一些。如前所述,使用了第一节点101:指第一计算设备300,第二节点103:指第二计算设备312,虚拟端口102:指第一vs303,虚拟端口104:指第二vs309,流控制实体105和匹配流106。此外,路由器304置于第一节点101和第二节点102间。路由器304配备有fwaas306。

在以下称作第一节点101的第一计算设备300上安装和运行第一vm301。虚拟端口102,即第一vs303,包括sg302和隧道桥(未引用)。

在以下称作第二节点103的第二计算设备312上安装和运行第二vm311。虚拟端口104,即第二vs310,包括lbaas307,也包括隧道桥(未引用)。

现在通过图3的具体实施例描述端口故障检测的示例。首先,本地流控制实体105生成匹配流106,其包括连接测试报文,例如,ping报文以及第二vm311的目的地址。该生成的匹配流106由流控制实体105输入第一vm301。

其次,vm311向流控制实体105生成安装成功消息,指示用于观测来自vm301的入向连接测试报文的规则已在vm311的第二节点103中安装。

再次,连接测试包本身输入vm301的第一节点101。

最后,流控制实体105检测第二节点103上的vm311是否已响应第一节点101上的vm301的连接测试报文。若已将ping报文作为连接测试报文,ping响应应由本地流控制实体105检测,并应生成通知消息。

图4示出了本发明第三具体实施例的系统100。与图3相比,图4示出了逻辑和虚拟叠加系统203而不是相应实例中的目的地址。为避免不必要的重复,以下只描述图3和图4间的差异。以下ipv4地址仅为目的地址的示例。此外或可选地,可使用符合ipv6的目的地址或mac地址。

路由器304与wan虚拟相连通过ipv4地址172.16.150.31访问。路由器304由vs303通过ipv4地址10.0.0.1虚拟访问。vm301也由vs303通过ipv4地址10.0.0.11访问。

路由器304还与vs309虚拟相连通过ipv4地址10.30.0.1访问。vm311也由vs309通过ipv4地址10.30.0.21虚拟访问。

交换机vs303和vs309的智能顶部可以由流控制实体105管理,从而受益于相同的故障检测机制。可通过故障检测以及匹配流106的连接测试报文,测量延时以及检测第一节点101和第二节点102之间的所有物理路径。此外,可引入可插拔报警机制。

此外,现在可以轻易检测到错误的配置。特别地,可通过发明性故障检测机制检测fwaas306、lbaas307、dhcp、nat和/或dns的业务配置。同时,也检测了sg和路由器的错误配置。

图5示出了本发明第四具体实施例的系统100。其中,所示系统100符合openflow标准。其中,本地流控制实体105生成的匹配流106作为流表项502输入openflow系统100的转发元件501中。在虚拟叠加系统203的管理程序实例中得到本地流控制实体105。第一节点101和第二节点103分别包括虚拟端口102和104,其故障检测如下。

在第一节点101上安装和运行第一vm301。在第二节点103上安装和运行第二vm311。首先,本地流控制实体105生成匹配流106,其包括连接测试报文,例如arp报文以及第二vm311的目的地址。该生成的匹配流106由流控制实体105输入到第一vm301中。该匹配流106的流期满和/或流重配置作为流表项502提供给转发元件501。

其次,vm311向流控制实体105生成安装成功消息,指示用于观测来自vm301的入向连接测试报文的规则已在vm311的第二节点103中安装。

再次,连接测试包本身输入vm301的第一节点101。

最后,流控制实体105检测第二节点103上的vm311是否已响应第一节点101上的vm301的连接测试报文。若已将arp报文作为连接测试报文,arp响应应由本地流控制实体105检测,并应生成通知消息。若在获得arp响应之前,流到期,则转发元件501生成各自的通知。

图6示出了本发明实施例中一种用于软件定义网络系统100中检测虚拟端口故障的方法1000。在方法1000的第一步骤1001中,本地流控制实体105生成匹配流106,该实体设置于系统100的第一网络节点101和第二网络节点103之间。在第二步骤1002中,生成的匹配流106输入系统100的转发元件501中。在第三步骤1003中,在第一节点101和第二节点103之间建立匹配流106,其中,匹配流106包括使用默认空闲超时值的连接测试报文。在第四步骤1004中,当超时值到期时,检测到虚拟端口故障。

可选地,在第五步骤1005(图6中的虚线)中,若在接收到连接测试报文时所述超时值未到期,上报所述连接测试报文成功接收。

总之,通过提出的系统100和方法1000,本发明提供利用空闲超时机制检测虚拟端口故障和/或负载状态的故障检测机制。该故障检测业务一般均为vs所支持,容易与本地流控制实体105集成。该方法具有非侵入性,因为流控制实体105安装了无进一步动作的匹配流106,流控制实体105学习通过不同超时值调节超时至最小超时值。针对学习程序,观测了流量模式和应用端口。由于问题都定位在最接近于虚拟端口的地方而非中心,因此可以得到最佳故障检测粒度。

所有所描述实施例中的流控制实体105都可学习第一节点101和第二节点103之间的平均流量模式。基于平均流量模式为该实体配置最佳粒度超时值。

若匹配流106到期,流控制实体105检测到端口故障,其可以是来向或去向或两者皆是。可以提供一种安全的措施以重新设置定时器,并在生成关于端口故障检测的通知/报告之前等待第二次到期。

随后,流控制实体105用于通知用户已检测到端口故障。此外,可设置自动补救和/或流控制实体105可以,例如,通过openflow标准化程序重路由故障检测的流量。

故障检测的结果可触发本地或来自流控制实体105的自动补救。结果可以是,若检测到应用故障模式,则阻塞所有端口流量。此外或可选地,阻塞所有流量可能会触发上层机制,例如,lbaas307,以使流量转向一个不同的网络节点。

本发明构思描述了各种在虚拟端口102和104上检测故障的方式。可能会检测到观测的端口102和104上未得到任何流量,也可以,例如,根据基于osi层的连接测试报文检测到某些应用流量损失。

在故障情况下,由于各种原因,被观测业务本身或应用不会发送数据流量。这是通过所述故障检测业务检测的。由于网络节点101和103仍可能通过其他应用发送管理数据或其他数据流量,因此,检测完整端口状态很重要。这可能是通过低层连接测试报文,例如是通过本发明的匹配流106中的ping或arp实现的。

为了从多个应用中识别出故障应用,用户可能要知道实际上有什么应用和/或业务正在特定端口102和104上运行。因此,可以通过dpi整合设置要匹配的流。

若检测到流量损失,可以假设网络节点101和103中的主要业务流是应用的数据流量。当匹配流106到期时,可以开始各种连接测试报文的输入,检查网络节点101和103的特定端口102和104,以检测哪个特定应用故障。

应注意的是,系统100不限于两个网络节点101和103。更多的网络节点或中间网络节点可以应用于系统100中。

已经结合作为实例的不同实施例以及实施方案描述了本发明。但本领域技术人员通过实践所请发明,研究附图、本公开以及独立权项,能够理解并获得其他变体。在权利要求以及描述中,术语“包括”不排除其他元件或步骤,且“一个”并不排除复数可能。单个元件或其它单元可满足权利要求书中所叙述的若干实体或项目的功能。在仅凭某些措施被记载在相互不同的从属权利要求书中这个单纯的事实并不意味着这些措施的结合不能在有利的实现方式中使用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1