数据中心结构网络中的内联数据包追踪的制作方法

文档序号:11455492阅读:371来源:国知局
数据中心结构网络中的内联数据包追踪的制造方法与工艺

相关申请的交叉引用

本申请要求于2014年11月18日递交的美国临时申请no.62/081,061的优先权,该申请的内容通过引用全部结合于此。

本公开涉及数据中心结构网络。



背景技术:

数据中心结构解决方案,例如,叶脊架构涉及复杂的路由和负载均衡算法,以将数据包从数据中心结构中的一个节点发送到另一个节点。在使用动态负载均衡方案的结构中,相同的数据包流可以基于它消耗的带宽而在不同时刻采用不同的路径。传统的数据包追踪设施将数据包注射向期望的目的地,但是因为数据包散列可能不匹配,所以可能无法追踪实际的数据包流。

附图说明

图1是示出根据本文给出的示例实施例的数据中心结构网络的框图,其中,在该数据中心结构网络中执行数据包追踪;

图2是示出根据本文给出的示例实施例的被配置为执行数据包追踪的网络控制器和相应数据中心节点(例如,交换机)的组件的更具体的框图;

图3是类似于图1的、示出根据本文给出的示例实施例的动态负载均衡如何改变数据包路径、以及数据包追踪技术如何适用于这种动态负载均衡(以及新路径中的数据包丢弃)的示意图;

图4是描绘根据本文给出的示例实施例的用于数据包追踪的过程的流程图。

具体的实施方式

概括

本文给出了用于追踪数据包流在数据中心结构网络中的路径的实施例。针对特定数据包流的过滤器(filter)被配置在数据中心结构网络的节点(例如,交换机)上。大量的这种过滤器可以被配置在这些节点中的每一个节点上,每个过滤器针对不同的数据包流。当过滤器检测到匹配时,向网络控制器输出发生匹配的日志。网络控制器使用从节点发送的日志数据以及网络拓扑的知识(随网络中发生的改变而更新)来确定特定数据包流在数据中心结构网络中的路径。

因此,从网络控制器的角度来看,提供了一种方法,其中,追踪特定数据包流的过滤器配置信息被生成,该过滤器配置信息包括特定数据包流的一个或多个参数。过滤器配置信息被发送到多个节点,以便在多个节点中的每一个节点处配置针对特定数据包流的过滤器。网络控制器从多个节点中的、发生过滤器匹配的一个或多个节点接收输出,该输出指示匹配针对特定数据包流的过滤器的过滤器配置信息的数据包通过相关节点。网络控制器分析从多个节点中的、发生过滤器匹配的一个或多个节点接收的输出,来确定特定数据包流通过网络的路径。

示例的实施例

不存在能够在当前的高级数据中心结构网络中精确地追踪具体数据包流的可用技术。根据本文给出的实施例,数据包路径追踪可以在数据中心结构网络中针对实际的数据包流自身“内联地”进行。这避免了注射新数据包的需求。执行内联数据包路径追踪还可以快速精准地确定数据包流在网络中的哪里被丢弃以及为什么被丢弃(如果是由于转发丢弃的话)。

该技术涉及在网络交换机(数据中心节点)中使用过滤器并且利用网络拓扑信息分析过滤器输出,来生成(“缝合”)数据包在网络中的路径。

首先参考图1。图1示出了包括被布置在叶脊架构中的多个数据中心交换机(更一般地称为数据中心节点)的数据中心结构网络10。例如,该数据中心结构包括脊节点s1、s2和s3以及叶节点l1、l2、l3和l4。在脊节点和叶节点之间的连接是这样的:每个叶节点被连接到一个或多个脊节点。脊节点s1、s2和s3被示出在参考标号20(1)、20(2)和20(3)处,并且叶节点被示出在参考标号22(1)、22(2)、22(3)和22(4)处。这是简化图,并且应当理解的是在实际的网络部署中通常存在大量的更多的节点。

网络控制器30与每个脊节点s1、s2和s3以及每个叶节点l1、l2、l3和l4通信。用户(例如,网络管理员)可以从用户终端40(本地或经由互联网远程地)登录网络控制器。用户终端40可以是台式计算机、服务器、膝上型计算机或具有网络连接和用户接口的任何计算/用户设备。

结构网络的拓扑可以随着一些节点发生故障而动态改变。链路层发现协议(lldp)通常在这些节点之间运行,当前的拓扑在网络控制器30处通常是可用的。除了拓扑改变以外,这些节点还可以执行动态负载均衡技术,以避免网络中的路径拥堵。这两个因素都会改变数据包流所采用的路径。

图1示出了针对特定数据包/流量流的过滤器50被配置在数据中心结构10中的所有节点上的示例。即,匹配将被追踪的期望数据包流的过滤器50的参数被配置在所有的节点上。为了追踪数据包或数据包流,包括数据包的一个或多个字段的数据的过滤器50被配置在数据中心网络结构中的所有节点上。如图1所示,数据包60在叶节点l1处进入数据中心网络结构10。每当数据包匹配过滤器的参数时,节点都记录该信息和/或向该节点中的处理器引发事件。在图1的示例中,具有交叉阴影图案的、使用过滤器50标记的节点和数据包流命中(“匹配”)过滤器50的节点,即节点l1、s2和l4。

当发生过滤器命中(匹配)时,其中包括标识发生过滤器命中的节点上的、接收数据包的进入接口(端口)的信息的输出被生成。该信息被从发生过滤器命中的节点发送到网络控制器30。

网络控制器30将报告过滤器命中的节点与该结构的网络拓扑相关联。如以上所描述的,该结构的网络拓扑可以根据类似lldp的简单链路层协议获得,该结构的网络拓扑公布了给定交换器的所有邻居。通过在lldp或其他类似数据库中查找进入接口信息,网络控制器30可以确定发送数据包的邻居交换机。通过在发现数据包的每一个节点处推导该信息,可以确定整个数据包路径。因此,网络控制器30相对于(例如,使用lldp获取的)网络拓扑信息来分析包括数据包在命中过滤器的节点上的进入接口的过滤器命中信息,来建立数据包流在数据中心结构网络中的整个路径。

图1中描述的系统可以被配置为根据应用中心基础架构(aci)进行操作。数据中心中的aci是具有集中式的自动化和政策驱动的应用简档的架构。aci利用硬件性能的可扩展性来提供软件灵活性。aci包括由应用驱动的政策模型、实时的集中可见度、应用健康监控、以及可扩展性能、以及硬件中的多租户技术提供的简单自动化。

现参考图2。图2更详细地示出了支持本文给出的实施例的网络控制器30和数据中心节点的相关组件。网络控制器30包括处理器(例如,中心处理单元)100、网络接口单元(例如,一个或多个网络接口卡)110、以及存储器120。存储器120存储数据包追踪控制软件130的指令、以及通过在每一个节点的所有接口上运行lldp所获得的指示数据中心结构网络的最新网络拓扑的网络配置数据140。

由参考标号20(1)、22(1)-20(n)、22(n)指代的数据中心节点包括多个端口200、一个或多个专用集成电路(asic)210、处理器220、以及存储器230。在网络处理器asic210中存在一个或多个可配置的过滤器240(1)-240(n),被示出为过滤器1-过滤器n。这些过滤器是这样的过滤器:网络控制器30可以在每个数据中心节点上对该过滤器进行编程/配置来追踪数据包流。网络控制器30发送过滤器配置信息250,以便在每个数据中心节点上配置针对将被追踪的每个数据包流的相同的过滤器。例如,过滤器1将在每个数据中心节点上被配置以适合的参数/属性以追踪数据包流1,过滤器2将在每个数据中心节点上被配置以合适的参数/属性以追踪数据包流2等等。数据中心节点将过滤器命中信息260返回网络控制器。如上面总地描述的,将在网络控制器记录的过滤器命中信息260包括标识数据包在发生过滤器匹配(“命中”)的节点处的进入接口的信息。网络处理器asic210还能够获取附加的转发信息,诸如转发或丢弃数据包动作、下一跳细节等等。在一种情境下,使用嵌入式逻辑分析模块(elam)来实例化过滤器。然而,通常可以使用网络处理器asic或存储在存储器中的软件中的、由每一个数据中心节点中的处理器执行的可配置数字逻辑来实现过滤器。

网络控制器30中的存储器130和数据中心节点中的存储器230可以包括只读存储器(rom)、随机存取存储器(ram)、磁盘存储介质设备、光存储介质设备、闪存设备、电、光或其他物理/有形的存储器存储设备。因此,通常,图2中示出的存储器可以包括由包括计算机可执行指令的软件编码的一个或多个有形(非暂态)计算机可读存储介质(例如,存储器设备),当该软件被(控制器)执行时可操作以执行本文所描述的操作。

过滤器可以基于数据包的任何字段,例如,数据包的l2头部、l3头部、或l4头部中的任何字段。可以被用于数据包过滤器的数据包字段/属性的示例包括(但不限于):

源介质访问控制(mac)地址(内部和/或外部的,依据是否使用了隧道技术而定)

目的地mac地址(内部和/或外部的,依据是否使用了隧道技术而定)

源互联网协议(ip)地址(内部和/或外部的,依据是否使用了隧道技术而定)

目的地ip地址(内部和/或外部的,依据是否使用了隧道技术而定)

节点(交换机)的域名

端口号

层4(例如,通用数据报协议(udp)或传输控制协议(tcp)源端口或目的地端口)

虚拟可扩展局域网(vxlan)数据包的虚拟网络标识符(vnid)

虚拟局域网(vlan)标识符

这些字段中的一个或多个字段的值将被设定。如果匹配过滤器中针对相应字段所设置的值的数据包到达具有一个或多个值的节点,则宣布匹配。

下面是由网络中的节点处的过滤器生成的示例输出。命名惯例被用于各种节点,但这是任意的。

下列各项是网络中被配置有特定过滤器的交换机的列表:

ifav43-leaf2,ifav43-leaf3,ifav43-leaf4,ifav43-leaf6,ifav43-leaf7,ifav43-leaf8,ifav43-leaf9,ifav43-leaf5,ifav43-leaf1,ifav43-spine1

ingress-tor(topofrack):43-leaf5

inner-dip:240.121.255.232

log_file:/tmp/1

in_select4out_select5

startingelamonifav43-leaf2

startingelamonifav43-leaf3

startingelamonifav43-leaf4

startingelamonifav43-leaf6

startingelamonifav43-leaf7

startingelamonifav43-leaf8

startingelamonifav43-leaf9

startingelamonifav43-leaf5

startingelamonifav43-leaf1

startingelamonifav43-spine1

lc1

lc3

capturingelamonifav43-leaf2

capturingelamonifav43-leaf3

capturingelamonifav43-leaf4

ifav43-leaf4asic0inst1diregressmatched

ifav43-leaf4->43-spine1eth1/49120breth3/33

capturingelamonifav43-leaf6

ifav43-leaf6asic0inst1diregressmatched

ifav43-leaf6->43-spine1eth1/49120breth3/11

capturingelamonifav43-leaf7

ifav43-leaf7asic0inst1diregressmatched

ifav43-leaf7->43-spine1eth1/59120breth1/29

capturingelamonifav43-leaf8

capturingelamonifav43-leaf9

capturingelamonifav43-leaf5

ifav43-leaf5asic0inst0diringressmatched

capturingelamonifav43-leaf1

ifav43-leaf1asic0inst1diregressmatched

ifav43-leaf1->43-spine1eth1/49120breth1/33

capturingelamonifav43-spine1

lc1

lc3

ifav43-spine1asic1inst3diregressmatched

ifav43-spine1asic0inst3diregressmatched

ifav43-spine1asic1inst1diringressmatched

ifav43-spine1->43-leaf5eth3/23120breth1/49

ifav43-leaf1asic1inst3diregressmatched

toringress:[’43-leaf5’]

spineingress:[’43-leaf5:eth1/49::eth3/23:43-spine1’]

spineegress:[’43-spine1’,’43-spine1’,’43-spine1’]

toregress:[’43-spine1:eth3/33::eth1/49:43-leaf4’,’43-spine1:eth3/11::eth1/49:43-leaf6’,’43-spinel:eth1/29::eth1/59:43-leaf7’,’43-spine1:eth1/33::eth1/49:43-leaf1’]

ingresstor:43-leaf5

根据从发生匹配的节点获取的数据确定的数据包的路径:

因此,网络控制器30从已经具有匹配的过滤器接收数据输出,并且根据该数据建立数据库。使用存储在网络控制器30(并且持续被更新)的网络配置信息,网络控制器30随后可以建立指示沿数据包流的路径的节点的列表。

现参考图3。图3类似于图1,但是示出了由于数据中心网络结构中的动态负载均衡而改变的数据包路径300的示例。动态负载均衡可以导致数据包流由于各种状况(例如,流的带宽变化、网络的拥堵、一个或多个节点故障等等)而改变它的路径。

此外,图3示出在任意路径中,例如,在新路径中,数据包流可以因为各种原因而被丢弃。如果消费者或用户选择有规律间隔地运行内联数据包追踪工具,则其可以示出数据包路径从一个节点集改变到另一个节点集。随着转发信息从路径中的所有节点被获取,任意路径中的任何丢弃可以被快速地排除故障(debugged,调试)。

图3示出数据包路径300改变为通过新节点集合并且数据包流在节点‘s3’处被丢弃。虚线310和320示出了在流尚未被丢弃的情况下的目标路径。查看节点s3处的转发状态将精确查明问题是配置错误还是软件编程错误。

现转到图4,示出了根据本文给出的实施例的过程400的流程图。在410处,用户(例如,网络管理员)经由用户终端提供描述将被追踪的特定数据包流的输入数据。该数据在网络控制器处被作为输入接收。在420处,网络控制器(使用上文所描述的任意数据包字段参数)生成数据包过滤器配置信息,以追踪流过数据中心结构网络的特定数据包流。网络控制器可以向网络中的所有节点提供过滤器配置信息。在430处,网络控制器向网络中的节点发送数据包过滤器配置信息,以在每个节点处配置针对特定数据包流的过滤器。例如,aci使用可扩展编辑语言(xml)或javascrip对象符号(json)类型形式来在网络控制器和节点之间通信。过滤器输出被作为xml或json发送。这里,节点处的过滤器开始操作以对通过相应节点的数据包检测匹配。当在某节点处发生匹配时,如上文所描述的,该节点向网络控制器发送日志数据。

在440处,网络控制器从发生匹配的节点处的过滤器接收日志数据。在450处,网络控制器相对于网络的网络拓扑信息分析过滤器匹配输出,以便建立数据包流通过网络的数据包路径。在460处,如果确定在数据包流的路径中发生丢弃,网络控制器可以确定数据包丢弃的原因。

总之,本文给出了使用节点(例如,交换机)列表和特定数据包流的数据包流参数来追踪和产生该数据包流的数据包路径的工具的技术。网络处理器asic中的elam数据包过滤器可以被用来过滤数据包和记录转发信息,该转发信息被发送回网络控制器。在使用动态负载均衡方案的数据中心结构中,这些技术给出了具体数据包流在给定时刻的精确数据包路径。这还避免了像现有工具中一样注射调试数据包的需要。该工具还提供了从网络中的所有节点收集转发数据以快速地排查数据包流在网络中的哪里和为什么被丢弃的方法。

因此,这些技术可以在接收节点没有接收到数据包的情况下确定数据包流在哪里被丢弃。数据包命中过滤器的最后一个节点是路径中的‘罪犯’节点。如果该节点的网络处理器asic能够给出丢弃原因,那么该丢弃原因可以通过过滤器输出被获取,这有助于问题的快速诊断。

这些技术存在许多优点。具体地,在动态负载均衡方案中,相同的数据包流可以基于它的带宽而在不同时刻采用不同的路径。传统的追踪路由设施无法在相同的数据包流中注射数据包,并且因此在数据包流被丢弃的情况下也不能帮助调试具体的数据包流。不存在可以聚集来自数据包流被发现的所有节点的转发数据从而使得能够调试结构网络中的任何数据包流丢弃的设施。本文给出的技术可以追踪数据包而无需发送附加的调试数据包。

总之,一方面,提供了一种方法,包括:在与网络中的多个节点通信的网络控制器处:生成追踪特定数据包流的过滤器配置信息,该过滤器配置信息包括特定数据包流的一个或多个参数;发送过滤器配置信息到多个节点,以便在多个节点中的每一个节点处配置针对特定数据包流的过滤器;从多个节点中的、发生过滤器匹配的一个或多个节点接收输出,该输出指示匹配针对特定数据包流的过滤器的过滤器配置信息的数据包通过相关节点;以及分析从多个节点中的、发生过滤器匹配的一个或多个节点接收的输出,以确定特定数据包流通过网络的路径。

另一方面,提供了一种系统,包括:网络中的多个节点,每个节点包括多个端口和被用来处理在多个端口中的一个端口处接收的数据包以在网络中进行路由的一个或多个网络处理器;与多个节点通信的网络控制器,其中,该网络控制器被配置为:生成追踪特定数据包流的过滤器配置信息,该过滤器配置信息包括特定数据包流的一个或多个参数;发送过滤器配置信息到多个节点,以便在多个节点中的每一个节点处配置针对特定数据包流的过滤器;从多个节点中的、发生过滤器匹配的一个或多个节点接收输出,该输出指示匹配针对特定数据包流的过滤器的过滤器配置信息的数据包通过相关节点;以及分析从多个节点中的、发生滤波匹配的一个或多个节点接收的输出,以确定特定数据包流通过网络的路径。

在另一方面,提供了一种装置,包括:网络接口单元,被配置为使能在网络上的通信;存储器;耦接到网络接口单元和存储器的处理器,其中,该处理器被配置为:生成追踪通过包括多个节点的网络的特定数据包流的过滤器配置信息,该过滤器配置信息包括特定数据包流的一个或多个参数;经由网络接口单元发送过滤器配置信息到多个节点,以便在多个节点中的每一个节点处配置针对特定数据包流的过滤器;经由网络接口单元从多个节点中的、发生过滤器匹配的一个或多个节点接收输出,该输出指示匹配针对特定数据包流的过滤器的过滤器配置信息的数据包通过相关节点;以及分析从多个节点中的、发生过滤器匹配的一个或多个节点接收的输出,以确定特定数据包通过网络的路径。

在另一方面,提供了存储指令/用指令编码的一个或多个非暂态的计算机可读存储介质,当处理器执行该指令时使得处理器:生成追踪通过包括多个节点的网络的特定数据包流的过滤器配置信息,过滤器配置信息包括特定数据包流的一个或多个参数;使得过滤器配置信息被发送到多个节点,以便在多个节点中的每一个节点处配置针对特定数据包流的过滤器;经由网络接口单元从多个节点中的、发生过滤器匹配的一个或多个节点接收输出,该输出指示匹配针对特定数据包流的过滤器的过滤器配置信息的数据包通过相关节点;以及分析从多个节点中的、发生过滤器匹配的一个或多个节点接收的输出,以确定特定数据包流通过网络的路径。

以上描述仅仅意在以示例的方式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1