在一个实施例中,一种方法包括:在网络设备处从服务器接收用于多个流的流数据,对于每个流,流数据包括目的地地址和时间,该时间指示流最后的分组在服务器处被处理的时间;在网络设备处更新流表;将流表中的流中的一个标识为不活跃的流;在网络设备处从转发信息表中移除用于不活跃的流的路由。装置和逻辑也在本文中被公开。
【技术实现步骤摘要】
【国外来华专利技术】
本公开一般地涉及通信网络,更具体地,涉及转发表优化。
技术介绍
在数据中心环境中,边缘设备被用于在服务器之间对通信进行路由,这些服务器可以承载数百个虚拟机。边缘设备常常具有小的硬件转发表,而每个交换机需要维持的路由的数量可能超过该交换机的硬件转发表的容量。对用于在硬件转发表中进行编程的路由的选择以及对该表的利用对数据中心网络和其他网络(在这些网络中,硬件转发表的大小有限)的性能和可扩展性很重要。【附图说明】图1示出网络的示例,本文所描述的实施例可以在该网络中实现。图2描绘对实现本文所描述的实施例有用的网络设备的示例。图3示出在图1的网络中的服务器处的流表的示例。图4示出在图1的网络中的交换机处的流表的示例。图5的流程图示出根据一个实施例用于转发表优化的过程概述。在附图的全部几个视图中,相应的标号表示相应的部件。【具体实施方式】皿在一个实施例中,一种方法大体上包括:在网络设备处从服务器接收用于多个流的流数据,对于每个流,流数据包括目的地地址和时间,该时间指示流最后的分组在服务器处被处理的时间;在网络设备处更新流表;将流表中的流中的一个标识为不活跃的流;在网络设备处从转发信息表中移除用于不活跃的流的路由。在另一实施例中,一种装置大体上包括用于存储用于多个流的路由的转发信息库和用于存储用于这些流的流数据的流表,对于每个流,流数据包括目的地地址和时间,该时间指示该流最后的分组在服务器处被处理的时间。该装置还包括处理器,该处理器用于进行以下操作:基于从服务器处接收到的流数据更新网络流表;将流表中的流中的一个标识为不活跃的流;从转发信息库中移除用于不活跃的流的路由。示例实施例下面的描述被呈现以使得本领域的技术人员能够制造和使用这些实施例。对具体实施例和应用的描述仅作为示例被提供,对本领域的技术人员来说各种修改将是显而易见的。本文所描述的一般原理可以在不背离本实施例的范围的情况下被应用于其它应用。因此,实施例不限于所示的那些,而是要被给予与本文所描述的原理和特征相符的最广阔的范围。为了清楚的目的,涉及与实施例相关的
中公知的技术材料的相关的细节没有被详细描述。边缘设备(诸如架顶交换机(Top-of-Rack,ToR))通常具有小的硬件转发表。交换机可以被连接到承载数百个虚拟机(VM)的服务器,其中每个虚拟机与任意数量的远程主机通信。每个交换机需要维持的路由数量通常比交换机处的硬件转发表的大小大很多。此外,频繁的虚拟机迀移导致需要在硬件转发表中被编程的新的路由。如果硬件转发表已满,则新的路由不能被编程在表中。如果路由不能在硬件转发表中被编程,则分组被软件切换或者被丢弃,从而影响系统性能。本文所描述的实施例利用网络中可用的流数据来识别活跃和不活跃路由。流信息可以被用于在空间有限时快速地从硬件转发表移除不活跃路由。本实施例有助于扩大网络并提供更好的性能。现在参考附图,首先参考图1,在其中本文所描述的实施例可以被实现的网络的示例被示出。为简单起见,仅少量节点被示出。在图1中所示出的示例中,两个服务器(主机、端点、物理机)10通过网络14进行通信。每个服务器10可以被配置为承载一个或多个虚拟机(VM) 20。网络14包含多个网络设备,网络设备包括经由核心设备18通信的边缘设备16A、16B、16C。网络14可以包括与任意数量的中间或核心节点(比如,路由器、交换机或者其它网络设备)通信的任意数量的边缘设备,这些中间或核心节点便于数据在网络内传送。网络14可以被配置为用作数据中心或者任何其它类型的网络。在一个实施例中,网络14采用会话式转发模型。在会话式转发模型中,边缘设备仅对会话式地直接连接的主机路由进行编程。会话式路由是对交换机在规定的时间段内遇到的分组进行转发所需要的路由。本文所用的术语“路由”或者“流”可以指会话式转发模型中的会话或者传统转发模型中的路由或流。边缘设备16A、16B、16C可以与任意数量的服务器10通信,服务器10可以包括任意数量的虚拟机20。在图1中所示出的示例中,边缘设备16A与承载虚拟机VM A和VM B的服务器通信,边缘设备16C与承载虚拟机VM C的服务器通信。边缘设备16A、16B、16C可以是层3(L3)交换设备或被配置为执行转发功能的其它网络设备(比如,路由器、交换机、路由器/交换机)。在一个实施例中,边缘设备16A、16B、16C是架顶交换机(ToR)。交换机例如可以是可从加利福尼亚州圣何塞的Cisco Systems,Inc.得到的NEXUS3000或NEXUS 5000系列交换机。应当理解的是,这些仅是可以被用于实现本文所描述的实施例的网络设备的示例。每个交换机16A、16B、16C维持由路由协议构造和更新的路由信息库(RIB) 26 (也称为路由表),并维持转发信息库(FIB) 28 (也称为转发表)。为简单起见,RIB 26和FIB28仅在交换机16A处被示出。其它交换机16B和16C可以具有与交换机16A所示出的那些相类似的组件。FIB 28比RIB 26小并针对目的地地址的快速查找而被优化。RIB 26通常在软件中被实现,而FIB 28被用快速硬件查找机制(比如,三重可寻址存储器(TCAM))实现。如果RIB 26中的路由不能在FIB 28中被编程,则分组被软件(比如,软件中实现的FIB表)切换或者被丢弃。服务器10例如可以是刀片服务器、机架式服务器或者可操作来承载虚拟机20的任何其它类型的网络设备。服务器10可以包括虚拟交换机(比如,可从Cisco Systems,Inc.得到的NEXUS 1000系列交换机的虚拟以太网模块(VEM))。虚拟交换机22切换虚拟机20和物理网络接口之间的流量。这些虚拟机20共享硬件资源而不相互干扰,因此使得多个操作系统和应用能够在一台计算机上同时运行。虚拟机20可以被用在(例如)虚拟基础设施以动态地将物理资源映射到业务需求。虚拟机监视器(比如,虚拟机管理程序(未示出))动态地向虚拟机20分配硬件资源。虚拟机20可以驻留于一个或多个虚拟网络或子网。虚拟机20可以基于流量模式、硬件资源或其它标准在服务器10之间、跨层2或层2边界被移动(例如称为虚拟机移动性、vMot1n、动态迀移或虚拟机迀移)。在一个示例中,VM A和VM C位于不同的子网。为了从VM A向VM C转发分组,到VM C的路由应当在交换机16A的转发表中(优选为在它的硬件FIB 28中)被编程。然而,如果硬件FIB 28已满,则路由可以不被编程。如下面所详细描述的,本实施例使用从服务器10接收到的流数据32来识别不活跃的流并在硬件FIB 28满(比如,到达阈值容量水平)时从FIB 28移除相应的路由,使得新路由可以在FIB中被编程。交换机可以从任意数量的服务器接收流数据。流被定义为具有通过网络设备这一共同属性的单向分组序列。例如,具有相同的5元组的分组可以属于相同的流。5元组例如可以包括,目的地IP地址、源IP地址、目的地端口、源端口和协议。流统计例如可以包括分组计数、字节计数、流创建时间和流最后分组命中时间。一个或多个服务器10被配置为支持流数据收集和输出。在图1中所示出的示例中,流数据在服务器10的流表24处被收集并被输出到交换机16A。在一个本文档来自技高网...
【技术保护点】
一种方法,包括:在网络设备处从服务器接收用于多个流的流数据,针对每个所述流,所述流数据包括目的地地址和时间,所述时间指示所述流的最后分组在服务器处被处理的时间;在网络设备处更新流表;将所述流表中的所述流中的一个标识为不活跃的流;以及在所述网络设备处从转发信息库中移除用于所述不活跃的流的路由。
【技术特征摘要】
【国外来华专利技术】...
【专利技术属性】
技术研发人员:梁遥南,钱戈拉派特·V·拉梅什,干纳施·P·默西,张明,拉杰什·B·纳塔拉嘉,
申请(专利权)人:思科技术公司,
类型:发明
国别省市:美国;US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。