CN113014485B - 一种基于SRv6-TE路径的报文转发方法和报文转发装置 - Google Patents
一种基于SRv6-TE路径的报文转发方法和报文转发装置 Download PDFInfo
- Publication number
- CN113014485B CN113014485B CN202110209008.9A CN202110209008A CN113014485B CN 113014485 B CN113014485 B CN 113014485B CN 202110209008 A CN202110209008 A CN 202110209008A CN 113014485 B CN113014485 B CN 113014485B
- Authority
- CN
- China
- Prior art keywords
- srv6
- spt
- path
- forwarding
- node
- 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/34—Source routing
-
- 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/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于SRv6‑TE路径的报文转发方法和报文转发装置,方法中控制模块预先将SPT缺省路由、SPT节点路由和SRv6‑TE转发路径安装至转发模块中;转发模块接收携带有SRv6‑TE转发路径的SRv6流量报文,对所述SRv6‑TE转发路径进行解析,得到多个分段列表成员;转发模块对当前分段列表成员进行解析得到当前SRv6域的SRv6域标识和下一航路点,根据所述SRv6域标识和所述下一航路点形成IPv6目的地址。本发明使用代表拓扑的SRv6域标识、SRv6节点标识和SRv6邻接标识形成SRv6‑TE转发路径,在不影响网络规模的情况下能提升SRv6的SRH的路径压缩效率,减少报文冗余率。
Description
技术领域
本发明属于数据通信领域,更具体地,涉及一种基于SRv6-TE路径的报文转发方法和报文转发装置。
背景技术
分段路由SR(Segment Routing,简写为SR)技术是一种基于源路由转发模式的隧道技术,通过在报文中附加SID(Segment ID,简写为SID)组成的分段列表SL(SegmentList,简写为SL)相关的信息,不需要在中间节点上维护每条路径的状态信息。
SR实现时,在源节点将待发送的报文封装上报文经过的路径信息,该路径信息包括报文中所要经过SR节点的段标识SID(Segment Identifier,简写为SID)以及节点的路由顺序。当报文沿传输路径经过SR节点时,在转发信息库FIB(Forward Information dataBase,简写为FIB)中查找与该报文中SID对应的表项,以指示收到报文的SR节点转发和处理该报文,其中,报文的路径信息中多个SID以分段列表成员的形式存在,分段列表成员从路径的最后一段开始编码,在FIB中查找到对应于报文中的SID时,指示将报文中该SID剥除得到下一节点的SID并进行转发。
SR的数据面采用多协议标记交换(Multi-Protocol Label Switching,简写为MPLS)或互联网通信协议第6版(Internet Protocol version 6,简写为IPv6)两种方式。基于IPv6方式的SR,称为基于IPv6数据平面的分段路由(Segment Routing over IPv6 dataplane,简写为SRv6)。
SRv6新增加一种IPv6扩展报文头部,称作SRH(Segment Routing Header,段路由头部),该SRH指定一个IPv6的显式路径,使用128位的IPv6地址作为SID,在SRH中加入多个SID形成SID List,网络中的每个转发节点按照SRH里包含的路径信息进行路由转发功能,这种SID-List也称为SRv6流量工程路径(Traffic Engineering,流量工程),简称SRv6-TE路径。
根据SRv6定义,每个SID(段标识)的宽度和IPv6地址一样,都是128位(16字节)。在部分网络部署应用中,可能需要在转发路径中指定10个SID作为路由约束节点,那么,SRH的长度就需要16B*10+8B=168B,对于64字节的业务报文来说,载荷效率=64B/(64B+168B)=0.27。在使用SRv6作为其承载通道时,承载效率非常低下。
其次,对于较长的SRH,设备芯片实现较困难。SRv6要求网络芯片读取完整SRH(包括所有的SID),然后根据指针指示位置提取需处理的SID并进行转发。这就意味着SID层数越多,芯片内部的处理总线带宽要求就越高,而总线带宽是影响芯片成本和功耗的关键因素,例如,8个SID将带来128byte的SRH长度,将大大增加芯片复杂度,增加处理时延,为落地应用带来挑战。
另外,如果使用SRv6来传输部分长度较大的报文,再额外添加过长的SRH到原始报文前面,很有可能出现报文总长度超出线路MTU(Maximum Transmission Unit,简写为MTU),导致不期望的报文分片或丢包,降低端到端传输效率。
发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于SRv6-TE路径的报文转发方法和报文转发装置,其目的在于使用代表拓扑的SRv6域标识、SRv6节点标识和SRv6邻接标识形成SRv6-TE转发路径,在不影响网络规模的情况下能进一步提升SRv6的SRH的路径压缩效率,减少报文冗余率,提升SRv6的承载效率,由此解决SRv6作为其承载通道时,承载效率非常低下的技术问题。
第一方面,本发明提供了一种基于SRv6-TE路径的报文转发方法,包括:
控制模块预先将SPT缺省路由、SPT节点路由和SRv6-TE转发路径安装至转发模块中;
转发模块接收携带有SRv6-TE转发路径的SRv6流量报文,对所述SRv6-TE转发路径进行解析,得到多个分段列表成员;
所述转发模块对当前分段列表成员进行解析得到当前SRv6域的SRv6域标识和下一航路点,根据所述SRv6域标识和所述下一航路点形成IPv6目的地址;
如果所述IPv6目的地址匹配到路由表中的SPT缺省路由或SPT节点路由,则终结所述SRv6流量报文在当前SRv6域内的路由转发,取出下一个分段列表成员作为新的目的地址,在下一个SRv6域内转发所述SRv6流量报文;
如果所述IPv6目的地址匹配到路由表中的SRv6节点路由,则根据所述IPv6目的地址将所述SRv6流量报文转发至下一跳。
优选的,控制模块预先将SPT缺省路由、SPT节点路由和SRv6-TE转发路径安装至转发模块中包括:
控制模块为网络中的SRv6域配置SRv6域标识,为每一SRv6域中的节点配置SRv6节点标识和SRv6邻接标识,根据所述SRv6域标识生成SPT缺省路由,根据所述SRv6域标识和所述SRv6节点标识生成SPT节点路由,并将所述SPT缺省路由和所述SPT节点路由安装至转发模块中;
所述控制模块接收根据SRv6域标识、SRv6节点标识和SRv6邻接标识生成的SRv6-TE编排路径;
所述控制模块将所述SRv6-TE编排路径转换为SRv6-TE转发路径,并将所述SRv6-TE转发路径安装至转发模块中。
优选的,所述SRv6-TE编排路径的具体表现形式为:以SRv6域标识为第一编排层级,以SRv6节点标识为域下的第二编排层级,以SRv6邻接标识为节点下的第三编排层级,生成至少一个编排子路径;依照网络拓扑关系将多个所述编排子路径进行组合,得到SRv6-TE编排路径。
优选的,所述控制模块将所述SRv6-TE编排路径转换为SRv6-TE转发路径,并将所述SRv6-TE转发路径安装至所述转发模块中包括:
预定义子路径终结指令END.SPT;
将所述SRv6-TE编排路径拆分成至少一个编排子路径,针对每一个所述编排子路径,依次添加所述编排子路径中的每个标识,在最后一个标识后,添加一个子路径终结指令END.SPT得到转发子路径;
将所有的转发子路径逆序组合,形成一个完整的转发路径,并将该转发路径尾部的END.SPT删除,得到SRv6-TE转发路径。
优选的,所述针对每一个所述编排子路径,依次添加所述编排子路径中的每个标识,在最后一个标识后,添加一个子路径终结指令END.SPT得到转发子路径包括:
针对每一个所述编排子路径,以128bit为一个SID,基于所述编排子路径的编排层次,依次添加各标识,在最后一个标识所在的SID中添加子路径终结指令END.SPT,并作128位对齐处理,得到转发子路径。
优选的,所述子路径终结指令END.SPT为符号,在所有SRv6域内上的所有设备上所述子路径终结指令END.SPT保持一致;
所述控制模块根据所述SRv6域标识和所述END.SPT形成所述SPT缺省路由,根据所述SRv6域标识、所述SRv6节点标识和所述END.SPT形成所述SPT节点路由。
优选的,所述SPT缺省路由由IPv6前缀和掩码长度组成,根据所述SRv6域标识和所述END.SPT形成所述SPT缺省路由包括:
将m位的SRv6域标识左移128-m位,右边补0,得到第一结果;
在所述第一结果的基础上将n位的END.SPT左移128-m-n位,右边补0,得到第二结果,将第二结果作为SPT缺省路由的IPv6前缀;
以m+n作为掩码长度;
基于所述IPv6前缀和所述掩码长度按照如下表达形式生成SPT缺省路由,其中,所述SPT缺省路由的表达形式为SRv6域标识:END.SPT::/(m+n)。
优选的,所述SPT节点路由由IPv6前缀和掩码长度组成,根据所述SRv6域标识、所述SRv6节点标识和所述END.SPT形成所述SPT节点路由包括:
将m位的SRv6域标识左移128-m位,右边补0,得到第一结果;
在所述第一结果的基础上将n位的SRv6节点标识左移128-m-n位,右边补0,得到第二结果;
在所述第二结果的基础上将n位的END.SPT左移128-m-n-n位,右边补0,得到第三结果,将第三结果作为SPT节点路由的IPv6前缀;
以m+n+n作为掩码长度;
基于所述IPv6前缀和所述掩码长度按照如下表达形式生成SPT节点路由,其中,所述SPT节点路由的表达形式为SRv6域标识:SRv6节点标识:END.SPT::/(m+n+n)。
优选的,所述子路径终结指令END.SPT可以动态配置为动态值;或,所述子路径终结指令END.SPT为一特定值。
第二方面,本发明还提供了一种报文转发装置,所述报文转发装置包括转发模块和控制模块,所述控制模块和所述转发模块相互配合完成如第一方面所述的报文转发方法。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
在本发明中,使用代表拓扑的SRv6域标识、SRv6节点标识和SRv6邻接标识形成SRv6-TE转发路径,在不影响网络规模的情况下能进一步提升SRv6的SRH的路径压缩效率,减少报文冗余率,提升SRv6的承载效率。以SPT缺省路由和SPT节点路由作为流量报文在某一个SRv6域的终结标志,结束该流量报文在本SRv6域的转发,正确引导报文的转发。
进一步地,采用层次化的SRv6流量工程路径编排方式,简化了路径表示方式,能够大幅压缩控制器或者网管与转发器设备之间的通信信息量,使用直观、易懂的标识方法来对网络进行编排,具有极强的用户友好性,简化网络配置,加快了SRv6业务部署的整体性能,而且有利于网络运维效率提升。
附图说明
图1是本发明实施例提供的一种基于SRv6-TE路径的报文转发方法的流程示意图;
图2是本发明实施例提供的控制另一种基于SRv6-TE路径的报文转发方法的流程示意图;
图3是本发明实施例提供的控制又一种基于SRv6-TE路径的报文转发方法的流程示意图;
图4是本发明实施例提供的一种组网网络的拓扑结构示意图;
图5是本发明实施例提供的一种SRv6-TE编排路径的结构示意图;
图6是本发明实施例提供图5中SRv6-TE编排路径所对应的SRv6-TE转发路径的结构示意图;
图7是本发明实施例现有技术中SRv6-TE转发路径的结构示意图;
图8是本发明实施例提供的一种报文转发装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
实施例1:
参阅图1~图3,本实施例提供一种基于SRv6-TE路径的报文转发方法,该方法包括如下步骤:
步骤10:控制模块预先将SPT缺省路由、SPT节点路由和SRv6-TE转发路径安装至转发模块中。
其中,SPT缺省路由和SPT节点路由为SPT(Sub-Path Terminator,子路径终结器)路由的两种具体类型,是本实施例定义的IPV6路由表中的一种路由类型,SPT路由和OSPFv3路由类型相似,都用于设备转发面匹配IPv6报文特征,正确地完成客户流量处理。
其中,SRv6-TE转发路径为转发芯片或转发软件能够识别的SRv6-TE约束路径,是一种便于机器处理的表达形式。该SRv6-TE转发路径是根据SRv6-TE编排路径生成而来的,SRv6-TE编排路径是基于用户意图驱动的,可读性较好,是一种更为直观的表达形式。
在本实施例中,在进行报文转发之前,控制模块需要先将SPT缺省路由、SPT节点路由和SRv6-TE转发路径安装至转发模块中。其中,SPT缺省路由和SPT节点路由为本实施例自定义的两种IPv6路由,用于引导IPv6数据流量,下文会具体说明这两种路由的生成方式。
当前,定制SRv6-TE路径列表时,使用128位的IPv6地址作为基本单位进行路径列表编辑和路由路径计算,一方面,128位的超长的标识和繁杂的IPv6地址表达形式让用户使用起来非常不直观,专业化认知负担过重。在网管或者设备上做业务配置时,操作人员需要配置IPv6 128位地址的每一个部分,包括Block部分、Function部分、Argument部分等,配置步骤复杂,容易配错。如果运营商网络规划人员造成路径编排错误,过度复杂的展现形式让工程人员在故障排查时增加了调试诊断的无用信息数量,难度进一步提升。另外一方面,对于动态路由计算的SRv6路径列表而言,IPv6128位的键值开销也增加了CPU计算量和内存占用量,使得路径计算的效率下降,网络收敛性能变差,可靠性降低。
为了解决前述问题,本实施例提出一种层次化的、基于标识的SRv6流量工程路径编排,在实际应用场景下,存在多种情况需要指定转发路径走特定的邻接链路,例如,对于TILFA FRR场景,为了达到网络保护的作用,需要在修复节点上走特定的邻接链路,这样可以绕过故障节点;如果节点间有多条等价路径可以达到,为了流量的精确调度,需要指定具体某一条路径转发,这时需要走特定的邻接链路;用户指定的流量工程意图时,考虑到QOS、安全等因素,流量必须要经过某些链路。因此,本实施例的编排路径不仅包含SRv6域标识和SRv6节点标识,还有可能包含SRv6邻接标识。在本实施例中,控制模块为网络中的SRv6域配置SRv6域标识,为每一SRv6域中的节点配置SRv6节点标识和SRv6邻接标识。
在实际应用场景下,所述控制模块根据用户流量工程意图将SRv6域标识、SRv6节点标识和SRv6邻接标识生成SRv6-TE编排路径;所述控制模块将所述SRv6-TE编排路径转换为SRv6-TE转发路径,并将所述SRv6-TE转发路径安装至所述转发模块中。
其中,一个SRv6-TE编排路径由多个SRv6-TE编排子路径依照网络拓扑关系排列组合而成,体现了一种用户的端到端的特定数据传输诉求,一个SRv6编排子路径表示用户在一个SRv6域内的流量工程意图。SRv6-TE编排路径可以是静态编辑出来的,也可以是根据某种流量工程算法(例如基于Dijkstra的CSPF算法)按需计算得出。
其中,一个SRv6-TE编排路径包括至少一个SRv6-TE编排子路径,其中,SRv6域(Domain)通常代表一个特定范围内的网络,例如,中国联通的一个省级网络就可以叫一个SRv6域。如图4所示,D1、D2和D3表示不同的SRv6域,该SRv6域对应的IPv6公共前缀称为SRv6域标识,SRv6域的SRv6域标识用于唯一标识该SRv6域,SRv6域标识可以64bit。
其中,为某个SRv6域内的每个节点分配一个在域内唯一的短标识(例如,16位数字,或24位数字,或32位数字),称为SRv6节点标识。
其中,在每个节点上为某些特定的邻接链路分配该节点内唯一的短标识(例如,16位数字),称为SRv6邻接标识。
具体地,SRv6-TE编排路径的具体表现形式为以SRv6域标识为第一编排层级,以SRv6节点标识为域下的第二编排层级,以SRv6邻接标识为节点下的第三编排层级,生成至少一个编排子路径;依照网络拓扑关系将多个所述编排子路径进行组合,得到SRv6-TE编排路径。一个SRv6-TE编排路径的表示方法可以为:SRv6-TE Path={DomainID 1(NodeID 1,NodeID2,AdjID 1,……);DomainID 2(……);……}。其中,DomainID为SRv6域标识,NodeID为SRv6节点标识,AdjID为SRv6邻接标识。
下面结合图4和图5进行举例说明,其中,图4展示了一种组网模型,D**代表SRv6域,N**代表网络中的设备节点,A**代表设备上和另外某个节点相连的邻居。在图4中,黑色粗线条代表用户定义的一条SRv6-TE路径:P1={D1(N11,N12,A121,N13);D2(N21,A212,N24,N28,N23)},其中,P1代表用户的一个流量工程意图,能够以最小延时的方式在SRv6网络域中提供报文承载服务,D1(N11,N12,A121,N13)表示其中一个SRv6域内的SRv6-TE编排子路径,D1表示SRv6域标识,N11、N12和N13表示SRv6节点标识,A121表示节点N11上的SRv6邻接标识;D2(N21,A212,N24,N28,N23)表示另一个SRv6域内的SRv6-TE编排子路径,D2表示SRv6域标识,N21、N24和N28表示SRv6节点标识,A121表示节点N11上的SRv6邻接标识。在实际应用场景下,采用本实施例的层次化的编排模型将P1转换为图5所示的SRv6-TE编排路径。
在此需要说明的是,前述的D1是松散路由机制,在规划路径的时候不一定会指定每一个经过的节点和链路,只会要求必须要经过某些节点或者链路,不关注其他要经过节点和链路,具体由网络拓扑动态而确定。D2是严格路由机制:路径中的每个航路点(节点或链路)都被明确指定。
在本实施例中,采用层次化的SRv6流量工程路径编排方式,简化了路径表示方式,能够大幅压缩控制器或者网管与转发器设备之间的通信信息量,使用直观、易懂的标识方法来对网络进行编排,具有极强的用户友好性,简化网络配置,加快了SRv6业务部署的整体性能,而且有利于网络运维效率提升。
在本实施例中,每配置完一个SRv6域和SRv6节点,所述控制模块根据所述SRv6域标识生成SPT缺省路由,根据所述SRv6域标识和所述SRv6节点标识生成SPT节点路由,并将所述SPT缺省路由和所述SPT节点路由安装至转发模块中。
具体地,对SRv6域内的每一个节点,当配置SRv6节点标识后,在每一个节点上都会对应生成2条SPT路由,第一条是SPT缺省路由,第二条是SPT节点路由,用于在SRv6-TE转发子路经的终结节点上匹配上报文,正确地完成客户流量引导。
在本实施例中,控制模块根据所述SRv6域标识和所述END.SPT形成所述SPT缺省路由,根据所述SRv6域标识、所述SRv6节点标识和所述END.SPT形成所述SPT节点路由。
在一具体应用场景下,所述SPT缺省路由由IPv6前缀和掩码长度组成,根据所述SRv6域标识和所述END.SPT形成所述SPT缺省路由的具体过程为:
将m位的SRv6域标识左移128-m位,右边补0,得到第一结果;在所述第一结果的基础上将n位的END.SPT左移128-m-n位,右边补0,得到第二结果,将第二结果作为SPT缺省路由的IPv6前缀;以m+n作为掩码长度;基于所述IPv6前缀和所述掩码长度按照如下表达形式生成SPT缺省路由,其中,所述SPT缺省路由的表达形式为SRv6域标识:END.SPT::/(m+n)。
在一具体应用场景下,所述SPT节点路由由IPv6前缀和掩码长度组成,根据所述SRv6域标识、所述SRv6节点标识和所述END.SPT形成所述SPT节点路由的具体过程为:
将m位的SRv6域标识左移128-m位,右边补0,得到第一结果;在所述第一结果的基础上将n位的SRv6节点标识左移128-m-n位,右边补0,得到第二结果;在所述第二结果的基础上将n位的END.SPT左移128-m-n-n位,右边补0,得到第三结果;将第三结果作为SPT节点路由的IPv6前缀;以m+n+n作为掩码长度;基于所述IPv6前缀和所述掩码长度按照如下表达形式生成SPT节点路由,其中,所述SPT节点路由的表达形式为SRv6域标识:SRv6节点标识:END.SPT::/(m+n+n)。
其中,m为SRv6域标识的长度,由运营商的地址规划确定,n为SRv6域内SRv6节点标识的位数,例如,16位节点长度的SRv6域可以支持约64K个节点。因为IPv6路由表的前缀长度不能超过IPv6地址长度128位,在实施网络地址规划时,需要保证m+2*n<128,其中,m+n为路由条目的掩码长度,用于IPv6路由的最长前缀匹配LPM查找。这里m+2*n<128表示域标识+节点标识+终结标识(END.SPT)长度之后不超过128,这相当于是对前缀长度规划和节点长度规划的一个约束。子路径长度是可以超过128的。例如,每个分段列表成员SL[0]、SL[1]、SL[2],例如,在图6中,D1、N11、N12、A121、N13已经占据128bit,则将终结标识放到了SL[2]中,其余位数补0,SL[1]和SL[2]对应D1域的子路径,下文也有描述。
在本实施例中,所述控制模块将所述SRv6-TE编排路径转换为SRv6-TE转发路径,并将所述SRv6-TE转发路径安装至所述转发模块中具体过程如下:
预定义子路径终结指令END.SPT,将所述SRv6-TE编排路径拆分成至少一个编排子路径,针对每一个所述编排子路径,依次添加所述编排子路径中的每个标识,在最后一个标识后,添加一个子路径终结指令END.SPT得到转发子路径。具体地,针对每一个所述编排子路径,以128bit为一个SID,基于所述编排子路径的编排层次,依次添加各标识,在最后一个标识所在的SID中添加子路径终结指令END.SPT,并作128位对齐处理,得到转发子路径。
将所有的转发子路径逆序组合,形成一个完整的转发路径,并将该转发路径尾部的END.SPT删除,得到SRv6-TE转发路径。
在实际应用场景下,依次处理SRv6-TE编排路径中的每一个SRv6-TE编排子路径,处理方法为:依次添加编排子路径中的每个标识,并执行如下检查:该标识不能是END.SPT,可以是SRv6域标识、SRv6节点标识或者SRv6邻接标识三类标识。如果是SRv6邻接标识,进一步检查该标识的前一个标识是否为SRv6节点标识,如果是非SRv6节点标识,则存在SRv6邻接标识编排错误,退出转换过程。如果是SRv6域标识,进一步检查该标识的前一个标识是否为SRv6域标识,如果是SRv6域标识,则存在SRv6域标识编排错误,退出转换过程。处理完每个标识后,在最后一个标识后,添加一个SRv6子路径终结指令END.SPT。然后,做128位对齐处理(不足时在尾部补0),形成一个独立的SRv6-TE转发子路径。
其中,所述子路径终结指令END.SPT的执行动作为:从报文SRH头部的END.SPT字段之后开始执行标准的SRv6 END操作。
其中,所述子路径终结指令END.SPT为符号,在所有SRv6域内上的所有设备上所述子路径终结指令END.SPT保持一致,其中,所述子路径终结指令END.SPT可以动态配置为动态值;或,所述子路径终结指令END.SPT为一特定值。
如图6所示,展示了一种SRv6-TE转发路径,其中,SL[0]~SL[2]分别表示段路由,SL[0]为一个SRv6-TE转发子路径,SL[1]和SL[2]为另一个SRv6-TE转发子路径,在此,需要说明的是,SRv6-TE转发子路径可以超过128bit,以END.SPT为结束标识,每个SRv6域对应的域标识各不相同,对于同一个SRv6域,各节点标识、邻接标识的取值唯一,对于不同的SRv6域,允许存在相同的标识。由于域标识唯一,由域标识与节点标识或邻接标识形成的目的地址也是唯一确定的。
其中,结合图4,2001:D88:38A0(SL[2]中的第一个数据块)为SRv6域标识D1,2001:D88:38A0和SL[2]中的第二个数据块“1”(SRv6域节点标识N11)构成IPv6目的地址2001:D88:38A0:1,以此类推,采用该种形式的路径表示方式提升SRv6的SRH的路径压缩效率,减少报文冗余率,提升SRv6的承载效率。
其中,图7是基于原有的方法转换出来的SRv6-TE转发路径,图6为经过本方法转换出来的SRv6-TE转发路径,产生1个END.SPT,可以看出,SRv6报文头部SRH在变小,可以提高承载效率。
步骤11:转发模块接收携带有SRv6-TE转发路径的SRv6流量报文,对接收到的所述SRv6-TE转发路径进行解析,得到多个分段列表成员。
其中,每个分段列表成员包括SRv6域标识、SRv6节点标识和SRv6邻接标识。
在本实施例中,转发模块接收携带有SRv6-TE转发路径的SRv6流量报文,对所述SRv6-TE转发路径进行解析,得到多个分段列表成员。如图6所示的SRv6-TE转发路径对应3个分段列表成员SL[0],SL[1]和SL[2]。
步骤12:所述转发模块对当前分段列表成员进行解析得到当前SRv6域的SRv6域标识和下一航路点,根据所述SRv6域标识和所述下一航路点形成IPv6目的地址。
其中,下一航路点为SRv6节点标识或SRv6邻接标识。
在实际应用场景下,基于SRv6 uSID的完整的转发过程是:转发模块收到SRv6流量报文后,该SRv6流量报文包括IPv6报文头、SRH和IPv6载荷,SRH中存储有多个分段列表成员,IPv6报文头中存储有目的地址,采用IPv6报文头中的目的地址去查询IPv6路由表,进行报文转发。
其中,当前分段列表成员指的就是作为IPv6目的地址存储在IPv6报文头的分段列表成员。
转发模块在接收到报文后,首先从IPv6目的地址中取出SRv6域标识和本节点标识,将SRv6域标识和本节点标识形成IPv6目的地址,该IPv6目的地址能够匹配到路由表中的条目,则说明该SRv6流量报文需要在本节点进行处理和转发。然后对IPv6报文头中的当前分段列表成员进行移位操作获取下一航路点,具体的操作为:从SRv6域标识之后开始,将后面的数据向左移设定的位数将本节点标识从当前分段列表成员中抹除,形成新的目的地址,更新到报文中去,其中,设定的位数依据由网络规划人员而定,可以为16位,也可以为32位。经过此操作后,紧随SRv6域标识的标识即为下一航路点,根据所述SRv6域标识和所述下一航路点形成新的IPv6目的地址,采用该IPv6目的地址去查找IPv6路由表转发。
步骤13:如果所述IPv6目的地址匹配到SPT缺省路由或SPT节点路由,则终结所述SRv6流量报文在当前SRv6域内的路由转发,取出下一个分段列表成员作为新的目的地址,在下一个SRv6域内转发所述SRv6流量报文。
其中,由于每个分段列表成员的位数为128位,当其中一个分段列表成员后追加END.SPT后,该分段列表成员没有超过128位时,END.SPT设置在该分段列表成员的末尾;当其中一个分段列表成员后追加END.SPT后,该分段列表成员超过128位时,END.SPT需要设置在下一个一个分段列表成员的开头。
因此,在不同应用场景下,SPT缺省路由和SPT节点路由均可以为一个SRv6域的流量转发的终结标识。
步骤14:如果所述IPv6目的地址匹配到路由表中的SRv6节点路由,则根据所述IPv6目的地址将所述SRv6流量报文转发至下一跳。
其中下一跳节点的转发模块按照前述步骤12~步骤13的机制完成报文的转发。
如图6所示的SRv6-TE转发路径对应3个分段列表成员SL[0],SL[1]和SL[2]。结合图4,N11节点收到报文后,首先以SL[2]作为当前分段列表成员,对当前分段列表成员进行解析得到SRv6域标识为2001:D88:38A0,本节点标识为1,执行移位操作将下一航路点(2)暴露出来,根据当前SRv6域的SRv6域标识(2001:D88:38A0)和下一航路点(2),根据所述SRv6域标识和所述下一航路点形成IPv6目的地址(2001:D88:38A0:2),根据IPv6目的地址的类型选择性执行步骤13和步骤14。其中,IPv6目的地址的类型包括SPT缺省路由、SPT节点路由和SRv6节点路由。
如果所述IPv6目的地址匹配到SPT缺省路由或SPT节点路由,则执行步骤13,如果所述IPv6目的地址匹配到SRv6节点路由,则执行步骤14。
在本实施例中,假设END.SPT为0,则在图4所示的组网网络中,D1所对应的SRv6域的SPT缺省路由为2001:D88:38A0:0,N11所对应的节点的SPT节点路由为2001:D88:38A0:1:0。
由于2001:D88:38A0:2没有匹配上SPT缺省路由和SPT节点路由,则执行步骤14,将所述SRv6流量报文转发至节点N12,节点N12的转发模块接收携带有SRv6-TE转发路径的SRv6流量报文,对所述SRv6-TE转发路径进行解析,得到多个分段列表成员,并对当前分段列表成员进行解析得到当前SRv6域的SRv6域标识(2001:D88:38A0)和下一航路点(0xE8),根据所述SRv6域标识和所述下一航路点形成IPv6目的地址(2001:D88:38A0:0xE8),由于2001:D88:38A0:0xE8没有匹配上SPT缺省路由和SPT节点路由,则执行步骤14,将所述SRv6流量报文转发至邻接链路A121,邻接链路A121按照前述步骤11~步骤14执行流量报文的转发,直至流量报文转发至节点N13后,所述转发模块对当前分段列表成员(SL[1])进行解析得到END.SPT,则当前分段列表成员对应的SRv6域与SL[2]相同,从而形成IPv6目的地址(2001:D88:38A0:0),由于该IPv6目的地址匹配上SPT缺省路由,则执行步骤13终结所述SRv6流量报文在当前SRv6域内的路由转发,取出下一个分段列表成员在下一个SRv6域内转发所述SRv6流量报文,即取出分段列表成员SL[0],在下一个SRv6域内(D2对应的SRv6域)转发所述SRv6流量报文,具体的转发机制参照步骤11~步骤14,从而完成SRv6流量报文的转发。
在此,需要说明的是,控制模块对SPT路由的管理策略为:SPT路由不允许被聚合;SPT路由始终被优先选中,一直保持活跃;SPT路由不能被重分配给其他动态路由协议,例如OSPF协议、BGP协议。
本实施例的方式至少具有如下有益效果:本实施例推荐使用代表拓扑的、更短的16位标识,相比于现有压缩方法,在不影响网络规模的情况下能进一步提升SRv6的SRH的路径压缩效率,减少报文冗余率,提升SRv6的承载效率。本实施例提出的层次化的SRv6流量工程路径编排方法,使用直观、易懂的标识方法来对网络进行编排,具有极强的用户友好性,简化网络配置,而且有利于网络运维效率提升。本实施例提出的层次化的SRv6流量工程路径编排方法简化了路径表示方式,能够大幅压缩控制器或者网管与转发器设备之间的通信信息量。通过在设备上进行编排路径到转发路径的加快了SRv6业务部署的整体性能。
此外,本发明不再需要扩展BGP、OSPF、ISIS、PCEP等控制面通信协议来通告COC(Continue of Compression,继续压缩)Flavor、C-Flag(Compression-Flag,压缩标记)、uN等SRv6头部压缩控制信息,使得SRv6控制协议更加简化,整体网络收敛性能能够大幅提升。本发明的转发面实现流程更为简单,不用根据不同的Flavor执行不同的处理流程,减少了处理逻辑的分支数量,可提升转发处理性能。而且,本发明使用IPv6基本的最长掩码匹配机制就能够实现SRv6-TE路径的执行,大幅降低了SRv6编程指令的执行复杂度和资源消耗量,便于商业产品的实现。
实施例2:
参阅图8,本实施例提供一种报文转发装置,所述报文转发装置包括转发模块和控制模块,所述控制模块和所述转发模块相互配合完成实施例1所述的报文转发方法。
其中,控制模块用于预先将SPT缺省路由、SPT节点路由和SRv6-TE转发路径安装至转发模块中。
转发模块用于接收携带有SRv6-TE转发路径的SRv6流量报文,对所述SRv6-TE转发路径进行解析,得到多个分段列表成员;
所述转发模块还用于对当前分段列表成员进行解析得到当前SRv6域的SRv6域标识和下一航路点,根据所述SRv6域标识和所述下一航路点形成IPv6目的地址;如果所述IPv6目的地址匹配到SPT缺省路由或SPT节点路由,则终结所述SRv6流量报文在当前SRv6域内的路由转发,取出下一个分段列表成员在下一个SRv6域内转发所述SRv6流量报文;如果所述IPv6目的地址没有匹配到所述SPT缺省路由或所述SPT节点路由,则根据所述IPv6目的地址将所述SRv6流量报文转发至下一跳。
所述控制模块和所述转发模块的具体实现机制请参照实施例1,在此不在赘述。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于SRv6-TE路径的报文转发方法,其特征在于,包括:
控制模块预先将SPT缺省路由、SPT节点路由和SRv6-TE转发路径安装至转发模块中;其中,按照如下方式生成SPT缺省路由和SPT节点路由:控制模块为网络中的SRv6域配置SRv6域标识,为每一SRv6域中的节点配置SRv6节点标识和SRv6邻接标识,根据所述SRv6域标识生成SPT缺省路由,根据所述SRv6域标识和所述SRv6节点标识生成SPT节点路由;
转发模块接收携带有SRv6-TE转发路径的SRv6流量报文,对所述SRv6-TE转发路径进行解析,得到多个分段列表成员;
所述转发模块对当前分段列表成员进行解析得到当前SRv6域的SRv6域标识和下一航路点,根据所述SRv6域标识和所述下一航路点形成IPv6目的地址;
如果所述IPv6目的地址匹配到路由表中的SPT缺省路由或SPT节点路由,则终结所述SRv6流量报文在当前SRv6域内的路由转发,取出下一个分段列表成员作为新的目的地址,在下一个SRv6域内转发所述SRv6流量报文;
如果所述IPv6目的地址匹配到路由表中的SRv6节点路由,则根据所述IPv6目的地址将所述SRv6流量报文转发至下一跳。
2.根据权利要求1所述的报文转发方法,其特征在于,控制模块预先将SPT缺省路由、SPT节点路由和SRv6-TE转发路径安装至转发模块中包括:
控制模块将所述SPT缺省路由和所述SPT节点路由安装至转发模块中;
所述控制模块接收根据SRv6域标识、SRv6节点标识和SRv6邻接标识生成的SRv6-TE编排路径;
所述控制模块将所述SRv6-TE编排路径转换为SRv6-TE转发路径,并将所述SRv6-TE转发路径安装至转发模块中。
3.根据权利要求2所述的报文转发方法,其特征在于,所述SRv6-TE编排路径的具体表现形式为:以SRv6域标识为第一编排层级,以SRv6节点标识为域下的第二编排层级,以SRv6邻接标识为节点下的第三编排层级,生成至少一个编排子路径;依照网络拓扑关系将多个所述编排子路径进行组合,得到SRv6-TE编排路径。
4.根据权利要求3所述的报文转发方法,其特征在于,所述控制模块将所述SRv6-TE编排路径转换为SRv6-TE转发路径,并将所述SRv6-TE转发路径安装至所述转发模块中包括:
预定义子路径终结指令END.SPT;
将所述SRv6-TE编排路径拆分成至少一个编排子路径,针对每一个所述编排子路径,依次添加所述编排子路径中的每个标识,在最后一个标识后,添加一个子路径终结指令END.SPT得到转发子路径;
将所有的转发子路径逆序组合,形成一个完整的转发路径,并将该转发路径尾部的END.SPT删除,得到SRv6-TE转发路径。
5.根据权利要求4所述的报文转发方法,其特征在于,所述针对每一个所述编排子路径,依次添加所述编排子路径中的每个标识,在最后一个标识后,添加一个子路径终结指令END.SPT得到转发子路径包括:
针对每一个所述编排子路径,以128bit为一个SID,基于所述编排子路径的编排层次,依次添加各标识,在最后一个标识所在的SID中添加子路径终结指令END.SPT,并作128位对齐处理,得到转发子路径。
6.根据权利要求4所述的报文转发方法,其特征在于,所述子路径终结指令END.SPT为符号,在所有SRv6域内上的所有设备上所述子路径终结指令END.SPT保持一致;
所述控制模块根据所述SRv6域标识和所述END.SPT形成所述SPT缺省路由,根据所述SRv6域标识、所述SRv6节点标识和所述END.SPT形成所述SPT节点路由。
7.根据权利要求6所述的报文转发方法,其特征在于,所述SPT缺省路由由IPv6前缀和掩码长度组成,根据所述SRv6域标识和所述END.SPT形成所述SPT缺省路由包括:
将m位的SRv6域标识左移128-m位,右边补0,得到第一结果;
在所述第一结果的基础上将n位的END.SPT左移128-m-n位,右边补0,得到第二结果,将第二结果作为SPT缺省路由的IPv6前缀;
以m+n作为掩码长度;
基于所述IPv6前缀和所述掩码长度按照如下表达形式生成SPT缺省路由,其中,所述SPT缺省路由的表达形式为SRv6域标识:END.SPT::/(m+n)。
8.根据权利要求6所述的报文转发方法,其特征在于,所述SPT节点路由由IPv6前缀和掩码长度组成,根据所述SRv6域标识、所述SRv6节点标识和所述END.SPT形成所述SPT节点路由包括:
将m位的SRv6域标识左移128-m位,右边补0,得到第一结果;
在所述第一结果的基础上将n位的SRv6节点标识左移128-m-n位,右边补0,得到第二结果;
在所述第二结果的基础上将n位的END.SPT左移128-m-n-n位,右边补0,得到第三结果,将第三结果作为SPT节点路由的IPv6前缀;
以m+n+n作为掩码长度;
基于所述IPv6前缀和所述掩码长度按照如下表达形式生成SPT节点路由,其中,所述SPT节点路由的表达形式为SRv6域标识:SRv6节点标识:END.SPT::/(m+n+n)。
9.根据权利要求6所述的报文转发方法,其特征在于,所述子路径终结指令END.SPT可以动态配置为动态值;或,所述子路径终结指令END.SPT为一特定值。
10.一种报文转发装置,其特征在于,所述报文转发装置包括转发模块和控制模块,所述控制模块和所述转发模块相互配合完成如权利要求1~9任一项所述的报文转发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110209008.9A CN113014485B (zh) | 2021-02-25 | 2021-02-25 | 一种基于SRv6-TE路径的报文转发方法和报文转发装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110209008.9A CN113014485B (zh) | 2021-02-25 | 2021-02-25 | 一种基于SRv6-TE路径的报文转发方法和报文转发装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113014485A CN113014485A (zh) | 2021-06-22 |
CN113014485B true CN113014485B (zh) | 2022-04-26 |
Family
ID=76386420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110209008.9A Active CN113014485B (zh) | 2021-02-25 | 2021-02-25 | 一种基于SRv6-TE路径的报文转发方法和报文转发装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113014485B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113595912B (zh) * | 2021-07-05 | 2022-11-11 | 北京邮电大学 | 5GLAN中基于IPv6扩展报头的一对多通信方法及装置 |
US20230028147A1 (en) * | 2021-07-20 | 2023-01-26 | Nokia Solutions And Networks Oy | Source route compression |
CN113709031B (zh) * | 2021-08-30 | 2022-10-21 | 烽火通信科技股份有限公司 | 一种约束路由传输分发的方法和装置 |
CN113872866B (zh) * | 2021-09-28 | 2023-04-07 | 中国电信股份有限公司 | 报文转发方法、系统以及存储介质 |
CN113923148B (zh) * | 2021-10-26 | 2022-11-22 | 中国人民解放军国防科技大学 | 基于SRv6和带宽测量的带宽保证网络传输方法 |
CN116264560A (zh) * | 2021-12-14 | 2023-06-16 | 中国移动通信有限公司研究院 | 路径规划方法及装置 |
CN114448881B (zh) * | 2022-02-25 | 2023-06-09 | 烽火通信科技股份有限公司 | 一种跨sr mpls与srv6域互操作通信的方法和系统 |
CN114826999B (zh) * | 2022-03-22 | 2023-06-20 | 北京邮电大学 | 卫星网络数据传输方法及装置 |
CN114500453B (zh) * | 2022-03-31 | 2022-06-17 | 北京邮电大学 | 一种标识解析方法和装置 |
CN116938789A (zh) * | 2022-04-08 | 2023-10-24 | 中兴通讯股份有限公司 | 地址设置方法、装置、存储介质及电子装置 |
CN114900457B (zh) * | 2022-05-20 | 2024-04-16 | 中电信数智科技有限公司 | 一种减少SRv6报文头部长度的方法和系统 |
CN117596206B (zh) * | 2024-01-19 | 2024-03-26 | 明阳产业技术研究院(沈阳)有限公司 | SRv6 SID动态压缩编排方法、系统、交换装置、介质及设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101400083B (zh) * | 2007-09-29 | 2010-12-15 | 华为技术有限公司 | 对报文进行头压缩和业务流分类发送的方法、系统及装置 |
CN106411738A (zh) * | 2015-07-30 | 2017-02-15 | 中兴通讯股份有限公司 | Ipv6报文封装的处理方法和装置 |
US10469367B2 (en) * | 2017-10-04 | 2019-11-05 | Cisco Technology, Inc. | Segment routing network processing of packets including operations signaling and processing of packets in manners providing processing and/or memory efficiencies |
CN111917640B (zh) * | 2019-05-09 | 2023-06-06 | 华为技术有限公司 | SRv6网络生成段列表、报文转发的方法、设备和系统 |
CN111988266B (zh) * | 2019-05-24 | 2022-05-17 | 华为技术有限公司 | 一种处理报文的方法 |
CN112019433B (zh) * | 2019-05-29 | 2022-01-14 | 华为技术有限公司 | 一种报文转发方法和装置 |
CN111541613B (zh) * | 2020-04-27 | 2022-03-22 | 鹏城实验室 | 一种基于SRv6的数据处理方法及相关设备 |
-
2021
- 2021-02-25 CN CN202110209008.9A patent/CN113014485B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113014485A (zh) | 2021-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113014485B (zh) | 一种基于SRv6-TE路径的报文转发方法和报文转发装置 | |
CN111541613B (zh) | 一种基于SRv6的数据处理方法及相关设备 | |
EP4027597A1 (en) | Method, apparatus and system for establishing bier forwarding table entry | |
WO2020224503A1 (zh) | SRv6网络生成段列表、报文转发的方法、设备和系统 | |
EP3742683B1 (en) | Method and device for processing packet by using unified sr label stack | |
EP3944569A1 (en) | Data processing method based on srv6, and related network device | |
US9531627B1 (en) | Selecting a remote path using forwarding path preferences | |
CN112511444A (zh) | 一种组播流量传输方法、装置、通信节点及存储介质 | |
CN113259239A (zh) | 一种在混合网络中转发报文的方法、设备和系统 | |
CN105024985A (zh) | 一种报文处理方法及装置 | |
CN101355487B (zh) | 一种标签分发方法及装置 | |
CN114095305A (zh) | Bier报文转发的方法、设备以及系统 | |
US11616726B2 (en) | End-to-end flow monitoring in a computer network | |
US11323371B1 (en) | Micro SID packet processing with operations, administration, and management | |
US20060182105A1 (en) | Apparatus and method for transmitting multi protocol label switching (MPLS) multicast packets over Ethernet | |
CN113949650A (zh) | 随流检测方法及相关设备 | |
US20230254246A1 (en) | Mechanisms for packet path tracing and per-hop delay measurement in segment routing with multiprotocol label switching (sr-mpls) networks | |
US20230327983A1 (en) | Performance measurement in a segment routing network | |
WO2020063765A1 (zh) | 跨域双向隧道创建方法、通信方法及装置、存储介质 | |
CN113497760B (zh) | 分段路由头压缩方法、业务处理方法及装置 | |
CN115499366A (zh) | 报文传输方法以及装置 | |
US10924395B2 (en) | Seamless multipoint label distribution protocol (mLDP) transport over a bit index explicit replication (BIER) core | |
CN116996439B (zh) | 一种基于sdn的高效路由寻址方法及系统 | |
WO2023050981A1 (zh) | 虚拟专用网络业务标识的分配方法、报文处理方法及装置 | |
CN112583711B (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 |