CN113472670B - 用于计算机网络的方法、网络装置及存储介质 - Google Patents
用于计算机网络的方法、网络装置及存储介质 Download PDFInfo
- Publication number
- CN113472670B CN113472670B CN202010542824.7A CN202010542824A CN113472670B CN 113472670 B CN113472670 B CN 113472670B CN 202010542824 A CN202010542824 A CN 202010542824A CN 113472670 B CN113472670 B CN 113472670B
- Authority
- CN
- China
- Prior art keywords
- rib
- fib
- routing
- region
- forwarding
- 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
Images
Classifications
-
- 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/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- 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/54—Organization of routing tables
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- 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/14—Routing performance; Theoretical aspects
Abstract
公开了网络装置的路由一致性检查器。本公开整体上描述了一种网络装置,其检查路由信息库(RIB)、转发信息库(FIB)和封包转发引擎(PFE)转发表中的路由对象之间的一致性。一种方法包括生成标记物,标记物使得网络装置的路由协议守护进程、控制平面内核和PFE分别使用RIB、FIB和相应转发表内的每个路由对象的一致性值,来计算多个区域的区域校验和。方法包括对RIB、FIB和转发表执行一致性检查,以确定RIB、FIB和转发表中每一项的路由对象是否彼此一致。方法包括当RIB、FIB和转发表不一致时,执行与RIB、FIB或转发表中的至少一项相关的动作。
Description
技术领域
本公开涉及基于封包的计算机网络,更具体地,涉及在计算机网络内转发封包。
背景技术
计算机网络是能够交换数据和共享资源的互连计算装置的集合。示例网络装置包括在开放系统互连(OSI)参考模型的第二层(即数据链路层)内操作的第二层装置、以及在OSI参考模型的第三层(即网络层)内操作的第三层装置。计算机网络内的网络装置通常包括为网络装置提供控制平面功能的控制单元、和用于路由或交换数据单元的转发组件。例如,在一些情况下,网络装置可以包括多个封包转发引擎(PFE)和交换结构,其共同提供用于转发网络流量的转发平面。
由控制单元提供的控制平面功能包括以路由信息库(RIB)的形式存储网络拓扑,执行路由协议以与对等路由装置通信,以维护和更新RIB,并且提供管理接口,以允许用户访问和配置网络装置。控制单元维护表示网络的整体拓扑的路由信息,并限定通往网络内目的地前缀的路由。
控制单元导出转发信息库(FIB),该转发信息库包括由控制单元根据路由信息和控制信息生成的多个转发条目。控制单元在数据平面内安装转发结构,以编程方式配置转发组件。构成转发条目的数据和指令为网络装置接收的每个传入封包限定了内部转发路径。例如,为了生成路由表查找转发条目,控制单元选择由网络拓扑定义的路由,并将封包密钥信息(例如,目的地信息和来自封包报头的其他选择信息)映射到一个或多个特定的下一跳网络装置,并最终映射到网络装置的接口卡的一个或多个特定输出接口。在一些情况下,控制单元可以将转发结构安装到每个PFE中,以更新每个PFE内的转发表,并控制数据平面内的流量转发。分叉控制和数据平面功能允许在不降低网络装置的封包转发性能的情况下更新每个PFE中的转发表。
发明内容
本公开整体上描述了能够检查网络装置中的路由表和转发表之间的一致性的技术。网络装置的控制平面可以不时地改变路由信息库(RIB)中的网络路由,以反映例如网络技术的变化。这些变化随后作为转发条目传送到转发信息库(FIB)。FIB用于将变化传播到封包转发引擎(PFE)内的转发表,以便所有PFE具有相同的转发表。响应于这些变化,控制平面执行一致性检查,以确保FIB和转发表反映RIB限定的路由。为此,RIB、FIB和转发表中的条目都进一步细分为区域。每个数据库或表中的每个条目都与一致性值(例如,区域标识符、校验和、时间戳等)相关联。控制平面基于使用一致性值的区域校验和计算来检查RIB、FIB和PFE的一致性。当RIB、FIB和PFE上的所有区域校验和与期望值匹配时,控制平面确定网络装置中的FIB和转发表是一致的,并且不需要采取进一步的动作。当一个或多个区域校验和与相应的期望值不匹配时,控制平面确定一个或多个数据库或表之间不一致。然后控制平面可以提供指示路由对象(例如,前缀、下一跳或一组前缀/下一跳)不一致的警报。
一种示例方法包括由在控制平面上操作的路由协议守护进程(RPD)生成标记物,标记物使得网络装置的RPD、控制平面内核和封包转发引擎分别基于路由信息库(RIB)、转发信息库(FIB)和相应转发表内的每个路由对象的一致性值,来计算多个区域的区域校验和。将每个路由对象分配给多个区域中的一个。该方法还包括由收集器守护进程对RIB、FIB和转发表执行一致性检查,以确定RIB、FIB和转发表中的每一个中的路由对象是否彼此一致。另外,该方法包括当RIB、FIB和转发表彼此不一致时,执行与RIB、FIB或转发表中的至少一个相关的动作。
示例网络装置包括控制单元和多个封包转发引擎。控制单元包括内核,操作路由协议守护进程(RPD),并且通信地耦合到收集器守护进程。控制平面还存储路由信息库(RIB)、相关联的第一一致性表和转发信息库(FIB)以及相关联的第二一致性表。每个封包转发引擎存储转发表和相关联的第三一致性表。响应于RPD生成标记物,RPD、控制平面内核和封包转发引擎分别基于存储在RIB、FIB和转发表内的每个路由对象的一致性表中的一致性值,来计算多个区域的区域校验和。每个路由对象分配给多个区域中的一个。收集器守护进程对RIB、FIB和转发表执行一致性检查,以确定RIB、FIB和转发表每一个中的路由对象是否彼此一致。当RIB、FIB和转发表彼此不一致时,收集器守护进程执行与RIB、FIB或转发表中的至少一个相关的动作。
一种示例计算机可读介质包括指令,该指令在被执行时使得网络装置通过路由协议守护进程(RPD)生成标记物,标记物使得网络装置的RPD、控制平面内核和封包转发引擎分别基于路由信息库(RIB)、转发信息库(FIB)和相应转发表内的每个路由对象的一致性值,来计算多个区域的区域校验和。将每个路由对象分配给多个区域中的一个。此外,该指令在被执行时使得网络装置通过收集器守护进程对RIB、FIB和转发表执行一致性检查,以确定RIB、FIB和转发表每一个中的路由对象是否彼此一致,并且当RIB、FIB和转发表彼此不一致时,执行与RIB、FIB或转发表中的至少一个相关的动作。
在附图和下面的描述中阐述了一个或多个示例的细节。从说明书和附图以及权利要求书中,其他特征、目的和优点将变得显而易见。
附图说明
图1示出了具有根据本公开中描述的原理操作的网络装置的系统;
图2是示出根据本公开中描述的原理的包括路由一致性检查器的示例网络装置的框图;
图3是更详细地示出图1的网络装置的示例实施例的框图;
图4是示出根据本公开中描述的原理执行一致性检查的收集器守护进程的框图;
图5是根据本公开中描述的原理对封包转发引擎的转发表发起一致性检查的示例方法的流程图;
图6是根据本公开中描述的原理确定一致性信息以对封包转发引擎的转发表执行一致性检查的示例方法的流程图;
图7是根据本公开中描述的原理检查封包转发引擎的转发表的一致性的示例方法的流程图;
图8是根据本公开中描述的原理对封包转发引擎的转发表发起强力一致性检查的示例方法的流程图;
图9是根据本公开中描述的原理将条目添加到路由信息库中的示例方法的流程图;
图10是根据本公开中描述的原理在执行一致性检查的同时处理路由更新的示例方法的流程图。
具体实施方式
网络装置的控制平面可以不时地改变路由信息库(RIB)中的网络路由,以反映例如网络技术的变化。这些变化随后作为转发条目传送到转发信息库(FIB)。FIB用于将变化传播到封包转发引擎(PFE)的转发表,以便所有PFE具有相同的转发表。然而,一个错误可能导致一个或多个PFE不正确地更新其转发表,使得转发模块中的条目可能与控制平面的FIB或RIB中阐述的条目不匹配。如下所述,守护进程(有时称为“收集器守护进程”)确定PFE和FIB的转发表中的条目是否与RIB指定的条目一致。收集器守护进程可能正在控制平面上执行。或者,在一些示例中,收集器守护进程可以在单独的设备上执行,例如,在网络中操作的控制器设备。最初,每个数据库或表中的条目进一步细分为区域(zone),使得每个条目与区域标识符(ID)相关联。这些区域分配被传送给RPD(针对RIB)、内核(针对FIB)和PFE。此外,当路由条目传送到内核时,内核将路由条目与时间戳相关联。时间戳随后传送到RPD和PFE。此外,RPD为新路由条目计算单独校验和(checksum)。时间戳传送到RPD和PFE,以便与相应的路由条目相关联地存储。作为处理新路由条目和相关联时间戳的一部分,内核和PFE使用与RPD相同的校验和算法计算单独校验和。在一些示例中,RIB和FIB都与一致性表相关联。PFE既包括存储路由条目(有时称为“路由对象”)的转发表,也包括存储区域分配、时间戳和与转发表中的相应条目相关联的单独校验和的一致性表。
控制平面不时地生成发起一致性检查的标记物(maker,标识物)(例如,经由路由协议守护进程(RPD))。标记物包括由内核生成的时间戳。标记物传送到内核和每个PFE。标记物安装在内核(针对FIB)和PFE(针对转发表)中。一旦安装了标记物,内核和PFE就会发送确认消息。响应于从内核和PFE接收到确认消息,RPD生成计算消息,以使得内核和PFE中的每一个基于分配给区域的其相应的路由表中的条目,来计算每个区域的校验和(例如,作为后台进程)。此外,计算消息触发RPD(针对RIB)计算每个区域的校验和。在某些示例中,区域校验和基于区域中包含的条目的单独校验和。在一些示例中,与标记物时间戳之前的时间戳相关联的条目包括在区域校验和计算中。RPD、内核和PFE向收集器守护进程报告区域校验和以及基于区域的条目计数,该条目计数包括该区域转发表中的多个条目(有时统称为“一致性信息”)。收集器守护进程最初根据基于区域的条目计数过滤接收到的一致性信息。当基于区域的条目计数不匹配时,收集器守护进程会确定RIB、FIB和PFE的转发表之间存在不一致。然后,收集器守护进程将区域校验和与预期校验和进行比较。当一个区域校验和与预期的校验和不匹配时,收集器守护进程确定RIB、FIB和PFE的转发表之间存在不一致。确定至少一个转发表中存在不一致,导致收集器守护进程向RPD发送未确认消息。在一些示例中,未确认消息导致RPD重新发出计算消息,以触发RPD(针对RIB)、内核(针对FIB)和PFE重复一致性检查。例如,不一致可能是由处理更新转发表的速度较慢的PFE引起的。在这样的示例中,重复一致性检查,可以允许较慢的PFE处理更新,使得重复的一致性检查不会导致不一致。由于连续出现阈值次数的不一致,所以收集器守护进程可能会重复一致性检查。
在阈值数量的一致性检查失败后,PRD可以在标记物中设置强力标志。随后,RPD重新发出计算消息。当设置了强力标志时,计算消息促使RPD、内核和PFE向收集器守护进程发送一致性信息以及相应数据库或表中的单独校验和和/或单独条目。使用该信息,收集器守护进程确定哪些特定条目不匹配。在一些示例中,收集器守护进程可以将强力标志设置预定次数,以消除误报(例如,如果在强力尝试的阈值次数中被识别为不匹配,则仅考虑条目不匹配,等)。在一些示例中,控制平面通过守护进程可以提供图形接口,以指示RIB和FIB和/或PFE之间的不一致。
图1是示出示例网络环境的框图,其中,服务提供商网络包括根据本公开中描述的技术配置的网络装置。出于示例的目的,针对图1的简化网络环境100来描述本发明的原理,其中,网络装置102(有时称为“核心路由器”)与边缘路由器104A和104B(统称为“边缘路由器104”)通信,以向客户网络106A至106C(统称为“客户网络106”)提供对服务提供商网络108的访问。路由器102可以与边缘路由器104和/或控制器112交换路由信息,以便保持网络环境100的拓扑的准确表示。如下所述,网络装置102可以包括作为服务提供商网络108内的单个节点操作的多个协作路由组件组成。网络装置102包括将各种内部路由组件(例如,线路卡、交换结构卡、路由引擎卡等)耦接在一起的机箱(图1中未示出)。
尽管未示出,但是服务提供商网络108可以耦合到由其他提供商管理的一个或多个网络,因此可以形成大规模公共网络基础设施(例如,互联网)的一部分。因此,客户网络106可以被视为互联网的边缘网络。服务提供商网络108可以向客户网络106内的计算装置提供对互联网的访问,并且可以允许客户网络106内的计算装置彼此通信。在另一示例中,服务提供商网络108可以提供互联网的核心内的网络服务。在任一情况下,服务提供商网络108可以包括除路由器102和边缘路由器104之外的各种网络装置(未示出),例如,额外的路由器、交换机、服务器或其他装置。
在所示的示例中,边缘路由器104A经由接入链路110A耦合到客户网络106A,并且边缘路由器104B经由额外接入链路110B和110C耦合到客户网络106B和106C。客户网络106可以是用于企业的地理上分离的站点的网络。客户网络106可以包括一个或多个计算装置(未示出),例如,个人计算机、膝上型计算机、手持计算机、工作站、服务器、交换机、打印机、客户数据中心或其他装置。图1所示的网络环境100的配置仅仅是一个示例。服务提供商网络108可以耦合到任意数量的客户网络106。尽管如此,为了便于描述,图1中仅示出了示例数量的客户网络106A至106C。除了服务提供商网络108之外,许多不同类型的网络可以采用路由器102的实例,包括客户/企业网络、传输网络、聚合或接入网络等。网络流量可以例如通过网络装置102从一个客户网络106A流向另一客户网络106C。
在所示的示例中,服务提供商网络108包括控制器112。在一些示例中,控制器112可以包括软件定义的网络控制器。控制器112可以监控服务提供商网络108,并为管理员提供接口,来配置和/或监控服务提供商网络108内的装置(例如,网络装置102、边缘路由器104等)。在一些示例中,控制器112可以执行诊断功能,并在图形用户界面中显示服务提供商网络108的健康状况,以便于维护服务提供商网络108。在其他示例中,控制器112可以通告服务提供商网络108的拓扑和/或基于服务提供商网络108的拓扑执行路径计算,并且向服务提供商网络108内的装置通告路由更新。
在所示的示例中,网络装置102和/或边缘路由器104包括收集器守护进程114,其监控网络装置102内的RIB、FIB和多个转发表的一致性,如下所述。收集器守护进程114结合网络装置102的RPD发起一致性检查,以确定网络装置102内的RIB、FIB和多个转发表是否一致。当每个数据库和/或表包含相同的路由条目时,RIB、FIB和转发表是一致的。如下所述,收集器守护进程114接收来自网络装置102的RDP、内核和PFE的一致性信息。收集器守护进程114知道网络装置102中的PFE,使得收集器守护进程114可以跟踪何时已经接收到来自所有PFE的响应。基于一致性信息,收集器守护进程114向RPD报告RIB、FIB和转发表是否一致。当RIB、FIB和转发表保持不一致时(例如,在阈值数量的一致性检查之后),收集器守护进程114可以遍历RIB、FIB和转发表的路由条目,以确定哪些路由条目不一致(有时称为“强力”一致性检查)。在一些示例中,强力一致性检查的结果被提供给RPD和/或控制器112(例如,以图形方式显示给管理员等)。尽管结合下面的图2至图10,收集器守护进程114被描述为在网络装置102上执行,但是收集器守护进程114也由边缘路由器104执行,并且在一些示例中,收集器守护进程114由控制器112执行,控制器112通信地耦合到网络装置102的RPD、内核和PFE。
图2是示出根据本公开中描述的原理监控转发表中条目的一致性的示例网络装置102的框图。网络装置102可以包括路由器,例如,提供商边缘或客户边缘路由器、核心路由器或另一种类型的网络装置,例如,交换机。
在该示例中,网络装置102包括为装置提供控制平面功能的控制单元200。网络装置102还包括示例封包转发引擎202A至202N(“PFE 202”)形式的多个转发组件和交换结构204,其共同提供用于转发网络流量的数据平面。PFE 202经由接口卡206A至206N(“IFC206”)的接口接收和发送数据封包,每个接口卡与相应的一个PFE 202相关联。每个PFE 202及其关联的一个IFC 206可以驻留在网络装置102的单独线路卡(未示出)上。示例线路卡包括灵活可编程集成电路(PIC)集中器(PFC)、密集端口集中器(DPC)和模块化端口集中器(MPC)。每个IFC 206可以包括用于第二层(L2)技术的各种组合的接口,包括以太网、千兆以太网(GigE)和同步光网络(SONET)接口。在各个方面,每个PFE 20可以包括更多或更少的IFC。交换结构204提供高速互连,用于将传入的数据封包转发到选择的一个PFE 202,以便通过网络输出。
控制单元200通过内部通信链路208连接到每个PFE 202。例如,内部通信链路208可以包括100Mbps以太网连接。由控制单元200执行的守护进程210A至210N(“守护进程210”)是用户级进程,该进程运行网络管理软件,执行路由协议,以与对等路由装置通信,维护和更新一个或多个路由表,并创建一个或多个转发表,以安装到PFE 202,并且还具有其他功能。收集器守护进程114是由控制单元200执行的守护进程210的示例。守护进程210经由控制单元200内的PFE接口212通信地耦合到PFE 202。
控制单元200可以包括一个或多个处理器(图2中未示出),其执行软件指令(例如,用于定义软件或计算机程序的软件指令),存储到计算机可读存储介质(再次在图2中未示出),例如,非暂时性计算机可读介质(包括存储装置(例如,磁盘驱动器或光盘驱动器)和/或存储器(例如,随机存取存储器(RAM)(包括各种形式的动态RAM(DRAM),例如,DDR2 SDRAM或静态RAM(SRAM))、闪存、另一种形式的固定或可移动存储介质(其可以用于以指令或数据结构的形式携带或存储期望的程序代码和程序数据,并且可以由处理器访问)或者存储指令以使一个或多个处理器执行本文所述的技术的任何其他类型的易失性或非易失性存储器。可替换地或额外地,控制单元12可以包括专用硬件,例如,一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用特殊处理器(ASSP)、一个或多个现场可编程门阵列(FPGA)或专用硬件的一个或多个前述示例的任意组合,用于执行本文描述的技术。
当封包穿过网络装置102的内部架构时,PFE 202通过在相应的内部封包转发路径上对每个封包执行一系列操作来处理封包。例如,可以由对应的入口接口、入口PFE 202、出口PFE 202、出口接口或在出口之前将封包引导到的网络装置102的其他组件(例如,一个或多个服务卡)中的任何一个对每个封包执行操作。PFE 202都包括硬件和/或软件转发单元(FU)214,其检查每个封包(或另一封包属性,例如,传入接口)的内容,以做出转发决定,应用过滤器和/或执行记账、管理、流量分析和/或负载平衡。在一个示例中,每个PFE 202将转发单元214设置为下一跳数据,该下一跳数据可以沿着网络装置的内部封包转发路径作为一系列“跳”链接在一起。封包处理的结果确定了封包被PFE 202从其在一个IFC 206上的输入接口转发或以其他方式处理到其在一个IFC 206上的输出接口的方式。
转发单元214包括查找数据结构(有时称为“转发表”),以执行查找操作,例如,树(或特里结构(trie))搜索、表(或索引)搜索、过滤器确定和应用、或速率限制器确定和应用。查找操作定位与封包内容、或封包或封包流的另一属性(例如,封包的入站接口)匹配的路由条目。如下所述,转发单元214还包括一致性数据结构(有时称为“一致性表”)来存储路由条目的属性,以便于为一致性检查生成一致性信息。在一些示例中,转发表和一致性表存储在单独的数据结构中。或者,在一些示例中,转发表和一致性表可以存储在相同的数据结构中。
如下所述,控制单元200维护路由信息库(RIB)。RIB包括限定网络拓扑的信息,包括一个或多个路由表和/或链路状态数据库。控制单元200通过网络选择活动路由,然后将这些路由安装到转发信息库(“FIB”)。通常,FIB是基数或其他查找树,以将封包信息(例如,具有目的地信息和/或标签栈的报头信息)映射到下一跳,并最终映射到与相应PFE 202相关联的接口卡的接口端口。基于FIB更新PFE 202的转发表。随着网络拓扑的变化,控制单元200不时地改变和/或更新RIB。另外,控制单元200可以改变FIB,以反映这些变化并更新活动路由(例如,在必要时)。这些变化可能需要时间才能在PFE 202的转发表中实现。通常,控制单元200和PFE 202之间的通信是异步的,并且在网络装置102中可能安装有慢的PFE 202和较快的PFE 202。如下所述,RIB、FIB和转发表进一步细分为区域(zone)。每个区域包括网络拓扑中的一个或多个活动路由。控制单元200经由收集器守护进程114检查RIB、FIB和PFE202的转发表的一致性。当每个FIB中的每个区域中和转发表的路由与RIB为这些区域指定的路由相匹配时,RIB、FIB和转发表是一致的。当RIB、FIB和转发表不一致时,就会产生错误。在一些示例中,当RIB、FIB和转发表不一致时,控制单元200经由收集器守护进程114,通过对不一致的区域执行逐个条目的比较来确定哪些条目导致了不一致。
图3是更详细地示出图1和图2的网络装置102的示例实施例的框图。在该示例中,控制单元200为在用户空间302中执行的各种用户级守护进程210的执行,提供控制平面300操作环境。该示例中的守护进程210包括命令行接口守护进程304(“CLI 304”)、路由协议守护进程306(“RPD306”)、简单网络管理协议守护进程308(“SNMP 308”)和收集器守护进程114(“收集器114”)。在这方面,控制平面300可以为网络装置102提供路由平面、服务平面和管理平面功能。控制单元200的各种实例可以包括图3中未示出的额外守护进程210,其执行其他控制、管理或服务平面功能和/或驱动并且以其他方式管理网络装置102的数据平面功能。
守护进程210在内核310上运行并与之交互,内核310为用户级进程提供运行时操作环境。内核310可以包括例如UNIX操作系统衍生物,例如,Linux或伯克利软件分发(BSD)。内核310提供库和驱动程序,守护进程210可以通过库和驱动程序与底层系统交互。内核310的PFE接口212包括内核级库,守护进程210(例如,收集器守护进程114)和其他用户级进程或用户级库可以通过该内核级库与PFE 202交互。PFE接口212可以包括例如套接字库,用于通过专用网络链路与PFE 202通信。
控制单元200的硬件环境312包括微处理器314,微处理器314执行从存储器(图3中未示出)加载到主存储器(图3中也未示出)中的程序指令,以便执行控制单元200的软件栈,软件栈包括内核310和用户空间302。微处理器314可以包括一个或多个通用或专用处理器,例如,数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效逻辑器件。因此,本文使用的术语“处理器”或“控制器”可以指任何一个或多个前述结构或可操作来执行本文描述的技术的任何其他结构。
RPD 306执行一个或多个内部和/或外部路由协议,以与其他网络装置交换路由信息,并将接收到的路由信息存储在路由信息库316(“RIB 316”)中。RIB 316可以包括定义网络拓扑的信息,包括一个或多个路由表和/或链路状态数据库。RPD 306解析由RIB 316中的路由信息定义的拓扑,以通过网络选择或确定一个或多个活动路由,然后将这些路由安装到转发信息库318(“FIB 42”)。如本文所使用的,RIB 216中用于限定每个路由的信息称为“路由条目”。通常,RPD 306以基数或其他查找树的形式生成FIB 318,以将封包信息(例如,具有目的地信息和/或标签栈的报头信息)映射到下一跳,并最终映射到与相应PFE 202相关联的接口卡的接口端口。
如下所述,RPD 306将RIB 316、FIB 318和PFE 202的转发表320中的路由条目划分成区域。每个路由条目都分配有一个区域标识符。区域是相同类型的路由条目的集合(例如,路由对象、NH对象或通用配置对象等)。路由条目可以基于路由条目特征(例如,守护进程ID、前缀/前缀长度、族、路由表内核索引等)被分类为区域。守护进程ID识别由特定守护进程210创建的所有对象。当路由条目添加到RIB 316时,RPD 306将其添加到区域。在一些示例中,RPD 306将新的路由条目分配到填入最少的正确类型的区域中。此外,在一些示例中,当添加路由条目时,RPD 306基于路由条目的内容计算单独的校验和。当接收到新的路由条目时,内核310向路由对象添加时间戳,时间戳指示何时将路由条目添加到FIB 316。该时间戳被传送到RPD 306和PFE 202。区域ID、时间戳、单独校验和以及其他区域元数据存储在与RIB 316相关联的一致性表中(例如,RIB一致性表(CT)322)。新的路由条目转发到内核310和PKE 202。一旦接收到,内核310为新路由条目计算单独校验和,并且将存储区域ID、时间戳、单独校验和、和其他区域元数据存储在与FIB 318(例如,FIB CT 318)相关联的一致性表中。一旦接收到,PFE 202为新的路由条目计算单独校验和,并将区域ID、时间戳、单独校验和、和其他区域元数据存储在与转发表320(例如,PFE CT 326)相关联的一致性表中,该一致性表与相应的路由条目相关联。
RPD 306不时地生成具有由内核310生成的相关联时间戳的标记物。RPD 306将标记物放置在内核310中,以发起一致性检查。该标记物使得内核310将该标记物传播到PFE202,并确认该标记物的接收。PFE 202也确认标记物的接收。在一些示例中,RPD 306在对RIB 316进行阈值数量的变化之后生成标记物。该标记物使得RPD 306、内核310和PFE 202分别对RIB 316、FIB 318和转发表320执行一致性检查。此外,响应于一致性检查,RPD 306可以响应于从收集器守护进程114接收到“NACK”消息(例如,指示发现不一致的任何消息),重新发出标记物(例如,发送具有相同ID和时间戳的标记物)。在接收到阈值数量的NACK消息之后,RPD 306可以生成强力标记物,该强力标记物使得RPD 306、内核310和PFE 202分别从RIB 316、FIB 318和转发表320向收集器守护进程114提供一致性信息和关于单独路由条目的信息(例如,每个路由条目的单独校验和等)。在一些示例中,RPD 306可以将强力标记物重新发出阈值次数,以便收集器守护进程114能够过滤掉任何误报。
命令行接口守护进程304(“CLI 304”)提供了一个壳(shell),通过该壳,管理员或其他管理实体可以使用基于文本的命令来修改网络装置102的配置。简单网络管理协议守护进程308(“SNMP 308”)包括SNMP代理,该SNMP代理从管理实体接收SNMP命令以设置和检索网络装置102的配置和管理信息。例如,使用CLI 304和SNMP 308,管理实体可以启用/禁用以及配置服务,安装路由,启用/禁用以及配置速率限制器,并且配置接口。如下面详细描述的,RPD 306、CLI 304和SNMP 308配置数据平面328,以实现配置的服务,并且以其他方式添加/修改/删除路由。
收集器守护进程114分别基于RIB 316、FIB 318和转发表320中的路由条目的区域,从RPD 306、内核310和PFE 202收集一致性信息。响应于RPD 306生成标记物,RPD 306、内核310和PFE 202向收集器守护进程114提供一致性信息。一致性信息包括每个区域中的路由条目数量的逐区域计数(有时称为“区域计数”)以及基于每个区域中的单独路由条目的逐区域校验和的计算(有时称为“区域校验和”)。最初,收集器守护进程114对RIB 316、FIB 318和转发表320之间的区域计数进行逐区域比较。如果RIB 316、FIB 318和转发表320之间的任何区域计数不匹配,则收集器114确定存在不一致,并向RPD 306发送NACK消息,并结束一致性检查。收集器守护进程114对RIB 316、FIB 318和转发表320之间的区域校验和进行逐区域比较。如果RIB 316、FIB 318和转发表320之间的任何区域校验和不匹配,则收集器114确定存在不一致,并向RPD 306发送NACK消息。当区域计数和区域校验和都指示路由条目一致时,收集器守护进程114发送“ACK”消息(例如,指示没有发现不一致的任何消息)。
在一些示例中,一致性检查可能是强力标记的结果。在这样的示例中,收集器守护进程接收表示RIB 316、FIB 318和转发表320中的每个路由条目的路由条目(例如,单独校验和)的值。收集器守护进程114对这些表示值进行逐条目的比较,以识别RIB 316、FIB 318和转发表320之间哪些特定条目不一致。在一些这样的示例中,收集器守护进程114执行所描述的技术,以首先确定哪些区域具有不一致的路由条目。在这样的示例中,收集器守护进程114对不一致的区域执行逐条目的比较。收集器守护进程114报告(例如,向RPD 306等)发现哪些路由条目不一致。在一些示例中,RPD 306可以促使多次执行强力一致性检查。在这样的示例中,收集器守护进程114跟踪发现不一致的路由条目,并报告在多次强力一致性检查中发现不一致的任何路由条目,并且在一些示例中,不报告仅在一次强力一致性检查中发现不一致的路由条目。
PFE 202实现数据平面328(也称为“转发平面”)功能,以处理从接收封包的入口接口到发送封包的出口接口的封包处理。数据平面328使用由控制平面300安装的转发表320,来确定通过网络装置102的数据封包转发,将服务、速率限制封包流、过滤封包应用到数据平面328,并且以其他方式处理封包。虽然图3仅详细示出了PFE 202A,但是每个PFE 202包括执行基本相似功能的相似组件。
PFE 202将要对由PFE接收的封包执行的动作绑定到封包的一个或多个属性的标识。即,在识别某些封包属性后,PFE 202执行绑定到这些属性的动作。封包属性可以包括封包元数据(例如,特定封包的入口接口或出口接口(由PFE确定))以及封包和封包报头所携带的信息,例如,封包报头字段、目的地路由前缀、第四层(L4)或传输层协议目的地端口以及封包有效载荷。绑定到封包特征的动作可以包括计数、丢弃、转发到指定的下一跳或接口、过滤器、采样、速率限制和服务质量(QoS)标记、差别服务(DiffServ)、负载平衡、入侵检测和预防、L2服务等级(CoS)以及L2或L2虚拟专用网络(L2VPN)交换。
PFE微处理器330可以执行微内核,以提供通过转发单元214处理封包的操作环境,并执行PFE级一致性检查。例如,PFE微处理器330可以执行支持一致性检查的操作,例如,计算每个路由条目区域的校验和(例如,区域校验和)并且执行每个区域中的每个路由条目的计数(例如,区域计数)。在一些示例中,响应于接收到执行一致性检查的指示符,PFE微处理器330确认该请求,并且使用存储在一致性表326中的单独校验和,计算一致性表326中限定的每个区域的校验和。此外,PFE微处理器330对每个区域中的每个路由条目进行计数。PFE微处理器330向收集器守护进程114发送区域校验和以及区域条目计数(统称为“一致性信息”)。响应于接收到执行强力一致性检查的指示符,PFE微处理器330生成一致性信息并提供表示每个路由条目的值(例如,单独校验和等)。
图4是示出根据本公开中描述的原理执行一致性检查的收集器守护进程114的概念图。RPD 306生成标记物400。例如,RPD 306可以(a)周期性地生成标记物400(例如,每小时、每天等),(b)响应于事件(例如,网络装置102的重启等)生成标记物400,(c)在对RIB316的路由条目进行阈值数量的改变之后生成标记物400,和/或(d)在微处理器314的处理时间的阈值数量的时间片段(有时称为“时期”)之后生成标记物400。RPD 306将标记物400传送给内核310。在一些示例中,RPD 306将标记物400放入内核310的时期队列中。内核310为标记物400生成时间戳,并将其传送回RPD 306。内核310还将标记物400和时间戳传送给PFE 202。一旦接收到标记物400,内核310和PFE 202向RPD 306发送响应,确认标记物400。响应于确认标记物的响应,RPD 306发送计算消息。在接收到计算消息后,内核310和PFE202开始计算一致性信息402。另外,RPD 306计算RIB 318的一致性信息402。在一些示例中,当内核310和/或PFE 202未能确认标记物400时,RPD 306可以重新发出标记物400和/或可以生成错误(例如,要传送给管理员)。
RPD 306、内核310和PFE 202均计算一致性信息402。一致性信息402被发送到收集器守护进程114。在一些示例中,RPD 306、内核310和PFE 202还发送消息,该消息指示它们完成了计算一致性信息402(例如,“完成消息”)。在一些这样的示例中,收集器守护进程114知道RPD 306、内核310和每一个PFE 202,使得如果收集器114在阈值时间内没有从所有预期源接收到完成消息,则收集器守护进程114发送包括NACK消息的状态消息404。收集器守护进程114对由RPD 306、内核310和PFE 202提供的一致性信息402执行一致性检查。当收集器守护进程114确定一个或多个区域包括一致的路由条目时,它发送包括NACK消息的状态消息404。否则,当收集器守护进程114确定RIB 316、FIB 318和转发表320上的区域一致时,发送具有ACK消息的状态消息404。
图5是根据本公开中描述的原理发起RIB 316、FIB 318和转发表320中的路由条目之间的一致性检查的示例方法的流程图。最初,RPD 306触发一致性检查(502)。例如,RPD306可以响应于事件(例如,网络装置102的重启等)或响应于RIB 316中路由条目的阈值数量的变化(有时称为“扰动”)触发一致性检查。RPD 306生成标记物400(502)。例如,RDP 306可以将标记物400插入内核310的时期。在处理标记物400时,内核310将时间戳分配给标记物400,并且将具有时间戳的标记物400传播给PFE 202(例如,通过经由PFE接口212发送标记物400等)(506)。内核310还向RPD 306发送时间戳。RPD 306继续等待(在508为否),直到从内核310和PRF 202接收到确认。在一些示例中,在阈值时间量之后,如果RDP 306没有接收到内核310和PFE 202的确认,则可以生成错误。当接收到确认时(在506为是),系统继续一致性检查(510)。下面在图6中描述了执行一致性检查的示例方法。
图6是根据本公开中描述的原理确定一致性信息以对封包转发引擎的转发表执行一致性检查的示例方法的流程图。在接收到来自内核310和PFE 202的确认之后,RPD 306向内核310设置指令(有时称为“计算机消息”),以计算校验和(602)。内核310将该指令传播到PFE 202(604)。RPD 306、内核310和PFE 202基于标记物400的时间戳执行区域条目计数(分别为606、608、610)。为了执行区域条目计数,相应的组件在每个区域中执行与时间戳相关联的路由条目的逐区域计数(例如,存储在相应的一致性表322、324和326中),该时间戳比与标记物400相关联的时间戳更早。RPD 306、内核310和PFE 202基于标记物400的时间戳计算区域校验和(分别为612、614、616)。为了执行区域校验和,各个组件在每个区域中执行与时间戳相关联的路由条目的逐区域校验和计算(例如,使用存储在对应的一致性表322、324和326中的单独校验和),该时间戳比与标记物400相关联的时间戳更早。在一些示例中,当内核310或一个PFE 202正在计算区域的校验和时,该区域的路由条目可能改变(例如,先前的路由条目更新最终应用于特定的PFE 200等)。下面在图10中描述了处理这种情况的示例方法。RPD 306、内核310和PFE 202向收集器守护进程114发送区域计数和区域校验和(例如,一致性信息402)(分别为618、620、622)。虽然上面一起描述了框606至622,但是由于变化的处理器容量和处理负载,RPD 306、内核310和每个PFE 202异步地执行这些步骤,同时收集器守护进程114等待来自每个组件的一致性信息402。
在接收到来自RPD 306、内核310和PFE 202的一致性信息402之后,收集器守护进程114检查RIB 316、FIB 318和转发表320的一致性(624)。下面在图7中描述了检查一致性的示例方法。当RIB 316、FIB 318和转发表320的所有区域一致时(在626为是),收集器守护进程114发送具有ACK消息的状态消息404(630)。当RIB 316、FIB 318和转发表320的至少一个区域不一致时(在626为否),收集器守护进程114发送具有NACK消息的状态消息404(632)。RPD 306处理包含NACK消息的状态消息404(634)。下面在图8中描述了处理NACK消息的示例方法。
图7是根据本公开中描述的原理来检查PFE 202的转发表320、RIB 316和FIB 318的一致性的示例方法的流程图。收集器守护进程114等待(在702为否),直到已经从RPD306、内核310和PFE 202接收到所有一致性信息402(702)。在一些示例中,当收集器守护进程114已经等待阈值时间段还没有接收到所有预期的一致性信息402时,收集器守护进程114发送具有NACK消息的状态消息404。当已经接收到所有一致性信息402时(在702为是),收集器守护进程114选择区域(704)。收集器守护进程114比较一致性信息402中的区域计数(706)。在一些示例中,区域计数可以细分为子计数,子计数将分配给区域的路由条目分类为基于特征的子组(例如,路由数量、少于24位的路由数量、少于48位的路由数量、少于96位的路由数量、多于96位的路由数量等)。当区域条目计数不完全匹配时(在708为否),收集器守护进程114确定RIB 316、FIB 318和/或一个或多个转发表320中的至少两项之间存在不一致(710)。在一些示例中,在确定存在不一致时,收集器守护进程114发送具有NACK消息的状态消息404(参见上面图6的框634)。
当区域条目计数都匹配时(在708为是),然后收集器守护进程114比较所选区域的区域校验和(712)。当区域校验和不完全匹配时(在714为否),收集器守护进程114确定RIB316、FIB 318和/或一个或多个转发表320中的至少两项之间存在不一致(710)。当区域校验和都匹配时(在714为是),收集器守护进程114确定是否要检查另一区域(716)。当存在另一区域时(在716为是),收集器守护进程114选择下一个要检查的区域(704)。否则,在没有另一区域的情况下(在716为否),收集器守护进程114确定RIB 316、FIB 318和转发表320是一致的(718)。在一些示例中,随后收集器守护进程114发送具有ACK消息的状态消息404(参见上面图6的框630)。
图8是根据本公开中描述的原理对封包转发引擎的转发表发起强力一致性检查的示例方法的流程图。最初,RPD 306接收具有NACK消息的状态消息404,该消息指示在最近的一致性检查期间,确定至少一个区域不一致(802)。RPD 306响应于连续的一致性检查,确定是否发生了导致至少一个NACK消息的阈值数量的一致性检查(例如,3个、5个、7个等)(804)。例如,因为RPD 306可以在一个或多个PFE 202的转发表320中反映路由条目更新之前发起一致性检查,所以一个转发表320对于一个一致性检查可能是不一致的,但是对于后续的一致性检查可能是一致的。以这种方式,收集器守护进程114有助于检查一致性,同时对更新慢的PFE 202有一定的容忍度。当没有满足阈值数量的一致性检查时(在804为否),RPD 306执行后续一致性检查(例如,通过用导致先前一致性检查的相同时间戳重新发出标记物)(806)。
当阈值数量的一致性检查已经导致至少一个NACK消息时(在804为是),RPD 306发出强力标记物(808)。强力标记物使RPD 306、内核310和PFE 202将一致性信息402和表示包含在RIB 316、FIB 318和转发表320中的每个路由条目的信息(例如,单独校验和、路由条目等)转发给收集器守护进程114。该表示性信息对于每个路由条目都是唯一的,从而通过执行表示性信息的逐区域的比较,收集器守护进程114能够确定哪些特定路由条目不一致。收集器守护进程114从RPD 306、内核310和PFE 202接收强力标记物的结果(例如,一致性信息402和表示性信息等)(810)。基于一致性信息402和表示性信息,收集器守护进程114识别不一致的路由条目(812)。在一些示例中,收集器守护进程114可以首先执行逐区域的比较(例如,使用区域计数和/或区域校验和等),来确定哪些区域具有不一致的路由条目,然后可以对这些区域执行逐条目的检查。
RPD 306确定强力标记物是否已经被设置了阈值次数(814)。例如,RPD 306可以发出强力标记物多达3次,以消除误报结果。当强力标记物没有被设置阈值次数时(在814为否),则收集器守护进程114促使重新发出强力标记物(808)。否则,当强力标记物已经被设置了阈值次数时,收集器守护进程114提供不一致条目的指示(例如,经由图形画面)(816)。在一些示例中,收集器守护进程114提供在强力标记物的多次迭代中不一致的路由条目的指示。
图9是根据本公开中描述的原理将条目添加到RIB 316中的示例方法的流程图。最初,RPD 306接收要添加到RIB 316的新路由条目(902)。例如,管理员可以经由CLI守护进程304添加路由条目。RPD 306将新路由条目分配给RIB 316中定义的一个区域(904)。RPD 306基于新路由条目的特征和/或区域的特征来分配新路由条目。例如,RPD 306可以将新路由条目分配给条目数量最低的区域。作为另一示例,RPD 306可以将新路由条目分配给包括类似类型的路由条目的区域。RPD 306将新路由条目和所分配的区域的标识符发送给内核310和PFE 202(906)。RPD 306从内核310接收时间戳(908)。RPD 306为新路由条目计算单独校验和(910)。此外,RPD 306在RIB一致性表322中生成条目,该条目包括(a)区域ID,(b)单独校验和,以及(c)时间戳(912)(有时统称为“一致性值”)。类似地,内核310和PFE 202为新路由条目计算单独校验和,并在其相应的一致性表中生成条目。
图10是根据本公开中描述的原理在执行一致性检查的同时处理路由条目更新的示例方法的流程图。因为对路由条目的更新定时可能有时是零星的,并且PFE 202和RPD306之间的通信是异步的,所以PFE 202可以在执行一致性检查的同时接收对转发表320的更新(1002)。PFE 202确定当前是否在为分配路由条目的区域计算校验和(1004)。当PFE202当前没有为分配路由条目的区域计算校验和时(在1004为否),该方法结束。当PFE 202当前在为分配路由条目的区域计算校验和时(在1004为是),PFE 202确定路由条目是否在相关的时间表内(1006)。当与路由条目相关联的时间戳在造成一致性检查的标记物的时间戳之前时,路由条目在相关的时间表内。当路由条目不在相关的时间表内时(在1006为否),PFE 202继续计算区域校验和(1008)。当路由条目在相关的时间表内时(在1006为是),PFE202中止(例如,停止)校验和计算(和一致性检查)1010。随后PFE 202发送具有NACK消息的状态消息404。
本公开中描述的技术可以至少部分地以硬件、软件、固件或其任意组合来实现。例如,所描述的技术的各个方面可以在一个或多个处理器内实现,包括一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或任何其他等效的集成或离散逻辑电路以及这些组件的任何组合。术语“处理器”或“处理电路”通常可以指任何前述逻辑电路(单独或与其他逻辑电路组合)或任何其他等效电路。包括硬件的控制单元也可以执行本公开的一种或多种技术。
这种硬件、软件和固件可以在同一设备内或在单独的设备内实现,以支持本公开中描述的各种操作和功能。此外,任何所描述的单元、模块或组件可以一起或分开实现为分立但可互操作的逻辑装置。将不同的特征描述为模块或单元,旨在强调不同的功能方面,并不一定意味着这些模块或单元必须由单独的硬件或软件组件来实现。相反,与一个或多个模块或单元相关联的功能可以由单独的硬件或软件组件来执行,或者集成在公共或单独的硬件或软件组件中。
本公开中描述的技术也可以在包含指令的计算机可读介质中体现或编码,例如,计算机可读存储介质。在计算机可读介质中嵌入或编码的指令可以使可编程处理器或其他处理器执行该方法,例如,当执行指令时。计算机可读介质可以包括非暂时性计算机可读存储介质和瞬态通信介质。有形且非暂时性的计算机可读存储介质可以包括随机存取存储器(RAM)、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、硬盘、CD-ROM、软盘、盒式磁带、磁介质、光学介质或其他计算机可读存储介质。应当理解,术语“计算机可读存储介质”是指物理存储介质,而不是信号、载波或其他瞬态介质。
已经描述了各种示例。这些和其他示例在所附权利要求的范围内。
Claims (17)
1.一种用于计算机网络的方法,所述方法包括:
由在控制平面上操作的路由协议守护进程RPD生成标记物,所述标记物使得网络装置的RPD、控制平面内核和封包转发引擎中的每一者分别计算路由信息库RIB、转发信息库FIB和相应转发表内的多个区域的区域校验和,其中,基于被分配给所述多个区域中的一个区域的路由对象的单独校验和计算每个区域校验和;
由收集器守护进程使用所述区域校验和对所述RIB、所述FIB和所述转发表执行一致性检查,以确定所述RIB、所述FIB和所述转发表中每一者的所述路由对象是否彼此一致;并且
当所述RIB、所述FIB和所述转发表彼此不一致时,执行与所述RIB、所述FIB和所述转发表中的至少一者相关的动作。
2.根据权利要求1所述的方法,其中,执行所述一致性检查包括:针对于所述多个区域中的每一个区域,比较由所述RPD、所述控制平面内核和所述封包转发引擎计算的所述区域校验和。
3.根据权利要求2所述的方法,其中,当所述多个区域中的至少一个区域的所述区域校验和不匹配时,所述RIB、所述FIB和所述转发表中每一者的路由对象彼此不一致。
4.根据权利要求1和2中任一项所述的方法,其中,所述标记物使得所述RPD、所述控制平面内核和所述封包转发引擎中的每一者针对所述多个区域中的每一个区域计算所述路由对象的区域计数。
5.根据权利要求4所述的方法,其中,执行所述一致性检查包括:
对于所述多个区域中的每一个区域,比较所述区域计数,并且当所述多个区域中的至少一个区域的所述区域计数不匹配时,确定所述RIB、所述FIB和所述转发表中的每一者的路由对象彼此不一致;并且
当所述区域计数匹配时,比较所述区域校验和,并且当所述多个区域中的至少一个区域的所述区域校验和不匹配时,确定所述RIB、所述FIB和所述转发表中的每一者的路由对象彼此不一致。
6.根据权利要求1和2中任一项所述的方法,其中,执行所述动作包括:当使用所述标记物重复所述一致性检查未达到阈值次数时,通过重新发出所述标记物来重复所述一致性检查。
7.根据权利要求6所述的方法,其中,执行所述动作包括:当使用所述标记物重复所述一致性检查达到所述阈值次数时,生成强力标记物,以使所述RPD、所述控制平面内核和所述封包转发引擎计算所述区域校验和,并分别向所述收集器守护进程提供表示所述RIB、所述FIB和所述转发表中的路由对象的单独校验和。
8.根据权利要求7所述的方法,还包括:由所述收集器守护进程基于表示路由对象的单独校验和,来确定在所述RIB、所述FIB和所述转发表之间哪些路由对象不一致。
9.一种网络装置,包括:
控制单元,包括执行内核的处理器,所述内核操作路由协议守护进程RPD并且通信地耦接到收集器守护进程,控制平面存储路由信息库RIB、相关联的第一一致性表和转发信息库FIB以及相关联的第二一致性表;以及
多个封包转发引擎,每个封包转发引擎存储转发表和相关联的第三一致性表;
其中,响应于所述RPD生成标记物,所述RPD、所述控制平面内核和所述封包转发引擎中的每一者被配置为分别计算所述RIB、所述FIB和所述转发表内的多个区域的区域校验和,其中,基于被分配给所述多个区域中的一个区域的路由对象的单独校验和计算每个区域校验和,所述单独校验和存储在所述一致性表中;
其中,所述收集器守护进程被配置为:
使用所述区域校验和对所述RIB、所述FIB和所述转发表执行一致性检查,以确定所述RIB、所述FIB和所述转发表中的每一者的路由对象是否彼此一致;并且
当所述RIB、所述FIB和所述转发表彼此不一致时,执行与所述RIB、所述FIB或所述转发表中的至少一者相关的动作。
10.根据权利要求9所述的网络装置,其中,为了执行所述一致性检查,所述收集器守护进程还被配置为:对于所述多个区域中的每一个区域,比较由所述RPD、所述控制平面内核和所述封包转发引擎计算的所述区域校验和。
11.根据权利要求10所述的网络装置,其中,当所述多个区域中的至少一个区域的所述区域校验和不匹配时,所述RIB、所述FIB和所述转发表中的每一者的路由对象彼此不一致。
12.根据权利要求9和10中任一项所述的网络装置,其中,响应于所述RPD生成所述标记物,所述RPD、所述控制平面内核和所述封包转发引擎被配置为针对所述多个区域中的每一个区域计算所述路由对象的区域计数。
13.根据权利要求12所述的网络装置,其中,为了执行所述一致性检查,所述收集器守护进程还被配置为:
对于所述多个区域中的每一个区域,比较所述区域计数,并且当所述多个区域中的至少一个区域的所述区域计数不匹配时,确定所述RIB、所述FIB和所述转发表中的每一者的路由对象彼此不一致;并且
当所述区域计数匹配时,比较所述区域校验和,并且当所述多个区域中的至少一个区域的所述区域校验和不匹配时,确定所述RIB、所述FIB和所述转发表中的每一者的路由对象彼此不一致。
14.根据权利要求9和10中任一项所述的网络装置,其中,执行所述动作包括:当使用所述标记物重复所述一致性检查没有达到阈值次数时,通过重新发出所述标记物来重复所述一致性检查。
15.根据权利要求14所述的网络装置,其中,执行所述动作包括:当使用所述标记物重复所述一致性检查达到所述阈值次数时,生成强力标记物,以使所述RPD、所述控制平面内核和所述封包转发引擎计算所述区域校验和,并分别向所述收集器守护进程提供表示所述RIB、所述FIB和所述转发表中的路由对象的单独校验和。
16.根据权利要求15所述的网络装置,其中,所述收集器守护进程还被配置为:基于表示路由对象的单独校验和,来确定在所述RIB、所述FIB和所述转发表之间哪些路由对象不一致。
17.一种用指令编码的计算机可读存储介质,所述指令用于使一个或多个可编程处理器执行根据权利要求1至8中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/835,970 | 2020-03-31 | ||
US16/835,970 US11165684B2 (en) | 2020-03-31 | 2020-03-31 | Route consistency checker for network devices |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113472670A CN113472670A (zh) | 2021-10-01 |
CN113472670B true CN113472670B (zh) | 2023-04-25 |
Family
ID=71103281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010542824.7A Active CN113472670B (zh) | 2020-03-31 | 2020-06-15 | 用于计算机网络的方法、网络装置及存储介质 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11165684B2 (zh) |
EP (1) | EP3890254B1 (zh) |
CN (1) | CN113472670B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114615216B (zh) * | 2022-03-11 | 2023-07-21 | 深圳市风云实业有限公司 | 一种基于交换芯片的路由表动态调整方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101171799A (zh) * | 2005-05-11 | 2008-04-30 | 三星电子株式会社 | 在整个无线网络中维持路由表中的信息一致的方法和设备 |
CN108616455A (zh) * | 2018-04-23 | 2018-10-02 | 上海泰砚通信技术有限公司 | 一种单机堆叠系统的路由同步方法 |
CN110912766A (zh) * | 2019-10-18 | 2020-03-24 | 国家计算机网络与信息安全管理中心 | 一种通讯网络多平面数据一致性校验方法 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7440394B2 (en) * | 2002-06-24 | 2008-10-21 | Nokia Corporation | Method and system for redundant IP forwarding in a telecommunications network |
US20070022479A1 (en) * | 2005-07-21 | 2007-01-25 | Somsubhra Sikdar | Network interface and firewall device |
US8713627B2 (en) * | 2008-08-14 | 2014-04-29 | Juniper Networks, Inc. | Scalable security services for multicast in a router having integrated zone-based firewall |
US8369345B1 (en) * | 2009-11-13 | 2013-02-05 | Juniper Networks, Inc. | Multi-router system having shared network interfaces |
US10218611B2 (en) * | 2014-06-30 | 2019-02-26 | Juniper Networks, Inc. | Label distribution protocol (LDP) signaled multi-protocol label switching rings |
US9660866B1 (en) * | 2014-12-31 | 2017-05-23 | Juniper Networks, Inc. | Readiness detection for data plane configuration of label-switched paths |
US9998565B2 (en) * | 2015-05-25 | 2018-06-12 | Juniper Networks, Inc. | Selecting and monitoring a plurality of services key performance indicators using TWAMP |
US11042430B2 (en) | 2017-02-21 | 2021-06-22 | Futurewei Technologies, Inc. | Elastic consistency high availability in multiple boards |
US10812336B2 (en) | 2017-06-19 | 2020-10-20 | Cisco Technology, Inc. | Validation of bridge domain-L3out association for communication outside a network |
US10505847B1 (en) * | 2018-03-29 | 2019-12-10 | Juniper Networks, Inc. | Destination MAC validation per logical interface of a network device |
EP3595245B1 (en) * | 2018-07-13 | 2021-06-16 | Juniper Networks, Inc. | Network as a service using virtual nodes |
-
2020
- 2020-03-31 US US16/835,970 patent/US11165684B2/en active Active
- 2020-06-15 CN CN202010542824.7A patent/CN113472670B/zh active Active
- 2020-06-16 EP EP20180222.0A patent/EP3890254B1/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101171799A (zh) * | 2005-05-11 | 2008-04-30 | 三星电子株式会社 | 在整个无线网络中维持路由表中的信息一致的方法和设备 |
CN108616455A (zh) * | 2018-04-23 | 2018-10-02 | 上海泰砚通信技术有限公司 | 一种单机堆叠系统的路由同步方法 |
CN110912766A (zh) * | 2019-10-18 | 2020-03-24 | 国家计算机网络与信息安全管理中心 | 一种通讯网络多平面数据一致性校验方法 |
Also Published As
Publication number | Publication date |
---|---|
US11165684B2 (en) | 2021-11-02 |
EP3890254B1 (en) | 2024-03-27 |
EP3890254A1 (en) | 2021-10-06 |
CN113472670A (zh) | 2021-10-01 |
US20210306249A1 (en) | 2021-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10320691B1 (en) | Visibility packets | |
US20190014395A1 (en) | Reliable telemetry | |
US7912055B1 (en) | Method and apparatus for configuration and analysis of network multicast routing protocols | |
Javani et al. | Age of information in multiple sensing | |
US20190280914A1 (en) | Scalability, fault tolerance and fault management for twamp with a large number of test sessions | |
US10411972B2 (en) | Determining impact of network failures | |
US11133980B2 (en) | Detecting sources of computer network failures | |
CN111404822B (zh) | 数据传输方法、装置、设备以及计算机可读存储介质 | |
US7478156B1 (en) | Network traffic monitoring and reporting using heap-ordered packet flow representation | |
US20210328939A1 (en) | Dropped packet detection and classification for networked devices | |
CN112073234A (zh) | 一种故障检测方法、装置、系统、设备及存储介质 | |
Jain et al. | Network Imprecision: A New Consistency Metric for Scalable Monitoring. | |
CN105634977A (zh) | 发现路径最大传输单元的方法和装置 | |
CN113472670B (zh) | 用于计算机网络的方法、网络装置及存储介质 | |
WO2022134323A1 (en) | Methods and systems for distributed network verification | |
US10547524B2 (en) | Diagnostic transparency for on-premise SaaS platforms | |
Liu et al. | A hierarchical failure detector based on architecture in vanets | |
CN116723154A (zh) | 一种基于负载均衡的路由分发方法及系统 | |
CN114157595B (zh) | 一种通信系统、数据处理方法以及相关设备 | |
Gao et al. | UniROPE: Universal and robust packet trajectory tracing for software-defined networks | |
Rodrigues et al. | Bundling messages to reduce the cost of tree-based broadcast algorithms | |
JP2017519469A (ja) | 候補問題ネットワーク・エンティティの識別 | |
US11784937B2 (en) | Dropped packet detection and classification for networked devices | |
US11665079B1 (en) | Probe-triggered full device state capture, export, and correlation | |
CN114285791B (zh) | 数据传输方法、装置、计算机设备及存储介质 |
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 |