CN105052113B - 提供针对网络设备的共同代理框架的方法、设备及介质 - Google Patents
提供针对网络设备的共同代理框架的方法、设备及介质 Download PDFInfo
- Publication number
- CN105052113B CN105052113B CN201480014950.8A CN201480014950A CN105052113B CN 105052113 B CN105052113 B CN 105052113B CN 201480014950 A CN201480014950 A CN 201480014950A CN 105052113 B CN105052113 B CN 105052113B
- Authority
- CN
- China
- Prior art keywords
- network equipment
- network
- grouping
- protocol
- agreement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/52—Multiprotocol routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/022—Multivendor or multi-standard integration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/0816—Configuration setting characterised by the conditions triggering a change of settings the condition being an adaptation, e.g. in response to network events
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/02—Capturing of monitoring data
- H04L43/028—Capturing of monitoring data by filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/60—Software-defined switches
- H04L49/602—Multilayer or multiprotocol switching, e.g. IP switching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/08—Protocols for interworking; Protocol conversion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
提供了用于自动化针对网络设备的共同框架的技术。在一个示例中,网络设备(例如,交换机、路由器等)被配置为自动地解决处理未知分组。该网络设备可以检测协议是否对于该网络设备未知、执行查找、确定匹配的协议是否可用于该网络设备、以及向该网络设备的存储器动态地加载适合的协议处理程序。有利的是,本技术提供了用于根据需求灵活地推送协议信息的机制。如果在网络上新的协议被注意到,那么网络设备可以查找分组的类型,并可以使用单平台套件以动态地向该网络设备加载用于该协议的驱动程序和控制逻辑。同样地,在分组路径中或在网络中的其它网络设备通常如果需要可以加载该驱动程序和控制逻辑。
Description
相关申请的交叉引用
本申请请求于2013年3月15日提交、序列号为13/843,715的美国专利申请的利益,该专利申请通过引用结合于此。
技术领域
本公开的实施例一般地涉及计算机网络,并且更特别地,涉及用于提供针对网络设备(例如,交换机、路由器等)的共同框架以共享用于处理数据分组和/或数据帧的协议的技术。
背景技术
在信息技术中不断进行改变。计算机网络以及,特别地,网络管理必须同步变化。网络管理是否涉及提供用于网络分析的深入信息、简化操作任务或提供针对新服务的平台,网络需要准备创新。
网络硬件或网络设备通常指提供和管理计算机网络的设备。通常,这样的设备除了包括其他设备之外还包括网关、路由器、网桥、交换机、集线器和中继器。
网络交换机为将网络部分或网络设备相连的计算机网络设备。该术语一般指在开放式系统互联(OSI)模型的数据链路层(层2)处理和路由数据的多端口的网桥。在网络层(层3)和以上另外处理数据的交换机通常被称为层-3交换机或多层交换机。交换机可用于各种网络协议或技术,包括光纤信道、异步传输模式、无限带宽技术、以太网等。
网络管理的一个低效之处是,被购买的网络设备(例如,路由器或交换机)对协议进行硬编码。增加新的支持的唯一方式是,向该设备安装完整的新软件镜像。在传统的系统中,使协议发现和分类能够仅对受支持的接口、流和协议起作用。网络管理员人工解释该结果,例如,识别由依附于该网络的设备所使用的未知协议,并实施与这些协议相关的策略,从而允许该网络架构处理被该依附设备所发送的业务。基于该协议发现结果的管理员评价,网络管理员可以例如加载和分派所支持的协议组。网络管理员还可以识别应当具有定制规则的流。例如,网络管理员可以定义业务类别和策略,并手动地将业务类别和策略相关。这一方案不仅限定了可以被监控的内容,而且该处理流的每一步骤需要管理员评价、识别,以及流、规则和策略的实施。
此外,在交换机层或多交换机层,“非对称”协议(例如,经由负载平衡被路由至不同端点的协议,或者使用不同的上游路径和下游路径的协议)不能有效地可监控和可控制。
附图说明
为了使得本公开的上述特征的方式可以被详细了解,本公开的上面简要概括的更为详细的描述可以通过参考实施例而获得,部分实施例在附图中被示出。然而,应当注意的是,附图仅示出了本公开的典型实施例,并且因此不应当被认为限制本公开的范围,因为本公开可以承认其他等价有效的实施例。
图1为根据本公开的某些实施例的示例性数据中心的示图。
图2为根据本公开的某些实施例包含单平台套件的数据中心的概念性示图。
图3为根据本公开的某些实施例的示例性网络设备的架构的示图。
图4为根据本公开的某些实施例的用于提供针对网络设备(例如,交换机、路由器等)的共同框架的示例性方法的流程图。
图5为根据本公开的某些实施例的用于提供针对网络设备的共同框架的另一示例性方法的流程图。
详细描述
概述
方法被提供用于使数据中心的网络设备的共同框架自动化。一个实施例包括方法,该方法使网络设备上的数据分组/数据帧的处理自动化。该方法包括:接收分组;针对该分组检测网络设备的输入接口未知的协议;执行未知协议的查找以发现针对该分组的匹配的协议处理程序;确定匹配的协议是否可用于该网络设备;以及动态地将适合的协议程序加载到网络设备的存储器。为了简便起见,在本说明书中,术语“分组”指数据分组和/或数据帧。按惯例,帧通常指层2数据并且包括头部和尾部;而分组通常指层3的数据并且不包括尾部。
另外的实施例包括而不限于:计算机可读存储介质,该计算机可读存储介质存储了被配置为执行前述方法的程序;以及系统,所述系统具有处理器和存储了被配置为执行前述方法的存储器。
具体实施方式
本文所提出的实施例提供了用于针对网络设备(例如,交换机、路由器等)共享用于处理数据分组和/或数据帧的协议的共同框架的技术。通常,在网络设备上的协议发现被限制。本方法提供了被配置为识别网络上的未知协议流的网络设备,以及作为响应,动态地将协议处理程序加载到该网络设备。
提出下列描述以使本领域的普通技术人员能够实施和利用提议的技术。具体的实施例和应用的描述仅作为示例被提供,并且各种修改对本领域的技术人员将容易变得显然。本文所描述的一般原理可以应用于其它实施例和应用,而不脱离本公开的范围。因此,本公开不被限定于所示出的实施例,而是与本文所描述的原理和特征最广泛的范围相一致。为了明确起见,涉及所提议的思想的技术领域中已知的技术材料的特征未被详细描述。
数据中心概述
图1为根据本公开的某些实施例的示例性数据中心100的示图。数据中心100包括基于多层分级网络模型的网络。通常,这种模型实施了三层分级结构:核心层101、聚合层102和接入层103。这种分级模型的益处包括扩展性、恢复能力、性能、可维护性和可管理性。该分级设计代表了建立该体系的结构化方法,从而允许有模块化增加的较为容易的扩展。每一级的冗余节点(网络设备)和链接(例如,网络设备之间的连接)基本上保证了不存在单点故障,同时链接聚合(例如,网络设备之间的连接组合)可以被设计为通过该聚合和核心层来进行带宽和性能的优化。每一层内部的设备执行相同的功能;该一致性简化了故障处理和配置。
在这一讨论的环境中,“设备”通常包括硬件或硬件与软件的组合。“组件”通常为设备的一部分,并且包括硬件或硬件与软件的组合。
核心层101包括耦接至管理控制台107的核心网络106,该控制台使网络管理员能够管理该数据中心100。核心层101包括针对聚合层102的多个聚合模块之间的高速分组交换的网络设备(例如,路由器和/或交换机)的构造。核心层101作为连接其它模块的网关除了包括其他模块外还包括,例如,外联网、广域网(WAN)和/或互联网边界。连接数据中心核心层101的链接在层3终止,并且通常使用例如10G接口以支持高水平的吞吐量、性能,以及满足超额水平。核心层101具有高度的冗余和带宽容量,因此,在可用性和性能上被优化。核心网络106可将多个聚合层102和多个接入层103相连接。
聚合层102包括网络设备,比如这一示例中耦接至服务交换机(114,116)的聚合交换机(110,112)。聚合交换机(110,112)包括使能高度的高带宽端口密度容量的交换机。相应地,针对接入层103的交换机的业务分发和链接输出能力,聚合层102被优化。功能上,聚合层中的节点(例如,网络设备)通常作为层2/层3的分界线。层2为开放式系统互联(OSI)模型的数据链路层,该层在依附于该网络的网络设备之间传输数据,以及检测可能发生在物理层(层1)的错误并有可能对其进行纠正。层3为该OSI模型的网络层,该层从一个网络上的源主机向不同网络(与连接公共网络部分内的主机的数据链路层相比)上的目的主机传输可变长度的数据序列,同时维持被传输层所请求的服务质量。
服务交换机(114,116)提供了如何对数据中心100内的业务定义和执行网络服务的灵活性。网络服务的示例除了包括其他服务之外还包括但不限于安全性、防火墙和用户管理。
接入层103包括网络设备,比如这一示例中,耦接至虚拟服务器124的接入交换机(120,122)。接入层103将主机(例如,客户端设备)连接至该架构,向这些主机提供网络接入,该网络接入通常在层2(例如,局域网(LAN)和/或虚拟局域网(VLAN))。虚拟服务器124可以包括耦接至一个或多个虚拟机的管理程序。该管理程序为生成和运行该虚拟机的硬件或硬件和软件的组合。虚拟机(VM)为像物理机器一样执行程序(例如,加载的应用126)的机器的软件实施。虚拟机通常模拟真实计算机的计算机架构和功能。一个物理主机和一个管理程序可以运行多个虚拟机。
数据中心100并入了软件定义网络(SDN),该软件定义网络为构建涉及分离和提取网络元素的计算机网络的方法。该元素包括控制平面和数据平面。SDN与系统解耦接,该系统关于业务从底层系统发送至何处(控制平面)作出决定,该底层系统将业务转发至被选择的目的地(数据平面)。这一技术简化了网络并能够应用新应用,比如网络虚拟化,其中控制平面从数据平面分离,并且在软件应用(例如,虚拟服务器124的虚拟机)中实施。数据中心200的架构使网络管理员能够具有网络业务的可编程的中央控制,而不需要对该网络的硬件设备的物理接入。
接入层103的网络设备耦接至计算资源104和/或存储资源105,并提供对其的访问。在这一示例中,计算资源104包括耦接至刀片交换机的一个或多个刀片服务器(134,136)。刀片服务器为具有被优化为使物理空间和能量的使用最小化的模块化设计的服务器计算机。这一示例中,存储资源包括耦接至刀片交换机和接入交换机的一个或多个存储设备(140,142)。
图2为根据某些实施例的含有单平台套件202的数据中心200的概念性示图。数据中心200包括图1的数据中心200的网络设备,包括核心层101、聚合层102、接入层103、计算资源104和存储资源105的网络设备。如图2所示,主机(例如,客户端设备和服务器设备)可以与数据中心200通过使用单平台套件202通信,该套件在共同框架(例如,单个框架)下配置数据中心200。共同框架使网络设备(例如,路由器和/或交换机)能够共享用于处理数据分组的协议。这一共享尤其有用,例如,当一个网络设备不能处理特定分组但另一个网络设备可以时。网络设备可以共享协议以使得之前不能处理分组的网络设备由于共享可以处理该分组。图2的这一示例示出了作为网络云205运行的数据中心200。在云205上的云计算包括使用计算资源(硬件和软件),该计算资源在网络(通常为互联网)上作为服务向主机201传递。云计算将用户数据、软件和计算委托远程服务。
通常,传统的网络被大的协议和技术工具包(从命令行接口(CLI)到可扩展标记语言(XML)、从简单网络管理协议(SNMP)到系统日志)提供、监控和维持。在有力和有效的同时,这些工具是受限的。例如,这些工具易于提供固定集合的功能。尽管这对于因任何固定目的来使用工具通常有效,但是固定集合的功能不允许数据中心操作者定制网络设备来满足操作者的具体网络需求。相应地,本文提及的实施例通过提供针对网络设备的共同框架,有利于定制网络架构。该共同框架使系统的网络设备共享用于处理数据分组的协议。因此,在网络上被添加和/或被定制的网络设备不需要严格地限定于特定网络设备的固定集合功能。另外,尽管网络可以一致且可靠地每秒传送大量的数据流,但是存在很少的工具以建立实时分析分组和流的定制应用。
在一个实施例中,单平台套件202包括能够进行开发、自动化和快速服务生成的工具包。例如,该共同框架允许开发者构造在网络上运行的应用,因为程序员可以确认网络设备共享共同框架。例如,该共同框架包括网络的工具(例如,软件应用),该工具可以观察一个或多个网络设备未识别的网络流。在该聚合中,针对该网络设备的工具自动化协议的广泛识别和共享,并且因此提供协议识别的快速服务。单平台套件202使得在数据中心200的网络设备(例如,交换机、路由器等)上可用的能力能够扩展和配置。单平台套件202使数据中心200内的数据能够更容易访问,并使管理员能够控制数据中心200的功能。
因此,单平台套件200提供了针对网络设备(例如,交换机、路由器等)的共同框架。该共同框架包括用于通过基于网络的软件装备该单个平台套件200的网络设备,该软件在传统的网络设备上不可用。这样的软件应用可以识别未知协议,并响应于一个或多个新的协议在网络(例如,数据中心200)上被使用,向网络设备加载协议处理程序。
网络设备架构
图3示出了根据一个实施例的示例性网络设备300的架构。说明性地,网络设备300包括控制设备302,该控制设备302耦接至中央处理单元(CPU)320、管理以太网322、以及小型可插拔(SFP)端口322(例如,以太网端口)。CPU 320耦接至随机访问存储器(RAM)324、板载故障记录(OBFL)326、闪速硬盘驱动器(HDD)328、控制台330、USB端口332、电源334和温度调节设备336。网络设备300的组件被提供用于示例性目的。本领域的技术人员可以通过许多其它方式配置网络设备300。
控制设备302包括解析器340、转发设备342、准许控制设备344、输出缓存346、输出处理设备、以及分组重写设备350。转发设备包括协议识别器组件304、加载的处理程序组件306、以及默认的处理程序组件308,这些组件在下面参照图4和图5讨论。在一些实施例中,控制设备302为专用集成电路(ASIC)。控制设备302负责许多交换机特性,比如VLAN分配、层2表查找、层3表查找、缓存分配、以及时间戳。特别地,对层2业务,控制设备302负责分组转发决定。
解析器设备340解析进入的分组,提取确定给定的分组是否应当被转发所需要的字段(例如,头部、尾部等)。分组为数字网络上通信的基本单元。取决于协议,分组还可以被称为数据报、分段、块、信元或帧。当数据被传送时,网络设备将数据拆分为类似的数据结构(分组)。一旦分组到达目的地,目的地计算机重组该原始数据块。在传送被更高层协议(例如,TCP)处理时,分组可能在某处丢失。通常,分组头部识别出协议指定网络设备300应当如何处理该分组。该协议可以位于分组的头部。解析器设备340然后将解析后的信息传递至层2和/或层3查找设备。
然后,控制设备302将该分组发送至转发设备342用于学习阶段。转发设备342的一项功能是获得定义网络设备300应当如何处理分组的协议。通过使网络设备能够共享用于处理数据分组和/或数据帧的协议,这一学习过程使数据中心的网络设备能够在共同的代理框架内工作。用于学习该分组的协议的操作在下面参照图4和图5讨论。
在一些实施方案中,转发设备342还学习对给定的虚拟局域网(VLAN),硬件中的源介质访问控制(MAC)地址。然后,取决于目的地MAC地址查找结果,控制设备302将该分组转发至外部查找设备309(例如,层3处理设备)、CPU 320、和/或特定VLAN的所有网络设备。对于层3,分组到达外部查找设备309,并且源IP地址在层3表中被查找。外部查找设备309查找并在“下一跳”表中将该目的地IP地址标记索引,该“下一跳”表列出了网络设备300的输出接口和目的地MAC地址。该输出接口提供了层3接口表中的索引,该层3接口表提供源MAC地址和VLAN。其它查找操作,比如接入控制表(ACL)和网络地址转换(NAT)也在这一级被执行。(分组重写设备350之后使用这一信息,在该分组被解析之后重写该分组。)转发设备342的操作可以在控制设备302的硬件中被执行,不需在CPU 320上放置过度的负载。
转发设备342将该分组传递至准许控制设备344。排队等候、复制和数据中心传送控制协议(DCTCP)过程在准许控制设备344上发生。取决于可用的共享缓存空间的数量,控制设备302在保留的每个端口位置、保留的每个队列位置或者动态共享空间存储该分组。所有这些空间为共享缓存的一部分。然后控制设备302向队列发送分组用于调度。控制设备302决定在输出缓存346复制分组。当控制设备302将分组放入队列用于调度时,该复制在输出处理设备348发生。复制过程不复制分组。替代地,通过使用存储器内的指针,控制设备302管理该分组。在分组重写过程中,控制设备302在每一个输出接口上生成不同的头部。在发送同一数据的所有输出接口中,结果是类似的延迟时间。
控制设备302可以接收网络设备300未被配置处理的业务。作为响应,控制设备302可以内部地解决不确定性和/或可以与另一网络设备通信,该网络设备辅助网络设备300解决该不确定性。例如,其它的网络设备300可以识别所需的协议并将该协议发送给网络设备300。用于解决这一不确定性的步骤在下面参照图4和图5进一步讨论。
方法概述
以下所讨论的实施例包括当网络设备接收具有已知协议的未知和/或未识别参数的分组时,用于配置网络设备(例如,路由器和/或交换机)的两种具体方法。第一种方法在下面参照图4描述,其中网络设备经由一些内部查找,内部地确定协议。第二种方法在下面参照图5描述,其中网络设备通过向一个或多个其它网络设备发送寻求帮助的请求,从而确定协议。在两种方法中,如果协议可以被确定(例如,内部地或者通过其它网络设备的帮助),那么网络设备自动地重新配置自身。这一重新配置至少完成两件事情:(1)解决网络设备的本地问题,以及(2)帮助确保作为共同框架的一部分的所有网络设备的一致性。
图4示出了根据一个实施例的用于提供针对网络设备(例如,路由器、交换机等)的共同框架的方法400。在一些实施方案中,方法400可以被图3的网络设备300执行,该网络设备300包括具有协议识别器组件304、加载的处理程序组件306以及默认的处理程序组件308的转发设备342。图4的方法400允许图3的网络设备300学习另外的未知协议,或者如何处理在该网络设备接收的另外的未识别业务流或分组。类似地,数据中心的其它网络设备还可以执行图4的方法400。网络设备之间的学习操作使网络设备能够在数据中心的共同代理框架内工作。
在步骤412,协议识别器组件304接收被X解析的分组。例如,该协议识别器从网络设备的解析器设备接收解析的分组。解析器设备提取使用的字段,确定如何处理该分组或者向何处转发该分组。解析器设备可以提取头部,所述头部识别定义网络设备应当如何处理分组的协议。
在步骤414,协议识别器组件304确定以下内容:在步骤412接收的分组的协议头部识别对网络设备的输入接口未知的协议。例如,协议识别器组件可以使用适当的扩展的现有的分级分类系统来检测协议的识别。
在步骤416,每当在解析的分组中未知的协议被识别,协议识别器组件304执行查找操作,以确定匹配的协议处理程序是否可用于网络设备。在一个实施例中,除了其他操作之外,网络设备还可以读取多协议标签交换(MPLS)标记,读取虚拟可扩展局域网(VxLAN)标识符,以及执行深度分组检测(DPI)。尽管大部分查找操作可能在网络设备上本地发生,但查找操作还可以在网络设备之外离线发生。
在步骤418和420,如果协议识别器组件304确定该未知协议与存储器中的协议处理程序匹配,以及加载的处理程序组件306确定所需的协议被加载(例如,加载到图3的RAM324),那么方法400前进至步骤422,其中,网络设备使用最新加载的协议处理程序执行对分组的操作。例如,网络设备向适合的具体协议处理程序传递分组、指向该分组的指针和/或分组流。
另外,如果协议识别器组件304确定该未知协议与存储器内的协议处理程序不匹配,和/或加载的处理程序组件306确定所需的协议未被加载(例如,未加载到图3的RAM324),那么网络设备将该分组(和/或指向该分组的指针)传递给默认的处理程序组件308。相应地,除了默认的处理程序处理分组流控制以外,默认的处理程序组件308某种程度上像路由表的默认路由一样操作,并非仅仅是下一跳路由。
在步骤430,默认的处理程序组件308动态地在网络设备(例如,图3的RAM 324)上加载适合的协议处理程序,并在该网络设备的执行路由操作和/或交换操作的组件中登记任何适合的路由。在一些实施方案中,默认的处理程序组件308使用网络设备上的应用程序接口(API)以在网络设备上动态地加载和/或登记适合的协议处理程序。该网络设备的API为图2的单平台套件202的特征。因为在网络设备接收分组之后和在针对该分组的处理操作期间,默认的处理程序组件308将适合的协议处理程序加载到存储器,因此该加载是动态的。在图4的方法400中,默认的处理程序组件308将具体协议处理程序登记为针对与网络设备的输入过滤器(例如,输入接口)处的特定准则匹配的所有的分组流的适合的协议处理程序。为了执行这一点,默认的处理程序组件308可以需要完成分组或流的进一步分类。
在步骤432,如果默认的处理程序组件308确定该动态加载成功,那么在步骤436,该网络设备使用默认的协议处理程序执行对分组的操作。然而,如果默认的处理程序组件308确定该动态加载未成功,那么在步骤434,该网络设备丢弃该分组。例如,对特定分组,网络设备的API可以不提供适合的协议处理程序的访问。此外,该网络设备可以与其它网络设备通信,以向其它网络设备提供将相应于该匹配协议的协议处理程序加载到其它网络设备的存储器的机会。
图5示出了根据本公开的某些实施例的用于提供网络设备的共同框架的另一方法500。方法500类似于方法400,除了在方法500中,网络设备利用外部的查找设备309以外。特别地,方法400和500对于步骤412-430类似,这些步骤在上面参照图4描述。
在步骤532,如果默认的处理程序组件308确定默认的协议处理程序被成功加载,那么在步骤436,网络设备使用默认的协议处理程序来执行对分组的操作。然而,如果默认的处理程序组件308确定该默认的协议处理程序未被成功加载,那么默认的处理程序组件308将该分组和/或指向该分组的指针传递给外部的查找设备309。替代地,在步骤418,协议识别器304确定本地查找中不存在匹配的协议处理程序之后,网络设备可以立即传递该分组和/或指向该分组的指针。替代地,该网络设备可以完全忽略执行内部查找,并且可以在步骤414中,当检测到未知协议时,将该分组和/或指向该分组的指针立即发送给外部的查找设备309。
在步骤540,外部查找设备309执行查找以确定在外部查找设备309,匹配的协议处理程序是否可用。在步骤542,如果外部的查找设备确定匹配的协议程序可用,那么方法500前进至步骤546,其中网络设备使用该协议处理程序(外部查找设备309使该协议处理程序可用于该网络设备)。然而,如果外部查找设备309确定匹配的协议处理程序不可用,那么方法500前进至步骤544,其中该网络设备丢弃该分组。
这些方法可以包括在这一方法概述中未被讨论的其它步骤和/或细节。取决于实施方案,本文所描述的其它步骤和/或细节可以为方法的一部分。本领域的技术人员将理解,被配置为以任何顺序实施这些方法步骤的任何系统落入本发明的范围之内。
替代实施例
以上所讨论的实施例允许网络设备通过学习新的协议、配置另外的协议处理程序等,响应于未知的帧、分组或流。对于“非对称的”分组流(例如,由于比如负载平衡或非对称路由(分组以不同的方向流过不同的路线)的原因,不同的分组通过不同的设备的分组流),分级或分类是重要的。使用图2的单平台套件202的外部查找服务(例如,外部查找设备309)可以被配置为监控穿过多个交换机的流。
默认的处理程序组件308的位置可以改变。在图2的单平台套件202中,默认的协议处理程序可以包括被配置为在网络设备、在刀片服务器(网络设备可访问该刀片服务器)、或者在单独的网络设备上运行的应用。
在一些实施方案中,类似于对于分组使用默认的路线,默认的处理程序组件308可以包括一连串的默认处理程序,以使得该一连串的默认处理程序的每一个可以对于特定分组可能提供适合的协议处理程序。例如,网络设备可以使用第一默认处理程序,该第一默认处理程序尝试执行适合的协议分类和加载适合的协议处理程序。在一个实施方案中,第一尝试的分类本地发生,然后后续的尝试的分类涉及从另一网络设备访问新的处理程序。仅当该网络设备未能通过使用该第一默认处理程序而成功地加载适合的协议处理程序时,网络设备将该分组和/或分组流传递给下一可能的默认处理程序,以此类推。这一分级方法使非对称的流能够被设备处理(例如,包括在网络设备上运行的应用的设备),该设备被登记为针对多个交换机的默认的处理设备。
类似于一连串的默认处理程序,默认的处理程序组件308可以包括默认处理程序的嵌套封装。相应地,该网络设备可以解码默认处理程序的嵌套封装,以确定嵌套的默认处理程序之一是否为针对该特定分组的适合的处理程序。
在一些实施方案中,默认的处理程序组件308被配置为从第三方登记定制协议,以及将该定制协议以高优先级放置于默认处理程序链。所有普通的分组和流(例如,较低优先级的分组和流)可以通过。然而,网络设备可以识别该定制协议,并相应地可以处理该分组。替代地,网络设备可以通过使用图2的单平台套件202的应用,将分组和/或指向分组的指针传递给第三方提供的网络设备。
在一些实施方案中,协议处理程序不被加载到该网络设备的存储器上。例如,控制设备302可以被配置为完全在控制器应用内处理某些分组流。该控制器应用可以主动地管理路由并控制数据流,而非仅“加载”位于该网络设备上的协议处理程序。
在一些实施方案中,网络设备可以动态地向存储器(例如,图3的RAM 324)加载和/或卸载协议处理程序。网络设备可以开始于仅加载非常基本的协议,然后当遇见新的协议时,动态地加载新的协议。类似地,网络设备可以卸载网络设备一段时间未使用的协议。此外,网络设备可以升级协议版本。例如,如果协议版本从版本2.0升级至版本3.0,那么网络设备可以自动地安装协议处理程序的版本3.0。
在一些实施方案中,网络设备被配置为动态地实例化适合的协议处理程序。实例化是实际实例的生成,或者抽象或模板(比如一类对象或计算机处理)的特定实现。实例化是通过例如定义类内部的对象的一个特定的变量,为该变量命名(例如,命名协议处理程序),以及将变量放置于某个物理空间(例如,将协议处理程序加载到网络设备的存储器),来生成这样的实例。特别地,对于在网络设备以外处理的应用,协议处理程序可以位于虚拟机上,当分组或流被检测时,虚拟机被动态地实例化。第三方甚至能够控制这样的虚拟机。
共同框架可以自动地指示网络设备向该网络设备的存储器不仅仅加载协议处理程序。例如,该共同框架可以自动地指示网络设备自动地加载和/或卸载路由和/或以及策略。例如,被配置为处理会话初始协议(SIP)建立分组的协议处理程序,可以向网络设备加载实时传输协议(RTP)处理程序和服务质量(QoS)策略,并将网络设备与所期望的RTP流相关。当RTP处理程序被卸载时,网络设备可以卸载QoS策略。
本技术的一种实施方案响应于开放流(OpenFlow)控制分组,使得开放流控制器能够进行动态加载。开放流是层2通信协议,层2通信协议给出了在网络上对网络交换机或路由器的转发平面的接入。以更简单的措辞,开放流使通过交换机的网络的网络分组的路径,能够被在多个路由器(最少两个路由器,首要的和次要的)上运行的软件确定。使用访问控制列表(ACL)和路由协议将转发平面与控制平面分离与其说可行,倒不如说允许更为复杂的业务控制。开放流能够实现软件定义网络(SDN)。开放流控制器不需要位于网络设备本身上(例如,不在交换机上)。相反,开放流控制器可以位于交换机的刀片服务器上,这允许传统交换机支持开放流,而不需对操作系统的任何升级(例如,从Cisco系统公司可获得的互联网络操作系统(IOS))。
在一些实施方案中,第一网络设备可以识别通过该网络的分组的路径/流。第一网络设备(或网络管理控制台)可以与沿着分组的路径/流的其它网络设备通信,并且为其它网络设备提供加载第一网络设备加载的协议的机会。替代地,在更广的范围内,第一网络设备(或网络管理控制台)可以与网络中的大体上所有的网络设备(并非仅仅在分组的路径/流中的网络设备)通信,并且为大体上所有的网络设备提供加载协议的机会。相应地,因此,贯穿网络,查找以及延迟可以极大地最小化。
有利地,本技术提供了用于根据需求灵活地推送协议信息的机制。如果在网络上新的协议被注意到,那么网络设备(例如,交换机、路由器等)可以查找分组的类型,并可以使用单平台套件以动态地向网络设备加载用于这一协议的驱动程序和控制逻辑。该方法类似于个人计算机(PC)如何根据需求加载设备驱动程序。替代地,交换机以外的设备(例如,虚拟机)可以实例化该协议处理程序。
尽管上面的内容针对本公开的实施例,但是本公开的其它和另外实施例可以被设计,而不脱离这里的基本范围。例如,本公开的方面可以在硬件、软件或硬件和软件的组合中实施。本公开的一个实施例可以被实施为与计算机系统使用的程序产品。该程序产品的程序定义了实施例(包括本文所公开的方法)的功能,并且可以被包括于各种计算机可读存储介质上。示例性的计算机可读存储介质包括,但不限于:(i)永久性地存储信息的不可写存储介质(例如,计算机内的只读存储器设备,比如可以被CD-ROM驱动器可读的CD-ROM盘、闪速存储器、ROM芯片或任何类型的固态非易失性半导体存储器);以及(ii)存储可变的信息的可写存储介质(例如,磁盘驱动器内的软盘、硬盘驱动器或任何类型的固态随机访问半导体存储器)。这种计算机可读存储介质,当携带用于本公开的功能的计算机可读指令时,为本公开的实施例。
由于前述内容,本公开的范围被以下的权利要求确定。
Claims (19)
1.一种计算机实施的方法,所述方法用于使网络设备上的分组处理自动化,所述方法包括:
接收分组;
检测所述分组与对于所述网络设备的接口未知的协议相关联;
执行所述协议的查找,以识别针对所述未知协议的匹配的协议;以及
当确定匹配的协议可用时,动态地向所述网络设备的存储器加载相应于所述匹配的协议的协议处理程序,其中所述协议处理程序在所述网络设备接收所述分组之后和在针对所述分组的处理操作期间被加载至所述存储器。
2.如权利要求1所述的方法,所述方法还包括,与一个或多个其它的网络设备通信,以向所述一个或多个其它的网络设备提供向所述一个或多个其它的网络设备的存储器加载相应于所述匹配协议的协议处理程序的机会。
3.如权利要求1所述的方法,所述方法还包括:
确定所述匹配的协议处理程序在所述网络设备上可用;以及
确定所述匹配的协议处理程序未被加载到所述网络设备。
4.如权利要求1所述的方法,所述方法还包括,解析所述分组以提取用于处理所述分组的字段,其中被提取的字段包括识别用于处理所述分组的协议的头部。
5.如权利要求1所述的方法,其中执行所述查找包括以下操作的至少一个:
读取多协议标签交换(MPLS)标记;
读取虚拟可扩展局域网(VxLAN)标识符;
执行深度分组检测(DPI);或者
执行所述分组头部的模式匹配。
6.如权利要求1所述的方法,其中执行所述查找包括向外部查找设备发送所述分组,以执行用于针对所述分组的适合的协议处理程序的查找。
7.如权利要求1所述的方法,其中所述方法还包括,向所述协议处理程序传递以下内容的至少一个:
所述分组;
指向所述分组的指针;或者
分组流。
8.如权利要求1所述的方法,所述方法还包括在所述网络设备的被配置为执行交换操作的组件中动态地登记一个或多个适用的路由。
9.如权利要求1所述的方法,所述方法还包括在存储器中登记适合的协议处理程序,用于在匹配所述网络设备的特定准则的其它数据分组上使用。
10.如权利要求1所述的方法,其中动态地加载适合的协议处理程序包括使用单平台套件的应用程序接口(API),其中所述单平台套件包括用于在所述网络设备所连接的数据中心上的开发、自动化和快速服务生成的工具包。
11.一种网络设备,所述网络设备被配置用于使网络设备上的分组处理自动化,所述网络设备包括:
协议识别器组件,所述协议识别器组件被配置为接收分组,检测所述分组与对于所述网络设备的接口未知的协议相关联,执行所述未知的协议的查找以确定匹配的协议是否可用于所述网络设备;以及
默认的处理程序组件,所述默认的处理程序组件被配置为动态地向所述网络设备的存储器加载适合的协议处理程序,其中所述适合的协议处理程序在所述网络设备接收所述分组之后和在针对所述分组的处理操作期间被加载至所述存储器。
12.如权利要求11所述的网络设备,所述网络设备还包括加载的处理程序组件,所述加载的处理程序组件被配置为确定匹配的协议处理程序是否未被加载到所述网络设备。
13.如权利要求12所述的网络设备,其中所述默认的协议处理程序包括被配置为在以下至少一者上运行的应用:
所述网络设备;
能够访问所述网络设备的刀片服务器;或者
完全与所述网络设备分离的另一网络设备。
14.如权利要求12所述的网络设备,其中所述默认的处理程序组件包括一系列的默认处理程序,从而所述一系列的默认处理程序中的每一个默认处理程序能够针对特定分组有可能提供所述适合的协议处理程序。
15.如权利要求14所述的网络设备,其中所述默认的处理程序组件被配置为登记来自第三方的定制协议,并且将所述定制协议以高优先级放置于所述一系列的默认处理程序中。
16.如权利要求12所述的网络设备,其中所述适合的协议处理程序位于虚拟机,在所述分组被检测后,所述虚拟机被动态地实例化。
17.如权利要求12所述的网络设备,其中所述网络设备连接至软件定义网络。
18.如权利要求12所述的网络设备,其中所述网络设备被配置为与一个或多个其它的网络设备通信,向所述一个或多个其它的网络设备提供向所述一个或多个其它的网络设备的存储器加载所述适合的协议处理程序的机会。
19.一种计算机可读的存储介质,所述计算机可读的存储介质存储了用于使网络设备上的分组处理自动化的指令,其中当所述指令被执行时,指引一个或多个处理器执行步骤,所述步骤包括:
接收分组;
检测所述分组与对于所述网络设备的接口未知的协议相关联;
确定匹配的协议是否可用于所述网络设备;以及
动态地向所述网络设备的存储器加载适合的协议处理程序,其中所述适合的协议处理程序在所述网络设备接收所述分组之后和在针对所述分组的处理操作期间被加载至所述存储器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/843,715 | 2013-03-15 | ||
US13/843,715 US9100346B2 (en) | 2013-03-15 | 2013-03-15 | Commmon agent framework for network devices |
PCT/US2014/022336 WO2014150134A1 (en) | 2013-03-15 | 2014-03-10 | Common agent framework for network devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105052113A CN105052113A (zh) | 2015-11-11 |
CN105052113B true CN105052113B (zh) | 2018-11-13 |
Family
ID=50442649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480014950.8A Active CN105052113B (zh) | 2013-03-15 | 2014-03-10 | 提供针对网络设备的共同代理框架的方法、设备及介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9100346B2 (zh) |
EP (1) | EP2974230B1 (zh) |
CN (1) | CN105052113B (zh) |
WO (1) | WO2014150134A1 (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2463228C (en) | 2003-04-04 | 2012-06-26 | Evertz Microsystems Ltd. | Apparatus, systems and methods for packet based transmission of multiple data signals |
US9848068B2 (en) * | 2013-04-16 | 2017-12-19 | Telefonaktiebolaget L M Ericsson (Publ) | Method for providing a parser to extract information from fields of a data packet header |
US20140365634A1 (en) * | 2013-06-05 | 2014-12-11 | Cisco Technology, Inc. | Programmable Network Analytics Processing via an Inspect/Apply-Action Applied to Physical and Virtual Entities |
US9444914B2 (en) | 2013-09-16 | 2016-09-13 | Annapurna Labs Ltd. | Configurable parser and a method for parsing information units |
KR101940311B1 (ko) * | 2014-02-12 | 2019-01-18 | 한국전자통신연구원 | 네트워크 운영 모드 기반 프로세스 제어 방법 및 장치 |
US10015048B2 (en) | 2014-12-27 | 2018-07-03 | Intel Corporation | Programmable protocol parser for NIC classification and queue assignments |
US9825862B2 (en) | 2015-08-26 | 2017-11-21 | Barefoot Networks, Inc. | Packet header field extraction |
US10892908B2 (en) | 2015-11-20 | 2021-01-12 | Abb Schweiz Ag | Managing communication between gateway and building automation device by installing protocol software in gateway |
EP3378191B1 (en) * | 2015-11-20 | 2021-01-27 | ABB Schweiz AG | Managing communication between gateway and building automation device |
US9912774B2 (en) * | 2015-12-22 | 2018-03-06 | Intel Corporation | Accelerated network packet processing |
US10659368B2 (en) | 2015-12-31 | 2020-05-19 | F5 Networks, Inc. | Transparent control and transfer of network protocols |
US10523578B1 (en) | 2017-07-23 | 2019-12-31 | Barefoot Networks, Inc. | Transmission of traffic management data to processing pipeline |
US10944733B2 (en) | 2017-07-31 | 2021-03-09 | Cisco Technology, Inc. | Dynamic disassociated channel encryption key distribution |
US11252258B2 (en) | 2018-09-27 | 2022-02-15 | Hewlett Packard Enterprise Development Lp | Device-aware dynamic protocol adaptation in a software-defined network |
US11683375B2 (en) * | 2021-08-31 | 2023-06-20 | Cisco Technology, Inc. | Dynamic storage sharing across network devices |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072356B1 (en) * | 2000-06-19 | 2006-07-04 | Cisco Technology, Inc. | System and method for configuring a communications protocol |
US7187694B1 (en) * | 2002-03-29 | 2007-03-06 | Pmc-Sierra, Inc. | Generic packet parser |
CN102291279A (zh) * | 2011-08-18 | 2011-12-21 | 西北工业大学 | P2p网络流量检测方法 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966412B2 (en) * | 2005-07-19 | 2011-06-21 | Sap Ag | System and method for a pluggable protocol handler |
US7992002B2 (en) * | 2006-07-07 | 2011-08-02 | Hewlett-Packard Development Company, L.P. | Data depository and associated methodology providing secure access pursuant to compliance standard conformity |
US20080080550A1 (en) | 2006-09-29 | 2008-04-03 | Symbol Technologies, Inc. | Plug-and-play reader support for an RF switch |
US7715324B1 (en) * | 2009-03-26 | 2010-05-11 | Limelight Networks, Inc. | Conditional protocol control |
WO2012004634A1 (en) * | 2010-07-09 | 2012-01-12 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for traffic classification |
US8711838B1 (en) * | 2011-09-23 | 2014-04-29 | Juniper Networks, Inc. | Using network labels without standard-defined syntax and semantics |
US8811401B2 (en) * | 2012-06-21 | 2014-08-19 | Breakingpoint Systems, Inc. | Binding of network flows to process threads |
US8891392B2 (en) * | 2012-06-21 | 2014-11-18 | Breakingpoint Systems, Inc. | Dynamic latency analysis system |
-
2013
- 2013-03-15 US US13/843,715 patent/US9100346B2/en active Active
-
2014
- 2014-03-10 CN CN201480014950.8A patent/CN105052113B/zh active Active
- 2014-03-10 EP EP14716104.6A patent/EP2974230B1/en active Active
- 2014-03-10 WO PCT/US2014/022336 patent/WO2014150134A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072356B1 (en) * | 2000-06-19 | 2006-07-04 | Cisco Technology, Inc. | System and method for configuring a communications protocol |
US7187694B1 (en) * | 2002-03-29 | 2007-03-06 | Pmc-Sierra, Inc. | Generic packet parser |
CN102291279A (zh) * | 2011-08-18 | 2011-12-21 | 西北工业大学 | P2p网络流量检测方法 |
Also Published As
Publication number | Publication date |
---|---|
EP2974230B1 (en) | 2019-05-15 |
CN105052113A (zh) | 2015-11-11 |
EP2974230A1 (en) | 2016-01-20 |
US20140269762A1 (en) | 2014-09-18 |
WO2014150134A1 (en) | 2014-09-25 |
US9100346B2 (en) | 2015-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105052113B (zh) | 提供针对网络设备的共同代理框架的方法、设备及介质 | |
CN113454971B (zh) | 基于远程智能nic的服务加速 | |
US10367736B2 (en) | Extended tag networking | |
CN110830357B (zh) | 使用高级拓扑描述的多云虚拟计算环境供应 | |
US9602415B2 (en) | Flow based network service insertion | |
CN107409089B (zh) | 一种在网络引擎中实施的方法及虚拟网络功能控制器 | |
US10938660B1 (en) | Automation of maintenance mode operations for network devices | |
US9917729B2 (en) | Methods, systems, and computer readable media for multi-layer orchestration in software defined networks (SDNs) | |
EP4007233A1 (en) | Connectivity templates | |
CN107646185A (zh) | 在覆盖数据中心环境中的操作、管理和处理(oam) | |
EP3210347B1 (en) | Pre-built match-action tables | |
CN112398676A (zh) | 多租户环境中服务接入端点的基于供应商无关简档的建模 | |
JP2015534320A (ja) | ポリシーベースのデータセンタネットワーク自動化を提供するシステムおよび方法 | |
JP2014531831A (ja) | バーチャルスイッチを介してネットワークトラフィックをコントロールするシステム及び方法 | |
CN109714238A (zh) | 一种用于实现虚拟机间通信的方法及设备 | |
EP4141666A1 (en) | Dual user space-kernel space datapaths for packet processing operations | |
US20210111946A1 (en) | Systems and methods for integrating network switch management with computing resource management | |
CN110636036A (zh) | 一种基于SDN的OpenStack云主机网络访问控制的方法 | |
EP3588859A1 (en) | Network device configuration versioning | |
Robertazzi et al. | Software-defined networking | |
EP4145795B1 (en) | Runtime extensible application programming interface server | |
Ran et al. | A NaaS-enabled framework for service composition in software defined networking environment | |
CN118120216A (zh) | 分段路由IPv6(SRv6)网络遥测信息的收集 | |
Das et al. | Handbook of Fiber Optic Data Communication: Chapter 17. Software-Defined Networking and OpenFlow |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |