SDN网络的可扩缩应用级别监视的制作方法

文档序号:18548358发布日期:2019-08-27 21:54阅读:192来源:国知局
本发明的实施例涉及网络中的应用级别监视的领域。更具体地,实施例涉及用于软件定义联网(sdn)网络中的可扩缩应用级别监视的方法和装置。
背景技术
::软件定义联网(sdn)是一种其中数据平面功能和控制平面功能被抽象和分离,从而实现网络中更动态和可配置的网络设备的网络架构。网络可以由sdn控制器配置和管理,该sdn控制器管理网络的控制平面。sdn控制器可以是集中式或分散式的,并且实现网络的控制平面功能,并且为应用层功能提供接口以影响sdn网络的数据平面。数据平面中的网络设备可以被称为数据平面节点。数据平面节点由sdn控制器和应用配置,以实现数据业务的转发和处理。在一些实施例中,数据平面功能在单个网络设备中实现,而在其他实施例中,数据平面功能可以分布在多个网络设备上。数据平面节点可以使用流控制协议与sdn控制器通信,并且可以经由一组流控制表实现转发和数据业务处理。流控制协议可以是由开放联网基金会或类似协议开发的openflow协议。sdn架构可以与openflow架构或类似的软件定义的联网架构(诸如开放网络环境、软件定义的广域网(sd-wan)或类似架构)一致。这些架构利用集中式系统进行应用层监视。应用经由sdn控制器与数据平面节点连接。与应用层监视相关的所有业务都通过sdn控制器到达正在实施监视的应用层。因此,有来自整个sdn网络、被引导到sdn控制器的大量业务,该sdn控制器需要大量的带宽分配和计算资源。技术实现要素:在一个实施例中,一种方法由网络设备实现,用于通过将对虚拟网络功能(vnf)的监视分布到软件定义联网(sdn)网络中的数据平面节点(dpn)来减少sdn控制器的控制器所需的带宽和计算资源。该方法包括从sdn控制器接收监视vnf的监视请求,从sdn控制器接收用于vnf的字节序列,以及通过将字节序列与来自vnf的监视响应消息进行匹配来生成用于监视vnf的流表条目。在另一实施例中,一种网络设备被配置为执行通过将对vnf的监视分布到sdn网络中的dpn来以减少sdn控制器的控制器所需的带宽和计算资源的方法,该网络设备包括其中存储有应用监视器的非暂时性计算机可读介质,以及耦合到非暂时性计算机可读介质的处理器。处理器执行应用监视器。应用监视器从sdn控制器接收监视vnf的监视请求,从sdn控制器接收用于vnf的字节序列,并通过将字节序列与来自vnf的监视响应消息进行匹配来生成用于监视vnf的流表条目。在另一实施例中,计算设备用作网络节点。计算设备执行多个虚拟机以实现网络功能虚拟化,其中多个虚拟机中的虚拟机被配置为执行通过将对虚拟网络功能vnf的监视分布到sdn网络中的dpn来减少sdn控制器的控制器所需的带宽和计算资源的方法。该计算设备包括其中存储有应用监视器的非暂时性计算机可读介质,以及耦合到非暂时性计算机可读介质的处理器。处理器执行多个虚拟机中的虚拟机。虚拟机执行应用监视器,应用监视器从sdn控制器接收监视vnf的监视请求,从sdn控制器接收用于vnf的字节序列,并通过将字节序列与来自vnf的监视响应消息进行匹配来生成用于监视vnf的流表条目。在一个实施例中,控制平面设备实现sdn网络的控制平面,该sdn网络包括实现该sdn网络的数据平面的多个网络设备,该控制平面设备被配置为执行通过将对vnf的监视分布到sdn网络中的dpn来减少sdn控制器的控制器所需的带宽和计算资源的方法。该控制平面设备包括其中存储有应用监视器的非暂时性计算机可读介质,以及耦合到非暂时性计算机可读介质的处理器。处理器执行应用监视器。应用监视器向dpn发送针对vnf的初始监视请求,从dpn接收监视响应消息,并将用于vnf的字节序列发送到dpn,以使dpn能够识别来自vnf的监视响应消息,以转发给应用监视器。附图说明通过参考用于说明本发明实施例的以下描述和附图,可以最好地理解本发明。在附图中:图1是软件定义联网(sdn)网络中的服务链的一个实施例的图。图2是sdn网络中的数据平面节点(dpn)的连接的一个实施例的图。图3是用于sdn网络中的主动监视的消息收发序列的一个实施例的图。图4是用于通过dpn监视虚拟网络功能的过程的一个实施例的图。图5是用于通过dpn监视虚拟网络功能的过程的一个实施例的图,其中接收到意外响应。图6是用于应用层监视的流表配置的过程的一个实施例的图。图7是用于配置dpn进行应用层监视的过程的一个实施例的流程图。图8是用于由控制器配置dpn的过程的一个实施例的流程图。图9是用于发送应用层消息的过程的一个实施例的流程图。图10是执行响应处理程序和响应匹配模块的物理交换机的一个实施例的图。图11是sdn控制器和dpn的应用层监视的一个实施例的图。图12是响应卸载的一个实施例的图。图13是示例测试过程的一个实施例的图。图14是响应消耗的一个实施例的图。图15是统计信息收集过程的一个实施例的图。图16a示出了根据本发明的一些实施例的示例性网络内的网络设备(nd)之间的连接性、以及nd的三个示例性实现方式。图16b示出了根据本发明的一些实施例的实现专用网络设备的示例性方式。图16c示出了根据本发明的一些实施例的可以耦合虚拟网络元件(vne)的各种示例性方式。图16d示出了根据本发明的一些实施例的在每个nd上具有单个网络元件(ne)的网络,并且在该直接方法中将传统的分布式方法(通常由传统路由器使用)与用于保持可达性和转发信息的集中式方法(也被称为网络控制)进行对比。图16e示出了根据本发明的一些实施例的其中每个nd实现单个ne的简单情况,但是集中控制平面已经将不同nd中的多个ne抽象为(以呈现)虚拟网络之一中的单个ne。图16f示出了根据本发明的一些实施例的在不同nd上实现并且彼此耦合的多个vne的情况,并且其中集中控制平面已经抽象出这些多个vne,使得它们在虚拟网络之一中表现为单个vne。图17示出了根据本发明的一些实施例的具有集中控制平面(ccp)软件1750的通用控制平面设备。具体实施方式以下描述描述了用于监视网络中的应用层功能的方法和装置。更具体地,实施例提供了用于软件定义联网(sdn)网络中的可扩缩应用级别监视的方法和装置。在以下描述中,阐述了许多具体细节,诸如逻辑实现方式、操作码、指定操作数的手段、资源划分/共享/复制实现方式、系统组件的类型和相互关系、以及逻辑划分/集成选择,以便更全面地了解本发明。然而,本领域技术人员将理解,可以在没有这些具体细节的情况下实践本发明。在其他实例中,没有详细示出控制结构、门级电路和完整软件指令序列,以免模糊本发明。通过所包括的描述,本领域普通技术人员将能够实现适合的功能而无需过多的实验。说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以不必包括特定的特征、结构或特性。而且,这些短语不一定是指同一实施例。此外,当结合实施例描述特定特征、结构或特性时,提出本领域技术人员了解要结合不论是否明确描述的其他实施例实现这类特征、结构或特性。带括号的文本和具有虚线边框的方框(例如,大破折号、小破折号、点划线和点)可以在本文中用于说明向本发明的实施例添加附加特征的可选操作。然而,这种标记不应被理解为这些是唯一的选项或可选操作,和/或具有实线边框的方框在本发明的某些实施例中不是可选的。在以下描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应该理解,这些术语并不旨在作为彼此的同义词。“耦合”用于指示可以或可以不彼此直接物理或电接触、彼此协作或相互交互的两个或更多个元件。“连接”用于指示在彼此耦合的两个或更多个元件之间的通信的建立。电子设备使用机器可读介质(也被称为计算机可读介质)存储并(在内部和/或通过网络与其他电子设备)发送代码(由软件指令组成,并且有时被称为计算机程序代码或计算机程序)和/或数据,该机器可读介质例如是机器可读存储介质(例如,磁盘、光盘、只读存储器(rom)、闪存设备、相变存储器)和机器可读传输介质(也被称为载体)(例如,电、光、无线电、声学或其他形式的传播信号--诸如载波、红外信号)。因此,电子设备(例如,计算机)包括硬件和软件,诸如一组一个或多个处理器,其耦合到一个或多个机器可读存储介质以存储用于在该组处理器上执行的代码和/或存储数据。例如,电子设备可以包括包含代码的非易失性存储器,因为即使当电子设备关闭时(当电源被移除时),非易失性存储器也可以保存代码/数据,并且当电子设备开启时,通常将要由该电子设备的处理器执行的代码的一部分从较慢的非易失性存储器复制到该电子设备的易失性存储器(例如,动态随机存取存储器(dram)、静态随机存取存储器(sram))中。典型的电子设备还包括一组或一个或多个物理网络接口,以与其他电子设备建立网络连接(以使用传播信号发送和/或接收代码和/或数据)。可以使用软件、固件和/或硬件的不同组合来实现本发明的实施例的一个或多个部分。网络设备(nd)是通信地互连网络上的其他电子设备(例如,其他网络设备、端用户设备)的电子设备。一些网络设备是“多服务网络设备”,其提供对多个联网功能(例如,路由、桥接、交换、第2层聚合、会话边界控制、服务质量和/或订户管理)的支持、和/或提供对多种应用服务(例如,数据、语音和视频)的支持。概述可以使用流控制协议来实现软件定义联网(sdn)网络,以使控制器能够配置sdn网络的数据平面节点的转发过程。在一个实施例中,sdn可以基于openflow协议或用于sdn网络的数据平面的编程访问的类似协议。数据平面中的节点被称为dpn(数据平面节点)。这些dpn由被称为控制器的不同节点控制和配置。控制器和dpn通常是物理上不同的节点。一些sdn架构基于开放联网标准(例如白盒dpn)。这意味着该解决方案应该是基于标准的,并且可以与其他sdn架构互操作。openflow协议是能够通过控制器控制dpn的这种开放标准的示例。在其他实施例中,可以使用专有流控制和sdn架构,或者可以与基于开放标准的sdn架构组件结合使用。sdn网络支持服务链(chaining)。服务链是其中数据业务由通常跨多个网络设备的一组功能处理的过程。这些服务有时由互联网服务提供商和类似的网络运营商应用,以执行管理和计费(accounting)服务,如认证、防火墙和类似服务。这些服务或功能可以通过经由虚拟网络功能(vnf)虚拟化实现。例如,服务链可以用于处理订户业务,使得业务通过实现为vnf节点的预定义服务序列来引导。vnf节点提供不同的功能,诸如内容缓存、内容过滤、安全性和类似功能。图1是sdn网络中的服务链的一个示例的图。在该示例实施例中,订户业务经历深度分组检测(dpi)、安全性处理和统一资源定位符(url)过滤。可以实现这些服务以实施父母控制处理器或类似的过程。在该示例中,这些服务中的每一个都由vnf节点实现。可以在任意数量的vnf节点上实现或分布服务。在该示例中,订户业务1遍历已由sdn控制器配置的dpn。dpn将用户业务1发送到每个vnf进行处理。在该示例中,订户业务2可能不受制于相同的服务链,因此,sdn控制器尚未配置dpn以将该业务发送到服务链。使用sdn来实现服务链允许基于高度精细的订户简档和应用简档信息来引导业务。它还允许运营商快速并容易地为订户引入新服务/vnf。可以认为基于sdn的服务链实现包括传输域和服务域。传输域可以包括至少一个dpn,其负责将订户业务转发到每个服务/vnf。传输域也可以分布在多个dpn上。服务域包括实现服务链功能的服务/vnf节点。图2是实现服务链的sdn中的dpn连接的一个实施例的图。服务节点(即,vnf节点)通常使用虚拟可扩展lan(vxlan)或通过类似的网络配置经由虚拟局域网(vlan)连接到sdn传输域。与dpn(其为传输域的一部分并且可以被认为是稳健的第2层交换机)不同,vnf节点更类似于服务器。如图2中所示,dpn可以连接到一组vnf以及控制器和订户节点。在该示例中,dpn经由vlan连接到一组vnf节点,经由vxlan连接到订户节点,并且经由sdn连接到控制器。如本文所使用,‘一组’是指包括一项的任何正整数个项。为了检测dpn之间的链路故障,sdn控制器采用与用于检测第2层/以太网交换机之间的链路故障的技术类似的技术(因为dpn类似于第2层/以太网交换机)。例如,这些方法包括使用链路层发现协议(lldp)或双向转发检测(bfd)协议。然而,这些技术不足以监视vnf节点。这是因为vnf节点类似于服务器而不是第2层/以太网交换机。作为替代,在应用层监视vnf节点。对于应用层,监视需要不同的技术、过程和协议来检查这些vnf节点的连接性和可用性。在一个示例实施例中,可以采用开放标准应用层管理器,例如,tacker是通用vnf管理器(vnfm),以及结合openflow实现的网络功能虚拟化(nfv)编排器(nfvo)部署和操作像openstack这样的nfv基础架构平台上的网络服务和vnf。tacker的功能之一是对部署的vnf的状况(health)监视。tacker监视框架为nfv运营商和vnf供应商提供编写可插拔驱动程序的能力,该驱动程序监视其部署和管理的vnf实体的各种状态条件。然而,tacker监视框架仅实现简单的监视,并与外部监视系统集成以进行高级监视。在一些实施例中,本文呈现的过程可以用作与tacker集成的外部监视系统。tacker中定义的简单监视包括查验(ping)给定服务的管理ip地址。nfv欧洲电信标准协会(etsi)工业规范组(isg)已经制定并批准了关于主动监视的报告,该报告提出了针对nfv的主动监视框架。该框架的关键元件或组件是(1)测试控制器,其保持虚拟测试代理的目录,以及(2)虚拟测试代理(vta),其类似于传统的物理测试代理,该物理测试代理在基于nfv的网络中提供网络可见性和容错性。与物理上活跃的测试代理不同,该测试代理是虚拟实体,从而它可以在nfv环境中有效。另一个组件是测试结果分析模块(tram),其中该模块从虚拟测试代理获得测试结果,随后将处理后的结果提供给oss/bss中的呈现模块。图3是用于建立主动监视的过程的一个实施例的图。实施例与该过程一致。在此过程中,操作支持子系统/业务支持子系统(oss/bss)通过向测试控制器发送测试指令集来发起该过程。测试控制器可以从nfv编排器(nfvo)获得网络状态记录(nsr)并预配置vta。nfvo在虚拟网络功能管理器(vnfm)处对vta的预配置做出响应。vnfm生成发送到虚拟化基础架构管理器(vim)的分配资源请求。vim相应地分配资源。然后,vim确认vnfm的资源分配。测试控制器启动nfv基础架构(nfvi)统计信息收集,并且nfvo启动nfvi状态收集。测试控制器将测试开始的指令发送到vta,并在预定时间后结束nfvi统计信息收集。nfvo向tram和v1m发送停止nfvi统计信息收集消息。然后,测试控制器可以向vim发送获取nfvi统计消息,vim将nfvi统计信息报告给tram。vta可以在此时向tram发送测试结果报告。在一些实施例中,控制器生成监视请求分组并消耗监视响应分组。这些监视消息(请求和响应消息)消耗控制器和dpn之间的带宽。这些消息还导致控制器处的计算资源消耗。在特定场景下情况进一步复杂化。第一场景是当监视大量vnf时,这会导致扩缩问题。这是因为需要基于每个vnf生成(和消耗)监视消息。第二场景是需要快速检测到vnf故障,这是延迟问题。这是因为,为了更快地检测,需要以高速率发送监视消息。通常在(控制器和dpn之间的)带宽消耗和检测vnf故障的时间之间存在折衷。实施例克服了这些技术限制。实施例与etsi报告的术语一致,其中sdn控制器用作测试控制器,虚拟测试代理与dpn共同定位,并且测试结果分析模块(tram)由sdn控制器提供。虚拟测试代理(vta)与dpn(如开放虚拟交换机(ovs)/云sdn交换机(css))和sdn控制器共同定位。sdn控制器可以用作tram,然而,可以在sdn控制器上构建其他应用以充当tram。为了优化vnf活跃性监视,通过观察为了监视vnf节点的活跃性,经由dpn向vnf节点发出由sdn控制器生成的应用级别监视分组来有利于实施例。发送到vnf节点的这些定期请求通常是相同的。类似地,来自vnf节点的对应响应通常是相同的。此外,vnf节点通常是稳定的并且按预期工作。因此,当针对这些典型场景(即,vnf正按预期工作的情况)减少控制器参与时,将显著减少资源(计算和带宽)使用。具体地,这些资源的减少包括控制器和dpn之间的网络资源/带宽使用的减少,以及控制器处的处理器(例如,中央处理单元(cpu))使用的减少。为了基于这些见解获得优化,实施例将控制器配置为将监视分组的周期性生成委托给dpn。控制器以使得dpn可以在没有控制器参与的情况下周期性地生成(相同的)监视请求分组的方式对dpn进行编程。此外,控制器委托通过dpn自身消耗来自vnf节点的应用级监视响应消息。控制器对dpn进行编程,使得每个dpn在本地消耗来自vnf的预期监视响应(而不是将所接收的响应发送到控制器)。控制器基于来自vnf节点的初始成功响应,向dpn(针对给定的vnf节点)提供用于预期监视响应消息的字节序列(具有偏移)。通过将监视响应消息与字节序列进行匹配,dpn消耗应用级别协议响应消息(例如,域名服务器(dns)响应代码)而无需实现更高级别的协议。利用该配置,当响应消息与预期字节序列不匹配时或者在配置的时间量内未接收到预期监视响应消息时,通知控制器。该过程和系统允许控制器仅接收状态改变信息(从应用启动到应用关闭)。图4是用于通过dpn监视虚拟网络功能的过程的一个实施例的图。所示过程在图4中以简化表示示出,其中sdn控制器配置dpn以监视特定vnf。在该示例实施例中,控制器发送(1)初始监视请求以开始监视vnf。初始监视请求可以是任何类型的消息,并且可以配置dpn以向vnf发送监视请求消息。在下文中进一步描述了这种配置的具体示例。dpn可以转发从vnf接收的初始监视响应(2)。在一个实施例中,控制器可以分析初始监视响应以确定可以用于识别指示vnf正在正常操作的响应消息的字节序列(其可以包括偏移)。在其他实施例中,可以处理多个监视响应以确定字节序列。然后,该字节序列可用于完成dpn的配置(3),以使dpn能够识别指示此后正确操作的响应消息。然后,dpn继续发送监视请求消息并丢弃来自vnf的指示正确操作的响应。环回请求可以用作提示dpn继续发送监视请求消息的机制。图5是用于由dpn监视虚拟网络功能的过程的一个实施例的图,其中接收到意外响应。当vnf节点响应:vnf正在正常操作时,监视响应消息通常针对该vnf节点是相同的。在这种情况下,一旦控制器识别出来自vnf节点的成功响应,dpn就可以被配置为在本地消耗后续响应。然而,在接收到与预期的字节序列不匹配的响应的情况下,该响应可能正指示vnf未正常操作。换句话说,当响应请求已经发送到故障vnf时,(1)从vnf接收到意外响应,(2)或者响应超时。在任何一种情况下,dpn都会向控制器发送意外响应或超时通知(3)。由于实施例仅依赖于dpn处的传入响应的字节匹配,因此它允许vnf的监视足够通用以处理任何类型的监视协议。特别地,只要控制器可以解析这类协议响应,就可以处理诸如arp、icmp、dns等的不同协议,而不需要用于dpn处的协议的协议解析器。该过程和系统提供了超过现有技术的优点。无需单独的测试代理虚拟机即可实现虚拟测试代理的功能。这在需要基础架构组件占用空间较小的微数据中心场景中尤其有用。由于始终在计算主机设置阶段创建dpn,因此没有虚拟测试代理的附加部署步骤。应用/更高级别监视协议可以以有效的方式在基于sdn的网络中使用,而无需在dpn中实现它们。通过提供较新版本的控制器(实现较新的协议),可以在网络中引入较新的监视协议,而无需更新dpn。由于每个dpn仅参与监视与其端口连接的vnf节点,因此该解决方案可以使用大量数据平面交换机和vnf以非常高的规模工作。由于检测vnf活跃性的工作被分布到多个dpn节点(而不是在集中控制器节点处),因此可以从dpn以更高的频率发送监视请求分组,而不会对控制器节点产生大的影响。以高频率发送监视分组允许更快地检测链路故障并因此允许更快的拓扑收敛。将参考其他附图的示例性实施例描述流程图中的操作。然而,应该理解,流程图的操作可以由本发明的除参考其他附图所讨论的实施例之外的实施例执行,并且参考这些其他附图讨论的本发明的实施例可以执行与参考所述流程图讨论的那些操作不同的操作。图6是用于配置dpn进行应用层监视的过程的一个实施例的流程图。该流程图详细说明了dpn实施的具体过程。dpn从控制器接收监视请求(方框601)。监视请求可以识别vnf并提供用于生成监视请求消息并向vnf发送监视请求消息的配置信息。另外,配置信息可以指示从vnf向控制器发送第一响应消息以进行分析(方框603)。在其他实施例中,配置信息可以提供用于识别不需要发送到控制器的响应消息的信息。在提供初始响应消息之后dpn可以接收其他配置信息,其中其他配置信息识别字节序列(和偏移信息)或类似的关于响应消息的信息,以使dpn能够识别指示vnf正在正确操作的响应消息(方框605)。可以有被识别且定义的任何数量的偏移和字节序列对。这些可以在开始监测后同时或以任何类型接收。dpn可以配置流表或类似的分组处理基础架构,以使得能够识别与字节序列匹配的响应消息或者被提供以识别指示vnf的正确操作的响应消息的类似识别信息。然后,dpn可以通过向vnf发送请求消息并将响应消息与匹配标准匹配以开始监视vnf。图7是用于由控制器配置dpn的过程的一个实施例的流程图。类似地,控制器的操作开始于将初始监视请求消息发送到将监视指定vpn的dpn(方框701)。作为响应,dpn可以发送来自vpn的初始响应消息(方框703)。控制器或相关应用可以分析响应消息或一组初始响应消息以识别字节序列和偏移或类似的识别信息,以使得能够识别指示发送消息的vnf的正常操作的响应消息。呈例如字节序列和偏移的形式的该识别信息被发送到dpn,以配置dpn识别并丢弃来自vnf的指示正常或正确操作的这些响应消息(方框705)。图8是用于发送应用层消息的过程的一个实施例的流程图。曾被配置为识别来自vnf的指示正常操作的响应消息的dpn可以以由控制器根据预期的故障检测的延迟的级别所配置的任何速率向vnf发送请求消息(方框801)。然后,dpn从vnf接收响应消息(方框803)。响应消息被处理以确定其是否与控制器提供的字节序列和偏移、或者使dpn能够识别指示vnf的正确操作的消息的类似匹配标准匹配(方框805)。如果消息与标准匹配,则该过程可以收集与响应消息有关的数据、以及与控制器配置的vnf操作相关的消息中的任何信息(方框807)。然后,该过程可以通过向vnf发送另一个请求来重新启动,或者每个请求和响应处理可以被独立地发起和处理。在所接收的消息与标准不匹配的情况下,则该过程可以将所接收的消息转发到控制器以进行进一步处理(方框809)。在一些实施例中,还可以处理转发的消息以用于相关数据收集(方框807)。控制器可以查询dpn以获取该收集的信息。给出该示例以匹配单个标准(例如,字节序列和偏移),然而,可以检查任何数量的标准(例如,多个字节序列和偏移对)。示例实施例和变型该过程和系统可以以各种配置实现,并且以下实施例是作为示例而非限制提供的。本领域技术人员将理解,与本文描述的原理和结构一致的其他变型和配置也是可能的。根据本质上相同的监视请求消息来描述实施例。然而,监视器请求生成过程可以扩展为支持本质上更复杂的监视器请求生成过程。实施例可以包括若干模块,其具有关于每个组件及其功能的细节,如下所述。在一个实施例中,组件包括请求复制模块。dpn上的该模块在连接到vnf节点实例的dpn端口上复制、更新并发送监视请求分组。它使用group表或类似的流表结构(例如,openflow中定义的组表)来执行这些功能。从组件映射的角度来看,该组件将是vta(虚拟测试代理)组件的一部分。dpn可以连接到不同类型的vnf节点,诸如网络地址转换(nat)、防火墙和类似的功能或服务。这些vnf节点中的每一个可以具有不同的监视协议。因此,为每种类型的vnf节点创建了不同的组表条目。然而,为了便于理解,在假设单一类型的vnf节点的情况下描述实施例。控制器安装用于创建监视器请求分组的副本的组条目。这可以使用具有多个动作存储桶的openflow协议的group_all构造来实现。为每个要在其上发送监视器请求分组的openflow端口创建一个动作存储桶。创建一个额外的存储桶用于向请求环回模块发送分组,如下文进一步描述。在对应端口上发送分组之前,每个动作存储桶都根据对应的vnf节点实例更新监视器请求首部字段。该模块从控制器(在过程开始期间)以及从请求循环模块接收分组。图9是作为示例提供的用于应用层监视的流表配置的一个实施例的图。实施例中的另一模块可以是响应处理器模块。在dpn上实现的该模块处理从vnf节点接收的监视响应消息。该模块可以经由流表实现,并包含流条目以识别来自已知vnf节点的监视响应消息。从组件映射的角度来看,该组件将是架构的vta(虚拟测试代理)组件的一部分。每个流条目包含基于互联网协议(ip)首部的匹配模式,其唯一地识别来自vnf节点的监视响应消息、将分组推送(即,转发)到控制器的动作、以及cookie值(如由openflow规范定义的cookie)以唯一识别流条目。该条目由下面描述的响应匹配模块使用以匹配预期响应。该流表条目还可以定义不活跃超时值,以确定何时没有及时地从vnf接收到响应。以下示例表条目(表i)示出了来自vnf实例的监视响应分组的匹配,其具有ip地址10.1.1.1,其中dns服务在端口53(dns协议)上运行。该条目具有5秒的不活跃超时值。表i实施例还可以包括响应解析器模块。该模块可以是控制器所期望的,并解析来自vnf节点的监视器响应消息。该模块实现了所需的协议解析器,以区分成功响应和失败响应。从组件映射角度来看,该组件将成为架构的vta(虚拟测试代理)组件的一部分。该模块对于未定义或众所周知(例如,未在openflow规范中定义)的协议是必需的,因此不能被dpn解析。协议的示例包括dns响应代码。一旦模块确定响应成功,并且来自vnf的后续响应将类似/相同,则响应解析器模块识别可用于将响应指示为成功的字节序列和偏移。实施例还包括响应匹配模块。该模块由dpn执行,并使用响应解析器模块所识别的字节匹配来匹配来自vnf节点的预期监视器响应消息。从组件映射的角度来看,该组件将是架构的vta(虚拟测试代理)组件的一部分。响应处理器模块(如上所述)定义了经由packet-in消息(例如,如openflow协议所定义)向控制器推送(即,转发)所有监视器响应消息的动作。从dpn到控制器的所有这些消息都通过该响应匹配模块。当packet-in消息(用于监视器响应消息)与预期的字节序列匹配时,该模块丢弃该分组,而不是向控制器发送该分组。该模块可以实现为openflow管线之外的逻辑表。该模块可以包括具有匹配标准(以匹配监视器响应消息)和预期字节序列的流表或条目组。匹配标准包括表id和cookie字段。这两个字段都出现在packet-in消息中。该表还可以包括预期的响应--这标注了预期的字节序列。这可以表示为正则表达式,诸如perl兼容正则表达式(pcre)表达式或简单字节匹配,其中使用分组字节偏移、要匹配的字节数、预期字节。这种表条目的示例如下所示。表ii主要提供两种类型的响应匹配来满足基于软件和硬件的dpn。基于软件的dpn(诸如ovs)可以支持pcre类型的匹配。然而,基于硬件的dpn可能无法支持基于pcre的匹配。在这种情况下,可以使用简单的字节匹配。dpn及其组件可以被构造为基于软件的dpn、基于硬件的dpn或其任何组合。dpn中的基于软件的响应匹配模块可以被配置为使用可以被指定用于匹配模块的复杂字符串模式匹配规则。可以使用任何软件过程以有效的方式实现字符串模式匹配。在这种情况下,可以基于类型和值指定字节匹配。类型可以是指定要完成的匹配类型的字段。在基于软件的dpn的情况下,将其设置为“pcre”。值字段与类型字段相关联,并被设置为与成功响应消息匹配的正则表达式。在dpn中基于硬件的响应匹配模块的情况下,可以最小化或避免指定复杂的字符串匹配规则。在这种情况下,使用类型、偏移、自开头或结尾的偏移、以及要匹配的字节数来指定字节匹配。类型字段指定要完成的匹配类型。在基于硬件的dpn的情况下,可以将其设置为降低的复杂度。偏移字段是包括字节偏移的数字字段,其指示响应消息中匹配应该从哪里开始。自结尾的偏移字段指定是应从响应消息的开头还是结尾计算偏移。在许多监视协议(诸如http)中,vnf节点可以包括具有不同长度的协议首部。在这种情况下,自分组结尾的偏移对于识别成功的响应信息更有用。该字段可以被构造成保持值真(1)或假(0)中的一个。在一些实施例中,匹配字节数字段是数字字段,其指定响应消息中(从偏移)匹配的字节数。值字段可以是字节数组,其指定响应消息中应该匹配的、以使消息被视为成功响应的字节。作为示例,可以使用诸如openvswitchdatabase(ovsdb)之类的配置协议来配置硬件响应监视模块。图10是执行响应处理程序和响应匹配模块的物理交换机的一个实施例的图。可以使用other_config字段来使用controller_table。配置响应监视模块的一种方法是提供如下配置:例如,上述配置可以被执行为:在一个实施例中,dpn包括并执行请求环回模块。该模块使得监视请求消息在无需控制器参与的情况下在dpn的端口上作为输入被环回。从组件映射的角度来看,该组件将是架构的vta(虚拟测试代理)组件的一部分。该模块利用端口再循环(例如,如openflow规范中所定义)以及设置队列动作(例如,也如openflow规范中所定义)。这种再循环可以在端口对之间发生,其中在一个逻辑端口上发出的分组经由该对的另一逻辑端口返回到交换机中。请求环回模块使用一对端口来环回监视请求消息。它还将队列与出口端口相关联以设置监视请求的速率。该模块从请求复制器模块获取分组并将分组发送回该请求复制器模块。图11是sdn控制器和dpn的应用层监视的一个实施例的图。图12是响应卸载的一个实施例的图。图13是示例测试过程的一个实施例的图。图14是响应消耗的一个实施例的图。图15是统计信息收集过程的一个实施例的图。系统还可以包括sdn控制器的北向接口。北向接口可以接收开始监视(一个或多个)vnf实例的指令。从组件映射角度来看,该组件映射到架构中的‘测试控制器’组件。该系统还可以包括sdn控制器中的结果收集模块。结果收集模块将结果收集到各种vta执行的测试中。从组件映射的角度来看,该组件映射到架构中的“tram”组件。tram可以使用推或拉模式从dpn获得结果,并从北向接口或类似源接收开始监视(一个或多个)vnf实例的指令。该组件可以使用openflow规范中定义的统计信息相关命令来从dpn获取统计信息。例如,openflow规范定义了几个命令来获取统计信息,包括各个流统计信息。该命令用于获取基于每个流条目的统计信息。该请求的响应包括以下参数:持续时间--dpn中流已存活(/已安装)的时间,空闲超时--不活跃超时起作用的秒数,分组计数--流中的分组数量,以及字节计数--字节的数量。用于统计信息获取的另一个可用命令是聚合统计信息。该命令用于获取一组条目的聚合统计信息。该请求的响应包括以下参数:分组计数和字节计数。在其他实施例中,openflow协议包括诸如“统计信息触发”之类的命令。如果一些流统计信息穿过统计信息阈值中的一个,则统计信息触发器向控制器生成事件。触发器可以有两种类型:仅第一种--在这种情况下,仅考虑穿过的第一个阈值,并忽略其他阈值。允许该过程针对多个阈值仅获得单个触发器。另一个触发器是周期性的--在这种情况下,触发器不仅适用于阈值中的值,还适用于这些值的所有倍数。例如,允许在流的生命周期中每100个分组具有一个触发器。图11是sdn控制器和dpn的应用层监视的一个实施例的图。该图示出了一个实施例中的各种模块及其在控制器和dpn之间的位置。如上所述,结果收集器、响应解析器和北向接口可以被执行或配置为控制器的一部分。而响应匹配、响应处理程序、请求环回和请求复制由dpn执行或被配置为dpn的一部分。控制器和dpn可以经由sdn网络中的任意数量的中间节点和通信介质进行通信。测试示例以下示例和实施例被提出以进一步说明示例实施例的操作并且涉及测试。该过程可以从开始测试而开始。在该步骤中,北向模块接收设置测试的指令。响应于这样的配置,控制器执行以下操作:(1)在请求复制模块中针对已知vnf节点设置流表条目(例如,openflow表),以及(2)设置请求环回模块。它还在环回模块中配置队列,以便以适合的速率再循环请求。该过程进一步在响应处理程序模块中设置流表条目(例如,openflow表)以便将来自已知vnf节点的响应分组推送(即,转发)到控制器。一旦这些模块被初始化,它会向请求复制模块发送初始请求消息。如上所述,请求复制模块将该消息复制到所有vnf节点实例。它还将该消息转发给环回模块。环回模块将该消息发送/环回至请求复制模块。图12中示出经由北向接口或‘北向模块’的该配置。然后,如图12中所示,为测试建立响应卸载。在该过程中,来自vnf节点的初始响应消息由响应处理器模块推送(即,转发)到控制器。在接收到响应消息时,控制器执行以下操作:(1)控制器上的响应解析器模块识别响应成功与否,(2)对于成功的响应,响应解析器模块确定可用于将响应分类为成功的字节偏移和字节序列。接下来(3),控制器在dpn上配置响应匹配模块,以在本地消耗成功的响应。在一个实施例中,本地响应消耗过程由dpn实现,如图13中所示。在该操作中,一旦响应消息来自vnf节点,dpn就实现以下过程:(1)将监视器响应消息与响应处理程序条目匹配。响应处理程序模块(2)将监视响应消息发送到响应匹配模块。响应匹配模块(3)执行以下操作:当没有匹配条目时,它将分组发送到控制器。当存在匹配条目时,它将配置的字节序列(从偏移起)与响应消息进行比较。当匹配时,响应消息被丢弃(本地消耗)。如果没有匹配,则将响应消息发送到控制器。实施例还支持dpn和控制器之间的统计信息的收集。在该过程中,如图13中所示,响应收集模块查询dpn以收集统计信息。如模块描述中所指出,取决于所使用的流控制协议内的支持,可以使用拉模式或推模式。dpn响应处理程序有助于在dpn上收集数据,并且结果收集器请求这些统计信息,然后经由北向接口使这些统计信息可用于应用。因此,实施例提供了一种系统,其中在sdn网络中,存在优化的处理主动监视,并且这可以用于支持dpn处的负载均衡功能。然而,负载均衡功能涉及实现应用级别监视协议以监视服务器/vnf节点的状况。典型的负载均衡器(如f5)允许使用诸如dns响应之类的协议进行状况监视。然而,这些应用级别(第7层)协议不是openflow协议的一部分/不由其描述。实施例提供了这类协议可以在sdn控制器处实现。对于成功(正常操作)的应用响应消息,sdn控制器可以确定字节偏移和字节序列。然后,可以配置dpn以将传入的监视响应消息与这些字节序列匹配。不需要将与字节序列匹配的传入监视响应消息发送到控制器。控制器将来自vnf节点的监视响应的消耗委托给dpn。它对dpn进行编程,使得dpn在本地消耗预期的监视响应,而不是将所有收到的响应发送给控制器。控制器基于来自vnf的实际响应提供与dpn(针对vnf)匹配的字节序列。dpn消耗更高级别的协议响应(例如,dns响应代码),而不通过匹配字节序列(自偏移起)来实现更高级别的协议。架构图16a示出了根据本发明的一些实施例的示例性网络内的网络设备(nd)之间的连接性、以及nd的三个示例性实现方式。图16a示出了nd1600a-h、以及它们在1600a-1600b、1600b-1600c、1600c-1600d、1600d-1600e、1600e-1600f、1600f-1600g和1600a-1600g之间以及1600h与1600a、1600c、1600d和1600g中每一个之间通过线路的连接性。这些nd是物理设备,并且这些nd之间的连接可以是无线的或有线的(通常被称为链路)。从nd1600a、1600e和1600f延伸的附加线示出了这些nd充当网络的入口点和出口点(因此,这些nd有时被称为边缘nd;而其他nd可以被称为核心nd)。图16a中的两个示例性nd实现方式是:1)使用定制应用专用集成电路(asic)和专用操作系统(os)的专用网络设备1602;以及2)使用普通现成(cots)处理器和标准os的通用网络设备1604。专用网络设备1602包括联网硬件1610,其包括计算资源1612(其通常包括一组一个或多个处理器)、转发资源1614(其通常包括一个或多个asic和/或网络处理器)、以及物理网络接口(ni)1616(有时被称为物理端口)、以及其中存储有联网软件1620的非暂时性机器可读存储介质1618。物理ni是nd中的硬件,通过其进行网络连接(例如,无线地通过无线网络接口控制器(wnic)或通过将电缆插入连接到网络接口控制器(nic)的物理端口),诸如由nd1600a-h之间的连接所示的那些连接。在操作期间,联网软件1620可以由联网硬件1610执行以实例化一组一个或多个联网软件实例1622。联网软件实例1622中的每一个以及联网硬件1610的执行该联网软件实例的那部分(可以是专用于该联网软件实例的硬件和/或该联网软件实例与其他联网软件实例1622临时共享的硬件的时间片)形成单独的虚拟网络元件1630a-r。虚拟网络元件(vne)1630a-r中的每一个包括控制通信和配置模块1632a-r(有时被称为本地控制模块或控制通信模块)和转发表1634a-r,使得给定虚拟网络元件(例如,1630a)包括控制通信和配置模块(例如,1632a)、一组一个或多个转发表(例如,1634a)、以及联网硬件1610的执行虚拟网络元件(例如,1630a)的那部分。在一个实施例中,应用监视1633a-r实现本文描述的关于监视dpn或控制器处的应用的过程和功能。应用监视1633a-r可以包括用于发送监视请求、收集统计数据、配置dpn、字节序列匹配的功能以及上文进一步描述的类似功能的任何组合或子集。通常在物理上和/或逻辑上认为专用网络设备1602包括:1)nd控制平面1624(有时被称为控制平面),其包括执行控制通信和配置模块1632a-r的计算资源1612;以及2)nd转发平面1626(有时被称为转发平面、数据平面或介质平面),其包括利用转发表1634a-r和物理ni1616的转发资源1614。作为示例,在nd是路由器(或正在实现路由功能)的情况下,nd控制平面1624(执行控制通信和配置模块1632a-r的计算资源1612)通常负责参与控制如何路由数据(例如,分组)(例如,数据的下一跳和该数据的输出物理ni)并将该路由信息存储在转发表1634a-r中,而nd转发平面1626负责在物理ni1616上接收该数据,并基于转发表1634a-r将该数据转发出物理ni1616中适合的ni。图16b示出了根据本发明的一些实施例的实现专用网络设备1602的示例性方式。图16b示出了包括卡1638(通常是可热插拔的)的专用网络设备。虽然在一些实施例中,卡1638具有两种类型(一个或多个卡用作nd转发平面1626(有时被称为线卡),并且一个或多个用于实现nd控制平面1624(有时被称为控制卡)),替代实施例可以将功能组合到单个卡上和/或包括附加卡类型(例如,一种附加类型的卡被称为服务卡、资源卡或多应用卡)。服务卡可以提供专门的处理(例如,第4层到第7层服务(例如,防火墙、互联网协议安全(ipsec)、安全套接字层(ssl)/传输层安全(tls)、入侵检测系统(ids)、对等(p2p)、ip上语音(voip)会话边界控制器、移动无线网关(网关通用分组无线服务(gprs)支持节点(ggsn)、演进分组核心(epc)网关))。作为示例,服务卡可用于终止ipsec隧道并执行伴随的认证和加密算法。这些卡通过如作为背板1636所示的一个或多个互连机构耦合在一起(例如,耦合线卡的第一全连接和耦合所有卡的第二全连接)。返回图16a,通用网络设备1604包括硬件1640,该硬件包括一组一个或多个处理器1642(通常是cots处理器)和网络接口控制器1644(nic;也被称为网络接口卡)(其包括物理ni1646),以及其中存储有软件1650的非暂时性机器可读存储介质1648。在操作期间,处理器1642执行软件1650以实例化一个或多个应用1664a-r的一组或多组。虽然一个实施例不实现虚拟化,但是替代实施例可以使用不同形式的虚拟化。例如,在一个这样的替换实施例中,虚拟化层1654表示操作系统的内核(或在基本操作系统上执行的垫(shim)),其允许创建被称为软件容器的多个实例1662a-r,每个实例可用于执行一组(或多组)应用1664a-r;其中多个软件容器(也被称为虚拟化引擎、虚拟专用服务器或jail)是用户空间(通常是虚拟内存空间),它们彼此分离并与运行操作系统的内核空间分开;并且除非明确允许,否则在给定用户空间中运行的该组应用不能访问其他进程的存储器。在另一个这样的替代实施例中,虚拟化层1654表示管理程序(有时被称为虚拟机监视器(vmm))或在主机操作系统之上执行的管理程序,并且每组应用1664a-r在被称为在管理程序之上运行的虚拟机(在一些情况下可能被认为是紧密隔离的软件容器形式)的实例1662a-r内的客户操作系统之上运行--客户操作系统和应用可能不知道它们正在虚拟机上运行、而不是在“裸金属”主机电子设备上运行,或者通过准虚拟化,操作系统和/或应用可能意识到存在虚拟化以用于优化目的。在其他替代实施例中,一个、一些或所有应用被实现为单核,其可以通过用应用直接编译提供应用所需的特定os服务的仅有限的一组库(例如,来自包括os服务库的驱动程序/库的库操作系统(libos))来生成。由于单核可以实现为直接在硬件1640上运行、直接在管理程序上运行(在这种情况下,单核有时被描述为在libos虚拟机内运行)、或者在软件容器中运行,实施例可以完全用直接在由虚拟化层1654表示的管理程序上运行的单核、在由实例1662a-r表示的软件容器内运行的单核、或者作为单核和上述技术的组合实现(例如,都直接在管理程序上运行的单核和虚拟机、在不同的软件容器中运行的单核和应用组)。一组或多组的一个或多个应用1664a-r的实例化以及虚拟化(如果被实现)统称为软件实例1652。每组应用1664a-r、对应的虚拟化构造(例如,实例1662a-r)(如果被实现),以及执行它们的那部分硬件1640(可以是该执行专用的硬件和/或临时共享的硬件的时间片)形成单独的虚拟网络元件1660a-r。在一个实施例中,应用1664a-r可以包括应用监视器1665a-r,其实现本文关于监视dpn或控制器处的应用所描述的过程和功能。应用监视器1665a-r可以包括用于发送监视请求、收集统计数据、配置dpn、字节序列匹配的功能以及上文进一步描述的类似功能的任何组合或子集。虚拟网络元件1660a-r与虚拟网络元件1630a-r执行类似的功能-例如,类似于控制通信和配置模块1632a和转发表1634a(硬件1640的这种虚拟化有时被称为网络功能虚拟化(nfv))。因此,nfv可用于将许多网络设备类型合并到行业标准的高容量服务器硬件、物理交换机和物理存储器上,其可以位于数据中心、nd和客户端设备(cpe)中。虽然用对应于一个vne1660a-r的每个实例1662a-r示出了本发明的实施例,但是替代实施例可以以更精细的级别粒度实现该对应关系(例如,线卡虚拟机虚拟化线卡、控制卡虚拟机虚拟化控制卡等);应当理解,本文参考实例1662a-r与vne的对应关系描述的技术也适用于使用这种更精细级别的粒度和/或单核的实施例。在某些实施例中,虚拟化层1654包括虚拟交换机,其提供与物理以太网交换机类似的转发服务。具体地,该虚拟交换机在实例1662a-r和nic1644之间、以及可选地在实例1662a-r之间转发业务;此外,该虚拟交换机可以强制因策略而不被允许彼此通信的vne1660a-r之间的网络隔离(例如,通过遵循虚拟局域网(vlan))。图16a中的第三示例性nd实现方式是混合网络设备1606,其包括单个nd中的定制asic/专用os和cots处理器/标准os或nd内的单个卡。在这种混合网络设备的某些实施例中,平台vm(即,实现专用网络设备1602的功能的vm)可以为混合网络设备1606中存在的联网硬件提供准虚拟化。无论nd的上述示例性实现方式如何,当考虑由nd实现的多个vne中的单个vne时(例如,仅vne中的一个是给定虚拟网络的一部分)或者当前由nd仅实施单个vne的情况,缩短的术语网络元件(ne)有时用于指代该vne。同样在所有上述示例性实现方式中,每个vne(例如,vne1630a-r、vne1660a-r和混合网络设备1606中的那些)在物理ni上接收数据(例如,1616、1646),并将该数据转发出适合的物理ni(例如,1616、1646)。例如,实现ip路由器功能的vne基于ip分组中的一些ip首部信息转发ip分组;其中ip首部信息包括源ip地址、目的地ip地址、源端口、目的地端口(其中“源端口”和“目的地端口”在本文指协议端口,而不是nd的物理端口)、传输协议(例如,用户数据报协议(udp)、传输控制协议(tcp)和差分服务代码点(dscp)值。图16c示出了根据本发明的一些实施例的可以耦合vne的各种示例性方式。在图16c示出了在nd1600a中实现的vne1670a.1-1670a.p(以及可选地vne1670a.q-1670a.r)和在nd1600h中实现的vne1670h.1。在图16c中,vne1670a.1-p在它们可以从nd1600a外部接收分组并且转发分组到nd1600a外部的意义上彼此分离;vne1670a.1与vne1670h.1耦合,因此它们在它们各自的nd之间传送分组;vne1670a.2-1670a.3可以可选地在它们之间转发分组而将它们转发到nd1600a外部;并且vne1670a.p可以可选地成为包括vne1670a.q、之后是vne1670a.r的vne链中的第一个(这有时被称为动态服务链,其中该系列vne中的每个vne提供不同的服务--例如,一个或多个第4-7层网络服务)。虽然图16c示出了vne之间的各种示例性关系,但是替代实施例可以支持其他关系(例如,更多/更少的vne,更多/更少的动态服务链,具有一些共同vne和一些不同vne的多个不同的动态服务链)。例如,图16a的nd可以形成互联网或专用网络的一部分;以及其他电子设备(未示出;诸如端用户设备,包括工作站、笔记本电脑、上网本、平板电脑、掌上电脑、移动电话、智能电话、平板手机、多媒体电话、互联网协议上语音(voip)电话、终端、便携式媒体播放器、gps单元、可穿戴设备、游戏系统、机顶盒、支持互联网的家用电器)可以耦合到网络(直接地或通过诸如接入网络的其他网络)以(直接地或通过诸如接入网的其他网络)通过网络(例如,互联网或叠加在互联网上(例如,穿过互联网)的虚拟专用网络(vpn))彼此通信和/或访问内容和/或服务。这类内容和/或服务通常由属于服务/内容提供商的一个或多个服务器(未示出)或参与对等(p2p)服务的一个或多个端用户设备(未示出)提供,并且例如可以包括公共网页(例如,免费内容、店面、搜索服务)、私人网页(例如,提供电子邮件服务的用户/密码访问的网页)和/或vpn上的公司网络。例如,端用户设备可以(例如,通过(有线或无线)耦合到接入网络的客户驻地设备)耦合到边缘nd,该边缘nd(例如,通过一个或多个核心nd)耦合到其他边缘nd,该其他边缘nd耦合到充当服务器的电子设备。然而,通过计算和存储虚拟化,在图16a中作为nd操作的电子设备中的一个或多个也可以托管一个或多个这类服务器(例如,在通用网络设备1604的情况下,软件实例1662a-r中的一个或多个可以作为服务器操作;对于混合网络设备1606也是如此;在专用网络设备1602的情况下,一个或多个这类服务器也可以在由计算机资源(1612)执行的虚拟化层上运行;在这种情况下,服务器被称为与该nd的vne位于一处。虚拟网络是提供网络服务(例如,l2和/或l3服务)的物理网络(诸如图16a中的网络)的逻辑抽象。虚拟网络可以实现为叠加网络(有时被称为网络虚拟化叠加),其通过下层网络(例如,l3网络,诸如使用隧道(例如,通用路由封装(gre)、第2层隧道协议(l2tp)、ipsec)来创建叠加网络的互联网协议(ip)网络)提供网络服务(例如,第2层(l2,数据链路层)和/或第3层(l3,网络层)服务)。网络虚拟化边缘(nve)位于下层网络的边缘并参与实现网络虚拟化;nve的面向网络侧使用下层网络来隧道传送帧到其他nve和从其他nve隧道传送帧;nve的面向外侧向网络外部的系统发送数据和从其接收数据。虚拟网络实例(vni)是nve上的虚拟网络的特定实例(例如,nd上的ne/vne、nd上的ne/vne的一部分,其中该ne/vne通过仿真被分成多个vne);可以在nve上实例化一个或多个vni(例如,作为nd上的不同vne)。虚拟接入点(vap)是nve上用于将外部系统连接到虚拟网络的逻辑连接点;vap可以是通过逻辑接口标识符(例如,vlanid)识别的物理或虚拟端口。网络服务的示例包括:1)以太网lan仿真服务(类似于互联网工程任务组(ietf)多协议标签交换(mpls)的基于以太网的多点服务或以太网vpn(evpn)服务),其中外部系统在下层网络上通过lan环境跨网络互连(例如,nve为不同的这种虚拟网络提供单独的l2vni(虚拟交换实例)、以及跨下层网络的l3(例如,ip/mpls)隧道封装));以及2)虚拟化的ip转发服务(从服务定义的角度来看,类似于ietfipvpn(例如,边界网关协议(bgp)/mplsipvpn)),其中外部系统在下层网络上通过l3环境跨网络互连(例如,nve为不同的这种虚拟网络提供单独的l3vni(转发和路由实例)、以及跨下层网络的l3(例如,ip/mpls)隧道封装))。网络服务还可以包括服务质量能力(例如,业务分类标记、业务调节和调度)、安全能力(例如,用于保护客户驻地免受网络发起的攻击、避免格式错误的路由通告的过滤器)、以及管理能力(例如,全面检测和处理)。图16d示出了根据本发明的一些实施例的在图16a的每个nd上具有单个网络元件的网络,并且在该直接方法中将传统的分布式方法(通常由传统路由器使用)与用于保持可达性和转发信息的集中式方法(也被称为网络控制)进行对比。具体地,图16d示出了具有与图16a的nd1600a-h相同的连接性的网络元件(ne)1670a-h。图16d示出了跨ne1670a-h分布用于生成可达性和转发信息的责任的分布式方法1672;换句话说,分布邻居发现和拓扑发现的过程。例如,在使用专用网络设备1602的情况下,nd控制平面1624的控制通信和配置模块1632a-r通常包括可达性和转发信息模块,以实现一个或多个路由协议(例如,诸如边界网关协议(bgp)的外部网关协议,内部网关协议(igp)(例如,开放最短路径优先(ospf)、中间系统到中间系统(is-is)、路由信息协议(rip)、标签分布协议(ldp)、资源预留协议(rsvp)(包括rsvp-业务工程(te):用于lsp隧道的rsvp扩展和通用多协议标签交换(gmpls)信令rsvp-te)),其与其他ne通信以交换路由,然后基于一个或多个路由度量选择这些路由。因此,ne1670a-h(例如,执行控制通信和配置模块1632a-r的计算资源1612)通过分布式确定网络内的可达性并计算它们各自的转发信息来执行它们针对参与控制如何路由数据(例如,分组)(例如,数据的下一跳和该数据的输出物理ni)的责任。路由和邻接存储在nd控制平面1624上的一个或多个路由结构(例如,路由信息库(rib)、标签信息库(lib)、一个或多个邻接结构)中。nd控制平面1624基于路由结构用信息(例如,邻接和路由信息)对nd转发平面1626进行编程。例如,nd控制平面1624将邻接和路由信息编程到nd转发平面1626上的一个或多个转发表1634a-r(例如,转发信息库(fib)、标签转发信息库(lfib)和一个或多个邻接结构)中。对于第2层转发,nd可以存储一个或多个桥接表,用于基于数据中的第2层信息转发该数据。虽然上述示例使用专用网络设备1602,但是可以在通用网络设备1604和混合网络设备1606上实施相同的分布式方法1672。图16d示出了解耦系统的集中式方法1674(也被称为软件定义联网(sdn),该系统做出关于从将业务转发到所选目的地的下层系统发送业务的位置的决定。所示的集中式方法1674负责在集中控制平面1676(有时被称为sdn控制模块、控制器、网络控制器、openflow控制器、sdn控制器、控制平面节点、网络虚拟化管理机构、或管理控制实体)中生成可达性和转发信息,因此邻居发现和拓扑发现的过程是集中式的。集中控制平面1676具有南向接口1682,其具有数据平面1680(有时被称为基础架构层、网络转发平面或转发平面(不应与nd转发平面混淆)),其包括ne1670a-h(有时被称为交换机、转发元件、数据平面元件或节点)。集中控制平面1676包括网络控制器1678,其包括集中式可达性和转发信息模块1679,其确定网络内的可达性并通过南向接口1682(其可以使用openflow协议)将转发信息分布到数据平面1680的ne1670a-h。因此,网络智能集中于在通常与nd分离的电子设备上执行的集中控制平面1676中。例如,在数据平面1680中使用专用网络设备1602的情况下,nd控制平面1624的控制通信和配置模块1632a-r中的每一个通常包括提供南向接口1682的vne侧的控制代理。在这种情况下,nd控制平面1624(执行控制通信和配置模块1632a-r的计算资源1612)通过与集中控制平面1676通信以从集中式可达性和转发信息模块1679接收转发信息(在一些情况下,是可达性信息)的控制代理执行其针对参与控制如何路由数据(例如,分组)的责任(例如,数据的下一跳和该数据的输出物理ni)(应当理解,在本发明的一些实施例中,控制通信和配置模块1632a-r除了与集中控制平面1676通信之外,还可以在确定可达性和/或计算转发信息方面起一些作用--但比在分布式方法的情况下少;这些实施例通常被认为属于集中式方法1674,但也可以被认为是混合方法)。在一个实施例中,应用1688或集中控制平面1676可以包括应用监视器1681,其实现本文关于在dpn或控制器处监视应用描述的过程和功能。应用监视器1681可以包括用于发送监视请求、收集统计数据、配置dpn、字节序列匹配的功能以及上文进一步描述的类似功能的任何组合或子集。虽然以上示例使用专用网络设备1602,但是可以利用通用网络设备1604实现相同的集中式方法1674(例如,vne1660a-r中的每一个通过与集中控制平面1676通信以从集中式可达性和转发信息模块1679接收转发信息(在一些情况下,是可达性信息)来执行其针对控制如何路由数据(例如,分组)(例如,数据的下一跳和该数据的输出物理ni)的责任;应当理解,在本发明的一些实施例中,vne1660a-r除了与集中控制平面1676通信之外,还可以在确定可达性和/或计算转发信息方面起一定作用-但比在分布式方法的情况下少),并且可以利用混合网络设备1606实现相同的集中式方法1674。实际上,使用sdn技术可以增强通常用于通用网络设备1604或混合网络设备1606实现方式的nfv技术,因为nfv能够通过提供可在其上运行sdn软件的基础架构来支持sdn,并且nfv和sdn都旨在利用商品(commodity)服务器硬件和物理交换机。图16d还示出了集中控制平面1676具有到其中驻留应用1688的应用层1686的北向接口1684。集中控制平面1676具有形成用于应用1688的虚拟网络1692的能力(有时被称为作为逻辑转发平面、网络服务或叠加网络(其中数据平面1680的ne1670a-h是下层网络))。因此,集中控制平面1676保持所有nd和配置的ne/vne的全局视图,并且其将虚拟网络有效地映射到下层nd(包括在物理网络因硬件(nd、链路或nd组件)故障、添加或删除而更改时保持这些映射)。虽然图16d示出了与集中式方法1674分开的分布式方法1672,但是在本发明的某些实施例中,网络控制工作可以不同地分布或者两者组合。例如:1)实施例通常可以使用集中式方法(sdn)1674,但是具有委托给ne的某些功能(例如,分布式方法可以用于实现故障监视、性能监视、保护切换和用于邻居和/或拓扑发现的原语中的一个或多个);或者2)本发明的实施例可以经由集中控制平面和分布式协议两者、以及被比较以提出它们不一致的异常的结果来执行邻居发现和拓扑发现。这些实施例通常被认为属于集中式方法1674,但也可以被认为是混合方法。虽然图16d示出了nd1600a-h中的每一个实现单个ne1670a-h的简单情况,但是应当理解,参考图16d描述的网络控制方法也适用于其中nd1600a-h中的一个或多个实现多个vne(例如,vne1630a-r、vne1660a-r、混合网络设备1606中的那些)的网络。替代地或另外地,网络控制器1678还可以仿真多个vne在单个nd中的实现方式。具体地,代替(或除了)在单个nd中实现多个vne,网络控制器1678可以将单个nd中的vne/ne的实现方式呈现为多个vne在虚拟网络1692中(全部在同一个虚拟网络1692中,每个在不同的虚拟网络1692中,或者某种组合)。例如,网络控制器1678可以使nd在下层网络中实现单个vne(ne),然后在逻辑上划分该ne在集中控制平面1676内的资源,以在虚拟网络1692中呈现不同的vne(其中叠加网络中的这些不同vne共享下层网络中的nd上的单个vne/ne实现方式的资源)。另一方面,图16e和图16f分别示出了网络控制器1678可以作为虚拟网络1692中的不同虚拟网络的一部分呈现的ne和vne的示例性抽象。图16e示出了根据本发明的一些实施例的简单情况,其中每个nd1600a-h实现单个ne1670a-h(参见图16d),但是集中控制平面1676已经将不同nd(ne1670a-c和g-h)中的多个ne抽象为(表示)图16d的虚拟网络1692之一中的单个ne1670i。图16e示出了在该虚拟网络中,ne1670i耦合到ne1670d和1670f,它们仍然均耦合到ne1670e。图16f示出了根据本发明的一些实施例的情况,其中多个vne(vne1670a.1和vne1670h.1)在不同的nd(nd1600a和nd1600h)上实现并且彼此耦合,并且其中集中控制平面1676已经将这些多个vne抽象使得它们在图16d的虚拟网络1692之一内呈现为单个vne1670t。因此,ne或vne的抽象可以跨多个nd。虽然本发明的一些实施例将集中控制平面1676实现为单个实体(例如,在单个电子设备上运行的单个软件实例),但是替代实施例可以跨多个实体扩展功能以实现冗余和/或可扩缩性目的(例如,在不同电子设备上运行的多个软件实例)。类似于网络设备实现方式,运行集中控制平面1676的电子设备以及因此包括集中可达性和转发信息模块1679的网络控制器1678可以以各种方式实现(例如,专用设备、通用(例如,cots)设备或混合设备)。这些电子设备将类似地包括计算资源、一组或一个或多个物理nic、以及其上存储有集中控制平面软件的非暂时性机器可读存储介质。例如,图17示出了包括硬件1740的通用控制平面设备1704,该硬件包括一组一个或多个处理器1742(通常是cots处理器)和网络接口控制器1744(nic;也被称为网络接口卡)(其包括物理ni1746)、以及其中存储有集中控制平面(ccp)软件1750的非暂时性机器可读存储介质1748。在使用计算虚拟化的实施例中,处理器1742通常执行软件以实例化虚拟化层1754(例如,在一个实施例中,虚拟化层1754表示操作系统的内核(或在基本操作系统上执行的垫),其允许创建被称为软件容器的多个实例1762a-r(表示单独的用户空间,也被称为虚拟引擎、虚拟专用服务器或jail),每个实例可用于执行一组一个或多个应用;在另一实施例中,虚拟化层1754表示管理程序(有时被称为虚拟机监视器(vmm))或在主机操作系统之上执行的管理程序,并且应用在被称为虚拟机(由管理程序运行)(在一些情况下可能被认为是紧密隔离的软件容器形式)的实例1762a-r内的客户操作系统之上运行;在另一实施例中,应用被实现为单核,其可以通过用应用直接编译提供应用所需的特定os服务的仅有限的一组库(例如,来自包括驱动程序/os服务库的库操作系统(libos))来生成,并且单核可以直接在硬件1740上运行、直接在由虚拟化层1754表示的管理程序上运行(在这种情况下,单核有时被描述为在libos虚拟机中运行)、或者在由实例1762a-r中的一个表示的软件容器中运行)。此外,在使用计算虚拟化的实施例中,在操作期间,在虚拟化层1754上(例如,在实例1762a内)执行ccp软件1750的实例(示出为ccp实例1776a)。在不使用计算虚拟化的实施例中,ccp实例1776a在“裸金属”通用控制平面设备1704上作为单核或在主机操作系统之上执行。ccp实例1776a的实例化、以及虚拟化层1754和实例1762a-r(如果被实现)被统称为软件实例1752。在一些实施例中,ccp实例1776a包括网络控制器实例1778。网络控制器实例1778包括集中式可达性和转发信息模块实例1779(其是向操作系统提供网络控制器1678的上下文并与各个ne通信的中间件层)和该中间件层上的ccp应用层1780(有时被称为应用层)(提供诸如协议、网络态势感知和用户-接口之类的各种网络操作所需的智能)。在更抽象的层面上,集中控制平面1676内的该ccp应用层1780与虚拟网络视图(网络的逻辑视图)一起工作,并且中间件层提供从虚拟网络到物理视图的转换。在一个实施例中,ccp应用层可以包括应用监视器1681,其实现本文关于在dpn或控制器处监视应用所描述的过程和功能。应用监视器1681可以包括用于发送监视请求、收集统计信息、配置dpn,字节序列匹配的功能以及上文进一步描述的类似功能的任何组合或子集。集中控制平面1676基于每个流的ccp应用层1780计算和中间件层映射,将相关消息传输到数据平面1680。流可以被定义为其首部与给定的比特模式匹配的一组分组;从这个意义上讲,传统的ip转发也是基于流的转发,其中流例如由目的地ip地址定义;然而,在其他实现方式中,用于流定义的给定比特模式可以包括分组首部中的更多字段(例如,10个或更多)。数据平面1680的不同nd/ne/vne可以接收不同的消息,从而接收不同的转发信息。数据平面1680处理这些消息并对适合的ne/vne的转发表(有时被称为流表)中适合的流信息和对应动作进行编程,然后ne/vne将输入的分组映射到转发表中表示的流,并基于转发表中的匹配转发分组。诸如openflow之类的标准定义了用于消息的协议、以及用于处理分组的模型。用于处理分组的模型包括首部解析、分组分类和做出转发决定。首部解析描述了如何基于众所周知的协议组来解释分组。一些协议字段用于构建将在分组分类中使用的匹配结构(或密钥)(例如,第一密钥字段可以是源媒体访问控制(mac)地址,并且第二密钥字段可以是目的地mac地址)。分组分类涉及在存储器中执行查找以通过基于转发表条目的匹配结构或密钥确定转发表中哪个条目(也被称为转发表条目或流条目)与分组最佳匹配来对分组进行分类。转发表条目中表示的许多流可以与分组对应/匹配;在这种情况下,系统通常被配置为根据定义的方案从多个转发表条目中确定一个转发表条目(例如,选择匹配的第一转发表条目)。转发表条目包括一组特定的匹配标准(一组值或通配符,或对分组的哪些部分应与特定值/值/通配符进行比较的指示,如匹配能力针对分组首部中的特定字段、或针对一些其他分组内容所定义)、以及数据平面接收匹配分组所采取的一组一个或多个动作。例如,动作可以是将首部推至分组上,针对使用特定端口的分组,泛洪分组,或者简单地丢弃分组。因此,具有特定传输控制协议(tcp)目的地端口的ipv4/ipv6分组的转发表条目可以包含指定应该丢弃这些分组的动作。基于在分组分类期间识别的转发表条目,通过执行在分组上的匹配的转发表条目中标识的一组动作,发生做出转发决定并执行动作。然而,当未知分组(例如,“缺失的(missed)分组”或openflow用语中使用的“失配(match-miss)”)到达数据平面1680时,该分组(或分组首部和内容的子集)通常被转发到集中控制平面1676。集中控制平面1676然后将转发表条目编程到数据平面1680中,以适应(accommodate)属于未知分组流的分组。一旦特定转发表条目已通过集中控制平面1676被编程到数据平面1680中,具有匹配凭证的下一个分组将匹配该转发表条目并采取与该匹配条目相关联的一组动作。尽管已经根据若干实施例描述了本发明,但是本领域技术人员将认识到,本发明不限于所描述的实施例,可以在所附权利要求的精神和范围内进行修改和变更来实践。因此,该描述被认为是说明性的而非限制性的。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1