CN104737504A - 在网络环境中有效使用流表空间的系统和方法 - Google Patents

在网络环境中有效使用流表空间的系统和方法 Download PDF

Info

Publication number
CN104737504A
CN104737504A CN201380053671.8A CN201380053671A CN104737504A CN 104737504 A CN104737504 A CN 104737504A CN 201380053671 A CN201380053671 A CN 201380053671A CN 104737504 A CN104737504 A CN 104737504A
Authority
CN
China
Prior art keywords
stream
network equipment
port profile
added
stream table
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.)
Granted
Application number
CN201380053671.8A
Other languages
English (en)
Other versions
CN104737504B (zh
Inventor
迈希利·纳拉思姆哈
阿史温·迪帕克·斯万弥那萨
那伽·文卡塔·基兰·K·春杜里
斯里尼瓦斯·萨德
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN104737504A publication Critical patent/CN104737504A/zh
Application granted granted Critical
Publication of CN104737504B publication Critical patent/CN104737504B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/242Connectivity information management, e.g. connectivity discovery or connectivity update aging of topology database entries

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

在一个示例实施例中提供了一种方法,该方法包括确定针对与在网络设备处接收的新的流相应的分组要执行的动作,并且判定包括所确定的动作的指示的新的条目是否能够被添加到网络设备的流表。新的条目是否能够被添加到流表的判定是参考在与新的流相关联的端口配置文件中指定的预留信息做出的。响应于新的条目能够被添加的判定,新的条目被添加到流表。在一个实施例中,新的条目是否能够被添加的判定包括:基于在相关联的端口配置文件中指定的预留信息,判定现存条目是否能够被撤除。

Description

在网络环境中有效使用流表空间的系统和方法
技术领域
本公开一般涉及数字通信领域,并且更具体地涉及在网络环境中有效使用流表空间。
背景技术
以往,基于分组的处理已经通过应用以下两种模式中的一种模式被实施,包括基于分组的数据路径模式和基于流的数据路径模式。在基于流的数据路径模式中,在流的第一分组的处理过程中被搜索、撷取或计算的数据被缓存以在相同流的后面的分组的处理过程中重新使用。在每个主机处,流表被建立并维持,而且每个相应的流表条目对应并且包括涉及流的重要的标识和交换信息。处理在基于流的数据路径处出现的流的第一分组的过程中,或是响应于在遇到第一分组之前发出的控制平面命令,条目被添加到流表中。当分组在节点处被接收时,如果分组与流表条目相关联,该条目从存储器中被撷取并且被用于以最小附加存储器访问来向分组授权所需服务。
在例如诸如开放流(OpenFlow)之类的基于流的数据路径模式中,作为在慢速路径中针对相同流采取的动作的结果,在数据路径或快速路径中的流表被编程。例如,在诸如(可从加利福尼亚何塞市思科系统公司获得的)Nexus 1000V之类的数据虚拟交换机(“DVS”)中,如果在快速路径中存在“流丢失(flow miss)”(即,针对流不存在流表条目),则分组被发送至以供进一步处理。一旦分组被慢速路径处理,通过将条目添加到流表,相应的流在快速路径中被编程具有交换决策。条目被保持在流表中,直到由于各种原因中的一种而它们被移除或“撤除”。可理解地,使用该模式,流表空间或“流空间”是关键资源。如果没有有效使用空间,则结果会增加查找次数,或分组将被移交至慢速路径。
附图说明
为了提供对本公开及其特征和优点更完整的理解,可参考以下结合附图的描述,在附图中相似的标号表示相似的部分,其中:
图1是根据本公开的用于实行基于端口配置文件的流空间预留方案的实施例的通信系统的简化框图。
图2是根据本公开的用于实行基于端口配置文件的流空间预留方案的实施例的通信系统的更为详细的框图。
图3是根据本公开一个实施例示出了实行基于端口配置文件的流空间预留方案的方法的流程图。
图4-6是根据本公开一个实施例示出了以每个端口组为基础的相对流表使用率的表格。
具体实施方式
总述
在一个示例实施例中提供了一种方法,该方法包括确定针对与在网络设备处接收的新的流相应的分组要执行的动作,并且判定包括所确定的动作的指示的新的条目是否能够被添加到网络设备的流表。在上下文中的术语‘判定’意为广义地包括与评估、检查、分析或以其他方式处理信息以得到结果相关联的任意活动。新的条目是否能够被添加至流表的判定是参考在与新的流相关联的端口配置文件中指定的预留信息做出的。响应于新的条目能够被添加的判定,新的条目被添加至流表。在一个实施例中,新的条目是否能够被添加的判定包括:基于在相关联的端口配置文件中指定的预留信息,判定现存条目是否能够被撤除。
预留信息可以包括针对在网络设备上实例化的与端口配置文件相关联的虚拟机(“VM”)预留的若干流表条目、针对在网络设备上实例化的与端口配置文件相关联的VM预留的总流表空间的一定百分比、或分配给在网络设备上实例化的与端口配置文件相关联的VM的加权优先级。新的条目是否能够被添加的判定可以包括:基于相对于分配给在网络设备上实例化的其他VM的加权优先级而分配给与新的流相关联的VM的加权优先级,来评估现存流表条目是否应该从流表中移除。在一个实施例中,网络设备包括虚拟以太网模块,并且端口配置文件被保持在连接到网络设备的监管模块上。
示例实施例
转向图1,图1是用于实行基于端口配置文件的流空间预留方案的实施例的通信系统10的简化框图。在一个实施例中,系统10可以采用虚拟化以扩展对用户可用的计算资源。如所认识到的,虚拟化是对计算资源(比如,硬件、操作系统、存储设备、或其他网络资源)的虚拟而非实际版本的创建。如图1所示,系统10包括多个服务器,在图1中由服务器12a-12c表示。
在所示实施例中,服务器12a-12c中的每一个服务器被用作主机服务器,并且因此包括虚拟机管理器(“VMM”)或超管理器14a-14c,虚拟机管理器(“VMM”)或超管理器14a-14c包括用于管理由各自服务器托管的多个虚拟机(“VM”)16a-161的软件。通常,VM可以被定义为在主机操作系统中安装的完全隔离的来宾操作系统。可以使用硬件虚拟化、软件仿真或这两者来实行VM。VM是执行程序的计算机的软件实现,就像是单独的物理计算机。主要基于VM的用途以及它们与物理计算机的对应程度,VM可以被分类到两种类型中的一种。“系统VM”提供支持执行完整OS的完整系统平台,而“处理VM”被设计为运行特殊应用程序,并且因此支持单个处理。应该认识到的是在VM中运行的软件受限于由VM提供的和被分给VM的资源和抽象(abstraction);换言之,VM受限于其虚拟环境。在某些实施例中,举几个例来说,VM可以被配置为运行网络应用、人力资源(“HR”)应用、数据库应用、或DMZ。
在一个实施例中,可以使用VMware vSphere实行超管理器16a-16c,VMware vSphere是具有利用VMware ESX/ESXi的云计算的一套加强虚拟化工具。另外,服务器12a-12c中的每一个服务器可以包括虚拟机访问交换机虚拟以太网模块(“VEM”)18a-18c。在图1所示的实施例中,VEM 18a-18c中的每一个VEM被实现为与相应的超管理器14a-14c相关联运行的Cisco Nexus 1000V系列的交换机VEM。
在所示的示例性实施例中,VEM 18a-18c中的每一个VEM作为其相应的超管理器14a-14c的内核的一部分而运行,并且使用VMwareVnetwork分布式交换机(“vDS”)API(应用程序接口)以确保VEM完全清楚服务器虚拟化事件。VEM经由交换网络21从虚拟监管模块(VSM)20接收配置和某些控制信息并执行第2层交换和高级联网功能,高级联网功能包括端口信道、服务质量(“QoS”)、安全(包括私有VLAN、访问控制表(“ACL”)、和端口安全)、和监控(包括网络流(EntFlow)、交换端口分析器(“SPAN”)、和封装远程SPAN(“ERSPAN”))。在与VSM 20的通信失联的事件中,VEM 18a-18c中的每一个VEM具有基于最近已知的配置继续交换流量的能力。
在一个实施例中,VSM 20被实现为Cisco Nexus 1000V系列VSM,并且因此能够作为一个逻辑模块化交换机22来控制多个VEM(比如,VEM 18a-18c)。在一个实施例中,单个VSM可以运行并管理最多64个主机服务器(单个VSM针对每一分布式交换机可以具有2048个虚拟以太网端口,针对每一服务器可以具有最多216个端口)。总计地,2048个活动VLAN和2048个端口配置文件(在下文中被描述)可以配置在单个VSM上。主机可以具有多达32个物理NIC和8个端口信道(针对每个分布交换机具有256个端口信道)。
交换机配置通过VSM 20被执行并且被自动传达到VEM 18a-18c。代替逐个交换机地在各个超管理器中配置软交换机,管理员可以将配置定义为从VSM处的单个图形用户接口在VSM管理的VEM上直接使用。根据一个实施例的特征,VSM 20还与服务器24进行通信,服务器24包括用于通过单个控制台应用经由VDS API管理超管理器14a-14c和VM 16a-161的中央管理工具。在一个实施例中,管理服务器24被实现为VMwareVcenter服务器,并且经由交换网络21与超管理器14a-14c通信。
如以下更为详细的描述,在系统10中,端口配置文件被用于处理从网络的角度而言的服务器虚拟化的动态本质。端口配置文件使得能够从VSM 20为不同类型或类别的VM定义网络策略,以及随后通过管理服务器24上的GUI将配置文件应用于各个VM vNIC。该特征使能了网络资源的透明供应。端口配置文件是对网络配置大量虚拟机的可扩展机制,并且端口配置文件包括用来配置VEM 18a-18c上的虚拟端口的性能和设置。
图2是用于实行本文所述的基于端口配置文件的流空间预留方案的实施例的通信系统40的更为详细的框图。正如图1所示的系统10,系统40采用虚拟化以扩展对用户可用的计算资源。出于简化说明和讨论的目的,系统40被示为包括单个服务器42。正如图1的服务器12a-12c,服务器42用作主机服务器,并且因此包括VMM或超管理器44,VMM或超管理器44包括用于管理由服务器托管的多个VM 46a-46d的软件。
如上所述,可以使用VMware vSphere实行超管理器44,并且服务器42可以包括与超管理器44相关联地运行的VEM 48,VEM 48被实现为Cisco Nexus 1000V系列交换机VEM。服务器42、超管理器44、和VEM48在某些相关方面可以分别与图1中示出的服务器12a-12c、超管理器14a-14c、和VEM 48a-48c相同。
在图2所示的实施例中,VEM 48作为超管理器44的内核的一部分而运行,并且使用vDS API以确保VEM完全清楚服务器虚拟化事件。VEM48经由交换网络51从VSM接收配置和某些控制信息并执行第2层交换和如上面针对VEM 18a-18vc描述的那些高级联网功能。
如之前所指出的,交换机配置使用VSM 50被执行并且被传达至VEM48。配置可以被定义为经由单个用户接口在VSM 50管理的交换机上直接使用;另外,VSM与管理服务器54进行通信,管理服务器54通过单个控制平台应用经由VDS API管理超管理器44和VM 46a-46c。在一个实施例中,管理服务器54可以被实现为VMware vCenter服务器并且经由交换网络51与超管理器44通信。
在系统40中,端口配置文件被用于处理从网络角度而言的服务器虚拟化的动态本质。端口配置文件使得能够从VSM 50为不同类型或类别的VM定义网络策略,以及随后通过管理服务器54上的GUI将配置文件应用于各个VM vNIC。该特征使能了网络资源的透明供应。端口配置文件是对网络配置大量虚拟机的可扩展机制,并且端口配置文件包括用来配置VEM 48上的虚拟端口(在图2中由虚拟端口56a-56d表示)的性能和设置。
在VM端口配置文件中定义的网络和安全策略追随VM整个的生命周期,不论VM从一服务器被迁移到另一服务器、被暂停、被休眠、或被重新启动。除了迁移策略,VSM移动VM网络状态(比如,端口计数和流统计)。参与流量监控活动的VM可以不间断的继续这些活动。当特定端口配置文件被更新时,实时更新被自动通过(一个或多个)VEM和VSM提供给使用相同端口配置文件的虚拟端口。
在一个实施例中,在管理服务器54中,以常用的方式配置VM。另外,在VSM 50上定义的端口配置文件(在图2由端口配置文件A-D表示并由标号58a-58d指定)经由管理服务器54的作为端口组的GUI 55被显示,端口组在图2中由端口组A-D表示并由标号60a-60d指定。结果,虚拟化管理员可以利用预配置的端口组(例如,在管理服务器54上的端口组A-D)的优势并集中于VM管理,并且网络管理员可以使用端口配置文件来一次针对大量端口应用策略。根据本文所述的用于实行基于端口配置文件的流空间预留方案的实施例的特征以及在下文中会有更为详细的描述,每个端口配置文件58a-58d包括预留信息,该预留信息包括针对在主机服务器上实例化并与各个端口配置文件相关联的VM预留多少流空间的指示。
出于在下文还需要更为详细描述的目的,根据本文所述的实施例的特征,VSM 50包括处理器62、存储器64、和流空间预留模块66,以便实行动态流空间预留方案。应该认识到的是包括流空间预留模块66的逻辑部分在需要时可以在系统40中的别处被实行,用来实现本文所述的基于端口配置文件的流空间预留方案。如之前所指出的,流表空间限制严重影响了在交换机中的分组处理。尤其,无效率得使用主机42的流表68的流表空间会减慢流查找或会导致更多重要的分组被移交至慢速路径。明显地,这些情况中没有一种情况是所期望的。在一个实施例中,用于提供基于端口配置文件的流表空间预留的系统和方法被描述。如之前所指出的,在本文所述的系统中,端口配置文件是针对一群虚拟接口或端口的网络策略和配置信息(包括流空间预留信息)的容器。附接于特定端口配置文件的VM接口使得相同的网络策略应用于在这些接口处见到的流量。网络管理员与服务器管理员合作以基于将要被附接到端口配置文件的VM和将要通过接口的流量的类型来配置端口配置文件。
当前,当分组在端口被检测到时,做出分组是否包括在主机的流表中存在流表条目的流的判定。如果不包括,并且在流表中存在空间,则相应的条目被添加;如果在流表中没有空间,存在的流表条目可以从流表中撤除以腾出空间给新的流。撤除可以基于若干不同算法中的一种,包括例如最近最少使用(“LRU”)、先进先出(“FIFO”)、或活动和非活动定时的结合。如果出于一些原因流表条目不能被撤除,则分组会被踢至慢速路径处理,并且交换决定将基于该处理。应该注意的是在该情况中交换决定将不会被缓存;因此,此流随后的分组还是会被踢至慢速路径。明显地,这是对当前或能够被合理预期在主机上存在的VM或流量的类型不进行考虑的非常活跃的方法。
相反的,根据一个实施例的特征,由于经由VEM/VSM清楚哪种类型的端口配置文件在各主机处被实例化以及哪种类型的流量被预期会穿过获得特定端口配置文件的每个主机端口,网络管理员可以判定穿过具有某种端口配置文件的端口的流量相对于穿过其他端口的流量具有优先级。通常,可以向在主机上实例化的每个端口配置文件分配相对于可以在主机上实例化的其他端口配置文件的加权优先级。由于网络管理员应该具有对附接于端口配置文件的接口上可见的流量的合理的优先认知,所以网络管理员能够就流表空间定义预留。有效地,这指具有每端口配置文件预留配置,该每端口配置文件预留配置可以通过规定针对与配置文件相关联的端口组的实例预留的若干或一定百分比的流表条目或者以考虑动态条件的更复杂的方式而被动态配置,动态条件中的一些在下文中被描述。
例如,相对重要的权重可以与不同的端口配置文件相关联,这意味着针对特定端口的预留行为应该如何适应在相同主机上存在/不存在某些其他端口配置文件的情况。此外,权重可以基于在主机上特定端口配置文件的实例的数量而被分配。换言之,实行预留算法的流空间预留模块可以在得出流空间预留方案之前将已经在特定主机上实例化的端口配置文件以及在主机上每个端口配置文件的实例的数量作为输入。
在一个实施例中,流表空间的预留不应该导致未使用的空间。端口配置文件的未使用的空间应该被其他活动的配置文件使用,直到第一端口配置文件上的流开始增加。例如,对之前的示例进行扩展,网络管理员可以配置两个不同的端口配置文件,比如一个针对web服务器VM并且另一个针对应用服务器VM。在针对web服务器VM的端口配置文件中,网络管理员可以够规定40%的流空间预留,并且在针对应用服务器VM的端口配置文件中,网络管理员可以规定60%的流空间预留。结果,即使当web服务器的流量量很高时,也能在不会遭遇不必要延迟的情况下保证在应用服务器VM上预期的流将继续在快速路径中被服务。在进一步增强的示例中,代替上述的分配静态百分比预留,网络管理员可以就应对主机上的一个端口组的实例预留多少空间来为各端口组分配相对于在相同主机上的其他端口组的实例的相对权重。根据本文所述的特征,能够做出运行时间的决定以根据在主机上实例化的其他端口组的类型和数量来调整针对每个端口组预留的流空间量。该信息也可用作当新的流的条目需要被安装在流表时撤除现存条目的因素。
图3是示出了基于端口配置文件的预留方案的一个实施例的操作的流程图。应该认识到的是,在启动图3所示的过程之前,已经使用VSM定义了端口配置文件并使端口配置文件对于管理服务器是可用的,该管理服务器根据定义的配置文件规定VM。根据本文所述的实施例,这些端口配置文件中的每一个端口配置文件包括预留信息。参考图3,在交换机(比如,VEM)处接收到与流相关联的数据文组后,在步骤80可以做出与分组相关联的流是否是新的流的判定。该步骤可以在快速路径中被实行,并且可以涉及对分组头部信息(比如,源IP地址、源MAC地址、目的地IP地址、目的地MAC地址、以及协议类型)进行检查,以判定分组头部信息是否匹配与VEM相关联的流表中的条目。如果该流的条目在流表中被找到,则分组并不是新的流的一部分,并且分组根据在步骤82中发现的流表条目被处理。具体地,在步骤82中,从流表条目确定针对分组的合适的动作,并且分组被相应地交换。如果判定分组与新的流相关联(例如,如果在流表中没有找到条目),则执行进行至步骤84。在步骤84中,分组被踢至慢速路径并且数据路径阶段被运行以得出针对分组要采取的动作的交换决定。
接下来在步骤86中,做出在流表中是否存在可用来添加新的流的条目的空间的判定。如果判定流空间是可用的,在步骤87中,与新的流相应的条目被添加到流表中并且相应地分组被交换,其中与新的流相应的条目包括在步骤84中所确定的动作。或者,如果在步骤86中做出流空间是不可用的判定,则在步骤88中,根据本文所述的实施例做出是否可能“撤除”一个现存条目的判定。
具体地,根据一个示例实施例的特征,在步骤88中进行的判定与预留模块66(图2)相关联地根据包括在与流相关联的端口配置文件中的预留信息来做出。如上所述,在端口配置文件中的预留信息可以仅仅指定与通过配置文件定义的端口组的VM实例相关联的流预留的流表条目的最大数量,在该情况中,预留模块仅判定是否已经达到该最大数量。换言之,预留模块判定与特定端口组的实例相关联的流条目的总数是否与在相应端口配置文件中指定的最大数量相等。如果相等,则在步骤88中做出否定判定;否则做出肯定判定。
在替代的示例实施例中,代替以最大数量指定流空间预留,在端口配置文件中的预留信息可以以百分比的形式表示流空间预留,其中针对与相应的端口组的实例相关联的条目预留流表中指定的百分比。在这种情况中,预留模块判定与特定端口组的实例相关联的流条目的百分比是否与在相应的配置文件中指定的百分比相等。如果相等,则在步骤88中做出否定判定;否则做出肯定判定。
在另一替代的示例实施例中,在端口配置文件中的预留信息可指示与特定端口组相关联的优先级。例如,与特定端口组类型的VM相关联的流量可以被认为比与另一端口组类型的VM相关联的流量更为重要,并且因此被“授权”更多的流表空间。在这种情况中,相对优先级被分配至在其关联的端口配置文件中的端口组。例如,假设第一端口组的端口配置文件相比于第二端口组的配置文件指示更高的优先级。假设仅有第二端口组的VM在服务器上被实例化,则可以将整个流表专用于与第二端口组的实例的流相应的条目。然而,如果与第一端口组相关联的VM随后在服务器上被实例化,由于与第一端口组相关联的端口配置文件相比与第二端口组相关联的配置文件指示更高的优先级,所以与第二端口组的实例相关联的一个或多个流条目将从流表中被丢弃以为与在服务器上的第一端口组的实例的流相关联的条目制造空间。明显地,因此在该情形中,在步骤88中实行的以做出关于针对新的流是否存在可用流空间的决定的算法是更为复杂、稳健、并且灵活的,并且不仅依赖于在相同端口组的服务器上的实例数量,还依赖于此时在服务器上的其他端口组的实例的数量和身份。该实施例利用了与VEM上的流量有关的、直接或经由管理器可用于VSM的信息。
这种概念在图4-6中被更为清楚的示出。首先参考图4,在此所示的是示出了基于每个端口组的相对流表使用率。在一个实施例中,VSM将针对其监管的每个主机服务器维持相对流使用率表的表示(比如,在图4中所示的表)。如图4所示,服务器托管三个端口组的VM:端口组A,其端口配置文件指示它具有相对优先级1(最高优先级);端口组B,其端口配置文件指示它具有相对优先级3;以及端口组C,其端口配置文件指示它具有相对优先级6(端口组列表的最低优先级)。在某时间点,在端口组A的VM的服务器上有2个实例,在端口组B的VM的服务器上有3个实例,并且在端口组C的VM的服务器上有4个实例。根据端口组的相对优先级,针对端口组A的VM预留的流空间总量是45%,针对端口组B的VM预留的流空间总量是40%,以及针对端口组C的VM预留的流空间总量是15%。应该认识到的是,每个端口组的流空间使用率基于端口组类型的优先级、相对于优先级的端口组的VM的实例的数量、以及在服务器上其他端口组的VM的实例的数量。还应该认识到的是在图4中所示的数字仅用于示例的目的。
现在参考图5,假设在某稍后的时间点,另一端口组类型的一个VM在服务器上实例化,该类型为端口组D,其端口配置文件指示它具有相对优先级2。图5示出了由该添加造成的相对流使用率的示例变化。例如,在所示的示例中,由于端口组A具有比端口组D更高的优先级并且存在其他较低优先级的端口组(即,端口组B和端口组C,他们的流使用率可首先被降低以为端口组D VM的实例腾出空间)的这一事实,所以端口组A的VM可以保持45%的流使用率。端口组D现在享有在服务器上被实例化的端口组中第二高的优先级,并且因此它的一个实例被分配了20%的流表空间。具有第三高的优先级的端口组B的VM的实例具有被降低至28%的流表空间。最后,最低优先级的端口组C的VM的实例具有被降低至7%流表空间。
接下来参考图6,假设在图5中所示的添加端口组D的实例之后的某时间点,出于这样或那样的原因端口组A的一个VM从服务器被移除。图6示出了由该删除造成的相对流使用率的示例变化。例如,在所示的示例中,由于端口组A仍具有最高优先级的这一事实,所以端口组A的VM(现在仅有一个)的流使用率可以降至35%。响应于改变,具有第二高优先级的端口组D的实例的流使用率被提升了最多,从20%提升至25%。具有第三高优先级的端口组B的实例的流使用率被提升了一些,在改变之后,从之前的28%改变至32%。最后,作为最大的群组但目前具有最低优先级的端口组C的实例的流使用率被最低程度地提升,在改变之后,从之前的7%改变至8%。
再次参考图3,如果在步骤88做出的判定是不可能撤除现存的流表条目,在步骤90中,分组将基于在慢速路径处理(步骤84)中执行处理的过程中决定的动作而被交换。在该情况中,关于动作的流信息不会被缓存至流表;结果,该流的下一分组在步骤84中会被踢至慢速路径。对于该流的各分组,这将一直进行,直到没有该流的分组到达交换机为止或者直到由于撤除了流表的其他流表条目或者使得具有足够高的相对优先级的流调整而撤除了另一个流表条目的在交换机处实例的相对转变而使得流空间是可用或使其变得可用为止。如果在步骤88中判定的是可能撤除现存条目,在步骤92中条目被撤除并且与新的流相应的条目被添加至流表。
如很容易被认识到的,本文所述的实施例在针对主机处的VM流量的流表中提供了公平并且加权的表示。此外,实施例提供了更为精细的控制以预留流空间。另外,实施例提供可网络管理员可用来更好平衡较为重要的流与较为频繁的流的服务的手段,使得频繁的流不必如在其他情况中那样要求最多的流空间。另外,如果特定的端口配置文件没有被主机上的任何VM实例化或未被最大限度地使用,则在其他情况中可能使用静态方案(比如,基于数值或百分比的预留)被分配给该端口配置文件的流表空间能够被动态地分配至主机上的其他VM,以确保对流表空间的充分利用;之前的预留方案不能确保这种结果。
在数据中心环境中,在访问交换机(比如,VEM)中的流监控是很重要的,因为该流监控能查看到没有任何L2/L3交换机封装的VM流量。当前在Nexus 1000V中,针对“每一个特征”监控流。例如,ACL-特征监控器出于记录的目的允许或拒绝IPv4流。类似的,ARP记录监控在网络上被允许或被拒绝的ARP流量等等。本文上述的关于流表空间的预留的基于端口配置文件的方案能够被用来实现基于端口配置文件速率限制,使得较为重要的流能够针对那些特性被监控。
应该注意的是本文所述的基础设施(例如,VSM 20、VSM 50、VEM、VM等)可以作为任意类型的网络设备的部分被提供。如在本文中所用,术语“网络设备”可以包括计算机、网络装置、主机、路由器、交换机、网关、网桥、虚拟设备、负载均衡器、防火墙、处理器、模块、或能够在网络环境中可操作以交换信息的任意其他合适的设备、组件、元件、或对象。此外,网络设备可以包括促进其操作的任意合适的硬件、软件、组件、模块、接口、或对象。这可以将允许有效交换数据或信息的合适的算法和通信协议包括在内。
尽管本文所述的实施例参考了Nexus 1000V交换机,但是相同的技术能够用于任意类型的交换机、虚拟机或其他,包括支持配制端口和监控在那些端口上执行的应用的配置文件的Cisco Nexus和UCS交换机。
需要注意的是在某些示例实现中,在本文概述的基于端口配置文件的流空间预留功能可以被逻辑编码有一个或多个有形、非暂态介质(例如,在专用集成电路(“ASIC”)中提供的嵌入式逻辑、数字信号处理器(“DSP”)指令、由处理器或其他类似的机器执行的软件(潜在地包括目标代码和源代码),等)实行。在这些实例的一些实例中,如图2中所示的存储器元件可存储用于本文所述的操作的数据。存储器元件可包括能够存储被执行以实现本说明书中所述活动的软件、逻辑、代码、或处理器指令的存储器元件。处理器可以执行与数据相关联的任意类型的指令,以实现本所明书中详细说明的操作。在一个示例中,如图2所示的处理器可以将元件或项目(例如,数据)从一个状态或情况转变至另一个状态或情况。在另一示例中,本文概述的活动可以用固定逻辑或可编程逻辑(例如,由处理器执行的软件/计算机指令)实行,并且本文标识的元件可以是某些类型的可编程处理器、可编程数字逻辑(例如,现场可编程门阵列(“FPGA”)、可擦可编程只读存储器(“EPROM”)、电可擦可编程ROM(“EEPROM”))、或包括数字逻辑、软件、代码、电子指令的ASIC、或这些器件的任意合适的组合。
在一个示例实现中,VSM 50包括软件以便实现本文概述的基于端口配置文件的流空间预留功能。预留模块66可以促进该功能。如图2所示,VSM 50可以包括用于存储用来实现本文概述的基于端口配置文件的流空间预留功能的信息的存储元件。另外,VSM 50可以包括能够执行用于执行在本说明书中所述的基于端口配置文件的流空间预留活动的软件或算法的处理器。这些设备还可以将信息保存在任意合适的存储元件(随机存取存储器(“RAM”)、ROM、EPROM、EEPROM、ASIC等)、软件、硬件中,或保存在任意适当的并且基于特定需要的其他合适的组件、设备、元件、或对象中。本文所述的任意存储项应该被解释为被包含在广义术语“存储元件”内。同样地,在本说明书中所述的任意潜在的处理元件、模块、和机器应该被解释为被包含在广义术语“处理器”内。每个网络设备还可以包括在网络环境中用于接收、传输、和/或以其他方式传送数据或信息的合适的接口。另外,用于实现基于配置文件的流空间预留功能的软件部分可以存储在系统40内的任何其他地方并被执行。
注意上述提供的示例以及本文提供的很多其他的示例,可以就两个、三个、或四个网络设备来描述交互。然而,这仅出于清楚和示例的目的。在某些情况中,通过仅参考有限数量的网络设备描述给定流集合的一个或多个功能会比较容易。应该理解的是通信系统10(以及其教导)是很容易扩展的,并且可以容纳大量的组件以及更为复杂/精细的安排和配置。因此,所提供的示例不应该限制或抑制通信系统10的广义教导,因为通信系统10能被潜在地应用于大量其他架构。
同样重要的是应该注意先前描述的流程图仅用于说明一些可以由通信系统10执行或在通信系统10内执行的可能信令方案和模式。在不脱离本公开的范围的情况下,这些步骤中的一些可以被适当地删除或移除,或者这些步骤可以被显著地修改或改变。另外,这些操作中的若干操作已经被描述为与一个或多个附加的操作被同时执行,或与一个或多个附加的操作并行执行。然而,这些操作的定时可以被大幅度的改变。先前的操作流程是出于示例和讨论的目的而提供的。通信系统10提供了实质的灵活性,其中在不脱离本公开的教导的情况下可提供任意合适的安排、顺序、配置、和定时机制。
还应该认识到的是在图4-6中示出的情形仅被视为说明本文所述实施例的操作的示例,并且不应该被视为包括实际实现的结果。在独立的尝试中,通信系统10通常能够被配置或安排以表示其他虚拟以及非虚拟的架构和访问交换机,以及支持使用端口配置文件监控应用的的任何其他类型的交换机。尽管本公开参考特定的安排和配置被详细的描述,但是这些示例配置和安排可以在不脱离本公开的范围的情况下被显著地改变。
本领域的技术人员能够确定大量其他改变、替换、变化、变更和修改,并且本公开意在包含落入所附权利要求范围内所有这样的改变、替换、变化、变更和修改。为了帮助美国专利与商标局(USPTO)和本申请上发布的任何专利的任何读者解释所附权利要求,申请人希望注意到申请人:(a)不意欲任何所附权利要求援引在其提交日即存在的U.S.C.第35编 第112节6(6)款,除非词语“用于...的装置”或“用于...的步骤”具体用在特定权利要求中;并且(b)不意欲通过说明书中的任何陈述以所附权利要求中没有反映的任何方式来限制本公开。

Claims (20)

1.一种方法,包括:
确定针对与在网络设备处接收的新的流相应的分组要执行的动作;
判定标识所述新的流并且包括所确定的动作的指示的新的条目是否能够被添加到所述网络设备的流表,其中新的条目是否能够被添加的所述判定参考在与所述新的流相关联的端口配置文件中指定的预留信息来完成;以及
在判定所述新的条目能够被添加之后,将所述新的条目添加到所述流表。
2.如权利要求1所述的方法,其中,所述新的条目是否能够被添加的所述判定包括:基于在所述相关联的端口配置文件中指定的所述预留信息来评估现存条目是否能够被撤除。
3.如权利要求1所述的方法,其中,所述预留信息包括针对在所述网络设备上实例化的与所述端口配置文件相关联的虚拟机(“VM”)预留的若干流表条目。
4.如权利要求1所述的方法,其中,所述预留信息包括针对在所述网络设备上实例化的与所述端口配置文件相关联的虚拟机(“VM”)预留的总流表空间的一定百分比。
5.如权利要求1所述的方法,其中,所述预留信息包括分配给在所述网络设备上实例化的与所述端口配置文件相关联的虚拟机(“VM”)的加权优先级。
6.如权利要求5所述的方法,其中,所述新的条目是否能够被添加的判定还包括:基于相对于分配给在所述网络设备上实例化的其他VM的加权优先级而分配给与所述新的流相关联的VM的加权优先级,来评估现存流表条目是否应该从所述流表中移除。
7.一个或多个编码在非暂态有形介质中的逻辑,所述逻辑包括用于执行的代码,当所述逻辑被执行时使得处理器执行操作,所述操作包括:
判定针对与在网络设备处接收的新的流相应的分组要执行的动作;
判定标识所述新的流并且包括所确定的动作的指示的新的条目是否能够被添加到所述网络设备的流表,其中新的条目是否能够被添加的所述判定参考在与所述新的流相关联的端口配置文件中指定的预留信息来完成;以及
在判定所述新的条目能够被添加之后,将所述新的条目添加到所述流表。
8.如权利要求7所述的逻辑,其中,所述新的条目是否能够被添加的所述判定包括:基于在所述相关联的端口配置文件中指定的所述预留信息,来评估现存条目是否能够被撤除。
9.如权利要求7所述的逻辑,其中,所述预留信息包括针对在所述网络设备上实例化的与所述端口配置文件相关联的虚拟机(“VM”)预留的若干流表条目。
10.如权利要求7所述的逻辑,其中,所述预留信息包括针对在所述网络设备上实例化的与所述端口配置文件相关联的虚拟机(“VM”)预留的总流表空间的一定百分比。
11.如权利要求7所述的逻辑,其中,所述预留信息包括分配给在所述网络设备上实例化的与所述端口配置文件相关联的虚拟机(“VM”)的加权优先级。
12.如权利要求11所述的逻辑,其中,所述新的条目是否能够被添加的判定还包括:基于相对于分配给在所述网络设备上实例化的其他VM的加权优先级而分配给与所述新的流相关联的VM的加权优先级,来评估现存流表条目是否应该从流表中移除。
13.如权利要求7所述的逻辑,其中,网络设备包括虚拟以太网模块。
14.如权利要求7所述的逻辑,其中,所述端口配置文件被保持在连接到所述网络设备的监管模块上。
15.一种装置,包括:
存储器元件,所述存储器元件被配置为存储数据;
处理器,所述处理器能够操作以执行与所述数据相关联的指令;以及
预留模块,其中所述装置被配置为:
确定针对与在网络设备处接收的新的流相应的分组要执行的动作;
判定标识所述新的流并且包括所确定的动作的指示的新的条目是否能够被添加到所述网络设备的流表,其中新的条目是否能够被添加的所述判定参考在与所述新的流相关联的端口配置文件中指定的预留信息来完成;以及
在判定所述新的条目能够被添加之后,将所述新的条目添加到所述流表。
16.如权利要求15所述的装置,其中,所述新的条目是否能够被添加的所述判定包括:基于在所述相关联的端口配置文件中指定的所述预留信息,来评估现存条目是否能够被撤除。
17.如权利要求15所述的装置,其中,所述预留信息包括针对在所述网络设备上实例化的与所述端口配置文件相关联的虚拟机(“VM”)预留的若干流表条目。
18.如权利要求15所述的装置,其中,所述预留信息包括针对在所述网络设备上实例化的与所述端口配置文件相关联的虚拟机(“VM”)预留的总流表空间的一定百分比。
19.如权利要求15所述的装置,其中,所述预留信息包括分配给在所述网络设备上实例化的与所述端口配置文件相关联的虚拟机(“VM”)的加权优先级。
20.如权利要求15所述的装置,其中,所述端口配置文件被保持在连接到所述网络设备的监管模块上。
CN201380053671.8A 2012-10-15 2013-09-28 在网络环境中有效使用流表空间的系统和方法 Active CN104737504B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/651,597 2012-10-15
US13/651,597 US9548920B2 (en) 2012-10-15 2012-10-15 System and method for efficient use of flow table space in a network environment
PCT/US2013/062496 WO2014062365A1 (en) 2012-10-15 2013-09-28 System and method for efficient use of flow table space in a network environment

Publications (2)

Publication Number Publication Date
CN104737504A true CN104737504A (zh) 2015-06-24
CN104737504B CN104737504B (zh) 2018-05-01

Family

ID=49385374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380053671.8A Active CN104737504B (zh) 2012-10-15 2013-09-28 在网络环境中有效使用流表空间的系统和方法

Country Status (4)

Country Link
US (1) US9548920B2 (zh)
EP (1) EP2907276B1 (zh)
CN (1) CN104737504B (zh)
WO (1) WO2014062365A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017025021A1 (zh) * 2015-08-10 2017-02-16 华为技术有限公司 一种处理流表的方法及装置

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9548920B2 (en) 2012-10-15 2017-01-17 Cisco Technology, Inc. System and method for efficient use of flow table space in a network environment
US9306768B2 (en) * 2012-11-07 2016-04-05 Cisco Technology, Inc. System and method for propagating virtualization awareness in a network environment
US9769074B2 (en) 2013-03-15 2017-09-19 International Business Machines Corporation Network per-flow rate limiting
US9596192B2 (en) 2013-03-15 2017-03-14 International Business Machines Corporation Reliable link layer for control links between network controllers and switches
US9609086B2 (en) 2013-03-15 2017-03-28 International Business Machines Corporation Virtual machine mobility using OpenFlow
US9444748B2 (en) * 2013-03-15 2016-09-13 International Business Machines Corporation Scalable flow and congestion control with OpenFlow
US9407560B2 (en) 2013-03-15 2016-08-02 International Business Machines Corporation Software defined network-based load balancing for physical and virtual networks
US9986472B2 (en) * 2013-10-25 2018-05-29 Benu Networks, Inc. System and method for configuring a universal device to provide desired network hardware functionality
US10481932B2 (en) * 2014-03-31 2019-11-19 Vmware, Inc. Auto-scaling virtual switches
US9692684B2 (en) * 2014-09-05 2017-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in SDN
US9680731B2 (en) 2015-02-27 2017-06-13 International Business Machines Corporation Adaptive software defined networking controller
CN106302184B (zh) * 2015-06-12 2020-02-14 华为技术有限公司 一种流表项下发方法、流表项保存方法、相关装置和系统
US10659351B2 (en) 2015-12-16 2020-05-19 Hewlett Packard Enterprise Development Lp Dataflow consistency verification
CN109074330B (zh) 2016-08-03 2020-12-08 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
WO2018023498A1 (zh) * 2016-08-03 2018-02-08 华为技术有限公司 网络接口卡、计算设备以及数据包处理方法
CN106533806B (zh) * 2016-12-26 2020-05-22 上海交通大学 多租户SDN网络中基于应用感知提供跨层QoS的方法
US9912739B1 (en) 2017-01-12 2018-03-06 Red Hat Israel, Ltd. Open virtualized multitenant network scheme servicing virtual machine and container based connectivity
CN108696434B (zh) * 2017-04-11 2022-01-14 华为技术有限公司 一种转发数据报文的方法、设备和系统
US11032190B2 (en) * 2018-09-12 2021-06-08 Corsa Technology Inc. Methods and systems for network security universal control point
US10999188B1 (en) * 2020-01-22 2021-05-04 Gigamon Inc. Tool port aliasing in a network visibility fabric
US11456952B2 (en) 2020-08-04 2022-09-27 Pensando Systems, Inc. Methods and systems for removing expired flow table entries using an extended packet processing pipeline
US11374859B2 (en) 2020-08-04 2022-06-28 Pensando Systems, Inc. Flow table programming using flow miss metadata and burst action assist via CPU offload

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7817549B1 (en) * 2006-06-30 2010-10-19 Extreme Networks, Inc. Flexible flow-aging mechanism

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6466985B1 (en) * 1998-04-10 2002-10-15 At&T Corp. Method and apparatus for providing quality of service using the internet protocol
US7177311B1 (en) * 2002-06-04 2007-02-13 Fortinet, Inc. System and method for routing traffic through a virtual router-based network switch
WO2008098075A2 (en) * 2007-02-06 2008-08-14 Entropic Communications Inc. Full mesh rates transaction in a network
US8169910B1 (en) * 2007-10-24 2012-05-01 Juniper Networks, Inc. Network traffic analysis using a flow table
JP6214023B2 (ja) 2009-07-31 2017-10-18 日本電気株式会社 制御サーバ、サービス提供システムおよび仮想的なインフラストラクチャの提供方法
WO2011037105A1 (ja) * 2009-09-25 2011-03-31 日本電気株式会社 コンテンツベーススイッチシステム、及びコンテンツベーススイッチ方法
CN102648455B (zh) * 2009-12-04 2015-11-25 日本电气株式会社 服务器和流控制程序
JP5672558B2 (ja) 2009-12-17 2015-02-18 日本電気株式会社 ネットワークシステム、ネットワーク制御装置、及び制御方法
US8599854B2 (en) 2010-04-16 2013-12-03 Cisco Technology, Inc. Method of identifying destination in a virtual environment
US8345692B2 (en) 2010-04-27 2013-01-01 Cisco Technology, Inc. Virtual switching overlay for cloud computing
US8417800B2 (en) * 2010-07-16 2013-04-09 Broadcom Corporation Method and system for network configuration and/or provisioning based on open virtualization format (OVF) metadata
US20120131662A1 (en) 2010-11-23 2012-05-24 Cisco Technology, Inc. Virtual local area networks in a virtual machine environment
US8615579B1 (en) * 2010-12-28 2013-12-24 Amazon Technologies, Inc. Managing virtual machine migration
US8416796B2 (en) * 2011-05-06 2013-04-09 Big Switch Networks, Inc. Systems and methods for managing virtual switches
US20130034015A1 (en) * 2011-08-05 2013-02-07 International Business Machines Corporation Automated network configuration in a dynamic virtual environment
JP5776600B2 (ja) * 2011-09-05 2015-09-09 富士通株式会社 データ中継装置、データ中継プログラムおよびデータ中継方法
US9130869B2 (en) * 2012-02-09 2015-09-08 Telefonaktiebolaget L M Ericsson (Publ) Methods of redirecting network forwarding elements and related forwarding elements and controllers
US9244843B1 (en) * 2012-02-20 2016-01-26 F5 Networks, Inc. Methods for improving flow cache bandwidth utilization and devices thereof
US8705536B2 (en) * 2012-03-05 2014-04-22 Telefonaktiebolaget L M Ericsson (Publ) Methods of operating forwarding elements including shadow tables and related forwarding elements
US9071529B2 (en) * 2012-10-08 2015-06-30 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for accelerating forwarding in software-defined networks
US9548920B2 (en) 2012-10-15 2017-01-17 Cisco Technology, Inc. System and method for efficient use of flow table space in a network environment

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7817549B1 (en) * 2006-06-30 2010-10-19 Extreme Networks, Inc. Flexible flow-aging mechanism

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017025021A1 (zh) * 2015-08-10 2017-02-16 华为技术有限公司 一种处理流表的方法及装置
CN106713182A (zh) * 2015-08-10 2017-05-24 华为技术有限公司 一种处理流表的方法及装置
US10728154B2 (en) 2015-08-10 2020-07-28 Huawei Technologies Co., Ltd. Flow table processing method and apparatus

Also Published As

Publication number Publication date
EP2907276B1 (en) 2019-04-17
US20140108632A1 (en) 2014-04-17
CN104737504B (zh) 2018-05-01
WO2014062365A1 (en) 2014-04-24
EP2907276A1 (en) 2015-08-19
US9548920B2 (en) 2017-01-17

Similar Documents

Publication Publication Date Title
CN104737504A (zh) 在网络环境中有效使用流表空间的系统和方法
US10404622B2 (en) Servers, switches, and systems with virtual interface to external network connecting hardware and integrated networking driver
US10135714B2 (en) Servers, switches, and systems with switching module implementing a distributed network operating system
US10075396B2 (en) Methods and systems for managing distributed media access control address tables
US9680714B2 (en) Methods, systems, and fabrics implementing a distributed network operating system
Ghorbani et al. Walk the line: consistent network updates with bandwidth guarantees
US9742697B2 (en) Integrated server with switching capabilities and network operating system
CN104253770B (zh) 实现分布式虚拟交换机系统的方法及设备
US9497112B2 (en) Virtual data center allocation with bandwidth guarantees
CN104813611B (zh) 针对网络服务的虚拟设备描述表(vdc)集成
CN102726007B (zh) 用于实现和管理虚拟交换机的方法和装置
US10581734B2 (en) Methods, systems, and fabrics implementing a distributed network operating system
US9304782B2 (en) Network switch, systems, and servers implementing boot image delivery
CN104584484A (zh) 提供基于策略的数据中心网络自动化的系统和方法
CN104363159A (zh) 一种基于软件定义网络的开放虚拟网络构建系统和方法
JP2014135721A (ja) データセンタネットワークのトラフィックを分配するための装置および方法
US10333855B2 (en) Latency reduction in service function paths
WO2016197301A1 (zh) Nfv系统中的策略协调方法和装置
Li et al. Topology-aware resource allocation for IoT services in clouds
CN108923961B (zh) 一种多入口网络服务功能链优化方法
EP4425321A1 (en) Load balancing network traffic processing for workloads among processing cores
CN108650112A (zh) 一种数据中心综合管理系统的网络虚拟化设计系统及方法
Glick et al. Industrial Panel Talks

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