一种报文转发方法及装置与流程

未命名 07-14 阅读:127 评论:0


1.本技术涉及网络通信技术领域,特别涉及一种报文转发方法及装置。


背景技术:

2.sdn(software defined network,软件定义网络)是一种新型网络创新架构,其核心思想是将网络设备的控制层面与转发层面分离,以实现对网络流量的灵活控制,为核心网络及应用的创新提供良好的平台。sr(segment routing,分段路由)采用源路径选择机制,预先在源节点封装好路径所要经过节点分配的segmentid(sid),当报文经过sr端节点时,该节点根据报文的segmentid对报文进行转发。
3.srv6网络是指在ipv6网络中使用sr(segment routing),将ipv6地址作为sid对报文进行转发,节点之间的隧道是srv6隧道。由源节点sr为报文封装srv6隧道头,并将报文转发给隧道路径上的下一跳中间节点;srv6中间节点检查srh头中的sl值,如果sl》0,则将sl值减1,目的地址更新为sl指示的下一个srv6节点地址,并将报文继续转发给下一跳直至尾结点;尾srv6节点收到报文,检查srh头中的sl值,发现sl=0。对报文进行解封装,删除封装ipv6基本头和srh,根据原始报文的目的地址进行报文转发。
4.目前,报文在传输过程中,srv6隧道上的节点对报文的转发模式固定,当需要修改报文转发模式(比如由ip路由转发改成流表转发)时,控制器必须实时修改沿途所有设备的转发表,无法做到提前下发,当前报文中没有信息标识告知设备节点的转发行为。


技术实现要素:

5.本技术提供了一种报文转发方法及装置。
6.第一方面,本技术提供了一种报文转发方法,应用于srv6首节点,所述方法包括:
7.接收原始报文,并确定所述原始报文的业务属性;
8.基于所述原始报文的业务属性和控制器下发的引流转发策略,确定转发所述原始报文的srv6隧道和报文转发模式;
9.基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带所述原始报文的报文转发模式;
10.基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。
11.可选地,所述报文转发模式包括:路由转发,流表转发和策略转发。
12.可选地,若所述报文转发模式为路由转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文的步骤包括:
13.将路由转发模式对应的,转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list封装至srh头中,得到封装后的srv6报文,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;
14.若所述报文转发模式为流表转发/策略转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文的步骤包括:
15.将流表转发/策略转发对应的,转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid封装至srh头中,得到封装后的srv6报文,其中,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息。
16.可选地,所述原始报文的报文转发模式信息携带在对应扩展sid的function字段中;所述原始报文的业务属性信息携带在对应扩展sid的arguments字段中。
17.第二方面,本技术提供了一种报文转发方法,应用于srv6中间节点,各srv6节点中维护有各srv6隧道包括的各srv6节点的扩展sid;所述方法包括:
18.接收上一srv6节点转发的封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带原始报文的报文转发模式;
19.解析所述封装后的srv6报文,得到所述原始报文的转发模式;
20.基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。
21.可选地,所述报文转发模式包括:路由转发,流表转发和策略转发;
22.若所述报文转发模式为路由转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;将所述封装后的srv6报文发送至下一跳srv6节点的步骤包括:
23.确定所述封装后的srv6报文的下一跳srv6节点,并将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。
24.可选地,若所述报文转发模式为流表转发/策略转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息;将所述封装后的srv6报文发送至下一跳srv6节点的步骤包括:
25.基于所述封装后的srv6报文携带的srh头中的首尾节点sid和所述原始报文的业务属性信息,确定传输所述原始报文的目标srv6隧道;
26.基于所述封装后的srv6报文携带的srv6首节点和srv6尾节点的扩展sid,以及本地维护的所述目标srv6隧道包括的各srv6节点的扩展sid,确定下一跳srv6节点,将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。
27.第三方面,本技术提供了一种报文转发装置,应用于srv6首节点,所述装置包括:
28.接收单元,用于接收原始报文,并确定所述原始报文的业务属性;
29.确定单元,用于基于所述原始报文的业务属性和控制器下发的引流转发策略,确定转发所述原始报文的srv6隧道和报文转发模式;
30.封装单元,用于基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带所述
原始报文的报文转发模式;
31.发送单元,用于基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。
32.可选地,所述报文转发模式包括:路由转发,流表转发和策略转发。
33.可选地,若所述报文转发模式为路由转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文时,所述封装单元具体用于:
34.将路由转发模式对应的,转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list封装至srh头中,得到封装后的srv6报文,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;
35.若所述报文转发模式为流表转发/策略转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文时,所述封装单元具体用于:
36.将流表转发/策略转发对应的,转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid封装至srh头中,得到封装后的srv6报文,其中,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息。
37.可选地,所述原始报文的报文转发模式信息携带在对应扩展sid的function字段中;所述原始报文的业务属性信息携带在对应扩展sid的arguments字段中。
38.第四方面,本技术提供了一种报文转发装置,应用于srv6中间节点,各srv6节点中维护有各srv6隧道包括的各srv6节点的扩展sid;所述装置包括:
39.接收单元,用于接收上一srv6节点转发的封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带原始报文的报文转发模式;
40.解析单元,用于解析所述封装后的srv6报文,得到所述原始报文的转发模式;
41.发送单元,用于基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。
42.可选地,所述报文转发模式包括:路由转发,流表转发和策略转发;
43.若所述报文转发模式为路由转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;将所述封装后的srv6报文发送至下一跳srv6节点时,所述发送单元具体用于:
44.确定所述封装后的srv6报文的下一跳srv6节点,并将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。
45.可选地,若所述报文转发模式为流表转发/策略转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息;将所述封装后的srv6报文发送至下一跳srv6节点时,所述发送单元具体用于:
46.基于所述封装后的srv6报文携带的srh头中的首尾节点sid和所述原始报文的业务属性信息,确定传输所述原始报文的目标srv6隧道;
47.基于所述封装后的srv6报文携带的srv6首节点和srv6尾节点的扩展sid,以及本
地维护的所述目标srv6隧道包括的各srv6节点的扩展sid,确定下一跳srv6节点,将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。
48.第五方面,本技术实施例提供一种报文转发装置,该报文转发装置包括:
49.存储器,用于存储程序指令;
50.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。
51.第六方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
52.第七方面,本技术实施例提供一种报文转发装置,该报文转发装置包括:
53.存储器,用于存储程序指令;
54.处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第二方面中任一项所述的方法的步骤。
55.第八方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第二方面中任一项所述方法的步骤。
56.综上可知,本技术实施例提供的报文转发方法,应用于srv6首节点,所述方法包括:接收原始报文,并确定所述原始报文的业务属性;基于所述原始报文的业务属性和控制器下发的引流转发策略,确定转发所述原始报文的srv6隧道和报文转发模式;基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带所述原始报文的报文转发模式;基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。
57.采用本技术实施例提供的报文转发方法,改变了srv6报文在隧道路径上的处理模式,不在由设备决定隧道报文的处理模式,而是由隧道报文目的srv6 sid决定,只需要在源设备上控制用户侧报文进入隧道的方式,就可以让沿途所有设备保持相同的转发方式。而在源sr设备上进行隧道封装时的引流策略由控制器下发,从而让控制器实现了对用户报文的路径控制。与此同时,由于扩展了srv6 sid编码,使之能携带隧道特征(本文是color属性,与路径相关),在采用流表转发/策略转发时,可以使得隧道头部的srh可以去除冗余的segment list,达到减少srv6报文头部长度的目的,提升了srv6隧道的传输效率。
附图说明
58.为了更加清楚地说明本技术实施例或者现有技术中的技术方案,下面将对本技术实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本技术实施例的这些附图获得其他的附图。
59.图1为本技术实施例提供的一种报文转发方法的详细流程图;
60.图2为本技术实施例提供的一种srv6 sid扩展示意图;
61.图3为本技术实施例提供的另一种报文转发方法的详细流程图;
62.图4为本技术实施例提供的一种使用了扩展srv6 sid的srv6隧道报文的结构示意图;
63.图5为本技术实施例提供的一种srv6网络中srv6隧道报文多路径转发示意图;
64.图6为本技术实施例提供的一种报文转发装置的结构示意图;
65.图7为本技术实施例提供的另一种报文转发装置的结构示意图;
66.图8为本技术实施例提供的一种报文转发装置的硬件架构示意图;
67.图9本技术实施例提供的一种报文转发装置的硬件架构示意图。
具体实施方式
68.在本技术实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本技术。本技术和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
69.应当理解,尽管在本技术实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
70.示例性的,参阅图1所示,为本技术实施例提供的一种报文转发方法的详细流程图,该方法应用于srv6首节点,该方法包括以下步骤:
71.步骤100:接收原始报文,并确定所述原始报文的业务属性。
72.实际应用中,控制器可以向srv6首节点下发各业务所属的业务属性,以及各业务对应的引流转发策略,具体地,控制器针对业务1,配置的业务属性为color1,业务1对应的引流转发策略为转发策略1,针对业务2,配置的业务属性为color1,业务2对应的引流转发策略为转发策略2,针对业务3,配置的业务属性为color2,业务3对应的引流转发策略为转发策略3,
……

73.那么,srv6首节点在接收到一个原始报文后,可以解析该原始报文,得到该原始报文特征,基于该报文特征,确定该原始报文的业务属性。
74.步骤110:基于所述原始报文的业务属性和控制器下发的引流转发策略,确定转发所述原始报文的srv6隧道和报文转发模式。
75.本技术实施例中,所述报文转发模式包括:路由转发,流表转发和策略转发。
76.例如,业务1对应的引流转发策略为路由转发(route转发),业务2对应的引流转发策略为流表转发(openflow流表转发),业务3对应的引流转发策略为策略转发(policy转发)。
77.本技术实施例中,针对各业务配置的color属性,与srv6隧道承载业务的color相对应,如,若业务1配置的业务属性为color1,则采用color为color1的srv6隧道传输业务1。
78.那么,srv6首节点在确定所述原始报文的业务属性后,即可基于该业务属性,确定传输该业务的目标srv6隧道。根据控制器下发的引流转发策略,确定转发所述原始报文的srv6隧道。
79.步骤120:基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带所述原始报文的报文转发模式。
80.本技术实施例中,一种较佳地实现方式为,若所述报文转发模式为路由转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文的步骤包括:
81.将路由转发模式对应的,转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list封装至srh头中,得到封装后的srv6报文,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息。
82.具体地,srv6中间节点接收到上一srv6节点发送的srv6报文后,解析该srv6报文,确定该srv6报文的转发方式,若确定为路由转发,则基于该srv6节点的srh头中的扩展sid list,确定下一跳srv6节点,并该srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。
83.本技术实施例中,另一种较佳地实现方式为,若所述报文转发模式为流表转发/策略转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文的步骤包括:
84.将流表转发/策略转发对应的,转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid封装至srh头中,得到封装后的srv6报文,其中,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息。
85.具体地,srv6中间节点接收到上一srv6节点发送的srv6报文后,解析该srv6报文,确定该srv6报文的转发方式,若确定为流表转发/策略转发,则基于所述封装后的srv6报文携带的srh头中的首尾节点sid和所述原始报文的业务属性信息,确定传输所述原始报文的目标srv6隧道;基于所述封装后的srv6报文携带的srv6首节点和srv6尾节点的扩展sid,以及本地维护的所述目标srv6隧道包括的各srv6节点的扩展sid,确定下一跳srv6节点,将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。
86.进一步地,本技术实施例中,所述原始报文的报文转发模式信息携带在对应扩展sid的function字段中;所述原始报文的业务属性信息携带在对应扩展sid的arguments字段中。
87.示例性的,参阅图2所示,为本技术实施例提供的一种srv6 sid扩展示意图,srv6 sid由locator(设备/网段地址、唯一标识)、function和arguments三部分组成,其中,locator占据ipv6地址的高比特位,function和arguments部分占据ipv6地址的剩余部分。locator具有定位功能,一般要在srv6网络内唯一,网络中的其他srv6节点通过locator网段路由就可以定位到该srv6节点;function代表设备的指令(instruction),这些指令都由设备预先设定,用于指示srv6 sid的生成节点进行相应的功能操作;arguments字段可以定义一些报文的流和服务等信息(流的属性,音频,数据流等等)。
88.本技术实施例中,在srv6 sid的可编程特征具有极好的扩展性的基础上,对srv6 sid中的function(定义function的部分字段携带转发策略信息(forword method))和
arguments(定义arguments的部分字段携带业务属性(color))进一步进行扩展。扩展function不是简单的定义报文在设备上的转发指令,而是定义设备该对报文采用何种转发方式,即设备的转发方式不是由设备来定,而是由隧道报文携带的信息特征来决定。如,设备对ipv6报文转发可以是route转发,可以是policy转发,也可以是openflow流表转发,当设备上同时下发了针对报文目的ip地址的多个转发表时,由报文来决定使用哪一种方式来处理。扩展arguments增加定义隧道的服务特征,达到流和隧道本身的全面定义,如隧道承载业务的颜色标记,颜色标记对应了srv6 te隧道的颜色。
89.实际应用中,srv6节点在对外通告自身的prefix segmentid(扩展sid)时,function字段的forward method为默认值route,arguments中的color设置为默认值无色,控制器根据网络承载的业务为各srv6节点生成不同转发方式和颜色的srv6 id。srv6源节点设备在转发报文时,按照控制器下发的引流策略封装srv6扩展隧道,一旦指定了封装的隧道,沿途的各个srv6节点都按照隧道中指定的转发方式处理报文,srv6隧道颜色特征也往往决定了隧道的路径。
90.步骤130:基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。
91.具体地,srv6首节点确定下一跳srv6节点,将封装后的srv6报文的目的地址设置为该下一条srv6节点的扩展sid,发送至该下一跳srv6节点。
92.示例性的,参阅图3所示,为本技术实施例提供的一种报文转发方法的详细流程图,该方法应用于srv6中间节点,各srv6节点中维护有各srv6隧道包括的各srv6节点的扩展sid;该方法包括以下步骤:
93.步骤300:接收上一srv6节点转发的封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带原始报文的报文转发模式。
94.步骤310:解析所述封装后的srv6报文,得到所述原始报文的转发模式。
95.步骤320:基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。
96.本技术实施例中,所述报文转发模式包括:路由转发,流表转发和策略转发。
97.那么,若所述报文转发模式为路由转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;将所述封装后的srv6报文发送至下一跳srv6节点时,一种较佳地实现方式为:
98.确定所述封装后的srv6报文的下一跳srv6节点,并将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。
99.若所述报文转发模式为流表转发/策略转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息;将所述封装后的srv6报文发送至下一跳srv6节点时,一种较佳地实现方式为:
100.基于所述封装后的srv6报文携带的srh头中的首尾节点sid和所述原始报文的业务属性信息,确定传输所述原始报文的目标srv6隧道;基于所述封装后的srv6报文携带的
srv6首节点和srv6尾节点的扩展sid,以及本地维护的所述目标srv6隧道包括的各srv6节点的扩展sid,确定下一跳srv6节点,将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。
101.例如,控制器下发了基于openflow流表转发/策略转发的srv6 sid有两个,一个携带红色业务标记srv6 sid1,一个携带蓝色业务标记srv6 sid2,红色业务表示低时延业务,蓝色业务表示低丢包业务,引流策略会根据原始报文头部选择一个srv6 sid进行隧道封装,若选择了红色低时延的srv6 sid1,沿途的所有设备都会对隧道报文进行openflow流表转发,并根据源节点和目的节点之间的红色策略隧道选择路径。可选择的,当基于openflow流表/策略转发srv6报文时,可进一步的修改srh头部信息减少报文长度,也即srh头部中只需要携带首srv6节点和srv6尾节点的扩展sid,无需携带srv6中间节点的扩展sid。
102.示例性的,参阅图4所示,为本技术实施例提供的一种使用了扩展srv6 sid的srv6隧道报文的结构示意图。扩展后的srv6隧道,ipv6头部的源地址为srv6源设备地址,目的地址为隧道下一跳节点的srv6 sid,这一点和现有实现一致。srh中只包含srv6首节点和srv6尾结点的segment id,用以告知每个srv6中间节点srv6隧道的源端和终端,剩余segment和首segment均为1,flag中的static标记为新增标记,用以标识中间节点不修改srh字段的segment left(剩余segment),只有srv6尾结点才会执行隧道终结的操作。
103.下面结合具体应用场景对本技术实施例提供的报文转发方法的过程进行详细说明。
104.示例性的,参阅图5所示,为本技术实施例提供的一种srv6网络中srv6隧道报文多路径转发示意图,sr1到sr6之间存在两个不同颜色的srv6隧道,每个隧道有不同的路径列表。控制器为每个sr路由器节点的prefix sid分配两个不同颜色的srv6 sid。比如sr1的prefix sid为2001:cb8:1::1,openflow转发方式的红色扩展srv6 sid为2001:cb8:1::1:1,蓝色扩展srv6 sid为2001:cb8:1::1:2,sr2的prefix sid为2001:cb8:2::1,openflow转发方式的红色扩展srv6 sid为2001:cb8:2::1:1,蓝色扩展srv6 sid为2001:cb8:2::1:2,以此类推sr6的prefix sid为2001:cb8:6::1,openflow转发方式的红色扩展srv6sid为2001:cb8:6::1:1,蓝色扩展srv6 sid为2001:cb8:6::1:2。
105.控制器在sr1上下发引流策略,分别将用户报文引流到te policy1和te policy2上。以红色路径为例,sr1封装隧道报文源ip为2001:cb8:1::1(sr1的prefix sid),目的ip为2001:cb8:2::1:1(sr2的扩展srv6 sid),srh中的static标记置位,segmentid为2001:cb8:6::1:1(srv6的扩展srv6 sid),并将报文转发出去。
106.在sr中间节点上下发openflow流表,匹配项为隧道报文目的ip(srv6 sid中的locator字段,forward method字段,color字段),srh中的segmentid源节点和尾结点,动作项为修改报文目的ip为红色te policy隧道下一跳sr的ip,出接口为该下一跳sr的路由出接口。以sr2为例,接收到来自于sr1的srv6隧道报文后,隧道头部目的ip地址为2001:cb8:2::1:1,该地址sid的function/forward method为openflow,则触发openflow流表转发,匹配项为目的ip(2001:cb8:2::1:1)、srh的源节点sid(2001:cb8:1::1:1)、尾结点sid(2001:cb8:6::1:1),根据源节点sid和尾结点sid、隧道color可获取报文所在隧道为sr1和sr6之间的红色隧道,根据隧道目的ip为sr2的红色srv6 sid,获取下一跳设备ip为sr3的红色srv6 sid(2001:cb8:3::1:1),动作项为修改隧道目的ip为sr3的红色srv6 sid(2001:cb8:
3::1:1),出接口为sr3路由出接口,之后报文被转发到sr3;sr3接收到报文后,处理方式和sr2一样,通过openflow流表转发报文给sr6;sr6接收到报文后,同样也会触发openflow流表转发,但srh中的segmentid和报文目的ip都是本设备,触发隧道终结,弹掉srv6隧道后转发内层用户报文。
107.示例性的,参阅图6所示,为本技术实施例提供的一种报文转发装置的结构示意图,该装置应用于srv6首节点,该装置包括:
108.接收单元60,用于接收原始报文,并确定所述原始报文的业务属性;
109.确定单元61,用于基于所述原始报文的业务属性和控制器下发的引流转发策略,确定转发所述原始报文的srv6隧道和报文转发模式;
110.封装单元62,用于基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带所述原始报文的报文转发模式;
111.发送单元63,用于基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。
112.可选地,所述报文转发模式包括:路由转发,流表转发和策略转发。
113.可选地,若所述报文转发模式为路由转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文时,所述封装单元62具体用于:
114.将路由转发模式对应的,转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list封装至srh头中,得到封装后的srv6报文,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;
115.若所述报文转发模式为流表转发/策略转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文时,所述封装单元62具体用于:
116.将流表转发/策略转发对应的,转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid封装至srh头中,得到封装后的srv6报文,其中,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息。
117.可选地,所述原始报文的报文转发模式信息携带在对应扩展sid的function字段中;所述原始报文的业务属性信息携带在对应扩展sid的arguments字段中。
118.示例性的,参阅图7所示,为本技术实施例提供的一种报文转发装置的结构示意图,该装置应用于srv6中间节点,该装置包括:
119.接收单元70,用于接收上一srv6节点转发的封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带原始报文的报文转发模式;
120.解析单元71,用于解析所述封装后的srv6报文,得到所述原始报文的转发模式;
121.发送单元72,用于基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。
122.可选地,所述报文转发模式包括:路由转发,流表转发和策略转发;
123.若所述报文转发模式为路由转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;将所述封装后的srv6
报文发送至下一跳srv6节点时,所述发送单元72具体用于:
124.确定所述封装后的srv6报文的下一跳srv6节点,并将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。
125.可选地,若所述报文转发模式为流表转发/策略转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息;将所述封装后的srv6报文发送至下一跳srv6节点时,所述发送单元72具体用于:
126.基于所述封装后的srv6报文携带的srh头中的首尾节点sid和所述原始报文的业务属性信息,确定传输所述原始报文的目标srv6隧道;
127.基于所述封装后的srv6报文携带的srv6首节点和srv6尾节点的扩展sid,以及本地维护的所述目标srv6隧道包括的各srv6节点的扩展sid,确定下一跳srv6节点,将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。
128.以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微处理器(digital singnal processor,简称dsp),或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
129.进一步地,本技术实施例提供的报文处理装置,从硬件层面而言,所述报文处理装置的硬件架构示意图可以参见图8所示,所述报文处理装置可以包括:存储器80和处理器81,
130.存储器80用于存储程序指令;处理器81调用存储器80中存储的程序指令,按照获得的程序指令执行上述应用于srv6首节点的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
131.可选地,本技术还提供一种srv6首节点设备,包括用于执行上述应用于srv6首节点的方法实施例的至少一个处理元件(或芯片)。
132.可选地,本技术还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述应用于srv6首节点的方法实施例。
133.进一步地,本技术实施例提供的报文处理装置,从硬件层面而言,所述报文处理装置的硬件架构示意图可以参见图9所示,所述报文处理装置可以包括:存储器90和处理器91,
134.存储器90用于存储程序指令;处理器91调用存储器90中存储的程序指令,按照获得的程序指令执行上述应用于srv6中间节点的方法实施例。具体实现方式和技术效果类似,这里不再赘述。
135.可选地,本技术还提供一种srv6中间节点设备,包括用于执行上述应用于srv6中
间节点的方法实施例的至少一个处理元件(或芯片)。
136.可选地,本技术还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述应用于srv6中间节点的方法实施例。
137.这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
138.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
139.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本技术时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
140.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
141.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
142.而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
143.这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
144.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。

技术特征:
1.一种报文转发方法,其特征在于,应用于srv6首节点,所述方法包括:接收原始报文,并确定所述原始报文的业务属性;基于所述原始报文的业务属性和控制器下发的引流转发策略,确定转发所述原始报文的srv6隧道和报文转发模式;基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带所述原始报文的报文转发模式;基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。2.如权利要求1所述的方法,其特征在于,所述报文转发模式包括:路由转发,流表转发和策略转发。3.如权利要求2所述的方法,其特征在于,若所述报文转发模式为路由转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文的步骤包括:将路由转发模式对应的,转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list封装至srh头中,得到封装后的srv6报文,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;若所述报文转发模式为流表转发/策略转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文的步骤包括:将流表转发/策略转发对应的,转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid封装至srh头中,得到封装后的srv6报文,其中,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息。4.如权利要求3所述的方法,其特征在于,所述原始报文的报文转发模式信息携带在对应扩展sid的function字段中;所述原始报文的业务属性信息携带在对应扩展sid的arguments字段中。5.一种报文转发方法,其特征在于,应用于srv6中间节点,各srv6节点中维护有各srv6隧道包括的各srv6节点的扩展sid;所述方法包括:接收上一srv6节点转发的封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带原始报文的报文转发模式;解析所述封装后的srv6报文,得到所述原始报文的转发模式;基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。6.如权利要求5所述的方法,其特征在于,所述报文转发模式包括:路由转发,流表转发和策略转发;若所述报文转发模式为路由转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;将所述封装后的srv6报文发送至下一跳srv6节点的步骤包括:
确定所述封装后的srv6报文的下一跳srv6节点,并将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。7.如权利要求6所述的方法,其特征在于,若所述报文转发模式为流表转发/策略转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息;将所述封装后的srv6报文发送至下一跳srv6节点的步骤包括:基于所述封装后的srv6报文携带的srh头中的首尾节点sid和所述原始报文的业务属性信息,确定传输所述原始报文的目标srv6隧道;基于所述封装后的srv6报文携带的srv6首节点和srv6尾节点的扩展sid,以及本地维护的所述目标srv6隧道包括的各srv6节点的扩展sid,确定下一跳srv6节点,将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。8.一种报文转发装置,其特征在于,应用于srv6首节点,所述装置包括:接收单元,用于接收原始报文,并确定所述原始报文的业务属性;确定单元,用于基于所述原始报文的业务属性和控制器下发的引流转发策略,确定转发所述原始报文的srv6隧道和报文转发模式;封装单元,用于基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带所述原始报文的报文转发模式;发送单元,用于基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。9.如权利要求8所述的装置,其特征在于,若所述报文转发模式为路由转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文时,所述封装单元具体用于:将路由转发模式对应的,转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list封装至srh头中,得到封装后的srv6报文,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;若所述报文转发模式为流表转发/策略转发,则基于转发所述原始报文的srv6隧道,对所述原始报文进行srv6封装,得到封装后的srv6报文时,所述封装单元具体用于:将流表转发/策略转发对应的,转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid封装至srh头中,得到封装后的srv6报文,其中,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息。10.一种报文转发装置,其特征在于,应用于srv6中间节点,各srv6节点中维护有各srv6隧道包括的各srv6节点的扩展sid;所述装置包括:接收单元,用于接收上一srv6节点转发的封装后的srv6报文,其中,所述封装后的srv6报文的srh头的各扩展sid中携带原始报文的报文转发模式;解析单元,用于解析所述封装后的srv6报文,得到所述原始报文的转发模式;
发送单元,用于基于所述原始报文的报文转发模式,将所述封装后的srv6报文发送至下一跳srv6节点。11.如权利要求10所述的装置,其特征在于,所述报文转发模式包括:路由转发,流表转发和策略转发;若所述报文转发模式为路由转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的各srv6节点的扩展sid list,其中,路由转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息;将所述封装后的srv6报文发送至下一跳srv6节点时,所述发送单元具体用于:确定所述封装后的srv6报文的下一跳srv6节点,并将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。12.如权利要求11所述的装置,其特征在于,若所述报文转发模式为流表转发/策略转发,所述封装后的srv6报文的srh头中携带有转发所述原始报文的srv6隧道包括的srv6首节点和srv6尾节点的扩展sid,其中,流表转发/策略转发模式对应的,一个srv6节点的扩展sid携带有所述原始报文的报文转发模式信息和所述原始报文的业务属性信息;将所述封装后的srv6报文发送至下一跳srv6节点时,所述发送单元具体用于:基于所述封装后的srv6报文携带的srh头中的首尾节点sid和所述原始报文的业务属性信息,确定传输所述原始报文的目标srv6隧道;基于所述封装后的srv6报文携带的srv6首节点和srv6尾节点的扩展sid,以及本地维护的所述目标srv6隧道包括的各srv6节点的扩展sid,确定下一跳srv6节点,将所述封装后的srv6报文的目的扩展sid替换为该下一跳srv6节点的扩展sid,并转发至下一跳srv6节点。13.一种报文转发装置,其特征在于,所述报文转发装置包括:存储器,用于存储程序指令;处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如权利要求1-4或5-7中任一项所述方法的步骤。14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如权利要求1-4或5-7中任一项所述方法的步骤。

技术总结
本申请涉及网络通信技术领域,特别涉及一种报文转发方法及装置。该方法包括:接收原始报文,并确定所述原始报文的业务属性;基于所述原始报文的业务属性和控制器下发的引流转发策略,确定转发所述原始报文的SRv6隧道和报文转发模式;基于转发所述原始报文的SRv6隧道,对所述原始报文进行SRv6封装,得到封装后的SRv6报文,其中,所述封装后的SRv6报文的SRH头的各扩展SID中携带所述原始报文的报文转发模式;基于所述原始报文的报文转发模式,将所述封装后的SRv6报文发送至下一跳SRv6节点。述封装后的SRv6报文发送至下一跳SRv6节点。述封装后的SRv6报文发送至下一跳SRv6节点。


技术研发人员:宋小恒
受保护的技术使用者:新华三技术有限公司
技术研发日:2023.03.31
技术公布日:2023/7/13
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐