SRv6端到端流策略的方法、路由器、路由系统和存储介质与流程

文档序号:24129843发布日期:2021-03-02 17:10阅读:255来源:国知局
SRv6端到端流策略的方法、路由器、路由系统和存储介质与流程
srv6端到端流策略的方法、路由器、路由系统和存储介质
技术领域
[0001]
本发明属于ip网络领域,更具体地说,涉及一种在srv6场景中支持端到端流策略的方法、路由器、路由系统和存储介质。


背景技术:

[0002]
sr(段路由,segment routing)是一种源路由技术。它为每个节点或链路分配段(segment),头节点把这些段组合起来形成段序列(segment路径),指引报文按照段序列进行转发,从而实现网络的编程能力。段路由转发层有两种封装格式,一种是mpls(多协议标签交换,multi-protocol label switching)即sr mpls,另一种是ipv6(internet protocol version 6,互联网协议第6版)即srv6。srv6不仅继承了sr的优点,也融合ipv6的技术优势,即其具备标签空间数量无限、全网唯一、任意点可达的优点(ipv6地址特点),进而可以实现只要地址可达,可以任意点接入,任意点之间互联。
[0003]
网络指令——srv6 segment,srv6通过segment定义网络功能,通过对segment进行排列实现网络设备的一系列转发、处理行为,从而完成业务编排。在设计srv6网络编程的时候,需要定义网络指令——srv6 segment。srv6 segment的标识称为srv6 sid。srv6 sid是一个128bit的值,每个srv6 sid就是一条网络指令,它通常由如图1所示的三部分组成:
[0004]
locator(位置标识):网络中分配给一个网络节点的标识,可以用于路由和转发数据包。locator有两个重要的属性:可路由和可聚合。在srv6 sid中locator是一个可变长的部分,用于适配不同规模的网络。
[0005]
function(功能):设备分配给本地转发指令的一个id值,该值可用于表达需要设备执行的转发动作,相当于计算机指令的操作码。在srv6网络编程中,不同的转发行为由不同的功能id来表达。
[0006]
argumnets(变量):是一个可选字段,是指令在执行时对应的参数,这些参数可能包含流、服务或任何其他相关的信息。ipv6报头有基本头和扩展头之分,基本头包括一个重要字段”next header”,用于表示上层是什么协议,当next header等于43的时候,后面跟的是ipv6的routing extension header(路由扩展头)。
[0007]
如图2所示,srv6基于ipv6地址引入srh(segment routing header,段路由报头)的概念进行segment的编程组合形成srv6路径。srv6 srh的格式定义具体说明:ipv6基本头中nextheader(下一个报头)取值为43,表明下一个报文头为路由扩展头;路由扩展头的路由类型字段取值为4,表明该路由扩展头为srh。srh扩展头存储的内容相当于计算机的程序,这个程序就是解决业务在网络的端到端连接问题,segment list[0]~segment list[n]相当于计算机程序。第一个要执行的指令是segment list[n],segment left(sl)相当于计算机程序的pc指针,永远指向当前正在执行的指令,初始化为n,每执行完一个执行,对sl做减1,指向下一条要执行的指令。通过这种模拟,srv6转发过程可以用计算机程序执行过程来进行简单的模拟。
[0008]
srv6路径报文转发流程如图3所示,在a::1节点指定报文从a::1节点到d::1节点
的路径为{b::1,c::1,d::1},经过每个节点发出的ipv6目的地址都会修改为当前节点sl减1指向的segmentlist中的地址。从srv6报文的转发处理逻辑可以看出,如果希望在srv6路径中间节点上以用户流量目的ipv6地址做流策略比如服务水平协议(sla:service level agreement),存在如下技术问题:在srv6路径每个节点发出的报文中,目的地址都会用sl减1指定的segmentlist中地址进行设置。节点收到报文的目的地址为前一节点对其收到报文中的sl减1指向segmentlist的地址,该地址非用户业务流量的真正目的地址,此时做的流分类无法满足基于用户业务流量做端到端的流分类要求,进而无法对用户流量在srv6路径节点上做流分类后的策略处理。比如节点a::1接入的流量是到目的节点d::1,用户希望在编排的sr路径上的b::1节点对该流量进行流策略,b::1收到的报文目的地址为其自身节点地址,并且其进行sl减1后,获取segmentlist的地址为节点c::1地址,节点b::1无法做到根据d::1节点地址进行用户实际流进行流策略。
[0009]
对此,有必要提出一种有效的解决办法。


技术实现要素:

[0010]
1.要解决的问题
[0011]
针对现有技术中路由节点无法根据用户的实际目的地址进行端到端的路由策略的问题,本发明提供一种srv6端到端流策略的方法、路由器、路由系统和存储介质。
[0012]
2.技术方案
[0013]
为了解决上述问题,本发明所采用的技术方案如下:一种srv6端到端流策略的方法,包括以下步骤:
[0014]
s1、配置流分类模板,匹配项为接入用户业务流量的实际目的地址;
[0015]
s2、配置流动作模板,将步骤s1中的流分类模板和步骤s2中的流动作模板关联形成流策略模板,并将流策略模板配置到节点的接口上;
[0016]
s3、被配置流策略模板的节点收到报文后,获取该报文的目的地址;
[0017]
s4、如果步骤s3中被配置流策略模板的节点获取的目的地址与s1中接入用户业务流量的实际目的地址一致,则被配置流策略模板的节点执行步骤s2中的流动作模板;如果步骤s3中被配置流策略模板的节点获取的目的地址与s1中接入用户业务流量的实际目的地址不一致,则被配置流策略模板的节点正常转发该报文。本技术方案将用户业务流量的实际目的地址作为流分类模板的匹配项,并配置流动作模板,将流分类模板和流动作模板关联后形成流策略模板,将流策略模板配置到某一节点的接口上,当该配置了流策略的模板收到报文时,读取该报文的目的地址,如果该读取的目的地址和流分类模板配置的用户业务流量的实际目的地址一致,则对按照流动作模板对该报文进行转发,否则的话就正常转发。
[0018]
进一步地,所述步骤s3中获取报文的目的地址的方法为:如果该报文的路由扩展头为srh,则读取srh的栈底地址,该读取的srh的栈底地址即为报文的目的地址。本技术方案判断报文的路由扩展头是否为srh,如果是,则可以根据srh地址存放的特点读取其栈底地址,从而获取报文的目的地址;如果不是,则对该报文正常转发,
[0019]
进一步地,所述流动作为:根据用户流量ip地址将不同的用户流量转发到不同的链路,实现业务的差分服务。
[0020]
进一步地,所述的差分服务包括:依据服务等级协议和最短路径原则,确定报文的最短转发路径。差分服务的具体策略可以由用户自行设定,在本技术方案中,可以确定一个报文的最短转发路径作为差分服务。
[0021]
本发明还提供一种路由器,所述路由器的接口被配置了流策略模板,所述流策略模板包括关联的流分类模板和流动作模板,所述流分类模板的匹配项为接入用户业务流量的实际目的地址,所述路由器收到报文后,获取该报文的目的地址,如果获取的目的地址与接入用户业务流量的实际目的地址一致,则该路由器执行配置的流动作;如果获取的目的地址与接入用户业务流量的实际目的地址不一致,则该路由器正常转发该报文。通过对路由器配置流分类和流动作模板,路由器获取报文的实际地址和目的地址进行比较,对两者一致的报文进行相应的流动作,本技术方案中的路由器能够根据用户类型来设定流动作,提高路由器的报文转发路径的可靠性和效率。
[0022]
进一步地,所述获取报文的目的地址具体为:如果该报文的路由扩展头为srh,则读取srh的栈底地址,该读取的srh的栈底地址即为报文的目的地址。
[0023]
进一步地,所述流动作为:根据用户流量ip地址将不同的用户流量转发到不同的链路,实现业务的差分服务。
[0024]
进一步地,所述的差分服务包括:依据服务等级协议和最短路径原则,确定报文的最短转发路径。
[0025]
本发明还提供一种路由系统,包括至少两个路由器,其中一个或一个以上的路由器根据上述的srv6端到端流策略的方法工作。
[0026]
本发明还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令被计算机执行时可实现上述srv6端到端流策略的方法。
[0027]
3.有益效果
[0028]
相比于现有技术,本发明的有益效果为:本发明将用户业务流量的实际目的地址作为流分类的匹配项,转发的节点获取报文的目的地址,并将获取的目的地址和实际目的地址进行比较,并针对用户流量设定不同的转发动作,如果一致则将该用户流量按照设定的动作进行转发,从而实现用户端到端流量的控制,进而提高报文转发路径的可靠性和效率。
附图说明
[0029]
图1为现有技术中srv6 sid格式定义示意图;
[0030]
图2为现有技术中srv6 srh格式定义示意图;
[0031]
图3为现有技术中报文转发示意图;
[0032]
图4为本发明的报文转发示意图。
具体实施方式
[0033]
下面结合具体实施例对本发明进一步进行描述。
[0034]
首先,为便于说明本发明的技术方案,需要对下面一些概念进行明确,如流分类、流动作等。
[0035]
业务流进入ds(differentiated services,差分服务)域时,可以有多种方法对它
进行分类,例如根据报文所携带的qos(quality of service,服务质量)优先级位,识别出不同优先级特征的流量,或根据源地址、目的地址、mac地址、ip协议或应用程序的端口号等信息对流进行分类。也可以根据服务等级协议sla(service-level agreement)规定的一些策略给每个数据包加上标记,从而对数据包进行分类。因此,实现流分类的技术被分成“简单流分类(behavior aggregate classifier)”与“复杂流分类(multi-field classifier)”。
[0036]
将流分类方法和对应可实施的流动作关联,形成流策略,并将流策略与接口绑定,可实现丰富的qos策略,这就是基于复杂流分类的qos策略(通常被称为“基于类的qos”)基于复杂流分类的qos策略是对qos策略配置的抽象,是“模板化”的qos配置方式。“模板化”的最大优点是可以节省配置,支持批量修改。
[0037]“模板”分为三部分:
[0038]
流分类(classifier)模板:定义流量类型。用if-match语句设定流分类的匹配规则。
[0039]
流动作(behavior)模板:定义针对该类流量可实施的流动作。
[0040]
流策略(policy)模板:将流分类classifier和流动作behavior关联,成为一个classifier&behavior对。当流策略模板设置完毕之后,需要将流策略模板应用到接口上。
[0041]
流分类是对进入差分服务域的业务进行分类,以便在网络中得到相应的适当处理。流分类主要目的是让其他处理此报文的应用系统或设备知道该报文的类别,并根据这种类别对报文进行一些事先约定的处理。
[0042]
配置流分类可以将符合一定规则的报文分为一类,区分出用户流量,是实现差分服务的前提和基础。流分类各规则之间属于并列关系,只要匹配规则不冲突,都可以在同一流分类中配置。用户使用时,可以根据需要进行配置。
[0043]
如果流分类有多个匹配规则,则这些规则之间有and和or两种逻辑关系:or逻辑:数据包只要匹配该流分类下的任何一条if-match子句定义的规则就属于该类。and逻辑:当流分类中有acl(引用访问控制表,access control list)规则时,数据包必须匹配其中一条acl规则以及所有非acl规则才属于该类;当流分类中没有acl规则时,则报文必须匹配所有非acl规则才属于该类。
[0044]
一个流分类可以配置一条或多条if-match语句,if-match语句用来定义路由策略的匹配条件,匹配对象是路由策略过滤器和路由信息的一些属性。在一个路由策略节点中,如果不配置if-match子句,则表示路由信息在该节点匹配成功。如果配置一条或多条if-match子句,则各个if-match子句之间是“与”的关系,即路由信息必须同时满足所有if-match子句,才算该节点匹配成功。if-match语句中可以引用acl规则。不同的流分类模板可以应用相同的acl规则。一个acl规则可以配置一个或多个rule语句,rule是osl(open system interconnect、开放式系统互连)语法描述语言里用来定义语句片段的匹配规则,rule主要由两部分构成,名称和内容。rule的名称必须是一个有效的标识符,可以由英文字母、数字、中文字符或者下划线组成,但是第一个字符不能是数字。
[0045]
流分类一般分为二层流分类和三层流分类,
[0046]
二层流分类主要有:基于qinq〔也称stacked vlan或double vlan〕报文内层vlan(虚拟局域网virtual local area network)的802.1p优先级;基于vlan报文802.1p优先
级;基于外层vlan id或基于qinq报文内外两层标签(tag)的vlan id;基于qinq报文双层tag;基于mpls(多协议标签交换、multi-protocol label switching)报文exp优先级(exp优先级位于mpls标签内,用于标记mpls qos);基于目的mac地址;基于源mac地址;基于入接口;基于出接口;基于以太网帧头中协议类型字段。
[0047]
三层流分类主要有:基于ip报文dscp(差分服务代码点、differentiated services code point)优先级;基于ip报文ip优先级;基于报文三层协议类型;基于tcp报文syn(同步序列编号、synchronize sequence numbers)flag;基于ipv6下一报文头类型。
[0048]
进行流分类是为了有区别地提供服务,它必须与某种流量控制或资源分配动作关联起来才有意义。流量控制或资源分配动作被称为流动作。不同的接口可以应用相同的policy模板;一个policy模板中可以配置一个或多个classifier&behavior对;不同的policy模板可以应用相同的classifier&behavior对;一个classifier模板中可以配置一条或多条if-match语句,if-match语句中可以引用acl规则;不同的classifier模板可以应用相同的acl规则;一个acl规则可以配置一个或多个rule语句;一个behavior模板中可以配置一个或多个流动作。
[0049]
当收到一个报文,要做复杂流分类处理时,会按照policy模板中classifier的配置顺序进行匹配。如果命中,则停止匹配;如果不命中,则匹配后面的classifier;如果是最后一个classifier,且还不命中,则报文走正常的转发处理,类似于没有应用流分类策略。一个流策略中可以配置一个或多个classifier&behavior对。
[0050]
在srv6场景下,srv6路径上的节点比如图4中的b::1节点执行下述步骤:
[0051]
1)配置流分类模板,匹配项为节点a::1接入用户业务流量的实际目的地址;流动作模板为执行用户要求的服务等级协议规定的内容;流策略模板将上述流分类模板和流动作模板关联,在某一节点与节点a::1连接的接口上配置流策略模板,具体在哪个节点上配置由用户自行设定,用户可以选择薄弱的容易拥堵的节点,也可以根据需要选择配置的节点,本实施例中选择节点b::1来进行说明,在节点b::1连接a::1的接口上绑定前述配置的流策略模板,对入流量执行对应的流策略。需要说明的是,配置流分类模板、流动作模板是本领域技术人员的公知常识,因此如何配置流分类模板和流动作模板在此不加赘述。所谓的匹配项指的是用户设定的报文中需要匹配的内容,具体到本实施例来说,选择实际目的地址为匹配项,就是将收到报文的实际目的地址设为匹配的内容,读取的地址需要和该匹配项进行比较,若两者一致,则进行设定的流动作。
[0052]
具体地说,用户配置一个流分类模板,将匹配项设置为节点a::1接入用户业务流量的实际目的地址,如果下一节点获取的地址和用户业务流量的实际目的地址相同,则执行流动作,比如用户要求的服务等级协议所规定的对入流量进行限制或其他的动作(包括为用户请求匹配一个稳定性更好、带宽更大的路由来转发报文或者对用户请求进行限制)等等,然后在下一节点连接a::1的接口上绑定流策略模板,执行对应的流策略。以使报文转发路径能够根据用户流量ip地址将不同的用户流量路由到不同的链路,实现业务的差分服务。具体实施时,差分服务包括依据服务等级协议和最短路径原则,确定报文的最短转发路径等等。当然,差分服务的具体策略可以由用户自行设定,在本技术方案中,可以确定一个报文的最短转发路径作为差分服务。
[0053]
2)当b::1在接口上收到报文后,判断报文中ipv6基本头的next header是否为43,
路由扩展头的路由类型(routing type)是否为4,判断报文中ipv6基本头的next header是否为43的目的是确定下一个报文头是否为路由扩展头;判断路由扩展头的路由类型字段取值是否为4的目的是判断该路由扩展头是否为srh,如果均为是,则读取srh中的segment list[0]栈底(本实施例中的栈底地址即为节点d::1的地址)地址,以确定用户业务的真实目的地址。如果报文中ipv6基本头不是路由扩展头或路由扩展头不是srh,则不进行流策略;需要说明的是读取srh中的segment list[0]栈底地址为本领域技术人员的公知常识,在此不加赘述。另外,本实施例中针对扩展头为srh的报文读取目的地址的方式是读取栈底地址,对于其他形式的报文读取其目的地址的具体实现方式为本领域技术人员的公知常识。
[0054]
3)判断步骤2)中获取的地址和步骤1)中配置流分类匹配项地址是否相同,执行流分类匹配后相应的流动作;具体地说,当报文到达某一节点时,在本实施例中以节点b::1为例,当报文到达节点b::1时,判断读取的srh中的segment list[0]栈底地址和配置流分类匹配项的地址是否相同,如果相同,则表示经过节点b::1的报文要到达的目的地址已经配置在流策略中,节点b::1将按照配置的流动作模板将该报文转发至下一个节点;如果不同,则对该报文按照正常的转发程序处理,所谓的正常的转发程序指的是在srv6路径中,每个节点发出的报文的目的地址为sl减1指定的segment list中的地址,每一节点按照这种规律来进行报文的转发。
[0055]
本发明同时提供一种路由器,该路由器的接口被配置了由关联的流分类模板和流动作模板组成的流策略模板,然后按照上述步骤1)到步骤3)的方法工作,即将流分类的匹配项设置为接入用户业务流量的实际目的地址,当该路由器接收到报文时,读取该报文的目的地址,并将读取的目的地址和匹配的实际目的地址相比较,如果两者一致,则执行流策略模板中的流动作,否则正常转发。通过这种设置,可以对设定的业务进行特定的报文转发动作,从而提高报文转发路径的可靠性和效率。需要说明的是,流分类模板和流动作模板关联指的是,如果达到流分类模板中的某一个条件,则执行流动作模板中的一个流动作,就像本实施例中如果读取的目的地址和流分类模板中配置的实际目的地址一致,则执行流动作模板中的某个动作。
[0056]
具体实施时,一般由多个路由器(两个及两个以上)组成一个路由系统,在其中一个或多个路由器按照上述步骤1)到步骤3)的方法工作,即一个路由系统中部分路由器被配置流策略模板,当被配置了流策略模板的路由器收到报文后,读取该报文的目的地址,并将读取的目的地址和匹配的实际目的地址相比较,如果两者一致,则执行流策略模板中的流动作,否则正常转发。从而提高报文转发的效率,提高路由系统的可靠性和效率。在本实施例中,所说的节点就是路由器。
[0057]
本发明还提供一种计算机可读存储介质,存储有计算机可执行指令,当该计算机可执行指令被计算机执行时可实现上述方法。
[0058]
与现有技术相比,本发明将用户业务流量的实际目的地址作为流分类模板的匹配项,配置流动作模板,将流分类模板和流动作模板关联得到的流策略配置在用户选定的节点接口上,当该配置了流策略的节点收到报文后,将读取其获取报文的目的地址,并将该读取的目的地址和流分类模板中设置的用户的实际目的地址进行比较,如果一致则将该用户流量按照设定的流动作模板进行转发,从而针对用户流量设定不同的转发动作,提高报文
转发路径的可靠性和效率。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1