使用外部部件的动态网络设备处理的制作方法

文档序号:7783234阅读:171来源:国知局
使用外部部件的动态网络设备处理的制作方法
【专利摘要】本发明提供一种使用外部部件的动态网络设备处理。网络设备可以接收关于识别服务的服务集的信息,以应用于经由网络设备的特定接口所接收的数据流;经由特定接口接收数据流;基于关于服务集的信息来识别服务以提供给数据流;识别处理设备以处理数据流;并且向处理设备提供所述数据流。处理设备可以不同于网络设备,并且可以代表网络设备处理数据流以形成处理的数据流。处理的数据流可以包括具有被应用于数据流的服务的数据流。网络设备可以进一步从处理设备接收处理的数据流,并且朝向目标设备发送处理的数据流。
【专利说明】使用外部部件的动态网络设备处理
【技术领域】
[0001]本发明涉及网络设备,更具体地涉及使用外部部件的动态网络设备处理的网络设备、方法以及系统。
【背景技术】
[0002]诸如路由器的网络设备有时被用于处理、路由用户设备和服务器设备之间的数据流,并且向用户设备和服务器设备之间的数据流提供服务。网络设备有时包括广域网(WAN)接口卡(WIC)。WIC可以包括处理指令、路由表、或向网络设备提供指令用于处理数据流的一些其他信息。修改网络设备的功能和/或操作(例如,修改处理指令等)可能要求WAN卡的替代和/或专业的软件开发。

【发明内容】

[0003]根据一个示例性实施方式,方法可以包括通过网络设备接收关于服务集的信息。服务集可以识别服务以应用于经由网络设备的特定接口所接收的数据流。方法可以进一步包括通过网络设备由特定接口接收数据流;通过网络设备基于关于服务集的信息来识别服务以应用于数据流,并且通过网络设备识别处理设备以处理数据流。处理设备可以与网络设备有所不同。方法可以进一步包括通过网络设备给处理设备提供数据流。处理设备可以代表网络设备处理数据流以形成处理的数据流。处理的数据流可以包括具有被应用于数据流的服务的数据流。方法可以进一步包括通过网络设备从处理设备接收处理的数据流,并且通过网络设备将向目标设备发送处理的数据流。
[0004]根据另一个示例性实施方式,网络设备可以接收关于服务集的信息。服务集可以包括标识符以识别服务以应用于经由网络设备的特定接口所接收的数据流。网络设备可以进一步经由特定接口接收数据流,基于关于服务集的信息来识别服务以应用于接收的数据流,向数据流添加可能包括标识符的元数据,并且识别处理设备以处理数据流。处理设备可以与网络设备有所不同。网络设备可以进一步给处理设备提供数据流。处理设备可以基于被包括在元数据中的标识符来识别服务,并且代表网络设备来处理数据流以形成处理的数据流。处理的数据流可以包括具有被应用于数据流的服务的数据流。网络设备可以进一步从处理设备接收处理的数据流,并且向目标设备发送处理的数据流。
[0005]根据另一个示例性实施方式,用于存储指令的计算机可读介质可以包括具有以下内容的指令:多个指令,在通过和网络设备相关联的一个或多个处理器执行时,导致一个或多个处理器接收关于识别服务的服务集的信息,以应用于经由网络设备的特定接口接收的数据流,经由特定接口接收数据流,基于关于服务集的信息来识别服务以提供至数据流,并且识别多个虚拟机中的虚拟机以处理数据流。虚拟机可以与网络设备有所不同。多个指令可以进一步导致一个或多个处理器给虚拟机提供数据流。虚拟机可以基于服务集标识符来识别服务,并且可以代表网络设备来处理数据流以形成处理的数据流。处理的数据流可以包括具有被应用于数据流的服务的数据流。多个指令可以进一步导致一个或多个处理器从虚拟机接收处理的数据流;并且给目标设备提供处理的数据流。
【专利附图】

【附图说明】
[0006]图1图示本文中所描述的实施方式的示例概观;
[0007]图2图示本文中所描述的系统和/或方法可以在其中被实施的示例环境;
[0008]图3A图示网络设备的示例部件;
[0009]图3B图示可以被用于图2的环境内的设备的示例部件;
[0010]图4图示可以被在图2的环境中的一个或多个设备所存储的示例数据结构;
[0011]图5图示用于使用虚拟机处理数据流的示例过程的流程图;以及
[0012]图6A-图6B和图7-8图示如本文中所描述的示例实施方式。
【具体实施方式】
[0013]下面详细的描述参照附图。在不同的图中相同的附图标记可以识别相同或类似的元件。
[0014]本文中所描述的系统和/或方法可以允许网络设备(例如,路由器、交换机、网关或一些其他网络设备)的过程、应用和/或服务发生在网络设备之外。例如,虚拟机可以执行修改网络设备的控制面的应用(例如,修改网络设备的路由表,在网络设备上安装防火墙过滤等)。此外,或备选地,虚拟机可以代表网络设备处理数据流以允许网络设备给数据流提供服务(例如,防火墙服务、网络地址转换(NAT)服务、广域网(WAN)优化服务、超文本传输协议(HTTP)头重写服务、压缩服务、负载均衡服务或一些其他类型的服务)。在一些实施方式中,客户端设备可以给虚拟机和网络设备提供服务集或应用以指导虚拟机来修改网络设备的控制面。在一些实施方式中,服务集可以指导网络设备给特定的数据流提供特定的服务,并且将特定的数据流引导到特定的虚拟机中,以使得特定的数据流可以接收服务。在一些实施方式中,服务集可以指导虚拟机给特定的数据流应用特定的服务。作为结果,网络设备的功能和/或操作可以被修改,而不需要修改网络设备本身。
[0015]图1图示本文中所描述的示例实施方式。如图1所示,网络设备可以从第一用户设备(例如,UD-1)经由网络设备的第一接口接收第一数据流(例如,数据流I)。为了接收处理支持以允许网络设备给第一数据流提供服务,网络设备可以识别用其通信(例如,基于接口)的特定的虚拟机(例如,VM-1)。进一步如图1所示,网络设备可以将数据流路由至虚拟机。虚拟机可以代表网络设备处理数据流以形成处理的数据流(例如,具有被应用于数据流的服务的数据流)。在一些实施方式中,网络设备可以将处理的数据流提供给目标设备。在一些实施方式中,为了给多个数据流提供服务(例如,数据流I到数据流M),网络设备可以接收多个数据流(例如,数据流I到M,其中M>2),并且与多个虚拟机通信(例如,VM-1至VM-N,其中 N>2)。
[0016]在一些实施方式中,网络设备可以基于和服务集相关联的信息来识别服务以提供给数据流(以及用其通信的虚拟机,以便处理数据流以提供服务)。服务集可以包括识别网络设备的接口的信息、提供给通过接口所接收的数据流的服务,以及为了处理数据流并且给数据流提供服务而与其通信的虚拟机。
[0017]如上所述,虚拟机可以执行应用以修改网络设备的控制面。例如,虚拟机可以修改网络设备的控制面以指导网络设备以特定的方式路由特定的数据流(例如,将一些数据流路由至特定的虚拟机用于处理,阻截一些其他数据流等)。
[0018]由于虚拟机可以被用于代表网络设备处理数据流,或修改网络设备的控制面,网络设备可以能够通过在公共设施上与虚拟机通信来给任何数目的数据流提供任何数目的服务。进一步,虚拟机可以通过位于各种地理位置的服务器来存储。
[0019]虽然系统和/或方法是从与虚拟机通信的网络设备的方面来描述,实际上,网络设备可以与物理服务器、WAN卡、容器(例如,Linux容器)、或用于处理器支持和/或用于网络设备控制面修改的一些其他设备进行通信。
[0020]图2是本文中所描述的系统和/或方法可以被实施的示例环境200的图。如图2所示,环境200可以包括用户设备210-1...210-Α (其中Α>1)、客户端设备220、网络设备230、(多个)虚拟机服务器240、中央服务器250以及网络260。
[0021]用户设备210可以包括能够通过诸如网络260的网络进行通信的设备。例如,用户设备210可以对应于移动通信设备(例如,智能电话或个人数字助手(PDA))、便携式计算机设备(例如,膝上型电脑或平板计算机)、游戏设备、桌面计算机、服务器或一些其他类型的计算设备。
[0022]客户端设备220可以包括计算设备或计算设备的集合。在一些实施中,客户端设备220可以被用于开发服务集,其指导网络设备230与由虚拟机服务器240所存储的虚拟机进行通信(例如,用于处理支持以允许网络设备230给数据流提供服务)。此外,或备选地,客户端设备220可以被用于开发应用,虚拟机服务器240可以执行该应用以修改网络设备230的控制面。在一些实施方式中,客户端设备220可以给网络设备230或中央服务器250提供服务集或应用。
[0023]网络设备230可以包括网络路由设备或网络路由设备的集合。在一些实施方式中,网络设备230可以包括路由器、交换机、网关、接入点或一些其他类型的网络设备。在一些实施方式中,网络设备230可以接收数据流,并且可以根据在服务集中所指定的参数来处理数据流。在一些实施方式中,网络设备230可以包括物理路由设备或虚拟路由设备(例如,由作为物理路由设备的服务器存储的虚拟图像)。
[0024]虚拟机服务器240可以包括计算设备,诸如服务器设备或服务器设备的集合。在一些实施方式中,虚拟机服务器240可以实施虚拟机,虚拟机可以通过作为处理设备向数据流提供服务,以给网络设备230提供处理支持(例如,允许网络设备230根据服务集对数据流提供服务)。此外,或备选地,虚拟机服务器240可以实施虚拟机,虚拟机可以执行应用以修改网络设备230的控制面。在一些实施方式中,环境200可以包括多个虚拟机服务器240,其可以被提供作为数据中心的部分。例如,数据中心可以连接多个虚拟机服务器240,以使得通过多个虚拟机服务器240所提供的服务可以被合并在一起,并且以使得通过多个虚拟机服务器240所提供的服务可以由网络设备230容易地读取。在一些实施方式中,每个虚拟机服务器240可以实施多个虚拟机,网络设备230可以从这些虚拟机中选择以便向数据流提供服务。
[0025]在一些实施方式中,虚拟机服务器240可以给数据流提供主动的服务和/或被动的服务。例如,在主动的服务中,虚拟机服务器240可以在数据流中修改、丢弃或插入包。例如,在被动的服务中,虚拟机服务器240可以监控数据流,并且可以不转发数据流。在一些实施方式中,被动的服务可以在数据流的备份或样本上进行操作。
[0026]在一些实施方式中,由虚拟机服务器240所实施的特定的虚拟机可以针对特定的会话或会话的特定部分退出提供特定的服务。例如,假设虚拟机服务器240给HTTP消息提供HTTP服务,并且虚拟机服务器240基于HTTP消息的头给HTTP消息提供服务。进一步假设HTTP消息的头是由虚拟机服务器240经由会话的第一部分来接收,并且HTTP消息的主体由虚拟机服务器240通过会话的第二部分来接收。给定这些假设,由于虚拟机服务器240可以基于HTTP消息的头给HTTP消息提供HTTP服务,并且可以不需要HTTP消息的主体,虚拟机服务器240可以针对会话的第二部分退出提供HTTP服务。在一些实施方式中,服务退出可以通过降低会话的数目或会话的部分的数目导致性能的改善,在该会话中提供服务。
[0027]在一些实施方式中,虚拟机服务器240可以识别附加的服务以在每个流的基础上应用于不同的数据流。例如,虚拟机服务器240可以对数据流执行深度包检测服务,可以识别与数据流相关联的会话的类型(例如,视频类型会话),并且可以基于会话的类型识别附加的服务以应用于数据流。例如,对于视频类型会话,虚拟机服务器240可以提供缓存服务,然而对于在另一个数据流中的另一类型的会话,虚拟机服务器240可以提供一些其他服务(例如,侵入检测服务或一些其他服务)。结果,不同的数据流可以被引导至由虚拟机服务器240所实施的不同的虚拟机。
[0028]中央服务器250可以包括计算设备,诸如服务器设备或服务器设备的集合。在一些实施方式中,中央服务器250可以存储由客户端设备220所提供的服务集和/或应用。中央服务器250可以规定网络设备230以指导网络设备230给数据流提供服务(例如,基于与服务集相关联的信息)。备选地,网络设备230可以从中央服务器250或客户端设备220接收服务集,并且可以基于服务集来识别服务以提供给数据流。在一些实施方式中,中央服务器250可以基于服务集中的信息生成由(多个)虚拟机服务器240所实施的虚拟机。中央服务器250还可以作为目录服务器以广播关于网络设备230可以发现的虚拟机的信息。
[0029]网络260可以包括一个或多个有线和/或无线网络。例如,网络260可以包括蜂窝网络、公众地面移动网络(PLMN)、二代(2G)网络、三代(3G)网络、四代(4G)网络、五代(5G)网络和/或其他网络。此外,或备选地,网络260可以包括局域网(LAN)、广域网(WAN)、城域网(MAN)、电话网络(例如,公众交换电话网络(PSTN))、自组织网络、管理的IP网络、虚拟专用网络(VPN)、内联网、互联网、和/或这些的组合或其他类型的网络。
[0030]图2中所图示的设备和/或网络的数量并不限于所示出的。实际上,除了图2所图示的,可以有附加的设备和/或网络;较少的设备和/或网络;不同的设备和/或网络;或被不同地布置的设备和/或网络。而且,在一些实施方式中,环境200的一个或多个设备可以执行被描述为由环境200的另一个或多个设备所执行的一个或多个功能。环境200的设备可以通过有线连接、无线连接或有线和无线连接的组合互相连接。
[0031]图3A图示网络设备230的示例部件。如图3A所示,网络设备230可以包括路由部件301、输入/输出(I/O)部件302和交换机303。
[0032]路由部件301可以包括路由处理器或路由处理器的集合。在一些实施方式中,路由部件301可以针对网络设备230执行高级管理功能。例如,路由部件301可以和被连接至网络设备230的网络和/或系统进行通信以交换关于网络拓扑的信息。在一些实施方式中,路由部件301可以基于网络拓扑信息生成路由表,可以基于路由表生成转发表,并且可以将转发表发送给I/o部件302。在一些实施方式中,路由部件301可以为网络设备230执行其他一般的控制和监控功能。
[0033]I/O部件302可以包括接口设备或接口设备的集合。在一些实施方式中,I/O部件302可以连接至路由部件301和交换机303。在一些实施方式中,I/O部件302可以在被连接至网络的物理链路上接收包。每个物理链路可以是许多类型的传送介质之一,诸如光纤或以太网电缆。物理链路上的包可以根据若干协议之一被格式化,诸如同步光网络(SONET)标准或以太网。在一些实施方式中,I/O部件302可以使用转发表以给到来的数据流执行路由查表。
[0034]交换机303可以包括一个或多个交换面以有助于两个或多个I/O部件302之间的通信。在一些实施方式中,交换机303可以包括单个或多级交换结构。
[0035]图3B图示可以被用于图2的环境200内的设备300的示例部件。设备300可以对应于用户设备210、客户端设备220、虚拟机服务器240或中央服务器250。用户设备210、客户端设备220、虚拟机服务器240或中央服务器250中的每一个可以包括一个或多个设备300和/或设备300的一个或多个部件。
[0036]如图3B所示,设备300可以包括总线305、处理器310、主存储器315、只读存储器(R0M)320、存储设备325、输入设备330、输出设备335和通信接口 340。在一些实施方式中,设备300可以包括附加的部件、较少的部件、不同的部件、或被不同地布置的部件。
[0037]总线305可以包括允许在设备300的部件之间通信的路径。处理器310可以包括处理器、微处理器、特定应用集成电路(ASIC)、现场可编程门阵列(FPGA)或解释和执行指令的其他类型的处理器。主存储器315可以包括随机存取存储器(RAM)或存储信息或指令用于由处理器310来执行的其他类型的动态存储设备。R0M320可以包括ROM设备或存储信息或指令用于由处理器310来使用的其他类型的静态存储设备。存储设备325可以包括磁存储介质,诸如硬盘驱动或诸如闪存的可移动存储器。
[0038]输入设备330可以包括允许操作者对设备300输入信息的部件,诸如控制按钮、键盘、按键或其他类型的输入设备。输出设备335可以包括给操作者输出信息的部件,诸如发光二极管(LED)、显示器或其他类型的输出设备。通信接口 340可以包括任何类似收发器的机构,该机构使得设备300可以和其他设备或网络进行通信。在一个实施方式中,通信接口340可以包括无线接口、有线接口或无线接口和有线接口的组合。
[0039]设备300可以执行如下面所详细描述的某些操作。响应于处理器310执行包含在诸如主存储器315的计算机可读介质中的软件指令,设备300可以执行这些操作。计算机可读介质可以被限定为永久存储器设备。存储器设备可以包括在单个物理存储设备内的存储器空间或遍布多个物理存储设备的存储器空间。
[0040]软件指令可以从诸如存储设备325的另一个计算机可读介质或通过通信接口 340从另一个设备读入到主存储器315中。主存储器315中所包含的软件指令可以指导处理器310执行后面将要描述的过程。备选地,硬线电路可以被使用代替或结合软件指令来实施本文中所描述的过程。因此,本文中所描述的实施不限制于硬件电路和软件的任何特定的组
口 ο
[0041]图4图示可以被环境200中的一个或多个设备所存储的示例数据结构400,诸如客户端设备220、网络设备230、虚拟机服务器240或中央服务器250。在一个实施方式中,数据结构400可以被存储在客户端设备220、网络设备230、虚拟机服务器240或中央服务器250的存储器中。在另一个实施方式中,数据结构400可以被存储在和客户端设备220、网络设备230、虚拟机服务器240或中央服务器250分离但是可由其存取的存储器中。在一些实施方式中,数据结构400的部分可以被环境200中的设备来存储,并且数据结构400的另一个部分可以被环境200中的另一个设备来存储。
[0042]如图4所示,数据结构400可以包括接口信息域410、服务集ID域420、服务参数域430和虚拟机信息域440。
[0043]接口信息域410可以识别和网络设备230的接口相关联的信息。例如,接口信息域410可以识别接口标识符(ID)、过滤器和数据流的方向(例如,入站或出站方向)。在一些实施方式中,接口 ID域可以存储一串字符来识别网络设备230的接口(例如,以太网接口、帧中继接口、串行接口、SONET接口或一些其他类型的接口)。此外,或备选地,接口 ID可以对应于端口标识符或识别网络设备230的接口的一些其他标识符,通过该接口网络设备230可以接收数据流。
[0044]在一些实施方式中,特定的接口可以和用户设备210的特定组相关联(例如,一组用户设备210用网络设备提供商被订阅到一个服务)。也就是,网络设备230可以经由第一接口从用户设备210接收数据流,该用户设备210是第一组用户设备210的部分。类似地,网络设备230可以经由第二接口从另一个用户设备210接收数据流,该用户设备210是第二组用户设备210的部分。如上所述,服务集可以基于经由网络设备230的特定接口所接收到的数据来识别服务以提供给数据流。因此,网络设备230可以对从第一组用户设备210所接收的数据流提供第一服务,并且对从第二组用户设备210所接受的数据流提供第二服务。
[0045]在一些实施中,网络设备230可以确定服务以提供给数据流,该数据流经由特定的接口所接收并且满足特定的过滤器。网络设备230还可以确定特定的服务参数以提供给数据流(例如,针对防火墙服务的特定的规则、针对NAT服务的特定的地址池)。进一步,网络设备230可以基于数据流的方向(例如,入站或出站方向)来确定服务集以提供给数据流。入站或出站域可以存储识别与特定的服务集相关联的数据流的方向的信息。例如,网络设备230可以根据数据流是入站数据流还是出站数据流来识别服务以提供给数据流。在一些实施方式中,入站方向可以涉及由网络设备230所接收的数据流。出站方向可以涉及由网络设备230所发送的数据流。
[0046]过滤域可以针对由特定的接口所接收的数据流来识别过滤准则(例如,如由接口ID所识别的)。在一些实施方式中,网络设备230可以使用过滤器通过检查与数据流相关联的包的内容来选择特定的数据流。在一些实施方式中,过滤器可以指导网络设备230基于过滤域所存储的信息来选择数据流。例如,过滤域可以识别互联网协议(IP)地址、硬件ID、用户ID或与数据流相关联的一些其他标识符。
[0047]作为示例,假设过滤域存储两个IP地址,诸如“172.25.14.4”和“174.23.6.52”。进一步,假设网络设备230经由对应于接口 ID为“4896”的接口来接收两个数据流。进一步,假设网络设备230所接收的两个数据流分别和IP地址“172.25.14.4”和“555.23.6.52”相关联。网络设备230可以向与IP地址“172.25.14.4”相关联的数据流提供服务,并且可以不向与IP地址“555.23.6.52”相关联的数据流提供服务。在一些实施方式中,过滤域可以存储白名单(例如,一列IP地址,或者与数据流相关联的一些其他标识符,以识别网络设备230可以向其提供服务的数据流)或黑名单(例如,一列IP地址,或者与数据流相关联的一些其他标识符,以识别网络设备230可以不向其提供服务的数据流)。
[0048]在一些实施中,过滤器可以是无状态的。例如,过滤器可以指导网络设备230基于与数据流相关联的个别的包来选择数据流。备选地,过滤器可以是有状态的。例如,过滤器可以指导网络设备230基于之前所接收的包来选择数据流。
[0049]服务集ID域420可以存储一串字符来唯一地识别与特定的接口、特定的过滤器和特定的数据流方向相关联的服务集。如图4所示,具有服务集ID123的服务集可以与在入站方向上经由接口 ID5844所接收的数据流相关联。因此,网络设备230可以在处理在入站方向上经由接口 ID5844所接收的数据流时识别服务集ID123。在一些实施方式中,在新的服务集被网络设备230或中央服务器250所接收时,服务集ID可以被生成。在一些实施方式中(例如,在服务集ID是数字时),所生成的服务集ID可以是最近使用的服务集ID之后的下一个数字。
[0050]作为另一个示例,假设具有服务集ID584的服务集与在入站或出站方向上经由接口 ID4896所接收的数据流相关联。进一步,假设过滤器(例如,IP地址的白名单或黑名单)和服务集ID584相关联。因此,网络设备230可以在处理在入站方向或出站方向上经由接口 ID4896所接收的数据流并且满足过滤器时识别服务集ID584。
[0051]服务参数域430可以存储识别一组规则、指令、过程、功能的信息或与特定的服务集相关联的一些其他信息。在一些实施方式中,由服务参数域430所存储的信息可以对应于提供给数据流的服务。例如,如图4所示,服务参数域430可以存储信息,该信息指导网络设备230向与服务集ID123相关联的数据流提供防火墙服务(例如,在入站方向上经由接口 ID5844所接收的数据流)。此外,服务参数域430可以存储与服务相关联的特定的参数,诸如特定的路由操作、一列IP地址、一列NAT规则或与服务相关联的一些其他参数。在一些实施方式中,服务参数域430可以针对单个服务集存储多个服务参数。
[0052]虚拟机信息域440可以存储信息以识别的特定的虚拟机,网络设备230与该虚拟机通信以便向数据流提供服务。例如,虚拟机信息域440可以存储虚拟机ID (VM ID)、服务器ID (例如,与特定的虚拟机服务器240相关联的标识符)、虚拟机和/或虚拟机服务器240的IP地址、和/或识别虚拟机的一些其他信息。在一些实施方式中,虚拟机信息域440可以不针对特定的虚拟机存储信息,并且可以存储诸如“自动选择”的信息以指导网络设备230执行自动选择功能来识别与其通信的可用虚拟机。
[0053]虽然特定的域在数据结构400中以特定的形式被示出,但是实际上,除了图4所示出的,数据结构400可以包括附加的域、较少的域、不同的域或被不同地配置的域。
[0054]图5图示用于使用虚拟机处理数据流的示例过程的流程图。在一个实施方式中,过程500可以通过网络设备230的一个或多个部件来执行。在另一个实施方式中,过程500的一些或所有块可以通过环境200中另一个设备(例如,虚拟机服务器240或中央服务器250)的一个或多个部件,或者通过包括或不包括网络设备230的设备组来执行。
[0055]如图5所示,过程500可以包括接收服务集(块510)。在一个实施方式中,网络设备230可以从客户端设备220接收服务集(例如,经由网络设备230的用户接口)。例如,客户端设备220可以被用于开发服务集,并且在网络设备230上安装该服务集。在另一个实施方式中,中央服务器250可以从客户端设备220来接收服务集。在这种情况下,中央服务器250可以向网络设备230提供服务集。例如,中央服务器250可以基于由客户端设备220安装在在网络设备230上的优先级策略在网络设备230上安装该服务集。
[0056]过程500还可以包括创建虚拟机(块520)。在一个实施方式中,网络设备230可以使用信令协议和/或控制面协议来指导虚拟机服务器240根据与服务集相关联的信息来创建虚拟机。例如,网络设备230可以识别特定的虚拟机服务器240,并且可以指导已识别的虚拟机服务器240创建具有特定的IP地址、特定的标识符、特定的配置和/或具有一些其他的参数的虚拟机。在一些实施方式中,虚拟机服务器240可以向网络设备230提供指示,即虚拟机已经被创建。在另一个实施方式中,中央服务器250可以创建虚拟机(例如,以与上面所描述相类似的方式)。在这种情况下,中央服务器250可以广播虚拟机已经被创建的指示,以使得网络设备230可以发现被新创建的虚拟机。
[0057]过程500还可以包括与虚拟机创建通道(块530)。例如,网络设备230可以使用控制面协议来在网络设备230和虚拟机之间创建通道。在一些实施方式中,该通道可以允许网络设备230给虚拟机提供数据流用于以这样的方式来处理,该方式为阻止数据流被路由至处理的数据流的原始目的地或无意识的位置。进一步,在中间的路由器或交换机不能识别虚拟机时,通道可以促成数据流的传输。在一些实施方式中,在网络设备230创建虚拟机时,或在网络设备230发现虚拟机时,网络设备230可以自动地创建通道。结果,在虚拟机被创建时,通道可以被自动地建立,以使得该通道可以被容易地用于向虚拟机传输数据流。
[0058]过程500可以进一步包括经由特定的接口接收数据流(块540)。例如,网络设备230可以从用户设备210经由特定的接口(例如,以太网接口、帧中继接口、网络设备230的特定的端口等)来接收数据流。如上所述,特定的接口可以与用户设备210的特定组相关联(例如,一组用户设备210被订阅到具有网络设备提供商的服务)。
[0059]过程500还可以包括识别服务以提供给数据流(块550)。例如,网络设备230可以基于诸如由数据结构400所存储的信息的信息来识别服务以提供给数据流。在一些实施方式中,网络设备230可以经由特定的接口接收数据流,并且可以将过滤器应用至数据流以确定该服务用以提供至该数据流(例如,如上面根据图4所描述的)。在一些实施方式中,网络设备230可以确定与识别的服务相关联的处理需求。
[0060]过程500可以进一步包括识别服务处理位置(块560)。例如,网络设备230可以基于诸如由数据结构400所存储的信息的信息识别服务处理位置(例如,由特定的虚拟机服务器240所实施的特定的虚拟机)。如上所述,服务处理位置可以基于虚拟机ID、服务器ID、IP地址或一些其他标识符来识别。备选地,网络设备230可以启动自动选择功能以自动地识别服务处理位置。例如,网络设备230可以识别提供识别的服务的虚拟机,并且可以选择具有处理容量以满足与识别的服务相关联的处理需求的那些虚拟机之一。在一些实施方式中,网络设备230可以指导虚拟机服务器240在具有足够的处理容量的虚拟机不可用的情形下生成虚拟机。
[0061]备选地,中央服务器250可以识别服务处理位置,并且向网络设备230提供识别该服务处理位置的信息。例如,中央服务器250可以识别提供识别的服务并且具有处理容量以满足与识别的服务相关联的处理需求的虚拟机。在一些实施方式中,中央服务器250可以指导虚拟机服务器240在具有足够的处理容量的虚拟机不可用的情形下生成虚拟机。[0062]过程500还可以包括封装数据流并且添加元数据(块570)。例如,网络设备230可以基于诸如由数据结构400所存储的信息的信息向数据流添加服务集ID (例如,元数据)。在一些实施方式中,网络设备230可以附加元数据,以使得识别的虚拟机可以识别服务ID以及与服务ID相关联的对应的服务参数。
[0063]在一些实施方式中,元数据可以包括上下文信息,诸如经由其数据流被接收的接口的ID、在其中数据流被接收的路由实例的ID、与数据流相关联的订阅者或会话ID或者一些其他上下文信息。此外,或备选地,元数据可以包括便签式存储器以识别信息来允许特定的虚拟机与另一个虚拟机通信信息。此外,或备选地,元数据可以包括信息以在包被虚拟机处理并且被网络设备230接收时,允许网络设备将与数据流相关联的包重新插入到转发管道中。在一些示例实施方式中,元数据在尺寸上可以是8、16或32个字节,或者可以是一些其他的尺寸。
[0064]在一些实施方式中,网络设备230可以封装对应于与虚拟机服务器240(对应于服务位置)相关联的通道的通道包中的数据流。在一些实施方式中,通道包可以经由与虚拟机服务器240相关联的特定的通道有助于数据流的传输。
[0065]过程500还可以包括向服务处理位置提供数据流(块580)。例如,网络设备230可以向块560中所识别的虚拟机服务器240提供数据流。在一些实施方式中,网络设备230可以使用通道包经由通道来提供数据流。例如,通道包可以包括信息以识别虚拟机服务器240的IP地址。网络设备230可以在由网络设备230所存储的路由表中查找IP地址以识别经由其传输数据流的出站接口(例如,与通道相关联的接口)。在一些实施方式中,网络设备230可以向虚拟机服务器240提供对应于服务ID的指令(例如,指导虚拟机服务器240如何代表网络设备230处理数据流的指令)。在一些实施方式中,网络设备230可以使用服务集信令协议或一些其他类型的协议来提供指令。作为示例,假设网络设备230确定与数据流相关联的服务集ID “123”,该服务集ID “123”包括涉及一列防火墙规则的服务参数。给定这些假设,虚拟机服务器240可以代表网络设备230处理数据流以形成具有一列已应用于数据流的防火墙规则的处理的数据流(例如,具有被应用于数据流的服务的数据流)。
[0066]过程500可以进一步包括从服务处理位置接收处理的数据流,并且向目标输出(块590)。例如,网络设备230可以从虚拟机服务器240接收处理的数据流,并且可以向目标设备输出处理的数据流(例如,特定的用户设备210或服务设备)。结果,通过识别与数据流相关联的服务(例如,基于经由其数据流被接收的接口、数据流方向和/或应用于数据流的一个或多个过滤器),识别服务位置(例如,特定的虚拟机服务器240实施特定的虚拟机),附加服务ID至数据流,并且与虚拟机服务器240进行通信以允许虚拟机服务器240处理数据流并且根据对应于服务ID的服务参数应用服务,网络设备230可以向接收的数据流提供服务,。
[0067]虽然对于图5特定的块系列已经在上面描述,操作、数据流和/或块的顺序可以在其他的实施方式中被修改。进一步,非独立的操作和/或数据流可以被并行地执行。
[0068]图6A图示如本文中所描述的示例实施方式。在图6A中,假设两个用户设备210(例如,UD-1和UD-2)经由网络设备230互相进行通信。进一步假设,如上所述,网络设备230与多个虚拟机(例如,虚拟机I到X,其中X>1)建立通道。在一些实施方式中,网络设备230可以经由网络设备230特定的接口从UD-1和/或UD-2接收数据流。如上所述,网络设备230可以基于经由其数据流被接收的接口和/或基于过滤器来识别与数据流相关联的服务和服务位置。
[0069]如上所述,网络设备230可以识别服务位置(例如,虚拟机)以发送数据流用于处理。例如,网络设备230可以执行自动选择功能以识别提供识别的服务并且具有处理容量以处理识别的服务的虚拟机。备选地,网络设备230可以基于被包括在服务集中的虚拟机ID信息来识别虚拟机。在图6A中,假设网络设备230识别虚拟机2作为服务位置(例如,通过自动选择或通过被包括在服务集中的虚拟机ID信息)。给定这个假设,网络设备230可以封装通道中的数据流,附加元数据至数据流(例如,以识别服务集ID),并且向虚拟机2提供数据流(例如,经由通道)用于处理。在一些实施方式中,虚拟机2可以代表网络设备230根据对应于服务集ID的服务集参数来处理数据流。如上所述,并且如图6A所示,网络设备230可以接收处理的数据流,并且向各自的用户设备210提供处理的数据流。
[0070]在一些实施方式中(例如,在处理的数据流从虚拟机通过网络设备230来接收时),处理的数据流能够被注入到不同的路由实例(例如,虚拟路由和转发(VRF)或上下文或区域),而不是业务流最初被网络设备230所接收的路由实例。结果,在虚拟机修改在数据流(例如,NAT)中的包的目标IP地址时,数据流可以被处理。
[0071]在一些实施方式中,服务位置(例如,虚拟机2)可以向与服务位置接收到数据流的网络设备230不同的网络设备230提供处理的数据流。参照图6B,假设第一网络设备230(例如,网络设备230-1)从UD-1接收去往UD-2的数据流。进一步假设网络设备230-1识别虚拟机2作为服务位置。如图6B所示,虚拟机2可以处理数据流,并且向第二网络设备(例如,网络设备230-2)提供处理的数据流。如图6B所示,网络设备230-2可以向目标设备(例如,UD-2)提供处理的数据流。在一些实施方式中,服务位置可以基于具有容量以向目标设备提供处理的数据流的网络设备230,基于服务目标设备的网络设备230和/或基于一些其他因素,来识别将处理的数据流发送到哪里。
[0072]图7图示如本文中所描述的示例实施方式。图7图示虚拟机的链接以代表网络设备230处理数据流。例如,多个虚拟机(例如,虚拟机I到Y (其中Y>1))可以被链接到一起(例如,经由链接通道)来作为单个虚拟机。类似于图6Α-6Β,网络设备230可以基于经由其数据流被接收的接口和/或基于过滤器来针对数据流识别服务集。网络设备230可以附加元数据至数据流,封装通道包中的数据流,向多个虚拟机发送数据流(例如,通过通道包)用于处理,并且向各自的用户设备210提供处理的数据流。
[0073]图8图示如本文中所描述的示例实施方式。如上所述,客户端设备220可以被用于开发应用,虚拟机服务器240可以执行该应用以修改网络设备230的控制面(例如,防火墙过滤器、路由表等)。在一些实施方式中,客户端设备220可以向虚拟机服务器240提供控制面修改应用。例如,客户端设备220可以向中央服务器250提供应用,并且中央服务器250可以向虚拟机服务器240提供应用(例如,通过以这样的形式发布应用,该方式允许虚拟机服务器240发现应用并且从中央服务器250请求应用)。备选地,客户端设备220可以独立于中央服务器250向虚拟机服务器240提供应用。在一些实施方式中,虚拟机服务器240可以执行应用并且可以与网络设备230进行通信以根据应用的指令来修改网络设备230的控制面。
[0074]一些示例应用可以允许虚拟机在网络设备230的路由表中安装路由,在网络设备230上安装防火墙过滤器/策略,并且将防火墙过滤器/策略与网络设备230上的接口相关联,从网络设备230重新得到配置和/或执行由网络设备230存储的操作要求,或允许虚拟机执行一些其他功能或以一些其他的方式修改网络设备230的控制面。在一些实施方式中,和蜂窝网络相关联的移动管理实体(MME)可以使用防火墙应用编程接口(API)将MME控制流量的特定的流引导至控制面修改应用所位于的特定的虚拟机。
[0075]因为虚拟机服务器240可以被用于代表网络设备230处理数据流,或者修改网络设备230的控制面,网络设备230可以能够通过在公共设施上与一个或多个虚拟机服务器240所实施的一个或多个虚拟机进行通信,来向任意数量的数据流提供任意数量的服务。进一步,虚拟机可以被位于各种地理位置的服务器实施。如上所述,虚拟机服务器240可以被提供作为数据中心的部分,以使得虚拟机服务器240所提供的服务可以被网络设备230容易地读取。
[0076]前述描述提供图示和描述,但是不旨在于非常详尽或将可能的实施方式限制到所公开的精确形式。根据以上的公开的修改和变形是可能的,或可以从实施方式的实践中获得。
[0077]将清楚,上面所提供的描述的不同示例可以以软件、固件和图中所图示的实施中的硬件的各种不同形式来实施。用于实施这些示例的实际软件代码或特定的控制硬件是不限制于实施方式。因此,这些示例的操作和行为没有参照特定的软件代码被描述——将理解,软件和控制硬件能够被设计以基于本文中的描述来实施这些示例。
[0078]即使特征的特定组合被权利要求所保护和/或在说明书中被公开,这些组合不旨在于限制可能的实施方式的公开。实际上,许多这些特征可以以各种形式被组合,不特定地按照权利要求所保护的和/或在说明书中所公开的那样。虽然下面所列出的每个从属权利要求可以直接仅引用一个其他权利要求,但是可能的实施的公开包括每个从属权利要求结合权利要求集中的每一个其他权利要求。
[0079]除非如这样明确地描述,在本申请中所使用的元件、行为或指令不应该被解释为重要的或必须的。而且,如本文中所使用的,冠词“一”旨在于包括一个或多个项目,并且可以和“一个或多个”交换地来使用。在只用一个项目时,术语“一个”或类似的语言被使用。进一步,短语“基于”旨在于表示“至少部分地基于”,除非另外被明确地阐述。
【权利要求】
1.一种方法,包括: 由网络设备接收关于服务集的信息, 所述服务集识别服务以应用于经由所述网络设备的特定接口所接收的数据流; 由所述网络设备经由所述特定接口接收所述数据流; 由所述网络设备基于关于所述服务集的所述信息来识别服务以应用于所述数据流; 由所述网络设备识别处理设备以处理所述数据流, 所述处理设备与所述网络设备不同; 由所述网络设备向所述处理设备提供所述数据流, 所述处理设备代表所述网络设备处理所述数据流以形成处理的数据流, 所述处理的数据流包括具有被应用于所述数据流的所述服务的所述数据流; 由所述网络设备从所述处理设备接收所述处理的数据流;以及 由所述网络设备朝向目标设备发送所述处理的数据流。
2.根据权利要求1所述的方法,其中所述服务集包括服务集标识符, 其中所述方法进一步包括: 向所述数据流添加包括所述服务集标识符的元数据,并且 其中所述处理设备基于被包括在所述元数据中的所述服务集标识符来识别所述服务以应用于所述数据流。
3.根据权利要求1所述的方法,其中所述处理设备是由服务器实施的虚拟机。
4.根据权利要求1所述的方法,其中所述处理设备是虚拟机, 其中所述方法进一步包括: 识别所述虚拟机,并且建立与所述虚拟机的通道,并且 其中向所述处理设备提供所述数据流包括经由所述通道向所述虚拟机发送所述数据流。
5.根据权利要求1所述的方法,进一步包括: 生成虚拟机;以及 建立与所述虚拟机的通道, 其中所述处理设备是所述虚拟机, 其中向所述处理设备提供所述数据流包括经由所述通道向所述虚拟机发送所述数据流。
6.根据权利要求1所述的方法,其中所述服务是防火墙服务、网络地址转换(NAT)服务、广域网(WAN)优化服务、超文本传输协议(HTTP)头写入服务、压缩服务或负载均衡服务。
7.根据权利要求1所述的方法,其中所述处理设备是多个虚拟机中的虚拟机,并且 其中所述多个虚拟机被链接在一起以起单个虚拟机的作用。
8.根据权利要求1所述的方法,其中识别所述处理设备是基于识别所述处理设备的所述服务集中的信息。
9.根据权利要求1所述的方法,进一步包括: 使用自动选择功能识别所述处理设备以从能够提供所述服务的多个处理设备中选择所述处理设备。
10.一种系统,包括: 网络设备,所述网络设备包括: 用于接收关于服务集的信息的装置, 所述服务集包括标识符以识别服务以应用于经由所述网络设备的特定接口所接收的数据流; 用于经由所述特定接口接收所述数据流的装置; 用于基于关于所述服务集的所述信息来识别服务以提供给所述数据流的装置; 用于向所述数据流添加元数据的装置, 所述元数据包括所述标识符; 用于识别处理设备以处理所述数据流的装置, 所述处理设备与所述网络设备不同; 用于向所述处理设备提 供所述数据流的装置, 所述处理设备基于被包括在所述元数据中的所述标识符来识别所述服务并且代表所述网络设备处理所述数据流以形成处理的数据流, 所述处理的数据流包括具有被应用于所述数据流的所述服务的所述数据流; 用于从所述处理设备接收所述处理的数据流的装置;以及 用于朝向目标设备发送所述处理的数据流的装置。
11.根据权利要求10所述的系统,其中所述处理设备是虚拟机,并且其中所述网络设备进一步包括: 用于识别所述虚拟机的装置;以及 用于建立与所述虚拟机通道的装置, 其中用于向所述处理设备提供所述数据流的所述装置包括用于经由所述通道向所述虚拟机发送所述数据流的装置。
12.根据权利要求10所述的系统,其中所述网络设备进一步包括: 用于生成虚拟机的装置;以及 用于建立与所述虚拟机通道的装置, 其中所述处理设备是所述虚拟机, 其中用于向所述处理设备提供所述数据流的所述装置包括经由所述通道向所述虚拟机发送所述数据流。
13.根据权利要求10所述的系统,其中所述服务是防火墙服务、网络地址转换(NAT)服务、广域网(WAN)优化服务、超文本传输协议(HTTP)头写入服务、压缩服务或负载均衡服务。
14.根据权利要求10所述的系统,其中所述网络设备进一步包括: 用于基于在所述处理设备执行应用以指导所述处理设备修改所述网络设备的控制面时,接收用以修改所述控制面的指令,修改所述网设备的所述控制面的装置。
15.根据权利要求10所述的系统,其中所述处理设备是多个虚拟机中的虚拟机,并且 其中所述多个虚拟机被链接在一起以起单个虚拟机的作用。
16.根据权利要求10所述的系统,其中所述网络设备进一步包括: 用于使用自动选择功能识别所述处理设备的装置以从能够提供所述服务的多个处理设备中选择所述处理设备。
17.一种网络设备,包括: 用于接收关于服务集的信息的装置, 所述服务集识别服务以应用于经由所述网络设备的特定接口所接收的数据流; 用于经由所述特定接口接收所述数据流的装置; 用于基于关于所述服务集的所述信息来识别服务以提供至所述数据流的装置; 用于识别多个虚拟机的虚拟机以处理所述数据流的装置, 所述虚拟机与所述网络设备不同; 用于向所述虚拟机提供所述数据流的装置, 所述虚拟机基于服务集标识符来识别所述服务,并且代表所述网络设备处理所述数据流以形成处理的数据流, 所述处理的数据流包括具有被应用于所述数据流的所述服务的所述数据流; 用于从所述虚拟机接收所述处理的数据流的装置;以及 用于朝向目标设备 发送所述处理的数据流发送的装置。
18.根据权利要求17所述的网络设备,其中所述服务集包括服务集标识符,并且 其中所述网络设备进一步包括: 用于向所述数据流添加包括所述服务集标识符的元数据的装置,并且 其中所述虚拟机基于被包括在所述元数据中的所述服务集标识符来识别所述服务。
19.根据权利要求17所述的网络设备,进一步包括: 用于建立与所述虚拟机的通道的装置,并且 其中用于向所述虚拟机提供所述数据流的所述装置包括用于经由所述通道向所述虚拟机提供所述数据流的装置。
20.根据权利要求17所述的网络设备,进一步包括: 用于使用自动选择功能识别所述处理设备以选择所述虚拟机的装置。
【文档编号】H04L29/08GK103916453SQ201310751351
【公开日】2014年7月9日 申请日期:2013年12月31日 优先权日:2012年12月31日
【发明者】B·里杰斯曼, U·夏尔马, P·加尼森, S·拉马穆尔蒂 申请人:瞻博网络公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1