CN114553769B - 计算机网络中的端到端流监控 - Google Patents
计算机网络中的端到端流监控 Download PDFInfo
- Publication number
- CN114553769B CN114553769B CN202110184031.7A CN202110184031A CN114553769B CN 114553769 B CN114553769 B CN 114553769B CN 202110184031 A CN202110184031 A CN 202110184031A CN 114553769 B CN114553769 B CN 114553769B
- Authority
- CN
- China
- Prior art keywords
- network
- flow
- label
- entropy
- router
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/18—End to end
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
-
- 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/026—Capturing of monitoring data using flow identification
-
- 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/24—Multipath
-
- 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/34—Source routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- 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/22—Parsing or analysis of headers
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
技术领域
本公开涉及计算机网络监控,并且尤其涉及计算机网络中的端到端流监控。
背景技术
计算机网络是可以交换数据和共享资源的互连计算设备的集合。在基于分组的网络中,计算设备通过将数据分成称为分组的小块来传送数据,这些小块通过网络从源设备单独路由到目的地设备。目的地设备从分组中提取数据,并将数据组装成原始形式。
某些设备(即节点),如路由器,维护描述网络路由的路由信息。“路由”通常可以定义为网络上两个位置之间的路径。接收到输入分组后,路由器会检查分组中的关键字信息,以识别分组的目的地。基于目的地,路由器根据路由信息转发分组。
基于分组的网络越来越多地将标签交换协议用于流量工程和其他目的。多协议标签交换(MPLS)是一种机制,用于根据网络中路由器维护的路由信息在互联网协议(IP)网络中设计流量模式。通过使用MPLS协议,标签交换路由器(LSR)可以使用预先添加到流量的标签,沿着特定路径(即标签交换路径)通过网络将流量转发到目的地设备。LSP定义了一条通过网络的不同路径,以将MPLS分组从源设备传送到目的地设备。
发明内容
一般而言,本公开描述了使用熵标签在计算机网络中实现端到端流量监控的技术。为了举例说明计算机网络,MPLS网络可以执行涉及负载均衡决策的标签分配,并分配熵标签(例如,哈希值),以确保相同网络流的分组数据沿着多条路径中的相同路径被转发,如Kompella等人的“MPLS转发中熵标签的使用”(可在http://tools.ietf.org/html/rfc6790获得),RFC 6790,2012年11月,在此引入作为参考(在此称为“RFC 6790”)。例如,入口路由器可以确定输入分组的网络流(例如,该分组所属的应用),并在熵标签中捕获流信息。中转路由器可以使用熵标签来执行负载均衡,以确保分组数据在多条路径上的同一路径上负载均衡。
根据本文描述的技术,网络控制器可以使用熵标签作为存储在数据结构(例如,数据库)中的网络流信息的索引。因为在MPLS网络中分配的标签是唯一的,所以一些技术利用这种质量来使用熵标签作为监控和跟踪特定网络流的关键字。
本文描述的一些技术在沿着计算机网络转发分组数据的多个路由器中的一个或多个中实现。每个路由器可以被配置为重新调整熵标签的用途,用于端到端网络流监控。例如,入口路由器可以导出用于计算熵标签的关键字信息,这使得网络控制器能够区分网络流。当接收到具有熵标签的分组数据时,MPLS网络中的每个路由器可以生成流记录,以包括熵标签(作为主关键字)和与流相关联的任何有用信息。通过这样做,每个路由器可以被熵标签触发,以使用熵标签作为记录的索引关键字将其流记录导出到网络控制器。网络控制器可以从每个路由器收集(例如,合并)流记录,并继续使用相同的熵标签作为这些流记录的关键字。网络控制器可以使用与给定熵标签相关联的流记录来检测网络流中的故障。例如,如果网络流停止,网络控制器可以识别先前输出具有熵标签的流记录的路由器,并且识别那些路由器中的哪个当前没有输出流记录。
在以下描述中,本公开提出了对计算机网络的功能的改进,并且本文描述的技术将该改进集成到实际应用中。以下描述(例如,包括以下示例)公开了网络设备(例如,路由器)和网络控制器的附加细节以及它们对端到端流监控的熵标签的再利用。如本文所述,网络控制器受益于通过使用熵标签作为标识相应网络流的索引关键字来实现端到端流监控。此外,网络设备(例如,包括中转路由器的路由器)受益于分组处理任务的减少,因为熵标签的使用消除了对深度分组检查以识别网络流的需要。
在包括多个网络设备的一个示例网络中,网络设备包括处理电路,该处理电路被配置为:接收对应于源自第一设备的网络流的分组数据,该分组数据去往第二设备;生成熵标签以添加到分组数据的标签栈,其中,该熵标签是根据对应于源自该第一设备并去往该第二设备的网络流的一个或多个属性生成的;生成包括该熵标签的流记录,其中,该熵标签识别网络中多个网络流中的网络流;以及向网络的控制器发送流记录,其中,该控制器基于对应于源自该第一设备并且去往该第二设备的网络流的熵标签来识别流记录。
在包括多个网络设备的另一个网络中,网络设备包括处理电路,该处理电路被配置为:接收对应于源自网络中的第一设备并去往网络中的第二设备的网络流的分组数据,该分组数据包括网络流的熵标签和用于通过多个网络设备中的至少一个网络设备将分组数据导向第二设备的标签栈;生成包括该熵标签的流记录,其中,该分组数据的标签栈包括该熵标签以识别网络中多个网络流中的网络流;以及向网络的控制器发送流记录,其中,该控制器基于源自该第一设备并且去往该第二设备的网络流的熵标签来识别流记录。
在包括多个网络设备的另一网络中,控制器包括处理电路,该处理电路被配置为:维护存储通过网络的多个网络流的流记录的排列的索引,其中,对于多个网络流的特定网络流的一个或多个对应的流记录,索引关键字基于对应于该特定网络流的熵标签,其中,多个熵标签中的每个熵标签标识多个网络流中的相应一个网络流;从网络中的网络设备接收对应于网络中新网络流的分组数据的新熵标签的一个或多个属性,其中,该新熵标签标识该新网络流的流记录;以及基于该新熵标签,针对对应于要添加到索引的该新网络流的每个流记录生成新索引关键字。
在附图和以下描述中阐述一个或多个示例的细节。从说明书和附图以及权利要求书中,其他特征、目的和优点将变得显而易见。
附图说明
图1是示出示例系统的框图,其中客户端设备通过标签交换路径(LSP)上的端到端流监控向服务器设备发送数据。
图2是示出包括根据本公开的技术配置的监控单元的示例路由器的框图。
图3是说明端到端流监控和流记录管理的概念图。
图4是说明入口路由器修改以添加熵标签的示例封装分组的概念图。
图5是示出路由器接收并转发到下一个路由器的示例封装分组的概念图。
图6是示出由LSP的出口路由器接收并且将被输出到LSP的目的地设备的示例封装分组的概念图。
图7是示出用于计算熵标签的示例方法的流程图,该熵标签用作对应于相同流的流记录的关键字。
图8是示出由提供端到端流监控的网络中的控制器执行的示例方法的流程图。
具体实施方式
图1是示出示例系统2的框图,其中客户端设备12通过标签交换路径(LSP)16上的端到端流监控向服务器设备14发送数据。在这个示例中,LSP 16(这里可以称为隧道或LSP隧道)由路由器20-32形成,但是应该理解,更少或更多的网络设备(图1中未示出)可以形成LSP 16。在这个示例中,路由器20-32是沿着LSP 16的标签交换路由器(LSR)。路由器20-32执行用于建立路径的协议,例如LSP 16。这种协议可以包括,例如,链路分配协议(LDP)或具有流量工程扩展的资源预留协议(RSVP-TE)。LDP在“LDP规范”(L.Andersson等人,网络工作组(Network Working Group),RFC 5036,2007年10月)中进行了描述,其全部内容通过引用结合于此。RSVP-TE在“RSVP-TE:LSP隧道的RSVP的扩展”(D.Awduche等人,网络工作组,RFC3209,2001年12月,其由“域间MPLS和GMPLS流量工程-资源预留协议-流量工程(RSVP-TE)扩展”,A.Farrel等人,网络工作组,RFC 5151,2009年2月更新)中进行了描述,这两者在此通过引用结合到其各自的全文中。在一些示例中,路由器20-32可以使用分段路由技术,例如通过使用网络中的源分组路由(SPRING)范例,其提供分段路由来通告单跳或多跳LSP。Filsfils等人在2018年7月的“分段路由架构(Segment Routing Architecture)”互联网工程任务组(IETF)征求意见(RFC)8402中进一步描述了分段路由,而Filsfils等人在2013年7月的“分段路由使用案例”Internet-Draft-draft-filsfils-rtgwg-segment-routing-use-cases-01中描述了分段路由使用案例,每个案例的全部内容通过引用结合于此。关于SPRIN的更多细节见(1)“分段路由架构”,IETF draft:draft-filsfils-spring-segment-routing-04,2014年7月3日;(2)S.Previdi等,“网络中的源分组路由(SPRING)问题陈述与要求”,RFC 7855,2016年5月;(3)“使用MPLS数据平面的分段路由”,IETF草案:draft-filsfils-spring-Segment-Routing-MPLS-03,2014年8月1日,其全部内容通过引用结合于此。
一般来说,沿着LSP 16定向的分组由标签栈中的一个或多个标签封装,例如根据多协议标签交换(MPLS)。以这种方式,为了沿着LSP引导流量,沿着LSP的路由器可以使用接收到的分组的标签栈的标签来确定分组的“下一跳”,即,将分组转发到的下一个网络设备。此外,路由器可以从标签栈中弹出一个或多个标签,并将新标签推送到标签栈上,这使得下一跳沿着LSP引导分组。
虽然图1的LSP 16被示为对应于图1中的路由器20-32,但是在一些示例中,可以使用各种不同的路由器集合(未示出)来实现LSP,例如,以实现负载均衡。不是将客户端设备12的所有流量沿着路由器20-32引导,而是可以使用诸如等价多路径(ECMP)的负载均衡算法来在不同的设备组之间分配流量,最终实现将所有流量从客户端设备12引导到服务器设备14的结果。
一般来说,当使用负载均衡算法(例如,数学函数)来确定将流量引导到哪组设备以到达服务器设备14时,路由设备计算流量的分组的标签栈的哈希。但是,假设两个或更多客户端设备使用相同的路径,则每个客户端设备的标签栈都是相同的。因此,RFC 6790提出在标签栈中加入熵标签。对于沿着LSP隧道16定向的特定分组流,熵标签可以是不同的,使得在分组流的每个分组的标签栈上执行的哈希将沿着LSP的同一组设备定向,这可以避免分组流的分组的无序传送,但是仍然允许来自同一客户端设备的不同流的负载均衡。
RFC 6790旨在针对单个LSP的负载均衡流量时使用熵标签。也就是说,沿着单个LSP的设备可以使用熵标签,并且期望该LSP的最后或倒数第二个路由器在将分组转发到该LSP之外之前移除熵标签。然而,本公开认识到熵标签可以被重新用于LSP的端到端流监控。
本文描述的设备、系统和技术改变熵标签的用途,例如,作为实现端到端流监控的索引。术语“分组流”、“业务(traffic,流量)流”或简称为“流”是指源自特定源设备并发送到特定目的地设备的一组分组。在上游(源自客户端设备12)或下游(去往客户端设备12之一)的单个分组流可以由分组报头的属性来标识,例如,称为5元组:<源网络地址、目的地网络地址、源端口、目的地端口、协议>。这个5元组通常标识接收到的分组对应的分组流。n元组是指从5元组中抽取的任意n个项。例如,分组的二元组可以指<源网络地址、目的地网络地址>或<源网络地址、源端口>的组合,或者分组报头中属性的任何其他组合。流的一个常见示例是TCP会话。其他示例是对应于给定宽带用户或ATM虚拟电路内的流量的第2层隧道协议(L2TP)会话。一些示例设备、系统和技术在沿着计算机网络转发分组数据的多个路由器中的一个或多个路由器中实现。其他示例在计算机网络的控制器中实现。
传统网络可以定义模板,指定不同路由器在向网络控制器导出流记录时使用的导出格式。当这样的网络实现被动流监控和/或主动流监控时,路由器可以监控业务流,并以由模板定义的格式向网络控制器输出流信息。例如,路由器通常可以生成具有关于以下字段的信息的流记录:源IP地址和目的地IP地址;发送的字节和分组的总数;数据流的开始和结束时间;源端口号和目的地端口号;TCP标志;IP协议和IP服务类型;始发自治系统的源地址和目的地地址;源地址和目的地地址前缀掩码长度;下一跳路由器的IP地址;和MPLS标签。
在传统网络中,每个路由器可以使用由例如上述5元组定义的一组多个哈希关键字来索引流记录,但是由于多个关键字的数量,索引流记录在计算上可能很昂贵。此外,对于单个流,控制器可以从不同的路由器接收不同组的多个关键字,对该流的流记录的标识进行卷积。此外,在许多情况下,MPLS封装可能需要对分组进行相当深入的检查(称为“深度分组检查”)来找到这些关键字,这是一种复杂的关键字搜索机制,需要额外的处理。
对于隧道流(例如,基于通用路由封装(GRE)的MPLS),中转路由器无法导出带有应用标识符的流记录。对于其中LSP被划分成段的分段路由,当路由器使用片段标识(SID)来标识每个分段的出口路由器时,相同的片SID标识没有被配置为标识对应于该流的应用。一些传统技术实现网络探测,其中控制器可以发送探测来确定MPLS网络中路由器内的问题,但是不能确定哪个应用在性能上受到影响。即使当探测器克隆应用分组报头时,探测器也无法识别哪些流对应于特定的应用。
因为可以从分组报头的一个或多个属性生成的熵标签指引网络设备沿着相同的路由器序列对网络流的每个分组进行负载均衡,所以可以使用相同的熵标签来索引网络流的流记录。如本文所述,控制器34通过使用熵标签作为标识相应网络流的索引关键字,从实现端到端流监控中受益。本文描述的技术可以提供具有减少的处理任务的不太复杂的中转路由器,实现更高转发速率、更大端口密度、更低功耗的可扩展性,以及其他益处和改进。
例如,中转路由器可以将包括与分组流相关联的熵标签的流记录导出到控制器34,而不是导出由多个关键字标识的流记录。传统的中转路由器不仅使用大量属性来生成流记录的索引关键字,而且传统的中转路由器必须在一定程度上检查分组数据。相比之下,对于相同或相似结构的中转路由器,本文描述的技术使得流记录的生成和导出无需繁琐的检查。不是使用由相同LSP 16中的入口路由器使用的同一组多个关键字或不同组的多个关键字来独立计算流记录的索引关键字,而是中转路由器导出(作为流记录的至少一部分),例如,分组的标签栈(例如,隧道标签和/或应用标签),而很少或不处理分组数据。本文描述的中转路由器不需要独立计算分组的标签栈上的相同熵标签的副本,并且在一些示例中,可以依赖标签栈中的熵标签作为分组的相应网络流的准确索引关键字。
因此,路由器20-32也从本文描述的技术中受益,因为没有理由实现复杂的关键字搜索机制来识别给定的分组流并将这样的信息输出到控制器34。例如,响应于接收到包括熵标签的分组数据,接收分组的路由器20-32中的路由器可以由熵标签触发,以使用熵标签作为记录的索引关键字将其流记录导出到控制器34。此外,出口路由器可能表现出较高的边缘服务速度。
控制器34可以利用熵标签来对进入的流记录进行简单和即时的识别过程。当控制器34接收到具有熵标签的流记录时,控制器34通过使用熵标签来快速识别包括由计算机网络中的端到端路径(例如,LSP 16)的一个或多个路由器20-32导出的其他流记录(例如,下游流记录)的其他相应网络流信息,进而受益于作为流记录的索引关键字的相应熵标签。控制器34可以快速访问这些记录,以生成和分析网络流统计数据和/或确定网络流或分组的端到端路径中的错误。例如,如果路由器20-32中的任何一个路由器(例如,中转路由器、PHP路由器和/或出口路由器)没有提供与网络流的给定熵标签相关联的流记录,则控制器34可以确定该路由器停机或有错误。控制器34可以进一步确定整个路径(并且可能整个LSP 16)关闭或者有错误。
举例来说,路由器20-32中的至少两个路由器形成MPLS网络,该MPLS网络使用熵标签作为存储在数据结构(例如,数据库)中的网络流信息的索引来执行标签分配(其可以涉及或不涉及任何负载均衡决策)。
根据不同的角色,MPLS网络中的路由器可以执行不同于传统熵标签功能或增加传统熵标签功能的操作(例如,如RFC 6790中所述)。例如,入口路由器(例如,路由器20)向控制器34传送用于计算熵标签的关键字信息,这使得控制器34能够区分网络流。关键字信息指定用于计算熵标签的属性。例如,熵标签可以基于诸如5元组的分组报头的属性来生成。以这种方式,控制器34可以使用熵标签来区分不同的网络流,并且识别沿着对应于相同网络流的路径从路由器接收的网络流记录。
当路由器(例如,中转路由器、倒数第二路由器)接收到包括熵标签的分组数据时,熵标签用作接收路由器的触发器以生成流记录,以包括例如以下内容:熵标签(作为识别流记录的主关键字);协议、输出接口和与分组流相关联的信息。与分组流相关联的示例信息可以包括MPLS报头信息(例如,包括隧道标签、应用特定标签等的标签)和标签栈中的其他信息。路由器然后将流记录和熵标签发送到控制器34。
控制器34可以有利地利用熵标签来确定网络流和/或任何路由器20-32中的错误。控制器34可以管理路由器20-32响应于接收到具有熵标签的分组而导出的流记录的数据库。对于接收到的每个导出的流记录,控制器34可以利用记录的熵标签来排列(例如,索引)数据库中的该流记录和/或识别(例如,索引)数据库中的任何相关流记录。控制器34可以使用流记录的熵标签来识别其他流记录和针对同一网络流导出流记录的路由器。应当注意,控制器34能够使用熵标签作为简单的机制来快速识别哪个网络流对应于给定的流记录。然而,如果控制器34停止接收特定网络流的流记录,则控制器34可以生成指示特定网络流和/或一个或多个路由器20-32可能离线和/或发生故障的数据,例如,响应于确定特定网络流的分组没有到达LSP 16中的目的地中转路由器、PHP路由器和/或出口路由器。在不消耗大量资源容量和/或能力(例如,存储器)的情况下,控制器34可以确定网络流和/或路由器20-32中的任何一个路由器中的错误。
控制器34检测到故障,例如,当输入流记录没有指示从第2层协议到第3层协议(或简单地说是第3层协议)的转换时。虽然一些流记录格式可能对同一属性字段使用不同的字,但是许多流记录格式实现了输出协议字段。对于这种流记录格式,如果输出协议字段包括损坏的、错误的或空的数据,控制器34识别失败的网络流。考虑一个示例,其中控制器34从LSP 16的入口路由器接收流记录,该流记录具有标识特定流的熵标签和指示从输入的第3层协议(例如,IP)到第2层协议(例如,MPLS)的转换的输出协议字段;控制器34内的处理电路被配置为从相应的出口路由器预期具有相同熵标签和到任何第3层协议(例如,IP或另一协议)的输入第2层协议的输出协议的流记录。然而,如果控制器34接收到具有相同熵标签但没有预期输出协议的流记录,则控制器34确定特定流被破坏。通过在流记录中包括熵标签(例如,作为索引关键字),本文描述的技术赋予控制器34通过LSP 16的路由器20-32对给定流的路径的可见性。控制器34可以根据熵标签在流记录数据库中排列流记录,并且通过这样做,可以从入口路由器开始重建给定流的(部分)路径。将路由器20-32缩小到最后一个路由器(例如,出口路由器,如路由器32)来处理给定流的分组,使得控制器34能够在故障时刻快速识别某些值得注意的细节。控制器34可以通过从最后一个路由器的流记录中识别输出接口并在该接口上检测这些错误,来确定故障是由输出接口(例如,媒体接口,如异步传输模式(ATM)或以太网)上的错误(例如,机械错误)引起的。
本文描述的设备、系统和技术提供了一种解决方案,其中熵标签不仅用于识别对应于该流的应用,还用于识别各个网络流。
图2是示出包括根据本公开的技术配置的监控单元80的示例路由器50的框图。路由器50可以对应于入口路由器、中转路由器、倒数第二个路由器或出口路由器,例如图1中的路由器20、24、28和32之一。在图2的示例中,路由器50包括接口卡90A-90N(IFC 90)和控制单元52。控制单元52包括分组转发引擎(PFE)60、路由引擎(RE)70和监控单元80。
IFC 90通过各自的入站链路92A-92N(入站链路92)接收数据,并通过出站链路94A-94N(出站链路94)发送数据。在一些示例中,入站链路92和出站链路94形成了以全双工模式运行的IFC的公共物理通信介质。也就是说,在一些示例中,每个IFC 90耦合到能够基本上同时发送和接收数据的相应通信介质。在其他示例中,入站链路92和出站链路94针对各自的IFC 90形成单独的物理介质。
控制单元52包括处理硬件,并且在一些示例中,包括由处理硬件执行的软件和/或固件。在各种示例中,控制单元52及其各种元件,例如PFE 60和RE 70,在一个或多个处理器、处理单元、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其任意组合中实现。当以软件或固件实现时,控制单元52包括用于执行软件或固件指令的一个或多个处理器或处理单元,以及用于存储指令的计算机可读存储介质。在一些示例中,PFE 60和RE 70的元件以分立的单元或模块实现,而在其他示例中,PFE 60和RE 70在功能上是集成的。
RE 70包括一个或多个路由协议74的指令。路由协议74包括任何或所有内部网关路由协议,例如开放最短路径优先(OSPF)、中间系统到中间系统(IS-IS)、路由信息协议(RIP)、内部网关路由协议(IGRP)、增强型IGRP(EIGRP)和/或外部网关路由协议,例如边界网关协议(BGP)。通常,内部网关路由协议用于在自治系统的路由器之间交换路由信息。路由协议74还包括与网络隧道相关的协议,例如MPLS、标签分发协议(LDP)、资源预留协议流量工程(RSVP-TE)或其他协议。
通常,RE 70执行路由协议74来确定网络设备之间的路由,例如从路由器50到其他网络设备的路由。经由IFC 90耦合到路由器50的其他路由器向路由器50通告路由。当路由器50从另一路由器接收到通告新路由的通信时,RE 70接收该通信并将新路由存储在路由信息42(也称为路由信息库)中。RE 70还执行路由协议74来区分从路由器50到目的地的路由的优先级。也就是说,当路由信息42包括指示存在到共同目的地的多条路由的信息时,RE70执行路由协议74以选择到达目的地的路由之一。
到达目的地的所选路由通常包括沿着到达目的地的路由的“下一跳”的指示。该下一跳通常对应于网络设备,例如另一路由器、交换机、网关或沿着路由到达目的地的其他网络设备。下一跳设备通过IFC 90之一连接到路由器50。因此,使用所选择的路由到达目的地,控制单元52可以确定连接到沿着到目的地的路由的下一跳的IFC 90之一,并且更新由PFE 60存储的转发信息,以指示IFC 90之一向其发送去往目的地的分组。
更具体地,PFE 60维护转发信息库(FIB)62。然后,响应于从路由引擎40接收到的信息,PFE 60更新FIB 62,以基于沿着路由到达目的地地址的下一跳将目的地地址映射到IFC 90之一。FIB 62还包括指示如何转发与网络隧道相关联的分组的信息,例如,具有一个或多个标签的分组和/或要附加一个或多个标签的分组。
当路由器50作为隧道(例如,LSP)的入口路由器操作时,路由器50经由用于IFC 90之一的入站链路92之一接收分组。通常,IFC 90被配置成向转发引擎60发送这样的分组。转发引擎60基于接收分组的一个IFC 90和接收分组的一个IFC 90的端口来确定从其接收分组的源设备。在一些示例中,转发引擎60还确定分组的目的地。在任何情况下,转发引擎60使用转发信息62确定该分组将被隧道传输,并因此将该分组发送到监控单元80。应当理解,路由器50还可以被配置为接收和处理传统的网络分组,例如,不与隧道相关联的分组或者不服从负载均衡决策的分组。
监控单元80包括标签数据82、标签处理器84、熵标签处理器86和流记录数据88。标签数据82表示可以附加到接收到的分组的标签数据,以及用于处理已经附加了标签的分组的数据。例如,当路由器50作为隧道的入口路由器操作时,标签处理器84接收分组并确定分组将在其上发送的隧道。标签处理器84还基于为该分组接收的信息,确定用于该分组的一对边缘路由器以及要应用于该分组的网络层服务。标签处理器84然后使用标签数据82来确定表示该对边缘路由器的标签(例如,诸如虚拟专用网络(VPN)标签的应用标签)、网络层服务以及表示沿着隧道的下一跳的隧道标签。
根据本公开的技术,熵标签处理器86确定标签栈是否包括熵标签标识符和熵标签,在某些情况下移除熵标签标识符和熵标签,在其他情况下添加熵标签标识符和熵标签,并且在其他情况下在标签栈中向上或向下移动熵标签标识符和熵标签。为了确定适当的标签处理行为,监控单元80确定路由器50是位于端到端LSP的两个路由器之间还是端到端LSP的边缘路由器。
为了通过LSP隧道作为示例端到端路径来说明,当监控单元80确定LSP隧道的分组(例如,图1的LSP 16)是从源设备接收的、在入口路由器接收的并且去往目的地设备时,监控单元80确定熵标签应该被添加到分组的标签栈。因此,熵标签处理器86计算熵标签(例如,根据分组报头的属性,例如5元组),并将熵标签指示符和熵标签添加到分组的标签栈。这可以发生在标签处理器84移除输入的隧道标签之后,并且在标签处理器84为下一跳添加输出的隧道标签之前。标签处理器84可以从分组的标签栈中移除或添加代表路由器50和/或目的地设备的网络服务(例如,虚拟专用网络(VPN))的应用标签(如果存在)。监控单元80为分组的相应网络流生成流记录,并将该流记录添加到流记录数据88,其中索引关键字被设置到熵标签,或者作为替代,具有从用于计算熵标签的一个或多个分组报头属性计算的值(例如,哈希值)。
响应于接收到分组,监控单元80将用于计算熵标签的属性和来自流记录数据88的流记录导出到控制器,在控制器中,流记录与具有对应于相同网络流的熵标签的其他流记录相结合。当后续分组到达路由器50时,监控单元80重复流记录数据88的生成并输出到控制器。在一些示例中,监控单元80在每个分组之后更新流记录数据88,然后将更新的流记录数据88输出到控制器。
如本文所述,控制器利用导出的流记录中的熵标签来识别其他流记录,并快速核对随时间收集的不同流信息。实际上,熵标签作为索引关键字操作,便于对分组的相应网络流进行端到端监控(例如,流记录)。因为熵标签是唯一的,所以用于识别流记录的索引关键字是唯一的,因此被配置为将流记录与流记录数据88中的其他流记录区分开来。此外,路由器50可以将流记录传送给控制器,并且依次地,控制器接收流记录并使用索引关键字来识别特定的网络流。控制器可以使用索引关键字将流记录存储在多个网络流的其他流记录的排列中。
当监控单元80确定从入口路由器接收到上述LSP的分组,并且该分组去往LSP隧道中的另一路由器到达目的地设备(例如,中转路由器或出口路由器)时,监控单元80确定应当维护分组的标签栈中的任何熵标签,并且该熵标签用于识别要导出到控制器的任何流记录。当路由器50作为倒数第二跳弹出(PHP)路由器操作并且出口路由器是LSP中的下一跳时,监控单元80配置路由器50不移除熵标签。这可以发生在标签处理器84移除分组的输入隧道标签之后,并且在标签处理器84添加分组的输出隧道标签之前。标签数据82指示输入隧道标签映射到LSP,并且转发信息62指示下一跳,该下一跳是LSP中对应于输出隧道标签的下一个网络设备(例如,路由器)。监控单元80为分组的相应网络流生成流记录,并将该流记录添加到流记录数据88。监控单元80还将流记录发送给控制器,其中控制器将流记录添加到每个网络流量的流记录的排列中。为了便于对对应于该分组的特定网络流进行端到端监控,监控单元80生成包括熵标签的流记录。应当注意,如果控制器被配置为根据分组中的一个或多个属性来计算熵标签(或另一个索引键),则监控单元80不必包括熵标签。
当监控单元80确定上述LSP的分组在出口路由器处被接收,该出口路由器可以具有熵标签能力或不具有熵标签能力,并且去往目的地设备(例如,在可能不具有熵标签能力的另一网络中),监控单元80确定分组的标签栈中的熵标签应该被移除。因此,熵标签处理器86检查分组的标签栈,以确定标签栈是否包括熵标签指示符和熵标签。如果标签栈包括熵标签指示符和熵标签,则熵标签处理器86移除熵标签指示符和熵标签。这可以发生在标签处理器84移除分组的输入隧道标签之后,并且在标签处理器84添加分组的输出隧道标签之前。出口路由器还在标签栈的顶部接收标签,并且该标签表示目的地设备的网络服务(例如,网络层服务、传输层服务等)或者具有目的地设备的(目的地)网络(例如,MPLS应用,诸如IP虚拟专用网络(VPN)、MPLS第3层VPN(L3VPN)或虚拟专用LAN服务(VPLS))。示例标签可以是每前缀L3VPN标签,其使得分组能够在第一网络(例如,分段)中的源设备处发起,在第二网络处的边缘路由器(例如,入口路由器)处被接收,并且被定向到由每前缀L3VPN标签标识的第三网络中的目的地设备。
在上述示例中,为了便于对对应于该分组的特定网络流进行端到端监控,监控单元80为特定网络流的流记录重新调整熵标签的用途。监控单元80可以生成包括熵标签的流记录,然后将该流记录输出到控制器,在控制器中处理多个网络流的流记录并将其排列到数据库中。通过这样做,控制器可以在接收到流记录时识别特定的网络流。熵标签作为特定网络流的唯一标识符,使得控制器可以在其他网络流的多个流记录中区分特定网络流的流记录。控制器可以利用熵标签来建立索引(例如,数据库),作为流记录的排列,其中熵标签作为索引关键字操作。控制器可以将流记录存储在索引中,并使用流记录的熵标签来将流记录正确地插入到排列中。流记录的其他部分可以指定信息,例如特定网络流中的分组的数量。监控单元80可以基于描述特定网络流的分组的一个或多个各种属性(例如,包括源设备和目的地设备的网络地址和端口号、输出接口、协议类型等的分组报头属性)来生成熵标签。作为替代,监控单元80计算不同的值作为索引关键字,用于将流记录与其他网络流的流记录区分开来。监控单元80可以使用一个或多个分组报头属性来生成熵标签,并且使用一个或多个不同的分组报头属性来计算替代索引关键字的值。反过来,当控制器接收到流记录时,控制器使用相同的属性集来计算熵标签,或者使用该值作为索引关键字的替代。即使熵标签没有被用于负载均衡决策(例如,基于标签的负载均衡),控制器也可以如本文所述重新调整熵标签的用途。
图3是示出由网络的控制器100进行的端到端流监控和流记录管理的概念图。路由器102、104、106、108包括网络路由器的至少一部分。网络中的每个路由器响应于接收到对应于网络流的分组数据而传送流记录。
控制器可以是一个SDN控制器,它能够在大型服务提供商和企业网络中实现IP/MPLS隧道的粒度可见性和控制。网络运营商可以使用控制器100来通过主动监控、规划和以基于熵标签的负载均衡为基础动态地显式路由大流量负载来优化其网络基础设施。
假设路由器102、104、106、108形成隧道(例如,LDP或自治系统内隧道),映射到该隧道的任何网络流的分组数据沿着路由器102、104、106、108传送。如果采用基于标签的负载均衡,熵标签可以确保分组数据沿着路由器102、104、106、108的相同序列的通信。最初,入口标签边缘路由器(LER)102接收分组数据,并且响应于确定分组数据属于新网络流,生成流记录以包括熵标签和/或指示用于计算熵标签的一个或多个属性的数据。入口LER 102向控制器100发送指示用于计算熵标签的一个或多个属性的数据,以使控制器100能够基于熵标签识别特定的流,并在诸如图1的LSP 16的端到端路径上执行流监控。接收到一个或多个属性促使控制器100向入口LER 102、输入/输出协议和输出接口(例如,MPLS网络)注册一个或多个属性作为新网络流的关键字信息。如本文所述,一个或多个属性描述新网络流的分组,并且可以存储在任何分组报头中。为了支持控制器的流监控操作,入口LER 102发送带有熵标签和任何其他流信息的流记录。
为了准备用于沿标签交换路径(或另一示例端到端路径)转发的示例分组,入口LER 102可以向分组数据的标签栈添加熵标签和至少一个用于沿隧道转发分组数据的标签(例如,隧道标签)。然后,入口LER 102发送到由标签栈标识的下一跳,在这个示例中是中转标签交换路由器(LSR)104。如果入口LER 102可以采用负载均衡机制来计算分组数据的哈希值(例如,熵标签),包括位于分组报头中的一个或多个属性,并且基于哈希值来确定网络流的分组的路径。熵标签可以基于哈希值和/或另一个值。入口LER 102沿着确定的路径将上述分组转发到被称为下一跳的设备。
响应于接收到包括熵标签的分组数据,中转LSR 104还生成流记录,在一些示例中,该流记录可以包括与其他流记录不同的数据。这样,来自中转LSR 104的流记录可以被认为是流记录的副本或版本。中转LSR 104继续向控制器100发送包括熵标签的流记录(例如,传输标签、应用特定标签、输出接口、协议等)。在一些示例中,中转LSR 104还可以导出与流记录相关联的附加信息,例如分组数量、字节数量等。类似地,倒数第二跳弹出(PHP)路由器106接收分组数据,然后生成流记录的副本或版本以输出到控制器100。在这个示例中,PHP路由器106不移除熵标签,并且被配置为在标签栈上保留熵标签。
最后,出口路由器108接收分组数据,然后生成用于导出到控制器100的流记录的副本或版本。出口路由器108移除熵标签,并使用输出协议(例如,IP)和输出接口将分组转发到目的地。
虽然网络流的分组从入口LER 102转发到出口路由器108,但是出口路由器108可以以相反的方向传播各种数据。根据信令协议,出口路由器108可以向上游路由器传送指示该路由器的能力或要求的信令消息,并且一个示例信令消息指示出口路由器108是否具有熵标签能力。中转LSR104或PHP路由器106也可以向上游发送信号,包括示例信号,该示例信号指示中转LSR 104或PHP路由器106分别具有熵标签能力或不具有熵标签能力。入口LER102可以向源设备传送信号,该源设备可以在相同的网络(例如,分段)中或者在不同的网络中。
如果出口路由器108是作为上述隧道示例的LDP隧道的出口,则出口路由器108可以用信号通知代表该LDP隧道中每一跳的上游标签(例如,隧道标签)。因此,PHP路由器106接收一组标签,包括入口LER 102、中转LSR 104、PHP路由器106和出口路由器108中的每一个的标签,并且在将该组标签传播到中转LSR 104之前,PHP路由器106移除出口路由器108的标签,并将其保留在可用标签数据(例如,标签数据82)中。中转LSR 104以类似的方式为PHP路由器106保留一个标签,并向上游传播用于自身的一个标签给入口LER 102。如果需要,入口LER 102可以移除中转LSR 104的标签。当网络流的分组到达源设备并且要沿着LDP隧道传输时,源设备将入口LER 102识别为相邻路由器和到目的地设备的端到端路径的入口。
当沿着LDP隧道的分组到达时,入口LER 102可以向分组的标签栈添加熵标签和中转LSR 104的标签,然后,沿着LDP隧道进一步发送分组。类似地,当沿着LDP隧道的分组到达中转LSR 104时,该路由器可以用下一跳的标签替换标签栈顶部的标签,该下一跳的标签可以是另一中转LSR 104或PHP路由器106。当沿着LDP隧道的分组到达PHP路由器106时,该路由器可以用出口路由器108的标签替换标签栈顶部的标签。
图4是示出入口路由器110接收并修改以添加熵标签120的示例分组112的概念图。入口路由器110可以代表图1的路由器20和/或图3的入口LER 102的示例路由器110可以从源设备接收分组112。可替代地,入口路由器110可以从端到端LSP的熵标签支持分段或非熵标签支持分段接收具有分组112的封装分组(例如,作为内部分组)。
在示例分组112中,分组数据包括分组报头和应用数据的有效载荷。分组数据的属性(例如,来自分组报头)可以描述对应于分组112的网络流以及源设备和目的地设备之间的端到端路径。入口路由器110可以基于分组数据中的一个或多个属性(例如,分组报头)生成熵标签120,然后,将用于计算熵标签120的属性和由熵标签120识别的流记录发送到控制器124,以促进端到端流监控。
如果入口路由器110具有熵标签能力,则入口路由器110可以将熵标签指示符118和熵标签120添加到分组112中的分组数据。基于隧道的转发信息,入口路由器110将对应于隧道中的下一跳的隧道标签116添加到修改的封装分组112的标签栈114。因此,标签栈114包括隧道标签116。在一些示例中,隧道标签116代表包含入口路由器110以及示例分组112的源设备和目的地设备之间的自治系统。在同一自治系统内,入口路由器110和至少一个其他路由器可以形成隧道(例如,LDP隧道),其中每个路由器可以被分配有代表性的隧道标签。
因此,封装的分组122被标签栈114封装,标签栈114包括熵标签指示符和熵标签。作为选项,入口路由器在添加熵标签指示符118和熵标签120之前,可以添加应用标签来表示目的地设备的MPLS应用(例如,VPN)。
一般来说,基于标签的负载均衡包括为负载均衡功能选择关键字,该负载均衡功能为(新)网络流选择路径,并且可接受的关键字可以从网络流的分组数据属性(例如,应用特定属性,例如,VPN特定属性)中选择;一组示例关键字包括源网络地址和目的地网络地址(例如,用于IP分组的IP地址)、协议类型以及(例如,用于TCP和UDP流量)源端口号和目的地端口号。在一个示例中,入口路由器110使用负载均衡功能从示例关键字集生成熵标签120,然后,如本文所述,将熵标签120重新用于端到端流监控。
添加熵标签120确保下游中转路由器转发属于相同网络流的分组,因为实际上熵标签120被映射到相同的路径(例如,网络上的路由器的相同精确序列,例如LDP隧道)。如本公开中所述,示例设备、系统和技术利用熵标签120来确保接收封装分组的每个下游路由器使用相同的索引关键字生成流记录数据,并将流记录导出到控制器。一些示例可以使用熵标签120的至少一部分的副本,而其他示例可以使用基于熵标签120或基于一个或多个上述示例关键字集的另一个值(例如,哈希值)。入口路由器110可以从分组数据属性的一个或多个属性(例如,特定应用属性)生成索引关键字。
图5是示出路由器130接收并转发到下一个路由器的示例封装分组132的概念图。路由器130可以代表图1的路由器22、24、26、28、30和/或图3的路由器104、106中的任何一个的示例实现。在一些示例中,路由器130从入口路由器(或前一跳中转路由器)接收封装分组132,并将修改后的封装分组140输出到下一个路由器,例如同一隧道的中转路由器或出口路由器。在图5的示例中,封装分组132包括由标签栈134封装的分组112。标签栈134包括隧道标签136、熵标签指示符118和熵标签120。
基于对应于隧道标签136的隧道中的下一跳的标识,路由器130从标签栈134移除隧道标签136,并添加代表下一跳的隧道标签138,以产生具有修改的标签栈142的修改的封装分组140。在其他示例中,例如在分段路由中,路由器可以弹出外部标签,并将数据包转发到隧道标签栈中的下一个标签。假设下一跳具有熵标签能力,熵标签120确保下一跳沿着上述隧道传输分组112。如果下一跳不支持熵标签,则下一跳可以沿着不同的路径发送分组112,忽略熵标签120,同时仍然向控制器124提供封装分组132的对应网络流的流记录。该流记录可以包括基于熵标签120的索引关键字。在任一情况下,路由器130可以作为中转/倒数第二跳弹出路由器来操作,并且生成流记录,用于与熵标签120一起输出到控制器124。
图6是示出示例性封装分组152的概念图,该封装分组152由端到端LSP的出口路由器150接收,并且将被输出到该LSP的目的地设备。路由器150可以代表图1的路由器32和/或图3的出口路由器108的示例实现。
在该示例中,封装分组152包括分组112和标签栈154。分组112可以被称为封装分组152的内部分组。标签堆栈154包括隧道标签156、熵标签指示符118和熵标签120。出口路由器150可以包括类似于图2所示的路由器50的组件,出口路由器150可以根据本公开的技术修改(例如,解封装)封装分组152。
示例封装分组152可以从同一网络内的路由器接收,并且也将被输出到同一网络内的LSP隧道的目的地设备。因此,LSP隧道可以是自治系统内的隧道。在将封装分组152传送到目的地设备之前,出口路由器150可以通过移除隧道标签156、熵标签指示符118和熵标签120来修改(例如,解封装)该分组,然后基于输出协议和输出接口发送分组112。通过将上述修改的分组数据传送到目的地设备(或第二网络中的另一路由器),出口路由器152遵守基于标签的负载均衡方案(根据RFC 6790),并且可以防止下游的错误。
为了便于网络流的端到端监控,出口路由器150像同一网络中的其他路由器一样,可以被配置为将流记录和熵标签120输出到控制器124。根据本文描述的设备、系统和技术,控制器124,像出口路由器150和相同网络中的其他路由器一样,使用在计算熵标签120中使用的相同的上述属性集来为流记录生成索引关键字。每个路由器向控制器发送具有相同索引关键字的流记录,允许控制器124在其他网络流的流记录中识别该流记录。
应当理解,标签栈154中可以包括图6中未示出的附加标签。类似地,在本文讨论的图4和图5的示例中,附图中没有必要示出完整的标签栈。
图7是示出用于计算熵标签的示例方法的流程图,该熵标签用作对应于相同流的流记录的索引关键字。
图7的方法可以由上述任何路由网络设备来执行,该路由网络设备可以是入口路由器、中转路由器或出口路由器。出于示例的目的,图7的方法是针对图2的路由器50来描述的。
最初,路由器50接收网络流(200)的分组数据(或简称为分组)。如果路由器50作为入口路由器操作,则从不同网络中的源设备或边缘路由器接收分组数据,例如端到端LSP的非熵标签能力(ELC)段。如果路由器50作为中转路由器或出口路由器操作,则路由器50可以从同一网络中的另一路由器接收分组数据,例如入口路由器或前一跳中转路由器。
路由器50然后可以为分组数据的相应网络流生成流记录(202)。当路由器50接收到分组数据时,可以触发路由器50确定分组数据对应于新的网络流,并生成由熵标签标识的新流记录。路由器50可以生成包括例如以下内容的流记录:熵标签(作为识别流记录的主关键字);协议、输出接口和与分组流相关联的信息。与分组流相关联的示例信息可以包括MPLS报头信息(例如,包括隧道标签、应用特定标签等的标签)和标签栈中的其他信息。
路由器50然后可以向控制器发送流记录(204)。如果路由器50是入口路由器,路由器50也可以发送用于计算熵标签的属性。除了熵标签和流记录之外,更重要的是控制器接收标识哪个(哪些)属性(例如,分组报头属性)可以用于计算熵标签和标识流记录的信息。通过这样做,控制器可以将分组数据的网络流的流记录与其他网络流的流记录区分开来。
路由器50然后可以将分组数据发送到下一跳(206)。假设路由器50实现基于标签的转发,路由器50可以弹出或移除分组数据中标签栈的顶部标签,并使用转发信息来识别映射到顶部标签的下一跳。下一跳可以是沿着与路由器50相同的隧道的网络设备,因此可以被分配隧道标签。在其他示例中,下一跳可以是映射到与路由器50不同的隧道并被分配了相应的隧道标签的网络设备,或者根本没有隧道并被分配了通用标签的网络设备,这两者都映射到相同的下一跳网络设备。路由器50添加适当的标签,除非路由器50作为出口路由器操作,在这种情况下,路由器50在将分组数据发送到下一跳之前不添加任何标签。
图8是示出由提供端到端流监控的网络中的控制器执行的示例方法的流程图。出于示例的目的,图8的方法是相对于图3的控制器100描述的。
最初,控制器100接收(例如,从入口路由器)新网络流的关键字信息(250)。在一些示例中,关键字信息作为一组哈希关键字来操作,用于根据基于标签的负载均衡方案(根据RFC 6790)计算新的熵标签。例如,控制器100从网络流的入口路由器接收用于计算熵标签的关键字信息。不管熵标签是否实际上用于多路径,控制器100重新调整熵标签的用途,用于识别新网络流的流记录。因此,熵标签可以从仅包括一个属性或由基于标签的负载均衡方案(根据RFC 6790)指定的许多属性的关键字信息来计算。
控制器100从网络中的路由器接收流记录,并使用熵标签来区分新网络流的流记录(252)。这是通过网络中的路由器生成包括对应于新网络流的熵标签的流记录来实现的。在一些示例中,网络中的路由器可以通过将来自新网络流的输入分组的标签栈插入到流记录模板中来生成流记录。如果控制器100怀疑分组或熵标签本身已经被泄露,则控制器100可以使用关键字信息来验证标签栈中的熵标签。在其他示例中,网络中的路由器可以生成流记录,而不包括用于负载均衡的熵标签。
控制器100然后更新数据库(例如,索引)以存储新网络流的接收流记录(254)。控制器100然后可以继续生成流统计数据和/或监控网络流的任何故障(256)。相关领域的技术人员可以在各种网络管理任务中使用流统计(例如,NetFlow统计)。流统计对于网络监控等应用非常有用。流统计还可以用来衡量应用和策略更改如何影响流量。
本文描述的技术可以在硬件、软件、固件或其任意组合中实现。描述为模块、单元或组件的各种特征可以在集成逻辑设备中一起实现,或者作为分立但可互操作的逻辑设备或其他硬件设备单独实现。在一些情况下,电子电路的各种特征可以被实现为一个或多个集成电路设备,例如集成电路芯片或芯片组。
如果以硬件实现,本公开可以针对诸如处理器或集成电路设备的装置,诸如集成电路芯片或芯片组。替代地或附加地,如果以软件或固件实现,则这些技术可以至少部分地通过包括指令的计算机可读数据存储介质来实现,这些指令在被执行时使得处理器执行一个或多个上述方法。例如,计算机可读数据存储介质可以存储由处理器执行的这样的指令。
计算机可读介质可以形成计算机程序产品的一部分,其可以包括包装材料。计算机可读介质可以包括计算机数据存储介质,例如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等。在一些示例中,制品可以包括一个或多个计算机可读存储介质。
在一些示例中,计算机可读存储介质可以包括非暂时性介质。术语“非暂时性”可以表示存储介质没有包含在载波或传播信号中。在某些示例中,非暂时性存储介质可以存储随时间而变化的数据(例如,在RAM或高速缓存中)。
代码或指令可以是由处理电路执行的软件和/或固件,该处理电路包括一个或多个处理器,例如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他等效的集成或分立逻辑电路。因此,本文使用的术语“处理器”可以指任何前述结构或者适合于实现本文描述的技术的任何其他结构。此外,在一些方面,本公开中描述的功能可以在软件模块或硬件模块中提供。
已经描述了各种示例。这些示例和其他示例在所附权利要求的范围内。
Claims (20)
1.一种网络设备,包括:
处理电路,被配置为:
接收对应于源自第一设备的网络流的分组数据,所述分组数据去往第二设备;
生成熵标签以添加到所述分组数据的标签栈,其中,所述熵标签是根据对应于源自所述第一设备并去往所述第二设备的所述网络流的一个或多个属性生成的;
生成包括所述熵标签的流记录,其中,所述熵标签识别网络中多个网络流中的所述网络流;以及
响应于所述流记录的生成,向所述网络的控制器发送所述流记录,其中,所述控制器基于所述熵标签识别对应于源自所述第一设备并且去往所述第二设备的所述网络流的每个设备。
2.根据权利要求1所述的网络设备,其中,为了生成所述流记录,所述处理电路还被配置为在所述流记录中包括输出接口和输出协议。
3.根据权利要求1所述的网络设备,其中,为了生成所述熵标签,所述处理电路还被配置为根据所述分组数据中的一个或多个分组报头属性生成所述熵标签。
4.根据权利要求1所述的网络设备,其中,所述熵标签是索引关键字,用于在所述网络中的所述多个网络流的多个流记录中识别所述流记录。
5.根据权利要求1所述的网络设备,其中,所述处理电路还被配置为向所述网络的所述控制器发送用于生成所述熵标签的所述一个或多个属性。
6.根据权利要求1所述的网络设备,其中,所述处理电路还被配置为从出口路由器接收信令消息,所述信令消息指示所述出口路由器被配置为具有熵标签能力或不具有熵标签能力。
7.一种网络设备,包括:
处理电路,被配置为:
接收对应于源自网络中的第一设备并去往所述网络中的第二设备的网络流的分组数据,所述分组数据包括所述网络流的熵标签和用于通过所述网络中的多个网络设备中的至少一个网络设备将所述分组数据导向所述第二设备的标签栈;
生成包括所述熵标签的流记录,其中,所述分组数据的所述标签栈包括所述熵标签以识别网络中多个网络流中的所述网络流;以及
响应于所述流记录的生成,向所述网络的控制器发送所述流记录,其中,所述控制器基于所述熵标签识别源自对应于所述第一设备并且去往所述第二设备的所述网络流的每个设备。
8.根据权利要求7所述的网络设备,其中,所述网络设备是中转路由器,其中,所述处理电路还被配置为:
响应于接收到包括所述熵标签的所述分组数据,生成包括所述分组数据中指定的所述标签栈的所述熵标签、输出接口和协议的所述流记录。
9.根据权利要求7所述的网络设备,其中,所述网络设备是中转路由器,其中,所述处理电路还被配置为:
经由到下一跳的输出接口,将所述分组数据发送到对应于所述下一跳的路由器。
10.根据权利要求7所述的网络设备,其中,所述网络设备是中转路由器,其中,为了将所述流记录发送到所述控制器,所述处理电路被配置为将所述标签栈作为所述流记录的一部分发送。
11.根据权利要求7所述的网络设备,其中,所述网络设备是倒数第二跳弹出路由器,其中,所述处理电路还被配置为当将所述分组数据传送到出口路由器时,将所述熵标签保留在所述标签栈上。
12.根据权利要求7所述的网络设备,其中,所述网络设备是出口路由器,其中,所述处理电路还被配置为:
从倒数第二跳弹出路由器接收在所述标签栈上具有所述熵标签的所述分组数据;
从所述分组数据的所述标签栈中移除所述熵标签以生成修改的分组数据;以及
向第二网络中的路由器或所述第二设备传送所述修改的分组数据。
13.根据权利要求12所述的网络设备,其中,为了传送所述修改的分组数据,所述处理电路被配置为使用所述分组数据中指定的输出接口和协议来传送所述修改的分组数据。
14.根据权利要求7所述的网络设备,其中,所述处理电路还被配置为向入口路由器传送信令消息,所述信令消息指示出口路由器被配置为具有熵标签能力或不具有熵标签能力。
15.一种控制器,包括:
处理电路,被配置为:
维护存储通过网络的多个网络流的流记录的排列的索引,其中,对于所述多个网络流的特定网络流的一个或多个对应的流记录,索引关键字基于对应于所述特定网络流的熵标签,其中,多个熵标签中的每个熵标签标识所述多个网络流中相应的一个网络流;
从所述网络中的网络设备接收对应于所述网络中新网络流的分组数据的新熵标签的一个或多个属性,其中,所述新熵标签标识沿着针对所述新网络流的路径的每个网络设备;以及
基于所述新熵标签,针对对应于要添加到所述索引的所述新网络流的每个流记录生成新索引关键字。
16.根据权利要求15所述的控制器,其中,所述处理电路还被配置为:
从第一设备和第二设备之间转发所述新网络流的所述分组数据的网络设备接收相应的流记录。
17.根据权利要求15所述的控制器,其中,所述处理电路还被配置为:
从入口路由器接收用于生成所述特定网络流的所述熵标签的一个或多个分组报头属性;以及
从所述入口路由器接收包括所述熵标签作为所述流记录的索引关键字的流记录。
18.根据权利要求15所述的控制器,其中,所述处理电路还被配置为:
为所述多个网络流中的每个相应网络流生成网络流统计数据。
19.根据权利要求15所述的控制器,其中,所述处理电路还被配置为:
从中转路由器、倒数第二跳弹出路由器和出口路由器中的至少一个接收所述分组数据的标签栈的副本和所述新网络流的更新的流信息。
20.根据权利要求15所述的控制器,其中,所述处理电路还被配置为:
确定对应于所述多个网络流中的所述新网络流的端到端路径的错误。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/103,610 | 2020-11-24 | ||
US17/103,610 US11616726B2 (en) | 2020-11-24 | 2020-11-24 | End-to-end flow monitoring in a computer network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114553769A CN114553769A (zh) | 2022-05-27 |
CN114553769B true CN114553769B (zh) | 2023-09-08 |
Family
ID=74561797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110184031.7A Active CN114553769B (zh) | 2020-11-24 | 2021-02-10 | 计算机网络中的端到端流监控 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11616726B2 (zh) |
EP (1) | EP4002776A1 (zh) |
CN (1) | CN114553769B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210243111A1 (en) * | 2020-02-04 | 2021-08-05 | Nokia Solutions And Networks Oy | Supporting multicast communications |
US11799757B2 (en) * | 2021-07-30 | 2023-10-24 | Cisco Technology, Inc. | Performance measurement, telemetry, and OAM in MPLS networks using entropy labels |
US11985067B2 (en) * | 2021-12-10 | 2024-05-14 | Nokia Solutions And Networks Oy | Flowlet switching using memory instructions |
US20230318947A1 (en) * | 2022-03-09 | 2023-10-05 | Cisco Technology, Inc. | Dynamic multi-cloud network traffic flow monitoring |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360053A (zh) * | 2008-09-08 | 2009-02-04 | 华南理工大学 | 基于信息熵的路由干扰影响度量方法 |
CN102904822A (zh) * | 2012-10-22 | 2013-01-30 | 西安交通大学 | VoIP网络流量的层次化识别方法 |
CN103430494A (zh) * | 2011-02-17 | 2013-12-04 | 岩星社团美国有限公司 | 用于等价多路径分组交换网络的下一跳计算函数 |
US9178810B1 (en) * | 2013-07-26 | 2015-11-03 | Juniper Networks, Inc. | Handling entropy labels when stitching label-switched paths |
CN106936713A (zh) * | 2015-12-30 | 2017-07-07 | 华为技术有限公司 | 一种标签管理方法,数据流处理方法及设备 |
CN110519163A (zh) * | 2018-05-22 | 2019-11-29 | 丛林网络公司 | 检测环网络中点对多点标签交换路径的出口 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7839847B2 (en) | 2006-05-08 | 2010-11-23 | Cisco Technology, Inc. | Methods and apparatus providing VPN traffic matrix construction |
US20150222531A1 (en) | 2014-02-03 | 2015-08-06 | Broadcom Corporation | Prefix-based Entropy Detection in MPLS Label Stacks |
US10038650B2 (en) * | 2015-08-25 | 2018-07-31 | Futurewei Technologies, Inc. | System and method for tunnel stitching transport |
US10944652B2 (en) | 2019-05-16 | 2021-03-09 | Arista Networks, Inc. | Method and network device for tagging network traffic flows |
US11025534B2 (en) * | 2019-10-15 | 2021-06-01 | Cisco Technology, Inc. | Service-based node-centric ECMP health |
-
2020
- 2020-11-24 US US17/103,610 patent/US11616726B2/en active Active
-
2021
- 2021-02-08 EP EP21155805.1A patent/EP4002776A1/en active Pending
- 2021-02-10 CN CN202110184031.7A patent/CN114553769B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101360053A (zh) * | 2008-09-08 | 2009-02-04 | 华南理工大学 | 基于信息熵的路由干扰影响度量方法 |
CN103430494A (zh) * | 2011-02-17 | 2013-12-04 | 岩星社团美国有限公司 | 用于等价多路径分组交换网络的下一跳计算函数 |
CN102904822A (zh) * | 2012-10-22 | 2013-01-30 | 西安交通大学 | VoIP网络流量的层次化识别方法 |
US9178810B1 (en) * | 2013-07-26 | 2015-11-03 | Juniper Networks, Inc. | Handling entropy labels when stitching label-switched paths |
CN106936713A (zh) * | 2015-12-30 | 2017-07-07 | 华为技术有限公司 | 一种标签管理方法,数据流处理方法及设备 |
CN110519163A (zh) * | 2018-05-22 | 2019-11-29 | 丛林网络公司 | 检测环网络中点对多点标签交换路径的出口 |
Non-Patent Citations (1)
Title |
---|
The use of entropy labels in MPLS forwarding;kompella J;《Internet engineering task force》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
US11616726B2 (en) | 2023-03-28 |
CN114553769A (zh) | 2022-05-27 |
EP4002776A1 (en) | 2022-05-25 |
US20220166722A1 (en) | 2022-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11424987B2 (en) | Segment routing: PCE driven dynamic setup of forwarding adjacencies and explicit path | |
CN114553769B (zh) | 计算机网络中的端到端流监控 | |
CN111147373B (zh) | 实现非灵活算法路由器参与灵活算法路由协议 | |
US9401858B2 (en) | Loop avoidance during network convergence in switched networks | |
CN112118182B (zh) | 发送流量工程的ip路径隧道 | |
EP2540041B1 (en) | System and method for computing a backup ingress of a point-to-multipoint label switched path | |
CN101741709B (zh) | 建立标签交换路径的方法、系统及网络节点 | |
CN113347091B (zh) | 灵活算法感知边界网关协议前缀分段路由标识符 | |
CN111865783B (zh) | 用于计算机网络的方法和网络设备 | |
US11323371B1 (en) | Micro SID packet processing with operations, administration, and management | |
CN112118178B (zh) | 网络装置和用于ip网络中基于类别的流量工程的方法 | |
US9049142B1 (en) | Method and apparatus to enable protection for selective traffic in an MPLS network | |
EP3582454B1 (en) | Graceful restart procedures for label switched paths with label stacks | |
CN113709033B (zh) | 用于分段路由流量工程的分段跟踪路由 | |
CN114567594A (zh) | 大规模网络中用于路径计算的过滤拓扑 | |
EP3913868A1 (en) | Segmented traceroute for segment routing traffic engineering | |
Linton | Segment Routing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |