一种报文转发方法和设备技术

技术编号:8836701 阅读:164 留言:0更新日期:2013-06-22 22:07
本发明专利技术公开了一种报文转发方法和设备。该方法包括:路由交换设备接收到报文后,根据所述报文的目的IP地址查询对应的下一跳路由;若根据查询到的下一跳路由确定从隧道转发所述报文,则查询所述隧道对应的隧道封装表项;其中,隧道封装表项中至少包括:隧道封装信息和出接口信息;所述路由交换设备根据查询到的隧道封装表项中的隧道封装信息对所述报文进行隧道封装,并根据该隧道封装表项中的出接口转发封装后的报文。采用本发明专利技术可提高隧道封装效率以及避免受到设备封装次数的限制。

【技术实现步骤摘要】

本专利技术涉及通信领域,尤其涉及一种报文转发方法和设备
技术介绍
隧道技术是一种封装技术,即一种网络协议将其它网络协议的数据报文封装在自己的报文中,然后在网络中传输。封装后的数据报文在网络中传输的路径称为隧道。隧道是一条虚拟的点对点连接,隧道的两端需要对数据报文进行封装及解封装。隧道技术就是指包括数据封装、传输和解封装在内的全过程。但是应用组网中存在多隧道转发时,性能方面也会存在不足,主要体现在以下几个方面:( I)在隧道的路由过程中,进隧道时需要查看一次路由,加封装完毕后需要再次查看路由。如果是嵌套隧道,那么路由过程更加复杂,影响路由性能。(2)在嵌套隧道的封装过程中,每次都要等待上一层加封装完成后,根据IP封装头中目的IP地址进行路由进隧道加封装,有几层隧道嵌套就需要加封装几次,影响隧道加封装性能。(3)嵌套封装时需要多次本地环回路由,会受到设备封装次数限制。如图1所示,DUTl需要与DUT7通信,中间网络存在IPv4网络也存在IPv6网络,DUT2上存在三层嵌套隧道,DUTl发送的报文需要三次隧道封装最终发送到DUT7。图2示出了 DUT2上进行三层嵌套隧道转发的流程,图3示出了 DUT2上嵌套隧道加封装的示意图。可以看出,三层隧道嵌套转发流程,一共经历了 4次路由3次加封装:原始报文首先要根据目的IP地址路由然后进行隧道加封装,第一次隧道加封装后再次根据加封装后的目的IP地址进行第二次路由,然后进行隧道加封装,依次类推,原始报文从入DUT2到出DUT2 —共经历了 4次路由3次隧道加封装。
技术实现思路
本专利技术实施例提供了 一种报文转发方法和设备,用以提高隧道封装效率以及避免受到设备封装次数的限制。本专利技术实施例提供的报文转发方法,包括:路由交换设备接收到报文后,根据所述报文的目的IP地址查询对应的下一跳路由;若根据查询到的下一跳路由确定从隧道转发所述报文,则查询所述隧道对应的隧道封装表项;其中,隧道封装表项中至少包括:隧道封装信息和出接口信息;所述路由交换设备根据查询到的隧道封装表项中的隧道封装信息对所述报文进行隧道封装,并根据该隧道封装表项中的出接口转发封装后的报文。本专利技术实施例提供的路由交换设备,包括:路由查询模块、隧道封装表项查询模块、报文转发模块;路由查询模块,用于在本设备接收到报文后,根据所述报文的目的IP地址查询对应的下一跳路由,若根据查询到的下一跳路由确定从隧道转发所述报文,则指示所述隧道封装表项查询模块查询对应的隧道封装表项;隧道封装表项查询模块,用于查询所述隧道对应的隧道封装表项;其中,隧道封装表项中至少包括:隧道封装信息和出接口信息;报文转发模块,用于根据查询到的隧道封装表项中的隧道封装信息对所述报文进行隧道封装,并根据该隧道封装表项中的出接口转发封装后的报文。本专利技术的上述实施例中,路由交换设备在收到报文后,若确定需要从隧道转发,则查询该隧道对应的隧道封装表项,根据查询到的隧道封装表项封装该报文,并根据该隧道封装表项中的出接口转发封装后的报文。由于隧道封装表项中包含后隧道封装信息和出接口信息,因此在转发过程中,只需要查一次路由进隧道,进隧道后执行一次隧道加封装操作,然后再根据隧道封装表项中的出接口转发,与现有技术相比,减少了路由查询以及隧道封装次数,因此提高了报文隧道封装效率,进而提高了报文转发效率。另外,由于只需一次路由查询和加封装的操作,不再受设备封装次数的限制。附图说明图1为现有技术中嵌套隧道应用组网示意图2为现有技术中三层嵌套隧道转发流程示意图3为现有技术中嵌套隧道加封装过程示意图4为本专利技术实施例提供的隧道封装表项的建立流程示意图5为本专利技术实施例提供的对报文进行隧道封装并转发的流程示意图6为本专利技术实施例中的嵌套隧道加封装示意图7为本专利技术实施例提供的路由交换设备的结构示意图。具体实施方式本专利技术实施例针对现有技术中嵌套隧道转发过程中需要多次路由、多次加封装,影响转发性能的问题,提供了一种嵌套隧道封装方案,用以提高隧道封装效率,进而提高转发效率。本专利技术实施例中,当路由交换设备上配置的隧道的状态为Up (打开)后,生成隧道封装表项,其中包括隧道封装层数、每层封装的IP头封装信息,以及最底层IP头封装信息中的目的地址对应的下一跳路由的出接口信息。当该路由交换设备接收到报文,并确定需要从隧道转发后,根据该隧道对应的隧道封装表项对该报文进行隧道封装和转发。上述流程对于嵌套隧道封装,只需一次路由(即报文进入时查询相应路由表项,并确定是否从隧道转发)和一次封装操作,并避免了因嵌套封装次数大于路由交换设备内部路由环回次数而导致转发失败情况的发生。下面结合附图对本专利技术实施例进行详细描述。如图4所示,当路由交换设备上配置的隧道的状态变为Up后,将触发以下隧道封装表项建立过程:步骤401:将该状态变为Up的隧道的封装信息添加到该隧道对应的隧道封装表项中,然后转入步骤402。其中,所添加的隧道封装信息可包括该隧道的源IP地址和目的IP地址。具体的,可使能隧道的封装表项配置功能,这样,当该隧道的状态变为Up后,即可配置该隧道对应的隧道封装表项。可通过在隧道口上配置标志位来使能隧道封装表项配置功能。步骤402:根据当前所添加的隧道封装信息中的隧道目的地址查找路由。步骤403:如果该目的地址对应的下一跳路由的出接口是隧道口,表明是嵌套隧道,则转入步骤404,否则转入步骤405。在具体实现时,针对存在等价路由的情况,本专利技术实施例提供了几种用于配置隧道封装表项过程的选路方式:方式一:预先在隧道口上配置IP头中的TOS字段值,不同的值代表不同的选路算法。具体的,TOS字段值取值范围为0-255,预先定义该字段值为100时,对应的选路策略为:如果存在等价路由,则优先选择隧道口为出接口,进一步的,如果存在等价隧道口路由,则选择隧道口 IP地址小的为出接口 ;若TOS不等于100,则按照常规流程选路。方式二:预先在隧道口上配置IP头中的可选项字段值,不同的值代表不同的选路算法。具体的,用可选字段中的一个比特位,用来标识选路方式,比如,将该比特位置0,表示按照常规方式进行选路;将该比特置1,表示优先选择隧道口为出接口,进一步的,如果存在等价隧道口路由,则选择隧道口 IP地址小的为出接口。优选的,默认情况下该字段取值为0,这样不会影响报文各种业务的处理。上述两种方式均是通过在隧道口配置选路算法指示信息来指导在配置隧道封装表项时如何选路。步骤404:根据该隧道口所对应的隧道的配置,将该隧道的封装信息添加到当前隧道对应的隧道封装表项中,然后转入步骤402。步骤405:将下一跳路由的出接口添加到该隧道对应的隧道封装表项中。通过以上迭代添加隧道封装信息的过程,针对以该状态变为Up的隧道口为入口的嵌套隧道,可建立对应的隧道封装表项。嵌套隧道中的最上层隧道对应的隧道封装表项中至少包括:嵌套隧道中每层隧道封装的IP报文头信息,以及迭代添加隧道封装信息结束时的目的地址对应的下一跳路由的出接口信息。可选的,还可包括隧道封装层数(即隧道嵌套层数)。需要说明的是,对于单层隧道,也可适用本专利技术实施例。对于单层隧道,对应的隧道封装表项中的隧道封装信息为本隧道的封装信息,出接口信息为本隧道的目的地址对应的下一跳路由的出接口。优选的,本文档来自技高网...

【技术保护点】
一种报文转发方法,其特征在于,包括:?路由交换设备接收到报文后,根据所述报文的目的IP地址查询对应的下一跳路由;?若根据查询到的下一跳路由确定从隧道转发所述报文,则查询所述隧道对应的隧道封装表项;其中,隧道封装表项中至少包括:隧道封装信息和出接口信息;?所述路由交换设备根据查询到的隧道封装表项中的隧道封装信息对所述报文进行隧道封装,并根据该隧道封装表项中的出接口转发封装后的报文。

【技术特征摘要】
1.一种报文转发方法,其特征在于,包括: 路由交换设备接收到报文后,根据所述报文的目的IP地址查询对应的下一跳路由; 若根据查询到的下一跳路由确定从隧道转发所述报文,则查询所述隧道对应的隧道封装表项;其中,隧道封装表项中至少包括:隧道封装信息和出接口信息; 所述路由交换设备根据查询到的隧道封装表项中的隧道封装信息对所述报文进行隧道封装,并根据该隧道封装表项中的出接口转发封装后的报文。2.如权利要求1所述的方法,其特征在于,所述根据查询到的下一跳路由确定从隧道转发所述报文,具体包括: 若查询到的下一跳路由不存在等价路由,且出接口为隧道口,则确定从所述隧道口对应的隧道转发所述报文; 或者,若查询到的下一跳路由存在等价路由,且出接口中包括隧道口,则判断所述报文中是否携带选路算法指示信息,若携带,则确定从所述隧道口对应的隧道转发所述报文,其中所述报文中携带的选路算法指示信息,用于指示存在等价路由的情况下,优先选择隧道口为出接口。3.如权利要求2所述的方法,其特征在于,所述方法还包括: 若根据查询到的下一跳路由确定从隧道转发所述报文,并且所述隧道的隧道口上配置有选路算法指示信息,则将隧道口上配置的选路算法指示信息添加到所述报文的隧道封装中;其中,所述隧道口上配置的选路算法指示信息,用于指示存在等价路由的情况下,优先选择隧道口为出接口。4.如权利要求1所述的方法,其特征在于,隧道封装表项中还包括封装层数信息; 所述路由交换设备根据查询到的隧道封装表项中的隧道封装信息对所述报文进行隧道封装时,将该隧道封装表项中的封装层数信息封装到所述报文。5.如权利要求1所述的方法,其特征在于,隧道封装表项的建立过程,包括: 步骤A:当所述路由交换设备检测到其上配置的隧道的状态变为打开状态时,将该打开状态的隧道的封装信息添加到该隧道对应的隧道封装表项中; 步骤B:所述路由交换设备根据当前添加的隧道封装信息中的目的IP地址查询对应的下一跳路由,若根据查询到的下一跳路由确定对应的出接口为隧道口,则转入步骤C,否则转入步骤D ; 步骤C:所述路由交换设备将查询到的隧道口对应的隧道的封装信息添加到该打开状态的隧道对应的隧道封装表 项中,然后转入步骤B ; 步骤D:所述路由交换设备将下一跳路由的出接口添加到该打开状态的隧道对应的隧道封装表项中; 其中,所添加的隧道封装信息包括隧道的源IP地址和目的IP地址。6.如权利要求5所述的方法,其特征在于,所述步骤B中,根据查询到的下一跳路由确定对应的出接口是否为隧道口,具体包括: 若查询到的下一跳路由不存在等价路由,且出接口为隧道口,则确定下一跳路由对应的出接口为隧道口; 或者,若查询到的下一跳路由存在等价路由,并且当前添加隧道封装信息的隧道的隧道口上配置有选路算法指示信息,则在等价路由中存在隧道口的情况下,根据所述选路算法指示信息选择隧道口作为当前添加隧道封装信息的隧道的出接口,其中,所述隧道口上配置的选路算法指示信息,用于指示存在等价路由的情况下,优先选择隧道口为出接口。7.如权利要求5所述的方法,其特征在于,隧道封装表项中还包括封装层数信息;所述方法还包括: 在将隧道封装信息添加到隧道封装表项中之前,判断该隧道封装表项中的封装层数是否已经达到所允许的最大封装层数,若判定该隧道封装表项中的封装层数已经达到所允许的最大封装层数,则放弃建立该隧道封装表项; 在将隧道封装信息添加到隧道封装表项之后,更新该隧道封装表项中的封装层数信息。8.如权利要求1所述的方法,其特征在于,所述方法还包括: 若所述路由交换设备检测到其上配置的隧道的状态从打开状态变为关闭状态,则删除该关闭状态的隧道对应的隧道封装表项,并删除嵌套有该关闭状态隧道的隧道所对应的隧道封装表项; 若所述路由交换设备检测到隧道的目的地址的下一跳路由的出接口变化,且确定该隧道为单层隧道,则根据该隧道更新后的出接口更新该隧道对应的隧道封装表项,并更新嵌套有该隧道的隧道所对应的隧道封装表项; 若所述路由交换设备检测到隧道的目的地址的下一跳路由的出接口变化,且确定该隧道嵌套有其它隧道,则根据更新后的下一跳路由出接口更新该隧道对应的隧道封装表项,并更新嵌套有该隧道的隧道所对应的隧道封装表项。9.一种路由交换设备,其特征在于,包括:路由查询模块、隧道...

【专利技术属性】
技术研发人员:张野
申请(专利权)人:杭州华三通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1