虚拟化网络功能 背景技术 [0001] 网络功能虚拟化(NFV)是一种用于递送通信服务的技术。更具体地,NFV是在通信服务提供方网络中提供网络服务的虚拟化以及自动化技术的应用。以这种方式,通信服务提供方可以将它们的通信网络从专用的硬件基础设施变换成使用虚拟化网络功能(VNF)来提供网络服务的通用基础设施。利用网络功能虚拟化,通信网络的硬件中的许多硬件可以被执行相同功能性的软件替换。与仅利用硬件交换机、路由器等而被部署的通信网络相比较,并入了VNF的通信网络可以提供更大的灵活性、更低的成本,并且能够以更少的时间引入新的网络服务。 附图说明 [0002] 当结合附图阅读时,可以从以下具体实施方式理解本公开。根据行业中的标准实践,各种特征未按比例绘制。实际上,为了讨论的清晰,各种特征的尺寸可以被任意增加或减少。 [0003] 关于以下附图描述了本申请的一些示例: [0004] 图1是用于生成虚拟化网络功能的示例系统。 [0005] 图2是用于生成虚拟化网络功能的示例系统的数据流图。 [0006] 图3是用于生成虚拟化网络功能的示例方法。 [0007] 图4是用于生成虚拟化网络功能的示例方法。 [0008] 图5是具有有形的非瞬态计算机可读介质的示例系统,该有形的非瞬态计算机可读介质存储用于生成虚拟化网络功能的代码。 具体实施方式 [0009] 欧洲电信标准协会(ETSI)已经定义了针对NFV架构的模型。NFV架构包括虚拟化基础设施管理器(VIM)、虚拟化网络功能管理器(VNFM)以及网络功能虚拟化编排器(NFVO)。 VIM可以负责管理被用于创建虚拟化网络功能的计算、存储、以及网络资源。VNFM可以负责对单独VNF的管理。NFVO可以负责组合VNF和物理网络功能(PNF)以创建由NFVI提供的网络服务。物理网络功能可以是使用硬件设备而被实现的网络功能。 [0010] VIM(例如,OpenStack)可以使用被称为HEAT编排器的NFVO。在一个示例实现中,HEAT编排模板(HOT文件)可以被用于定义虚拟化网络功能。HOT文件可以被输入到HEAT编排器以生成虚拟化网络功能。然而,HOT文件具有局限性,可以导致生成如下虚拟化网络功能: 该虚拟化网络功能违反被用于管理其标准化的策略、或者以其他方式负面地影响其他VNF。 因此,示例可以提供对HOT文件的转换(translation),以防止策略违反、防止对HOT文件的恶意使用、和/或其他潜在的负面影响。例如,HOT文件可以使在VIM安装中可用的各种资源的创建和管理成为可能。因此,如果HEAT编排器接受HOT文件,则HEAT编排器可能不具有对所创建的资源的控制。(恶意地或错误地)误用该能力可能会负面地影响在VIM平台上运行的其他VNF和虚拟机。 [0011] 图1是用于生成虚拟化网络功能的示例系统100。系统100可以包括通过网络120被连接的服务提供方102、VIM 104以及网络服务106。服务提供方102可以是针对其客户提供网络服务106的通信服务提供方。网络服务106可以是通信服务,诸如电子邮件、互联网协议语音、打印、文件共享、目录服务、视频点播(video on‑demand)、视频电话等。在示例中,网络服务106可以包括虚拟化网络功能(VNF)108。在一个示例中,这些VNF可以由可以被提供(例如由客户)给服务提供方102的HEAT编排模板110定义。HEAT编排模板110可以定义用于构建虚拟化网络功能108的特定资源,诸如虚拟机、虚拟网络等。 [0012] VIM 104是虚拟化基础设施管理器(VIM),其可以使用组件(诸如云计算构造控制器112、联网管理器114以及HEAT编排器116)调解与支持网络功能虚拟化的物理基础设施的交互。云计算构造控制器112(例如,Nova)可以管理计算资源的池。联网管理器114(例如,Neutron)可以管理网络以及互联网协议(IP)地址。HEAT编排器116可以协调对云计算构造控制器112、联网管理器114以及其他VIM服务的调用。NFVO可以管理NFV基础设施组件,诸如虚拟化网络功能108。VNFM可以帮助将虚拟联网的功能标准化以及提高软件定义的联网元素的互操作性。HEAT编排器116可以基于HEAT编排模板110中所提供的定义来执行这些功能。 [0013] 然而,HEAT编排模板110可以仅定义NFVI组件,诸如虚拟机和虚拟网络。相反,虚拟化网络功能108和网络服务106可以遵循由虚拟化网络功能管理器(VNFM)和NFVO管理的更复杂的模型。由VNFM和HEAT编排器116管理的模型可以对NFVI施加在HEAT编排模板110中未被定义的关系和策略。因此,转换器118可以将来自HEAT编排模板110的信息与VNFM和HEAT编排器116的模型合并,以生成HEAT编排模板110的经转换的版本。经转换的HEAT编排模板 110可以被输入到HEAT编排器116,以生成虚拟化网络功能108或者网络服务106。 [0014] 例如,客户可以向服务提供方102提供HEAT编排模板110以用于网络服务106。在一个示例中,网络服务106可以是视频点播服务。针对该视频点播服务的HEAT编排模板110可以定义多个虚拟化网络功能108。在一个示例中,针对视频点播服务的虚拟化网络功能108可以包括具有七十个虚拟机的虚拟网络,其中每个虚拟机可以包括两个中央处理单元(CPU)、一太字节(TB)大小的磁盘驱动,八吉字节(GB)的随机存取存储器(RAM)以及四个被互连的网络端口。然而,针对VNFM和HEAT编排器116的模型可以包括针对服务提供方的虚拟网络上的特定虚拟机的合法业务拦截。合法业务拦截可以指当电信网络受到法院命令窃听特定客户时并且将针对该客户的网络通信提供给执法机关。因此,在示例中,转换器118可以生成新的HEAT编排模板110,其中在原始的HEAT编排模板110中被指定的虚拟机被修改,以包括附加的虚拟端口以用于与合法的业务拦截的连接。因此,经转换的HEAT编排模板110可以被输入到HEAT编排器116,以生成由客户请求的视频点播服务。 [0015] 图2是用于生成虚拟化网络功能的示例系统200的数据流图。在示例中,HOT文件 202以及额外信息204可以被输入到摄取过程206。HOT文件202可以是HEAT编排模板(诸如HEAT编排模板110),其定义虚拟化网络功能以及网络服务(诸如虚拟化网络功能108以及网络服务106)。额外信息204可以表示可以在HOT文件202中定义的虚拟机上运行的脚本。在摄取过程206中,HOT文件202可以被分解成单独的元素(诸如虚拟机、虚拟网络、端口等)以构建内部模型208。内部模型208可以包括如下元素:如果HOT文件202和额外信息利用编排器(诸如HEAT编排器116)被部署,则这些元素被创建。在备选的示例中,摄取过程206可以接受与HOT文件202的HOT格式不同的格式的输入,并且可以使用现有的工具来在进一步的处理之前将输入转变成HOT格式。 [0016] 内部模型208可以被输入到转换过程210。在转换过程210期间,转换器(诸如转换器118)可以将内部模型208中的单独元素和关系映射到HEAT编排器116的内部模型(未示出)。HEAT编排器116的内部模型可以包括针对可以在HOT文件202中被定义的潜在VNF108的已规定参数。经映射的元素和关系可以被记录在一组编排器建模的资源214中。编排器建模的资源214可以向HOT文件202的单独元素应用来自HEAT编排器116的内部模型的已规定元素。当不存在内部模型208的单独元素和HEAT编排器116的内部模型之间的可能的直接映射时,单独元素被转换成HOT片段212,该HOT片段212是如下元素:描述未经映射的元素的细节并且包括到其他HOT片段212和编排器建模的资源214中的元素的指针。在备选的示例中,转换过程210可以接受影响转换的额外输入。一个示例额外输入可以是映射文件,该映射文件引导将复杂的HOT文件202内部的资源分离成分离的VNF 108。 [0017] HOT片段212和编排器建模的资源214可以被输入到验证和变换过程216。在验证和变换过程216期间,HEAT编排器116可以接受或者驳回编排器建模的资源214。备选地,HEAT编排器116可以自动地应用变化,使得策略220被满足。策略220可以指定条件以用于实现特定类型的VNF 108。例如,一个策略220可以指定对于处理末端用户业务的每个虚拟机,被连接到网络并且被专用于合法拦截的额外端口可以被添加。 [0018] HOT片段212也可以基于白名单和黑名单218、或者被定义的变换而被驳回或者被接受。白名单可以指定由服务提供方102准许的虚拟化网络功能108。相反,黑名单可以指定由服务提供方102禁用的虚拟化网络功能108。此外,在自动化不可能处,HOT片段212可以经历手动批准过程,由此完整的HOT文件202可以被隔离,直到手动批准过程222完成为止。 [0019] 从验证和变换过程216输出的HOT片段212和编排器建模的资源214可以被输入到装载(onboarding)过程226。装载过程226可以涉及如HOT片段212和编排器建模的资源214中所定义的VNF 108和网络服务106的创建。在装载过程226期间,HOT片段212和编排器建模的资源214利用额外信息224而被更新。额外信息224是如下信息:补充在HOT片段和编排器建模的资源214中所定义的NFVI、并且进一步定义VNF 108和网络服务106的信息。该额外信息可以包括元素管理器脚本、转发图、以及可能尚未被客户考虑的由服务提供方102指定的其他资源。以这种方式被建模的完整的虚拟化网络功能108和网络服务106可以保持HOT片段212以用于未被包含在HEAT编排器116的内部模型中并且被接受(要么自动地要么通过手动批准过程222)的那些特征。装载过程226生成VNF和HOT片段228,该VNF和HOT片段228被输入到部署过程230。 [0020] 在部署过程230期间,VNF和HOT片段228可以被复核以用于任何潜在的警告或者确认。如果VNF和HOT片段228包含被列入黑名单的HOT片段,则警告可以被提供,或者确认在部署VNF 108之前从服务提供方102被请求。如果VNF和HOT片段228不包括任何HOT片段,则部署过程230如由HEAT编排器116规定的进行。如果存在HOT片段212,则HEAT编排器可以从HEAT编排器116的内部模型中的工件来构建新的HOT文件232并且将这些工件与HOT片段212合并。VIM 234的HEAT编排器116然后可以相应地部署VNF 108和网络服务106。 [0021] 备选地,即使VNF和片段228包括HOT片段212,也可以使用HEAT编排器116的常规机制。HEAT编排器116然后可以执行发现和调解步骤,以获取所创建的VNF 108以及网络服务 106的值。附加地,仅包含HOT片段212的HEAT编排模板110可以经由HEAT编排器116被部署。 [0022] 在另一个示例中,验证和变换过程216可以将HOT片段212标记为被隔离的。因此,在部署过程230中,被隔离的HOT片段可以被部署到不同的虚拟化基础设施管理器,因而由被隔离的HOT片段212定义的VNF 108可以被监视以供查证(verification)。例如,查证可以涉及确保被隔离的HOT片段不违反任何策略220。 [0023] 有利地,将来自HEAT编排模板110的信息与NFVO的内部模型合并允许不使用HEAT编排器116的其他VIM的实例化。此外,在多个HEAT编排模板110中重复地被描述的元素(诸如风味(flavor))可以基于所指定的策略220以及额外信息224而被转变成共同的共享资源。风味可以定义虚拟服务器的计算、存储器、以及存储容量。附加地,该合并使服务提供方能够将特定的HEAT特征加入黑名单,例如,由于安全性规则。同样,以这种方式的合并使得增强并且实现策略成为可能。例如,服务提供方102可以实现向每个虚拟机提供到备用网络的至少一个连接的策略。在另一个示例中,用于受允许的网络地址掩码的限制的策略可以被增强,以缓和IPV4地址空间节省的问题。 [0024] 图3是用于生成虚拟化网络功能的示例方法300。方法300可以由NFVO(诸如HEAT编排器116)和转换器(诸如转换器118)执行。在框302处,转换器118可以基于HEAT编排模板 110来构建虚拟化网络功能108的内部模型。 [0025] 在框304处,转换器118可以将由转换器118构建的内部模型的元素和关系映射到HEAT编排器116的内部模型。由转换器118构建的内部模型的不能被映射到HEAT编排器116的内部模型的元素和关系可以被转换成HOT片段,诸如HOT片段212。HOT片段212可以描述元素的细节以及与元素有关的指针。 [0026] 在框306处,HEAT编排器116可以验证以及变换映射。换而言之,HEAT编排器116可以接受、驳回被映射到HEAT编排器116的内部模型的元素和关系,或者自动地向被映射到HEAT编排器116的内部模型的元素和关系应用变化。以这种方式,策略可以被增强。例如,与许可有关的策略可以声明,"组织X不能使用映像Z来部署多于Y台同时虚拟机"。在示例中,这样的策略仅可以通过查看将被部署的文件以及所有先前已部署的文件而被增强。附加地,HEAT编排器116可以基于白名单或者黑名单来接受或者驳回HOT片段212,诸如白名单和黑名单218。备选地,HOT片段212可以在手动批准过程被实现之前被隔离。 [0027] 在框308处,HEAT编排器116可以利用额外信息(诸如元素管理器脚本、转发图等)来补充经映射的元素和关系。在框310处,HEAT编排器116可以生成针对被列入黑名单的任何HOT片段212的警告。在框312,对于被列入白名单的任何HOT片段212,HEAT编排器116可以生成新的HOT文件232,新的HOT文件232将被列入白名单的HOT片段与被映射到内部模型的元素合并。 [0028] 在框314处,HEAT编排器116可以生成在新生成的HEAT编排模板110中被描述的新的虚拟化网络功能108和网络服务106。 [0029] 应理解,图3的过程流程图并不旨在指示方法300在每种情况下都要包括图3所示的框中的所有框。此外,取决于具体实现的细节,可以在方法400内包括任何数目的附加框。 另外,应理解,图3的过程流程图并不旨在指示方法300在每种情况下都仅按照图3的框所指示的顺序进行。例如,可以将框304重新安排为在框302之前发生。 [0030] 图4是用于生成虚拟化网络功能的示例方法400。方法400可以由NFVO(诸如HEAT编排器116)和转换器(诸如转换器118)执行。在框402处,HEAT编排器116可以基于网络功能虚拟化模型来标识虚拟化网络功能模板的可映射元素和不可映射元素。虚拟化网络功能模板可以包括,例如,HEAT编排模板110。 [0031] 在框404处,HEAT编排器116可以将可映射元素映射到网络功能虚拟化模型。在框 406处,转换器118可以基于映射来转换可映射元素,以生成一个或多个经转换元素。如先前所陈述的,转换器118可以将内部模型208中的单独元素和关系映射到HEAT编排器116的内部模型。经映射的元素和关系可以被记录在编排器建模的资源214中,编排器建模的资源 214可以向HOT文件202的单独元素应用来自内部模型208的已规定元素。附加地,当不存在内部模型208的元素和HEAT编排器116的内部模型之间的直接映射时,转换器118生成HOT片段212。 [0032] 在框408处,转换器118可以基于黑‑白名单来过滤不可映射元素,以生成一个或多个经过滤元素。例如,转换器118可以使用过滤器(诸如白名单‑黑名单218)。 [0033] 在框410处,HEAT编排器116可以生成包括经转换元素和经过滤元素的经转换虚拟化网络功能定义。经转换虚拟化网络功能定义可以包括,例如,新的HOT文件232。在框412处,HEAT编排器116可以基于经转换虚拟化网络功能定义来生成虚拟化网络功能。 [0034] 应理解,图4的过程流程图并不旨在指示方法400在每种情况下都要包括图4所示的框中的所有框。此外,取决于具体实现的细节,可以在方法400内包括任何数目的附加框。 另外,应理解,图4的过程流程图并不旨在指示方法400在每种情况下都仅按照图4的框所指示的顺序进行。例如,可以将框404重新安排为在框402之前发生。 [0035] 图5是具有有形的非瞬态计算机可读介质506的示例系统500,该有形的非瞬态计算机可读介质506存储用于生成虚拟化网络功能的代码。有形的非瞬态计算机可读介质一般由附图标记506指代。有形的非瞬态计算机可读介质506可以与存储计算机实现的指令(诸如编程代码等)的任何典型计算机存储器对应。例如,有形的非瞬态计算机可读介质506可以包括RAM、ROM、EEPROM、CD‑ROM或者其他光盘存储装置,磁盘存储装置或者其他磁性存储设备、或者可以被用于以指令或者数据结构的形式携带或存储所期望的程序代码并且可以由计算机访问的任何其他介质。如本文中所使用的并且此处使用的盘(disk)和碟(disc)包括压缩碟(CD)、激光碟、光碟、数字多功能碟(DVD)、软盘以及 碟,其中盘通常以磁性方式再现数据,而碟利用激光以光学方式再现数据。 [0036] 有形的非瞬态计算机可读介质506可以由处理器502通过计算机总线504访问。有形的非瞬态计算机可读介质的区域508存储计算机可执行指令,该计算机可执行指令基于网络功能虚拟化模型来标识虚拟化网络功能模板的可映射元素的和不可映射元素。有形的非瞬态计算机可读介质的区域510存储计算机可执行指令,该计算机可执行指令将可映射元素映射到网络功能虚拟化模型。有形的非瞬态计算机可读介质的区域512存储计算机可执行指令,该计算机可执行指令基于映射来转换可映射元素,以生成一个或多个经转换元素。有形的非瞬态计算机可读介质的区域514存储计算机可执行指令,该计算机可执行指令基于黑‑白名单来过滤不可映射元素,以生成一个或多个经过滤元素。有形的非瞬态计算机可读介质的区域516存储计算机可执行指令,该计算机可执行指令生成包括经转换元素和经过滤元素的经转换虚拟化网络功能定义。有形的非瞬态计算机可读介质的区域518存储计算机可执行指令,该计算机可执行指令基于经转换虚拟化网络功能定义来生成虚拟化网络功能。 [0037] 尽管被示为连续的块,但是软件组件可以以任何顺序或配置被存储。例如,如果有形的非瞬态计算机可读介质506是硬盘驱动,则软件组件可以被存储在非连续的、或者甚至重叠的扇区中。 [0038] 出于解释的目的,前述描述使用特定术语来提供对本公开的透彻理解。然而,讲对本领域技术人员明显的是,不要求特定细节即可实践本文中所描述的系统和方法。出于说明和描述的目的呈现了特定示例的前述描述。它们并不旨在穷举本公开或者将本公开限制为所描述的精确形式。显然,鉴于以上教学,本发明的许多修改和变型是可能的。为了最佳地解释本公开的原理和实践应用,示出并描述了示例,从而使本领域的其他技术人员能够最佳地利用本公开以及具有适于预期的具体用途的各种修改的各种示例。本公开的范围旨在由权利要求书及其等同物限定。