首页> 中国专利> 利用流数据的转发表优化

利用流数据的转发表优化

摘要

在一个实施例中,一种方法包括:在网络设备处从服务器接收用于多个流的流数据,对于每个流,流数据包括目的地地址和时间,该时间指示流最后的分组在服务器处被处理的时间;在网络设备处更新流表;将流表中的流中的一个标识为不活跃的流;在网络设备处从转发信息表中移除用于不活跃的流的路由。装置和逻辑也在本文中被公开。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-01-22

    授权

    授权

  • 2015-08-05

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20131018

    实质审查的生效

  • 2015-07-08

    公开

    公开

说明书

技术领域

本公开一般地涉及通信网络,更具体地,涉及转发表优化。

背景技术

在数据中心环境中,边缘设备被用于在服务器之间对通信进行路由, 这些服务器可以承载数百个虚拟机。边缘设备常常具有小的硬件转发表, 而每个交换机需要维持的路由的数量可能超过该交换机的硬件转发表的容 量。对用于在硬件转发表中进行编程的路由的选择以及对该表的利用对数 据中心网络和其他网络(在这些网络中,硬件转发表的大小有限)的性能 和可扩展性很重要。

附图说明

图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.得到的NEXUS 3000或NEXUS 5000系列交换机。应当理解的是,这些仅是可以被用于实 现本文所描述的实施例的网络设备的示例。

每个交换机16A、16B、16C维持由路由协议构造和更新的路由信息 库(RIB)26(也称为路由表),并维持转发信息库(FIB)28(也称为转 发表)。为简单起见,RIB 26和FIB 28仅在交换机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边界被 移动(例如称为虚拟机移动性、vMotion、动态迁移或虚拟机迁移)。

在一个示例中,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。在一个实施例中,流表24由虚拟交换机22维持。流数据可以通过 使用诸如IPFIX(互联网协议流信息输出)、NDE(净流数据导出)的格 式或任何其它格式被收集和被输出。来自流表24的流数据32被传送到交 换机16A用于优化交换机处硬件转发表28的使用。在一个示例中,流数 据32被从直接连接的主机(比如,服务器10)传送到边缘设备(比如, 交换机16A)。流数据32被存储在交换机16A处的流表30(也称为会话 式表)中。如下面所详细描述的,存储在表30中的流数据被用于在空间 有限时快速从FIB 28移除不活跃的路由。

边缘设备16A还可以具有针对边缘设备处的流量收集流数据的另一流 表(未示出)。因此,在一个实施例中,边缘设备可以具有两个流表;流 表30(会话式表)接收在服务器10处收集的流数据32,另一流表用于存 储在边缘设备16A处收集的流数据。由于服务器10仅向边缘设备16A报 告活跃的流(会话),与针对交换机处的所有的流量收集数据的流表相 比,流表30处跟踪的会话的数量可以被减少。

应当理解的是,图1中所示出的和本文所描述的网络仅是示例,实施 例可以在具有不同的网络拓扑和网络设备的网络中被实现,而不脱离这些 实施例的范围。例如,网络可以包括任意数量或类型的边缘设备、主机或 者虚拟机。

可以被用于实现本文所描述的实施例的网络设备(比如,ToR交换 机)40的示例在图2中被示出。在一个实施例中,网络设备40是可以在 硬件、软件或它们的任意组合中被实现的可编程机器。设备40包括一个 或多个处理器42、存储器44和网络接口46。

存储器44可以是易失性存储器或非易失性存储装置,其存储用于被 处理器42运行和使用的各种应用、模块和数据。如图2中所示出的,存 储器包括RIB 26、FIB 28和流表30。在一个实施例中,RIB 26和流表30 在软件中被生成并被用于对硬件中的FIB 28进行编程。FIB 28可以在内容 可寻址存储器(比如,TCMA)或其它数据结构中被实现。存储器44可以 包括任意数量和类型的存储组件。

逻辑可以被编码在一个或多个有形计算机可读介质中以被处理器42 运行。例如,处理器42可以运行被存储在计算机可读介质(比如,存储 器44)中的代码。计算机可读介质例如可以是电子的(比如,RAM(随 机存取存储器)、ROM(只读存储器)、EPROM(可擦除可编程只读存 储器))、磁的、光的(比如,CD、DVD)、电磁的、半导体技术或任 何其它合适的介质。

网络接46可以包括用于接收数据或向其它设备传送数据的任意数 量的接口(线卡、端口)。接46例如可以包括用于连接到计算机或者 网络的以太网接口。

应当理解的是,图2中所示出的和上面所描述的网络设备40仅是示 例,在不背离实施例的范围的情况下,具有不同的组件和配置的网络设备 可以被使用。

图3示出用于在服务器10处收集流数据的流表24的示例。在一个实 施例中,表24包括目的地地址(DA)、最后分组命中时间戳(LTS)和 用于每个流条目的分组计数(N)。目的地地址例如可以包括虚拟机20或 主机10的IP地址或者用于识别流或接收机的另一标识符。LTS指示相应 的流的最后的分组在服务器10处被处理(比如,分组被接收或被传送、 流条目被更新、查找被执行)的时间。

服务器10对流表24进行扫描以获得在某一时间段(TP)内活跃的 流,然后以某个时间间隔(TI)将这些流的流数据输出到交换机16A。参 数TP和TI可以被设置为默认值或者可以基于系统性能被调整。在一个示 例中,服务器10输出LTS在最后5分钟内的流的数据。为了减少被输出 到交换机的流数据的量,服务器10可以仅输出与服务器处的所有流相比 具有高分组计数的流的流数据。例如,服务器10可以根据分组计数(N) 列出流表24中的流(比如,具有最高的分组计数的流在顶部)、选择排 名最高的流或百分比居前的流(流数据会针对这些流而输出)并且仅对于 所选择的那些条目输出流数据。最小分组计数也可以被用于选择数据用于 输出到交换机。表24还可以在没有分组计数的情况下被构造,在该情况 下在指定时间段(TP)内活跃的所有流的流数据被传送到交换机。

图4示出交换机16A处的流表30的示例。在一个实施例中,流表30 被实现为查找表,其中键(key)是目的地地址(DA),数据是最后分组 命中时间戳(LTS)。在从服务器10接收到流数据32时,交换机16A在 它的流表30中查找目的地地址。如果条目被发现,则交换机为所发现的 条目更新流表中的LTS。如果查找没发现条目,则交换机使用所接收到的 流数据的DA和LTS在表30中创建新条目。流表30可以被实现为FIB表 28的扩展或者独立的表。如果担心交换机16A上的CPU(中央处理单 元)利用率,则流数据可以在较低的优先级被处理或者被卸载到另一服务 器。如下面所描述的,来自流表30的数据被用于从硬件FIB 28识别和移 除不活跃的路由。

应当理解,图3和图4所示的表仅仅是示例,这些数据也可以被储存 在具有其他格式或内容的数据结构中,而不脱离这些实施例的范围。

图5是示出根据一个实施例的用于转发表优化的过程的概述的流程 图。在步骤50处,网络设备(比如,图1中的交换机16)从服务器10接 收流数据32。如先前所描述的,流数据包括目的地地址和指示该流最后的 分组在服务器处被处理的时间(LTS)。交换机16A使用流数据32来更 新它的流表30(比如,更新条目或者创建新条目)(步骤52)。当交换 机16A上的硬件FIB 28的竞争水平超过阈值(比如,90%)时,交换机通 过LTS搜索流表30以识别不活跃的流(会话)并从它的硬件FIB中移除 相应的路由(比如,目的地地址/前缀),使得用于活跃的会话的新的路由 可以被编程到硬件FIB中(步骤54和56)。不活跃的流可以是具有早于 指定的时间的LTS的任何流,所述指定的时间可以基于当前时间和定义的 时间间隔被计算。

如果交换机16A不从服务器10接收流数据,活跃的路由可能被从 FIB 28移除。然而,只要该流是活跃的,相应的路由将再次被编程到FIB 28中。

应当理解的是,图5中所示出的和上面所描述的过程仅是示例,步骤 可以在不背离实施例的范围的情况下被修改、被添加或者被合并。

尽管已经根据所示出的实施例对方法和装置进行了描述,本领域的普 通技术人员将容易认识到,在不背离实施例的范围的情况下可以做出变 化。因此,上面的描述中所包含的以及附图中所示出的所有的内容应当被 理解为说明性的而不是限制性的。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号