IPV6报文封装的处理方法和装置与流程

文档序号:11138468阅读:2855来源:国知局
IPV6报文封装的处理方法和装置与制造工艺

本发明涉及通信领域,尤其涉及一种IPV6报文封装的处理方法和装置。



背景技术:

段路由SR(Segment Routing)是一种基于源地址的路由的方法,通过在数据报文外叠加一层影响现有最短路径转发的节点信息,携带在数据报文外部,报文根据这些指定路径节点信息进行最短路径转发。

如图1所示,当包含段路由报文头的报文在SR网络域中进行传输时,通过段路由头中携带的指定SR节点路径信息,网络设备(路由器)根据段路由报文头中的段操作指示进行相应的操作,该操作指示包括Push,Next,Continue。当操作指示为PUSH操作时,网络设备将段路由报文头(Segment Routing Header,SR Header)压入到IP报文中,或者在段路由报文头中增加其他的段指示;Next和continue操作通过Ptr的指针来表明,当判断出当前的段操作已经完毕,指针移到下一个段,指针所指的段表明是用于转发下一跳的active segment;Continue操作为该段操作没有结束,指针仍然停留在当前的段上。通过SR指定路径转发功能,可以非常便捷的实现网络的负载均衡和流程工程,以及快速重路由等复杂网络功能。

如图2所示,段路由技术利用了现有的IPV6的路由头进行封装扩展,现有的IPV6报文头中携带SR Header。另外,现有技术中的IPV6的报文头携带下一个扩展头(Next Header,NH)类型,routing type为其中一种扩展头,其扩展头的格式参见图3。在现有技术中的SR扩展的封装过程中,由于IPV6SR扩展头中由可扩展长度字段组成,当LIST列表中携带的显示指定节点或链路数个数越多,报文头的长度越长。

举例来说,以图4所示网络为例进行说明:

当网络中出现一条显示路径几乎覆盖网络中的所有节点时,一条SR LIST显示指定为:R1-R2-R4-R3-R5-R6-R8-R7-R9-R10,则SR的IPV6报文头至少需要128bits*9+64bits的头部长度在R1节点进行封装。

由上可以看出,这种扩展形式会给IPV6的报文头带来很大负担。



技术实现要素:

本发明提供一种IPV6报文封装的处理方法和装置,要解决的技术问题是现有技术中IPV6的报文头负担过重的问题。

为解决上述技术问题,本发明提供了如下技术方案:

一种IPV6报文封装的处理方法,包括:

转发节点获取SR段路由列表与列表标识LIST ID的对应关系;

所述转发节点根据所述段路由列表与LIST ID的对应关系,对接收到的IPV6报文进行转发。

其中,当所述转发节点为SR入口节点时,所述LIST ID是由所述转发节点携带在IPV6报文的扩展报文头中的。

其中,所述LIST ID是通过IPV6报文的报文头中Flag字段的比特置位信息或routing type的特定预设值信息来识别。

其中,所述转发节点获取段路由列表与列表标识LIST ID的对应关系之后,所述方法还包括:

生成LIST ID的转发条目。

其中,所述生成LIST ID的转发条目,包括:

查找所述转发节点在LIST列表中的下一个转发节点的出接口信息;

将查找到的出接口信息保存为LIST ID的转发条目的出接口信息。

其中,所述根据所述段路由列表与LIST ID的对应关系,对接收到的IPV6报文进行转发,包括:

当接收到目标地址为所述转发节点的地址时,如果所述IPV6报文的报文头中下一个扩展头的类型为路由类型,且剩余LIST列表的跳数不为零,则根据LIST ID值获取LIST列表中的下一跳信息,并将下一跳的IPV6地址作为目的地址,继续转发所述IPV6报文。

其中,在所述LIST ID中包括路径中所有途径节点信息时,通过将LIST ID置于IPV6转发报文的目的地址字段来携带路径中所有途径节点信息。

一种IPV6报文封装的处理装置,包括:

获取模块,用于获取SR段路由列表与列表标识LIST ID的对应关系;

转发模块,用于根据所述段路由列表与LIST ID的对应关系,对接收到的IPV6报文进行转发。

其中,当所述转发节点为SR入口节点时,所述LIST ID是由所述转发节点携带在IPV6报文的扩展报文头中的。

其中,所述LIST ID是通过IPV6报文的报文头中Flag字段的比特置位信息或routing type的特定预设值信息来识别。

其中,所述装置还包括:

生成模块,用于在获取段路由列表与列表标识LIST ID的对应关系之后,生成LIST ID的转发条目。

其中,所述生成模块包括:

查找单元,用于查找所述转发节点在LIST列表中的下一个转发节点的出接口信息;

保存单元,用于将查找到的出接口信息保存为LIST ID的转发条目的出接口信息。

其中,所述转发模块包括:

获取单元,用于当接收到目标地址为所述转发节点的地址时,如果所述IPV6报文的报文头中下一个扩展头的类型为路由类型,且剩余LIST列表的跳数不为零,则根据LIST ID值获取LIST列表中的下一跳信息;

转发单元,用于将下一跳的IPV6地址作为目的地址,继续转发所述IPV6报文。

其中,在所述LIST ID中包括路径中所有途径节点信息时,通过将LIST ID置于IPV6转发报文的目的地址字段来携带路径中所有途径节点信息。

本发明提供的实施例,给LIST分配一个LIST ID,IPV6通过封装携带LIST ID,并通过LIST id来标识各LIST,且在本地通过LIST ID查找LIST中的下一跳目的地址查找相应目的地址封装,而转发表还是原有的转发表,只不过在LIST中显示指定的节点上需要维护LIST ID到LIST的映射。使具有固定长度的V6扩展封装用于SR报文头封装,所述LIST ID用于映射SR LIST的节点信息,以此IPV6SR报文转发至终点,通过LIST ID的携带形式进行IPV6报文的SR封装实现,有效解决报文头载荷随着指定节点的数量显示增加的问题,减轻了IPV6报文的报文头的负担,提高了数据传输效率。

附图说明

图1为现有技术中SR的报文头格式的示意图;

图2为现有技术中IPv6SR的报文头格式的示意图;

图3为现有技术中网络拓扑的示意图;

图4为现有技术中IPv6扩展头的示意图;

图5为本发明提供的IPV6报文封装的处理方法实施例的流程图;

图6为本发明实施例一提供的IPv6报文的扩展头格式的示意图;

图7为本发明实施例二提供的网络拓扑的示意图;

图8为本发明实施例二提供的路由器R1上的转发表的示意图;

图9为本发明实施例三提供的LIST ID转发表的示意图;

图10为本发明提供的IPV6报文的报文头中Flag字段的示意图;

图11为本发明提供的IPV6报文封装的处理装置的结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图及具体实施例对本发明作进一步的详细描述。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

图5为本发明提供的IPV6报文封装的处理方法实施例的流程图。图5所示方法,包括:

步骤501、转发节点获取SR段路由列表与列表标识LIST ID的对应关系;

步骤502、所述转发节点根据所述段路由列表与LIST ID的对应关系,对接收到的IPV6报文进行转发。

本发明提供的方法实施例,获取获取端路由器列表与LIST ID的对应关系,再利用该对应关系进行报文转发,通过携带的LIST ID,有效解决报文头载荷随着指定节点的数量显示增加的问题,减轻了IPV6报文的报文头的负担,提高了数据传输效率。

下面对本发明提供的方法实施例作进一步说明:

其中,当所述转发节点为SR入口节点时,所述LIST ID是由所述转发节点携带在IPV6报文的扩展报文头中的。

具体的,通过在入口节点在IPV6报文,可以方便路径途径的节点充分利用该LIST ID。

所述LIST ID是通过IPV6报文的报文头中Flag字段的比特置位信息或routing type的特定预设值信息来识别。

通过充分利用IPV6报文的报文头的格式中可用的字段,减少对现有协议的修改,实现简单且方便。

当然,所述转发节点获取段路由列表与列表标识LIST ID的对应关系之后,所述方法还包括:生成LIST ID的转发条目。

通过为该LIST ID生成转发条目,可以方便利用该LIST ID进行数据转 发,提高IPV6报文转发的效率。

具体,所述生成LIST ID的转发条目,包括:

查找所述转发节点在LIST列表中的下一个转发节点的出接口信息;将查找到的出接口信息保存为LIST ID的转发条目的出接口信息。

其中,所述根据所述段路由列表与LIST ID的对应关系,对接收到的IPV6报文进行转发,包括:

当接收到目标地址为所述转发节点的地址时,如果所述IPV6报文的报文头中下一个扩展头的类型为路由类型,且剩余LIST列表的跳数不为零,则根据LIST ID值获取LIST列表中的下一跳信息,并将下一跳的IPV6地址作为目的地址,继续转发所述IPV6报文。

另外,在所述LIST ID中包括路径中所有途径节点信息时,通过将LIST ID置于IPV6转发报文的目的地址字段来携带路径中所有途径节点信息。

实施例一

以下以一个具体的实施例来说明本发明的SR LIST问题。通过扩展管理IPV6地址块,使用未被使用的全局IPV6地址或其它bits长度的标识用以表示LIST的映射标识,如图3所示:

控制器Controller(Operator)获取到网络中所有节点的IPV6地址,发现还有全局唯一的单播空余的IPV6地址2001::1001-2001::2000(该字段可以是连续的,也可以是不连续的)未被使用,则给各节点R1-R10分配的节点SID分别为2001::1001-2001::1010,另外控制器上根据策略计算出的一条策略路径为2001::1001-2001::1002-2001::1004-2001::1003-2001::1005-2001::1006-2001::1008-2001::1007-2001::1009-2001::1010,现在的SR头部扩展会将该LIST的节点信息均携带在RH扩展头中,这里只是其中一个场景,若网络规模再大,而有些特殊策略需要经过策略经过更多跳数的节点,则也需要将所有的节点信息都携带在扩展头中,这会大大增加报文头负担,本专利可以如示实现:

1、控制器上将未使用的2001::2000的路由分配给该路径,用2001:: 2000的地址对该策略路径在控制器上进行的映射维护,也即通过该LIST ID来唯一的标识该LIST;

2、将2001::2000到2001::1001-2001::1002-2001::1004-2001::1003-2001::1005-2001::1006-2001::1008-2001::1007-2001::1009-2001::1010映射信息(所述信息通过南向接口协议下发,如PCEP(Path Computation Element Protocol路径计算单元协议)、BGP-LS(Border Gateway Protocol-Link-state边界网关协议-链路状态)、openflow(开放流)、netconf(网络配置)等协议的扩展下发)下发该路径中的各节点。

3、对于该路径中的各节点,形成一张LIST ID(2001::2000)到LIST(2001::1001-2001::1002-2001::1004-2001::1003-2001::1005-2001::1006-2001::1008-2001::1007-2001::1009-2001::1010)的映射表;

4、对于报文的入口ingress节点R1,如图5所示,新增一个新的routing type头表示本扩展头携带的是一个路径标识信息,所述新type中仍然和现有的扩展一样包括Segments Left字段(剩余LIST列表的跳数)仍旧为策略路径中的节点个数-2(从零开始计数,自身的第一跳已经剥除),Segment LIST ID封装为2001::2000,基础v6的报文封装目的地址为本节点R1(2001::1001)在该LIST中的下一跳节点2001::1002,R2,依据R2的转发表中的路由条目进行转发;

5、当报文转发到R2,目的地址为自身,报文携带了NH头,里面的Segments Left字段不为0,则将Segment LIST ID字段取出来,进行映射表的查找,发现本节点R2(2001::1002)在该LIST中的下一跳节点2001::1004,R4,则将R4的地址填充在目的地址字段,Segments left字段进行减1,而后依据目的地址R4进行转发;

6、报文转发至R4,同样重复步骤5所述的操作,报文转发至R3-R5-R6-R8-R7-R9-R10

7、当报文到达R10,目的地址为自身,报文携带了NH头,里面的Segments Left字段为0,判断出自己是最后一跳,将NH报文中的该SR type的扩展头可选弹出。

实施例二

上述实施例中均覆盖的是节点SID,当路径需要指定显示路径经过某一条链路时,需要涉及到各节点的邻接SID(Adjacency SID),如图6所示,R4和R6之间有两条等价链路,上面的链路指定的邻接SID为本地标签值,如上下两条链路分别为FE80::9001和FE80::9002,若指定的显示路径一定要通过R4-R6的上面一条链路可达,则控制器计算出的一个LIST,比如LIST 3为:2001::1001-2001::1004-FE80::9001-2001::1010,还是如图实施例一所述的控制面控制下,给所述LIST 3的映射标识为2001::1199,则控制器将该标识及路径信息的映射信息下发给R1、R3、R10,各节点存储该映射表信息:

1、对于R1节点,控制器下发需要至该策略路径的流量的报文头所需经过的路径为2001::1001-2001::1004-FE80::9001-2001::1010,携带该LIST ID的映射标识2001::1199;如图6所需封装示,下发需要转发至该策略路径的流量的报文头所需的Segments Left仍旧为策略路径中的节点个数-2(从0开始计数,本地节点减掉了自己这一跳的跳数),即为2,Segment LIST ID封装为2001::1199,IPV6的报文封装目的地址为本节点R1(2001::1001)在该LIST中的下一跳节点2001::1004,R4,依据最短路径到R4的路由进行转发,如图8转发表所示,此时R1最短路径到R4是通过R2可达的;

2、报文转发到R2节点,R2节点查看目的地址是到R4,NH头为routing type头,自己无需处理,即对该扩展头及外层封装中的内容不做处理将报文转发给R4节点;

3、报文到达R4节点,发现目的地址是到自己,而NH头中显示下一个扩展头为routing type头,则查看routing type头中的type是表明的路径标识,且segments left字段为2,自己不是最后一跳,查找映射表,自身的下一跳为FE80::9001,为本地链路地址,取下下一跳地址2001::1010封装在Dst字段,将报文转发到该链路地址所在的接口,segments left字段减一跳到 本地,再减一跳到本地链路,则投递出去的报文此时为0;

4、报文通过9001链路的接口传输给R6,R6是转发中间节点,没有在该LIST中,其依据报文的DST字段2001::1010进行转发,默认最短路径为R6-R8-R10,NH头为routing type头,自己无需处理,即对该扩展头及外层封装中的Dst内容不做处理将报文转发给R8节点;

5、R8节点操作同R6,将报文转发给R10节点

6、目的地址为自身,NH头为routing type头,里面的Segments Left字段为0,判断出自己是最后一跳,将NH报文中的该SR type的扩展头可选弹出。

实施例三

如实施例一描述所述,控制器发送一条显示路径的映射信息LIST ID(2001::2000)到LIST(2001::1001-2001::1002-2001::1004-2001::1003-2001::1005-2001::1006-2001::1008-2001::1007-2001::1009-2001::1010)给所有节点,当ingress到egress节点间的路径包含路径途径的所有中间节点时,所有转发节点都会接收到该映射消息。则可以将LIST ID的下一跳信息学习为自身在所述LIST列表中的下一跳的出接口和网关地址,即R1的转发条目如类似图7所示,R1的下一跳在该LIST中是R2,下一跳是到R2的出接口,网关也是到R2的网关,则在本地生成一条到LIST ID的转发条目,下一跳是到R2的出接口,网关也是到R2的网关,如图9所示;同样R2\R3等节点也都这样形成转发条目。则在做报文封装时,将LIST ID信息放在目的节点,各节点的转发均依据目的地址LIST ID来进行转发,可选无需扩展头携带信息,即可将报文沿路径传达终点。在目的节点R10,需要识别自己是该LIST的目的,解析报文内容,进行分析。所述实施例三要求LIST覆盖路径中的完整节点信息,不然可能会有中间转发节点查找不到到LIST ID的路由条目。

实施例四

使用唯一的标识LIST ID来标记各LIST,其中LIST ID可以是20bits的标签或32bits的ipv4地址或128bits的IPV6地址。

具体的LIST ID可以通过如下方式进行携带,包括:

通过路由类型的扩展头中的RESV字段中的某些bit置位来进行标识;或者,设置新的routing type值。

其中,RESV字段可以为现有SR扩展的字段携带。如图10所示,FLAG字段中的某个R置位表明是携带的路径标识。由于节点有路径标识的映射表,原有policy的预留位可以空出来用来表示具体是携带的多少bits的标签,其中如其中FLAG字段低位的三个bit字段用以标识各是多少bits置位的标识。

图11为本发明提供的IPV6报文封装的处理装置的结构图。图10所示装置,包括:

获取模块1101,用于获取SR段路由列表与列表标识LIST ID的对应关系;

转发模块1102,用于根据所述段路由列表与LIST ID的对应关系,对接收到的IPV6报文进行转发。

其中,当所述装置位于SR入口节点时,所述LIST ID是由所述转发节点携带在IPV6报文的扩展报文头中的。

其中,所述LIST ID是通过IPV6报文的报文头中Flag字段的比特置位信息或routing type的特定预设值信息来识别。

其中,所述装置还包括:

生成模块,用于在获取段路由列表与列表标识LIST ID的对应关系之后,生成LIST ID的转发条目。

其中,所述生成模块包括:

查找单元,用于查找所述转发节点在LIST列表中的下一个转发节点的出接口信息;

保存单元,用于将查找到的出接口信息保存为LIST ID的转发条目的出接口信息。

其中,所述转发模块1102包括:

获取单元,用于当接收到目标地址为所述转发节点的地址时,如果所述IPV6报文的报文头中下一个扩展头的类型为路由类型,且剩余LIST列表的跳数不为零,则根据LIST ID值获取LIST列表中的下一跳信息;

转发单元,用于将下一跳的IPV6地址作为目的地址,继续转发所述IPV6报文。

其中,在所述LIST ID中包括路径中所有途径节点信息时,通过将LIST ID置于IPV6转发报文的目的地址字段来携带路径中所有途径节点信息。

本发明提供的装置实施例,获取获取端路由器列表与LIST ID的对应关系,再利用该对应关系进行报文转发,通过携带的LIST ID,有效解决报文头载荷随着指定节点的数量显示增加的问题,减轻了IPV6报文的报文头的负担,提高了数据传输效率。

本领域普通技术人员可以理解上述实施例的全部或部分步骤可以使用计算机程序流程来实现,所述计算机程序可以存储于一计算机可读存储介质中,所述计算机程序在相应的硬件平台上(如系统、设备、装置、器件等)执行,在执行时,包括方法实施例的步骤之一或其组合。

可选地,上述实施例的全部或部分步骤也可以使用集成电路来实现,这些步骤可以被分别制作成一个个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

上述实施例中的各装置/功能模块/功能单元可以采用通用的计算装置来实现,它们可以集中在单个的计算装置上,也可以分布在多个计算装置所组成的网络上。

上述实施例中的各装置/功能模块/功能单元以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。 上述提到的计算机可读取存储介质可以是只读存储器,磁盘或光盘等。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求所述的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1