一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

在分段路由中的出口节点处理流的制作方法

2022-04-30 02:46:17 来源:中国专利 TAG:


1.本公开涉及计算机网络,并且更具体地,涉及计算机网络内的工程业务流(engineering traffic flow)。


背景技术:

2.计算机网络是交换数据和共享资源的互连计算设备的类集。在基于分组的网络(诸如互联网)中,计算设备通过将数据划分为被称为分组的小块来传送数据,在网络上单独地将这些小块从源设备路由到目的地设备。该目的地设备从分组中提取数据,并且将数据组装成其原始形式。
3.网络内的某些设备(诸如路由器)使用路由协议来通过网络交换和累积描述可用路由的拓扑信息。这允许路由器构造其自己的网络路由拓扑图。在接收到传入的数据分组之后,路由器检查分组内的信息,并且根据累积的拓扑信息来转发分组。
4.分段路由(该分段路由还可以被称为源分组路由或者联网的源分组路由(spring))是使得入口路由器能够在不依赖网络中的中间节点来确定其应该采取的路径的情况下通过节点和链路的特定集合来引导分组的控制平面架构。可以通过包括sr-mpls(具有多协议标签交换的分段路由)、srv6(通过ipv6的分段路由)和/或srm6(被映射到ipv6的分段路由,或者有时被称为srv6 )的转发平面来使分段路由实例化。在sr-mpls中,每个分段被编码为mpls标签堆栈的成员。在srv6中,每个分段按照分段列表的成员被编码在分段路由报头中。在srm6中,每个分段作为分段列表的成员被编码在压缩的路由报头中。


技术实现要素:

5.本公开描述了技术,这些技术包括:在srm6网络中的出口节点确定在没有压缩的路由报头的情况下处理可以到达的分组的方式。在一些情况下,诸如当网络以srm6简化模式进行操作时,可以在没有分段路由报头或压缩的分段路由报头的情况下和/或在没有标识剩余要处理的分段的数量的信息的情况下构造分组。在用于分组的路由路径仅具有单个地址或者sid的情况下,可能发生这种情况。在没有包括被用于分段路由的信息的路由报头的情况下,节点可能很难确定恰当地处理分组的方式。在本文中所描述的技术可以使得节点即使在不存在分段路由报头或压缩的路由报头的情况下,也能够标识分组已经到达其目的地的时间。这种技术可以涉及:存储使得节点能够确定其应该执行隧道终止还是充当用于分组的出口节点的信息。
6.在一个示例中,节点可以观察在网络中发生的分段路由通告,并且基于这种通告来存储使得节点能够标识分组的路由信息,节点针对该分组执行隧道终止。在另一示例中,节点可以基于这种通告来配置标识已经到达其目的地的分组的过滤器,并且为了对分组进行匹配,执行与节点充当出口节点一致的动作。
7.在一些示例中,本公开描述了根据本公开的一个或多个方面的由网络路由器或者其他网络设备执行的操作。在一个具体示例中,本公开描述了一种方法,该方法包括:由分
段路由网络的出口节点接收分段路由通告;由出口节点基于分段路由通告来配置使得出口节点能够在没有被用于分段路由的路由报头的情况下识别到达出口节点的封装分组的信息;由出口节点接收不具有被用于分段路由的路由报头的分组;以及由出口节点基于所存储的信息来对分组进行解封装。
8.在另一示例中,本公开描述了一种系统,该系统包括:存储系统;以及分段路由网络内的节点中的处理电路装置,其中处理电路装置具有对存储设备的访问并且被配置为:接收分段路由通告,基于分段路由通告来配置使得节点能够在没有被用于分段路由的路由报头的情况下识别到达节点的封装分组的信息,接收不具有被用于分段路由的路由报头的分组,并且基于所存储的信息来对分组进行解封装。
9.在另一示例中,本公开描述了一种计算机可读存储介质,该计算机可读存储介质包括指令,这些指令在被执行时将处理电路装置配置为:接收分段路由通告;基于分段路由通告来在没有路由报头的情况下配置使得节点能够识别到达节点的封装分组的信息;接收不具有路由报头的分组;并且基于所存储的信息来对分组进行解封装。
附图说明
10.图1a是图示了根据本公开的一个或多个方面的其中使用srv6(通过ipv6的分段路由)来对分组进行路由的示例网络的框图。
11.图1b是图示了根据本公开的一个或多个方面的其中使用srm6(被映射到ipv6的分段路由)来对分组进行路由的示例网络的框图。
12.图1c是图示了根据本公开的一个或多个方面的其中使用srm6(被映射到ipv6的分段路由)来以简化模式对分组进行路由的示例网络的框图。
13.图2是图示了能够根据在本文中所描述的技术来进行操作的示例路由器的框图。
14.图3是图示了根据本公开的一个或多个方面的由示例节点执行的操作的流程图。
具体实施方式
15.图1a是图示了根据本公开的一个或多个方面的其中使用srv6(被映射到ipv6的分段路由)来对分组进行路由的示例网络的框图。图1a图示了网络100,在该网络100中,源115通过网络向目的地125发送分组(例如分组101)。为了到达分组101的目的地,通过一系列节点或者路由器来在网络100上对分组101进行路由。网络100内包括节点120a、120b、120c、120d、120e、120f和120g(“节点120”或者“路由器120”)。如在图1a中所图示的,网络100还包括控制器128,该控制器128可以通过网络150来与一个或多个节点120通信。在一些示例中,控制器128可能能够接收来自操作员或者管理员(未示出)的输入以例如配置网络100的各个方面。
16.在图1a中所示出的示例中,每个节点120能够执行路由操作。附加地,节点120a、节点120b、节点120f和节点120g是能够依照srv6进程来对分组进行路由的srv6感知节点或者路由器。其他节点120(例如节点120d)可能不是srv6感知节点,但是这种节点可能能够依照ipv6来对分组进行路由。在srv6网络中,当入口节点(例如节点120a)从源115接收到分组101时,节点120a创建在图1a中被图示为srv6分组102的srv6分组。为了创建srv6分组102,节点120a通过添加ipv6报头131和分段路由报头132以及计数器字段或者“所剩分段”字段
135来对分组101(和/或从源115接收到的有效负载139)进行封装。
17.因此,分组102包括在图1a中所示出的形式的ipv6报头131、分段路由报头132、所剩分段字段135和有效负载139。有效负载139是从源115接收到的分组101内所包括的有效负载,并且由分组102进行封装。ipv6报头131是指定分组的源地址和目的地地址以及与分组相关联的协议的报头。分组102内所包括的源地址和目的地地址由文本“1::1|2::2”表示,该文本“1::1|2::2”指示:针对节点120a处的分组102,源地址为“1::1”,并且目的地地址为“2::2”。
18.分段路由报头132是地址的列表,每个地址与分组102沿着至目的地125的期望路径或者所选择的路径所要访问的一个节点120相对应。具体地,分组102包括三个地址(7::7、6::6和2::2)的列表。如在图1a中所图示的,地址2::2与节点120b相对应,地址6::6与节点120f相对应,并且地址7::7与节点120g相对应。因此,并且如在图1a中所图示的,分组102待从节点120a被路由到节点120b,然后被路由到节点120f(例如通过节点120d),并且然后被路由到节点120g。
19.所剩分段字段135是剩余的在srv6路由中将被遍历的分段的数量的计数。在图1a中的入口处,所剩分段字段135具有值3,这指示剩下全部三个分段将被遍历。在一些示例中,所剩分段字段135可以用作将被用作路径的下一分段的指针。
20.在图1a的示例中,节点120可以通过节点120来对分组进行路由。例如,在可以参照图1a来描述的示例中,如上所述,节点120a从源115接收分组101,并且将分组101封装为分组102。当对分组101进行封装时,节点120a将分段路由报头132中的第一地址(“2::2”)复制到分组102的ipv6报头131内的目的地地址字段,使得针对节点120a处的分组102的源/目的地地址对为如在图1a中所图示的“1::1|2::2”。然后,节点120a将分组102路由到节点120b,该节点120b具有地址2::2。节点120a还使所剩分段字段135递减,使得当分组102到达节点120b时,所剩分段字段135具有值“2”。
21.当节点120b接收到分组102时,节点120b确定所剩分段字段135不为零,因此,节点120b得出以下结论:分组102尚未到达其目的地。节点120b将分段路由报头132中的下一地址(“6::6”)复制到分组102的ipv6报头131内的目的地地址字段。节点120b将分组102路由到节点120f,该节点120f具有地址6::6。在分组102离开节点120b之前,节点120b还使所剩分段字段135递减,使得当分组102到达节点120f时,所剩分段字段135具有值“1”。在一些示例中,节点120b与节点120f之间可能不存在直接路径或者单跳路径,因此,当将分组102路由到节点120f时,节点120b可以选择至节点120f的成本最小的路径。如在图1a中所示出的,节点120b将分组102路由到节点120d(该节点120d可能不是srv6感知节点),并且然后节点120d将分组102路由到节点120f。
22.当节点120f接收到分组102时,节点120f确定所剩分段字段135仍然不为零,因此,节点120f得出以下结论:分组102尚未到达其目的地。节点120f将最后的地址(“7::7”)从分段路由报头132复制到分组102的131内的目的地地址字段。节点120f使所剩分段字段135递减,使得当分组102到达节点120g时,所剩分段字段135具有值0。节点120f将分组102路由到节点120g,该节点120g具有地址7::7。
23.节点120g从节点120f接收分组102,并且确定其是出口节点,因为所剩分段字段135为零。因此,节点120g用作出口节点,从而对分组102进行解封装以重新暴露分组101和/
或有效负载139(参见图示了节点120g处的分组102的解封装部分的虚线)。然后,节点120g可以将分组101路由到如在图1a中所示出的目的地125。
24.图1b是图示了根据本公开的一个或多个方面的其中使用srm6(映射到ipv6的分段路由)来对分组进行路由的示例网络的框图。除了使用srm6而不是srv6(或者除了srv6之外还使用srm6)来对分组进行路由之外,图1b与图1a类似。在图1b中,节点120a、节点120b和节点120f是能够依照srm6来对分组进行路由的srm6感知节点。其他所图示的节点120可能不是srm6感知节点,但是这种节点能够依照ipv6来对分组进行路由。
25.srm6和srv6类似,但是srm6与srv6之间的一个区别涉及分组的结构。当节点120a从源115接收到分组101时,图1b所示节点120a创建在图1b中被图示为分组103的srm6分组。分组103具有与分组102类似的结构(在图1b中再现了分组102以进行比较),并且包括ipv6报头131和有效负载139。然而,分组103不包括分段路由报头132,并且相反,分组103包括压缩的路由报头133。分段路由头132和压缩的路由报头133都可以被认为是被用于分段路由的路由报头。分组102的分段路由报头132是地址的列表,这些地址的长度可以分别为16个字节。另一方面,分组103的压缩的路由报头133是整数或者分段标识符(“sid”)的列表。这些整数或者sid的长度倾向于显著短于16个字节。因此,压缩的路由报头133的大小倾向于比分段路由报头132显著更小,并且这是srm6优于srv6的一个优点。
26.当在srm6上下文中对分组101进行封装时,节点120a就像在srv6中一样确定网络100内沿着用于分组103的期望路径的地址的列表。然而,不是使用地址来创建压缩的路由报头133,节点120a将这些地址中的每个地址映射到表中的整数或者sid。这些sid被用于创建作为分组103的一部分的压缩的路由报头133。可以使有关该表的信息可用于和/或将其存储在网络100内的每个节点120(或者至少可用于每个srm6感知节点120)。在一些示例中,控制器128可以利用这种信息来配置每个srm6感知节点120,或者可以在建立这种配置时起作用。
27.为了对srm6分组103进行路由,节点120可以执行与在图1a中所描述的那些操作类似的操作。例如,在可以参照图1b来描述的示例中,如上所述,节点120a接收分组101,并且将分组101封装为分组103。然后,节点120a基于分组103的ipv6报头131中的目的地地址来将分组103路由到节点120b,该目的地地址为2::2。节点120a还使分组103的所剩分段字段135递减,使得当分组103到达节点120b时,所剩分段字段135具有值“2”。
28.当节点120b接收到图1b中的分组103时,节点120b确定所剩分段字段135不为零,因此,节点120b得出以下结论:分组103尚未到达其目的地。节点120b使用压缩的路由报头133中的所剩分段字段135来确定600是与下一分段相关联的值。节点120b在映射表中执行查找(使用“600”作为索引值)以标识地址,该地址确定为6::6。节点120b将该地址(“6::6”)复制到分组103的ipv6报头131内的目标地地址字段。节点120b将分组103路由到节点120f,该节点120f具有地址6::6(如在图1a中,分组103通过在其途中的节点120d被路由到节点120f)。节点120b使所剩分段字段135递减,使得当分组103到达节点120f时,分组103的所剩分段字段103具有值“1”。
29.当节点120f接收到分组103时,节点120f确定所剩分段字段135不为零,因此,节点120f在地址映射表中执行查找(使用“700”作为索引值)以将7:::7标识为沿着srm6路径的下一地址。节点120f将该7::7地址复制到分组103的131内的目的地地址字段。节点120f将
分组103路由到节点120g,并且还使所剩分段字段135递减,使得当分组103到达节点120g时,所剩分段字段135具有值0。节点120g从节点120f接收分组103,并且确定其是出口节点,因为所剩分段字段135为零。如在图1b中所示出的,节点120g对分组103进行解封装,并且将分组101路由到目的地125。
30.图1c是图示了根据本公开的一个或多个方面的其中使用srm6(被映射到ipv6的分段路由)来以简化模式对分组进行路由的示例网络的框图。在图1c中,节点120a从源115接收分组101,并且将分组101封装为分组104。除了在图1c中,当节点120a对分组101进行解封装以创建srm6分组104时,在图1c中的节点120a处实现策略仅需要分组104访问在至目的地125的路径上的节点120g之外,图1c与图1b类似。因此,分组104(参见图1c)与图1b中的分组103的不同之处在于:仅一个sid被包括在分组103的压缩的路由报头133内(如在图1c中所图示的,分组104中的该一个sid为700,与地址7::7相对应),而在图1b中,三个sid被包括在分组103的压缩的路由报头133内(如在图1b中所图示的,sid为700、600、200)。
31.如果压缩的路由报头133将被包括在分组104内,则将按照与在图1b中对srm6分组103进行路由的方式类似的方式来在图1c中对srm6分组104进行路由。实际上,节点120a从源115接收分组101,并且节点120a如在图1c中所示出的那样创建分组104。然后,节点120a将使用压缩的路由报头133中的单个sid(700)作为用于查找地址的索引。节点120a会将7::7(与节点120g相对应)标识为与700相关联的地址,并且将分组104路由到节点120g,可能使用节点120a与节点120g之间的成本最小的路径。在分组104离开节点120a之前,节点120a还将使所剩分段字段135递减,使得当分组104到达节点120g时,所剩分段字段135为零。当节点120g接收到分组104时,节点120g能够确定其是出口节点,因为所剩分段字段135为零。
32.然而,如下所述,图1c图示了分组104rm的路由。srv6和srm6都具有多于一种模式,包括“常规模式”和“简化模式”。当以简化模式进行操作时,仅利用压缩的路由报头133内的单个sid所创建的srm6分组可以从分组104中省略压缩的路由报头133(以及所剩分段字段135)。在这种示例中,图1c所示分组104具有如在图1c中所示出的分组104rm的形式。在所示出的示例中,分组104rm省略了压缩的路由报头133和所剩分段字段135,并且可能仅包括ipv6报头131和有效负载139。
33.可以按照与在图1c中对分组104进行路由的方式类似的方式来执行对srm6分组104rm进行路由,但是缺少压缩的路由报头133可能对出口节点确定其是出口节点的能力有影响。例如,在可以关于图1c描述的示例中,如上所述,节点120a接收分组101,并且将分组101封装为分组104rm。然后,节点120a将分组104rm路由到节点120g,可能使用节点120a与节点120g之间的成本最小的路径。注意,在图1c的示例中,分组104遵循与图1a所示分组102或者图1b所示分组103不同的路径。当节点120g接收到分组104rm时,节点120g可能不能确定分组104rm是srm6分组还是常规ipv6分组,因为分组104rm不包括压缩的路由报头133。进一步地,节点120g无法确定其是否将用作压缩的路由报头,因为分组104rm内不包括所剩分段字段135,并且因此,节点120g不能确定所剩分段字段135的值是否为零。因此,当以工程业务路径的长度为1的简化模式对srm6分组进行路由时,出口节点可能很难确定其是否是出口节点。在一些示例中,出口节点无法确定在分组104rm到达时处置分组104rm的方式和/或是否要进行隧道终止。虽然srv6网络和srm6网络都可能会出现该问题,但是该问题可能特别适用于srm6网络。在srv6中,处理从ipv6地址开始,但是在srm6中,地址可能只是本地
接口地址,这使节点120g很难确定其正在处理常规ipv6分组还是srm6分组。
34.用于解决在将分组104rm标识为srm6分组时的这种困难和/或接收器节点确定是否作为出口节点进行操作的困难的一种方式是:对于网络中的节点中的一些或者所有节点(例如节点120g),观察srm6感知节点(即,在图1a至图1c的示例中的节点120a、120b、120f和120g)之间的通信(例如与isis邻接有关的通告或者信息交换),并且安装用于指示其中每个这种节点将充当出口节点的情况的路由。例如,节点120g可以通过网络100中的srm6感知节点之间的isis邻接通信来接收有关与各种路由相关联的sid的信息。基于该信息,节点120g知道在网络100中哪些其他节点120是srm6感知节点。节点120g可以基于这种通信来安装长路由(例如从节点120a到节点120g,或者具体地,从1::1到7::7)。在一些示例中,可以为节点120a和120g安装两个这种长路由:指定ipip(在ip封装内的ip)协议的从1::1到7::7的一个路由,以及指定ipipv6(在ipv6封装内的ip)协议的从1::1到7::7的另一路由。该已安装的长路由可能指向解封装下一跳。
35.在关于图1c所描述的示例中,当分组104rm到达节点120g时,即使分组104rm不包括所剩分段字段135(或者压缩的路由报头133),节点120g也将能够确定其是出口节点。节点120g基于源地址为1::1、目的地为7::7以及协议为ipip或者ipipv6(因此,与已安装的长路由相匹配)来进行这种确定。因此,节点120g可以对分组104rm进行解封装,并且将分组101路由到目的地125。
36.上述解决方案解决了在出口处标识分组104rm的问题。因此,对于实现srm6简化模式的一些网络,上述技术可以是适当的。然而,在一些示例中,在网络100内存在大量srm6节点的情况下,可以被存储在每个节点120上以实现该解决方案的信息的量(例如所存储的长路由)可以很重要。因此,在一些方面中,这种存储空间的消耗和大量信息可能需要的附加处理可能是该解决方案的缺点。
37.备选解决方案可以涉及:在出口节点(诸如节点120g)上安装基于过滤器的解封装逻辑。在这种出口节点中的一个或多个出口节点上,控制平面可以安装可以被附加到默认实例的过滤器。这种过滤器可以通过具有以下形式的代码而实现:
38.term t1{
39.destination-address
40.protocol
41.}action{
42.decapsulate
43.accept
44.}
45.当上述过滤器被安装在节点120g上时,过滤器将对节点120g所接收到的每个分组进行评估,并且确定目的地地址是否与其自己的ipv6地址(例如对于节点120g,为地址7::7)和ipip协议或者ipipv6协议相匹配。应用上面的过滤器代码,如果目的地地址和协议匹配,则节点120g执行指定的动作。在上面的代码中,(在“动作”块中所指定的)这些动作包括“解封装”(即,节点120g应该对分组进行解封装以暴露分组104内的分组101)和“接受”(例如节点120g应该继续处理分组,而不是丢弃分组)。因此,已安装的过滤器使得节点120g即使在分组104内不存在压缩的路由报头133或者所剩分段字段135的情况下,也能够确定其
是否将充当出口节点。图1c中的这种过滤器的效果是:节点120g能够对分组104rm进行解封装,并且将分组101路由到目的地125。
46.上述基于过滤器的解决方案克服了可能存在于前述解决方案中的存储消耗问题,因为很少的状态信息被存储在节点120g中,该节点120g可能以其他方式为网络100内的每个其他节点120存储状态信息。类似地,其他出口节点可以出于类似的目的而避免存储这种状态信息。然而,这种基于过滤器的解决方案可能仅能够针对具有执行这种过滤操作的能力的节点被实现。
47.虽然在以简化模式进行操作的单个sid srm6的上下文中进行了描述,但是根据本公开的技术还可以被应用于其他情况。例如,这种技术可以被应用于srv6,和/或在srv6或者srm6上下文之外应用,或者甚至在分段路由上下文之外应用。通常,这种解决方案可以被应用于其中有关处理到达出口节点的分组的方式可能不明确的情况。
48.图2是图示了能够根据在本文中所描述的技术来进行操作的示例路由器212的框图。路由器212可以表示图1c所示节点120g的示例实现,或者通常,表示图1a、图1b或者图1c所示任何节点120。虽然针对节点或者路由器212进行了描述,但是在本文中所描述的技术可以由能够实现分段路由的任何其他类型的网络设备实现。
49.在图2的示例中,路由器212包括分别经由网络链路256a至256n和257a至257n来接收和发送数据单元(诸如分组流)的接口卡254a至254n(“ifc 254”)。路由器212可以包括具有用于容纳包括ifc 254的一组卡的若干插槽的底盘(未示出)。每个卡可以被插入到底盘的对应插槽中以便经由高速交换机(未示出)来将卡电耦合到和/或光学耦合到路由组件244,该高速交换机可以包括例如交换结构、交换设备、可配置的网络交换机或集线器、或者其他高速交换机构。ifc 254可以经由若干物理接口端口(未示出)被耦合到网络链路256a至256n和257a至257n。通常,ifc 254可以分别表示一个或多个网络接口,路由器212可以通过该一个或多个网络接口来与网络的链路接口连接。
50.通常,路由器212可以包括控制单元242,控制单元242确定接收到的分组的路由并且经由ifc 254来相应地转发分组。在图2的示例中,控制单元242包括路由组件(控制平面)244,路由组件(控制平面)244配置并且控制由转发组件(数据平面)246应用的分组转发操作。
51.路由组件244为在网络堆栈的不同层执行的各种路由协议270提供操作环境。路由组件244负责维持路由信息260,以反映路由器212所连接的网络和其他网络实体的当前拓扑。特别地,路由协议基于路由器212所接收到的路由协议消息来周期性地更新路由信息260,以准确地反映网络和其他实体的拓扑。协议可以是在一个或多个处理器上执行的软件进程。例如,路由组件244包括在网络堆栈的网络层进行操作的网络协议,这些网络协议通常被实现为可执行软件指令。
52.在图2的示例中,协议270可以包括用于在网络中的路由域之间交换路由和可达性信息的边界网关协议(bgp)271和用于在网络中的路由域之间交换业务工程和分段路由策略信息的bgp-ls 272。协议270还可以包括用于在路由域中的每个路由域内的路由器之间交换链路状态信息以及支持在这些路由器之间转发分组或者其他数据单元的igp 273。在一些示例中,igp 273可以包括根据由j.moy于1998年4月发表的标题为“ospf version 2”的rfc 2328、由r.coltun等人于2008年7月发表的标题为“ospf for ipv6”的rfc 5340、由
n.sheth等人于2013年1月发表的标题为“ospf hybrid broadcast and point-to-multipoint interface type”的rfc 6845以及由a.lindem等人于2018年4月发表的标题为“ospfv3 link state advertisement(lsa)extendibility”的rfc 8362中的一个或多个rfc的ospf路由协议。在一些示例中,igp 273可以包括根据由d.oran于1990年2月发表的标题为“osi is-is intra-domain routing protocol”的rfc 1142(iso/iec 10589的重新发表,最后更新于2002年11月)的is-is路由协议,该is-is路由协议实现用于在路由域内交换路由和可达性信息的igp。igp 273可以包括如在由t.li等人于2008年10月发表的标题为“is-is extensions for traffic engineering”的rfc 5305中所描述的支持业务工程的is-is扩展。在一些示例中,路由器212可以包括ospf组件和is-is组件两者。
53.协议270还可以包括配置协议。例如,协议270可以包括根据由jp.vasseur,ed.等人于2009年3月发表的标题为“path computation element(pce)communication protocol(pcep)”的rfc 5440的pcep 274,或者根据由r.enns,ed.等人于2011年6月发表的标题为“network configuration protocol(netconf)”的rfc 6241的netconf(未示出)。在路由器212包括入口路由器的一些示例中,控制器设备128(例如参见图1a至图1c和图2)可以经由pcep 274或者netconf组件(未示出)来向路由器212配置用于分段路由隧道的sid列表286。协议270可以包括其他路由协议(未示出),诸如标签分发协议(ldp)、具有业务扩展的资源保留协议(rsvp-te)、路由信息协议(rip)或者其他网络协议。
54.路由组件244包括分段路由(sr)模块或者组件276,该分段路由(sr)模块或者组件276用于实现指定路由器212可以为邻接分段、前缀分段或者绑定分段提供和通告sid的方式的分段路由技术。如在图1a、图1b和图1c中所描述的,入口路由器可以使用sid来通过被称为分段的受控指令集引导分组,方法是:利用分段路由报头或者压缩的路由报头来对网络分组进行封装,或者利用分段路由报头或者压缩的路由报头中的地址或者sid来对分组进行封装或者预置(prepend)分组。
55.路由组件244还可以包括过滤器模块277,该过滤器模块277包括用于匹配业务并且执行对应动作的逻辑。可以包括或者被实现为一个或多个防火墙过滤器的过滤器模块277可以在输入方向(如果被应用于控制平面,则业务去往路由引擎,或者如果被应用于数据平面,则入口业务到达逻辑接口)和输出方向(如果被应用于控制平面,则业务源自路由引擎,或者如果被应用于数据平面,则出口业务来自逻辑接口)上向业务应用(多个)过滤器。这种过滤器可以按照与策略声明类似的方式来匹配业务并且对匹配的业务执行动作。防火墙过滤器由一个或多个命名术语组成,并且每个术语具有一组匹配条件以及一组动作或者非终止动作。如果没有业务与术语中的任何术语相匹配,则可能存在隐藏的隐性规则,该隐藏的隐性规则丢弃所有业务。虽然过滤器模块277被图示为被定位在路由组件244内,但是过滤器模块277可以被定位在路由器212内的其他位置,包括在转发组件246内。
56.在图2的示例中,路由引擎244包括为管理员(“admin”)268提供监测、配置或者以其他方式管理对路由器212的访问的命令行接口(cli)278。管理员268可以经由cli 278来指示路由器212配置路由器212的各个方面,包括与对邻接和/或节点sid进行路由和提供邻接和/或节点sid相关的方面。
57.通过执行路由协议,路由组件244标识通过网络的现有路由,并且确定通过网络的新路由。路由组件244存储路由信息260,路由信息260包括例如通过网络的已知路由。转发
组件246存储转发信息262,转发信息262包括输出链路257的目的地。转发信息262可以根据路由信息260而生成。
58.路由组件244包括链路状态数据库(lsdb)280,链路状态数据库(lsdb)280用于在路由器212的路由域内存储包括用于提供的分段(例如邻接分段、前缀分段和绑定分段)的sid和标签的域拓扑信息。根据igp 273来维持lsdb 280的内容,并且lsdb 280的内容具有单个路由域的范围。路由组件244还包括利用te链路属性来增强lsdb 280的业务工程数据库(ted)282。lsdb 280和ted 282中的每一个可以是各种数据结构(诸如若干表、链路列表、基数树、数据库、平面文件或者其他数据结构)的形式。
59.在路由器212包括分段路由隧道的入口路由器的示例中,路由组件244还可以包括用于分段路由隧道的sid列表286。路由组件244可以存储用于分段路由隧道的sid列表286。基于sid列表286,路由组件244可以为分段路由隧道创建分段路由标签堆栈。在接收到去往分段路由隧道的出口路由器的分组时,转发组件246将分段路由堆栈附加到分组上,并且根据分段路由标签堆栈来转发分组。路由组件244可以负责创建分段路由分组,包括srm6分组和/或srm6简化模式分组。
60.虽然为了针对路由器的示例进行了描述,但是更一般地,路由器212可以是具有路由功能性的网络设备,并且不一定需要是专用路由设备。作为示例而示出在图2中所图示的路由器212的架构。本公开的技术不限于该架构。在其他示例中,可以按照各种方式来配置路由器212。在一个示例中,控制单元242的功能性中的一些功能性可以被分布在ifc 254内。在另一示例中,控制单元242可以包括多个分组转发引擎,该多个分组转发引擎作为从路由器(slave router)而被操作。
61.控制单元242可以被单独地实现在软件或者硬件中,或者可以被实现为软件、硬件或者固件的组合。例如,控制单元242可以包括执行软件指令形式的程序代码的一个或多个处理器。在那种情况下,控制单元242的各种软件组件/模块可以包括被存储在计算机可读存储介质(诸如计算机存储器或者硬盘)上的可执行指令。
62.在图2中,并且根据本公开的一个或多个方面,管理员268可以将路由器212配置为参与srm6网络。例如,在可以参照图2来描述的示例中,路由器212的命令行接口278检测来自管理员268的输入。命令行接口278确定输入与配置网络的各个方面的信息相对应,该网络可以包括路由器212参与的srm6网络。命令行接口278向分段路由模块276输出信息,该分段路由模块276将路由器212配置为参与srm6网络。
63.分段路由模块276可以将路由器212配置为在没有被用于分段路由的路由报头(例如压缩的路由报头)的情况下标识到达路由器212的分组。例如,继续所描述的示例并且参照图2,分段路由模块276观察从其他节点120(例如参见图1c)接收到的通告。基于这种通告,分段路由模块276在路由信息260中存储路由信息(例如长路由),该路由信息指定到达路由器212的srm6分组具有特定的源地址和目的地地址,并且协议可以是将在路由器212处被解封装和/或被终止的srm6分组。当与所存储的长路由信息相匹配的分组到达路由器212时,路由器212将分组标识为srm6分组,对分组进行解封装,和/或执行隧道终止。
64.在另一示例中,备选地,分段路由模块276可以使用从其他节点120接收到的所观察到的通告来在路由器212处建立过滤器。例如,再次参照图2,分段路由模块276可以将有关所观察到的通告的信息输出到过滤器模块277。过滤器模块277可以建立在接收到与特定
的目的地地址和协议相匹配的分组时触发要执行的特定动作的过滤器。在建立了过滤器之后,当分组到达路由器212时,过滤器模块277确定特定的目的地地址和协议是否与被指定为过滤器的条件的地址和协议相匹配。如果相匹配,则过滤器模块277使得执行指定的动作。在一些示例中,那些动作涉及对分组进行解封装和执行隧道终止。
65.在本文中所图示和/或在本公开中所描述的模块(例如分段路由模块276、过滤器模块277以及模块271、272、273和274)可以执行使用驻留在一个或多个计算设备中和/或在一个或多个计算设备处执行的软件、硬件、固件或者硬件、软件和固件的混合所描述的操作。例如,计算设备可以利用多个处理器或者多个设备来执行这种模块中的一个或多个模块。计算设备可以执行这种模块中的一个或多个模块作为在基础硬件上执行的虚拟机。这种模块中的一个或多个模块可以作为操作系统或者计算平台的一种或多种服务执行。这种模块中的一个或多个模块可以在计算平台的应用层处作为一个或多个可执行程序执行。在其他示例中,由模块提供的功能性可以由专用硬件设备实现。
66.虽然可以单独地图示一个或多个存储设备内所包括的特定模块、数据存储库、组件、程序、可执行文件、数据项、功能单元和/或其他项,但是这种项中的一个或多个项可以被组合并且作为单个模块、组件、程序、可执行文件、数据项或者功能单元进行操作。例如,一个或多个模块或者数据存储库可以被组合或者被部分地组合,使得它们作为单个模块进行操作或者提供功能性。进一步地,一个或多个模块可以彼此交互和/或结合彼此进行操作,使得例如一个模块充当另一模块的服务或者扩展。而且,在存储设备内所图示的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或者其他项可以包括多个组件、子组件、模块、子模块、数据存储库和/或未图示的其他组件或者模块或者数据存储库。
67.进一步地,可以按照各种方式来实现在存储设备内所图示的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或者其他项。例如,在存储设备内所图示的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或者其他项可以被实现为可下载的或者预安装的应用或者“app”。在其他示例中,在存储设备内所图示的每个模块、数据存储库、组件、程序、可执行文件、数据项、功能单元或者其他项可以被实现为在计算设备上被执行的操作系统的一部分。
68.图3是图示了根据本公开的一个或多个方面的由示例节点执行的操作的流程图。下面在图1c所示节点120g的上下文中描述了图3。在其他示例中,在图3中所描述的操作可以由一个或多个其他组件、模块、系统或者设备执行。进一步地,在其他示例中,关于图3所描述的操作可以被合并、按照不同的顺序被执行、被省略,或者可以涵盖未具体图示或者描述的附加操作。
69.在图3中所图示的过程中,并且根据本公开的一个或多个方面,节点120g可以接收分段路由通告(301)。例如,参照图1c,节点120g观察和/或存储与由网络100内参与srm6网络的节点120交换的通告相关联的信息。这种广告可以包括有关参与srv6网络或者srm6网络的节点120的ipv6地址的信息,或者可以包括有关网络100内的节点120所使用的sid的信息。
70.节点120g可以配置使得能够识别封装分组的信息(302)。例如,节点120g使用有关在节点120之间所交换的通告的信息来确定有关网络100内的srm6路由的信息。具体地,节点120g将可以到达节点120g的、节点120g应该进行处理的分组的属性标识为srm6分组,即
使这种分组不包括压缩的路由报头(或者被用于分段路由的路由报头)。使用来自通告的信息,节点120g可以安装指定与这种srm6分组相关联的源地址、目的地地址和协议的一个或多个长路由。在另一示例中,节点120g可以配置针对具有特定目的地地址和协议的分组触发如在本文中所描述的动作的执行的过滤器。
71.节点120g可以接收分组104(303)。例如,节点120g通过网络100来接收分组104。节点120g确定分组104不包括压缩的路由报头133。在这种示例中,分组104可能看起来仅仅是ipv6报头,并且可能不具有将使节点120g能够确定分组104是否已经到达其目的地的信息(诸如所剩分段字段135)。
72.节点120g可以确定分组104是否是封装分组,诸如已经到达其目的地的srm6分组(304)。例如,节点120g可以确定分组104与先前安装的长路由相匹配,其中长路由指向解封装下一跳。在配置了过滤器的示例中,节点120g可以确定分组104的目的地地址和协议触发了将由过滤器执行的动作,其中那些动作包括对分组104进行解封装。
73.节点120g可以对分组104进行解封装(305,来自304的“是”路径)。例如,如果分组104不包括压缩的路由报头(或者分段路由报头,或者可能地,被用于分段路由的任何路由报头),但是与长路由相匹配或者触发了srm6隧道终止过滤器,则节点120g将分组104处理为在出口节点处的srm6分组,并且可以对分组104进行解封装。
74.或者,节点120g可以处理分组104(306,来自304的“否”路径)。例如,如果节点120g确定分组104不与任何长路由相匹配并且未触发将由过滤器执行的动作,则节点120g不同地处理分组104,而不是将分组104处理为srm6分组(例如节点120g可以将分组104处理为ipv6分组)。
75.对于在本文中所描述的过程、装置和其他示例或者图示,包括在任何流程图中,可以按照不同的顺序来执行在本文中所描述的技术中的任何技术所包括的特定操作、动作、步骤或者事件,可以添加、合并或者完全不考虑它们(例如并非所有所描述的动作或者事件对于实践这些技术都是必需的)。此外,在特定示例中,可以同时(例如通过多线程处理、中断处理或者多个处理器)而不是按顺序执行操作、动作、步骤或者事件。即使其他特定操作、动作、步骤或者事件未被具体标识为自动执行,也可以自动执行这些特定操作、动作、步骤或者事件。而且,备选地,可以不自动执行被描述为自动执行的特定操作、动作、步骤或者事件,而是在一些示例中,可以响应于输入或者另一事件而执行这种操作、动作、步骤或者事件。
76.为了便于说明,在本文中所引用的图示内仅示出了有限数量的系统和设备(例如节点120、控制器128、网络150、路由器212以及其他系统和设备)。然而,根据本公开的一个或多个方面的技术可以利用更多这种系统、组件、设备、模块和/或其他项被执行,并且对这种系统、组件、设备、模块和/或其他项的集体引用可以表示任何数量的这种系统、组件、设备、模块和/或其他项。
77.在本文中所包括的附图分别图示了本公开的方面的至少一种示例实现。然而,本公开的范围不限于这种实现。因此,超过在附图中所图示的那些系统、方法或者技术,在本文中所描述的系统、方法或者技术的其他示例或者备选实现在其他实例中可能是适当的。这种实现可以包括附图中所包括的设备和/或组件的子集,和/或可以包括在附图中未示出的附加设备和/或组件。
78.上面所阐述的详细描述被预期为对各种配置的描述,并且不旨在表示可以实践在本文中所描述的概念的唯一配置。详细描述包括为了提供对各种概念的充分理解的具体细节。然而,可以在没有这些具体细节的情况下实践这些概念。在一些实例中,在附图中以框图形式示出众所周知的结构和组件以避免模糊这种概念。
79.因此,虽然可以参照特定附图来描述各种系统、设备和/或组件的一种或多种实现,但是可以按照若干不同的方式来实现这种系统、设备和/或组件。例如,备选地,在本文中被图示为单独的设备的一个或多个设备可以被实现为单个设备;备选地,被图示为单独的组件的一个或多个组件可以被实现为单个组件。而且,在一些示例中,备选地,在本文中的附图中被图示为单个设备的一个或多个设备可以被实现为多个设备;备选地,被图示为单个组件的一个或多个组件可以被实现为多个组件。这种多个设备和/或组件中的每个设备和/或组件可以经由有线或者无线通信被直接耦合和/或经由一个或多个网络被远程地耦合。而且,备选地,可以在本文中的各个附图中被图示的一个或多个设备或者组件可以被实现为在这种附图中未示出的另一设备或者组件的一部分。按照这种和其他方式,可以经由两个或更多个设备或者组件的分布式处理来执行在本文中所描述的功能中的一些功能。
80.进一步地,某些操作、技术、特征和/或功能在本文中可以被描述为由特定组件、设备和/或模块执行。在其他示例中,这种操作、技术、特征和/或功能可以由不同的组件、设备或者模块执行。因此,在本文中可以被描述为归因于一个或多个组件、设备或者模块的一些操作、技术、特征和/或功能可以在其他示例中归因于其他组件、设备和/或模块,即使在本文中没有按照这种方式具体描述。
81.虽然已经关于对一些示例的描述标识了具体的优点,但是各种其他示例可以包括所列举的优点中的一些优点,不包括所列举的优点或者包括所列举的优点中的所有优点。通过本公开,对于本领域的普通技术人员而言,其他优点或者技术会变得明显。进一步地,虽然本文已经公开了特定示例,但是可以使用任何数量的技术(无论当前是否已知)来实现本公开的各个方面,并且因此,本公开不限于在本公开中所具体描述和/或图示的示例。
82.在一个或多个示例中,所描述的功能可以被实现在硬件、软件、固件或者其任何组合中。如果被实现在软件中,则功能可以作为一个或多个指令或者代码被存储在计算机可读介质上和/或通过计算机可读介质来传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,该计算机可读存储介质与有形介质(诸如数据存储介质)或者通信介质(包括支持从一个地方向另一个地方传递计算机程序(例如依照通信协议)的任何介质)相对应。按照这种方式,计算机可读介质通常可以与(1)非瞬态的有形计算机可读存储介质或者(2)诸如信号或者载波等通信介质相对应。数据存储介质可以是可以由一个或多个计算机或者一个或多个处理器访问以获取指令、代码和/或数据结构以便实现在本公开中所描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
83.通过示例而非限制,这种计算机可读存储介质可以包括ram、rom、eeprom、cd-rom或者其他光盘存储装置、磁盘存储装置或者其他磁存储设备、闪速存储器或者可以被用于存储指令或者数据结构形式的并且可以由计算机访问的期望程序代码的任何其他介质。而且,任何连接都被恰当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线或者无线技术(诸如红外线、无线电和微波)来从网站、服务器或者其他远程源传输指令,则同轴电缆、光纤电缆、双绞线或者无线技术(诸如红外线、无线电和微波)被包括在介质的定
义内。
84.指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、现场可编程逻辑阵列(fpga)或者其他等效的集成或者分立逻辑电路装置。因此,如在本文中所使用的术语“处理器”或者“处理电路装置”可以分别是指前述结构中的任何结构或者适合于实现所描述的技术的任何其他结构。附加地,在一些示例中,可以在专用硬件和/或软件模块内提供所描述的功能性。而且,可以在一个或多个电路或者逻辑元件中完整地实现这些技术。
85.在本公开中描述各种组件、模块或者单元以强调被配置为执行所公开的技术的设备的功能方面,但是该各种组件、模块或者单元不一定需要由不同的硬件单元实现。相反,如上所述,各种单元可以被组合在硬件单元中,或者由互操作的硬件单元的类集(包括如上所述的一个或多个处理器)结合合适的软件和/或固件提供。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献