一种报文转发方法、装置及转发设备制造方法及图纸

技术编号:20550042 阅读:26 留言:0更新日期:2019-03-09 22:20
本申请实施例提供一种报文转发方法、装置及转发设备,包括:接收P2MP GRE组网中的分支节点通过GRE隧道发送的GRE报文,所述GRE隧道的一端为所述中心节点的第一接口,所述GRE隧道的另一端为所述分支节点的第二接口;所述第二接口中配置第一GRE隧道口;若确定该GRE报文的内层源地址是所述第一GRE隧道口的地址,则基于该GRE报文生成P2MP隧道表项并将该P2MP隧道表项添加至P2MP隧道表;依据所述P2MP隧道表和已储存的路由表转发接收到的报文。使用本申请实施例提供的方法可以减少P2MP隧道表项对于P2MP GRE组网中的中心节点资源的占用。

【技术实现步骤摘要】
一种报文转发方法、装置及转发设备
本申请实施例涉及通信领域,尤其涉及一种报文转发方法、装置及转发设备。
技术介绍
点到多点(PointtoMultiplePoint,P2MP)通用路由封装(GenericRoutingEncapsulation,GRE)组网包括:一个中心节点和多个分支节点。在中心节点上配置P2MPGRE隧道模式的GRE隧道口,在各分支节点上配置传统的P2PGRE隧道模式的GRE隧道口,这样就可以实现在中心节点和多个分支节点上建立P2MPGRE隧道。为了指导报文转发,中心节点上储存有路由表和P2MP隧道表。路由表的路由表项包括:目的地址、出接口和下一跳。P2MP隧道表中的P2MP隧道表项至少包括:目的地址和封装属性。现有的生成P2MP隧道表项的方式是:中心节点基于分支节点连接的用户主机发送的流量来生成P2MP隧道表项。具体地,当中心节点接收到某一分支节点连接的某一用户主机发送的流量时,可以以该流量的内层源地址(即该用户主机的IP地址)作为目的地址、以外层源地址(即该分支节点上GRE隧道口对应的接口IP地址)作为封装属性,生成P2MP隧道表项。然而,当中心节点对接有多个分支节点,每个分支节点又连接有多个用户主机时,每个分支节点的每个用户主机都会在中心节点上生成与每个用户主机对应的P2MP隧道表项,造成中心节点上生成大量的P2MP隧道表项,大大浪费中心节点的资源。
技术实现思路
有鉴于此,本申请实施例提供一种报文转发方法、装置及转发设备,用以减少P2MP隧道表项对于P2MPGRE组网中的中心节点资源的占用。具体地,本申请实施例是通过如下技术方案实现的:根据本申请实施例的第一方面,提供一种报文转发方法,所述方法应用于点到多点通用路由封装P2MPGRE组网的中心节点,所述方法包括:接收P2MPGRE组网中的分支节点通过GRE隧道发送的GRE报文,所述GRE隧道的一端为所述中心节点的第一接口,所述GRE隧道的另一端为所述分支节点的第二接口;所述第二接口中配置第一GRE隧道口;若确定该GRE报文的内层源地址是所述第一GRE隧道口的地址,则基于该GRE报文生成P2MP隧道表项并将该P2MP隧道表项添加至P2MP隧道表;依据所述P2MP隧道表和已储存的路由表转发接收到的报文;其中,所述P2MP隧道表项的目的地址是所述GRE报文的内层源地址,封装属性是所述GRE报文的外层源地址;所述GRE报文的外层源地址为所述第二接口的地址。可选的,所述第一接口中配置第二GRE隧道口;所述确定该GRE报文的内层源地址是所述分支节点上的第一GRE隧道口的地址,包括:检测所述GRE报文的内层源地址与所述第二GRE隧道口的地址是否在同一网段;若是,则确定所述GRE报文的内层源地址是所述分支节点上的第一GRE隧道口的地址。可选的,所述依据所述P2MP隧道表和已储存的路由表转发接收到的报文,包括:当接收到报文时,在本地储存的路由表中查找与该报文匹配的路由表项;若所述路由表项的出接口为所述第二GRE隧道口,则将所述路由表项的下一跳作为关键字,在所述P2MP隧道表中查找目的地址是所述关键字的P2MP隧道表项;使用查找到的P2MP隧道表项中记录的封装属性、以及本地记录的所述第一接口地址对所述报文进行GRE封装;将GRE封装后的报文通过所述第二GRE隧道口进行转发。可选的,所述基于该GRE报文生成P2MP隧道表项,包括:若确定本地未生成与该GRE报文对应的P2MP隧道表项,且在本地已生成的与该GRE报文对应的P2MP隧道表项已老化,则基于该GRE报文生成P2MP隧道表项。根据本申请实施例的第二方面,提供一种报文转发装置,所述装置应用于点到多点通用路由封装P2MPGRE组网的中心节点,所述装置包括:接收单元,用于接收P2MPGRE组网中的分支节点通过GRE隧道发送的GRE报文,所述GRE隧道的一端为所述中心节点的第一接口,所述GRE隧道的另一端为所述分支节点的第二接口;所述第二接口中配置第一GRE隧道口;生成单元,用于若确定该GRE报文的内层源地址是所述第一GRE隧道口的地址,则基于该GRE报文生成P2MP隧道表项并将该P2MP隧道表项添加至P2MP隧道表;转发单元,用于依据所述P2MP隧道表和已储存的路由表转发接收到的报文;其中,所述P2MP隧道表项的目的地址是所述GRE报文的内层源地址,封装属性是所述GRE报文的外层源地址;所述GRE报文的外层源地址为所述第二接口的地址。可选的,所述第一接口中配置第二GRE隧道口;所述生成单元,在确定该GRE报文的内层源地址是所述分支节点上的第一GRE隧道口的地址时,具体用于检测所述GRE报文的内层源地址与所述第二GRE隧道口的地址是否在同一网段;若是,则确定所述GRE报文的内层源地址是所述分支节点上的第一GRE隧道口的地址。可选的,所述转发单元,具体用于当接收到报文时,在本地储存的路由表中查找与该报文匹配的路由表项;若所述路由表项的出接口为所述第二GRE隧道口,则将所述路由表项的下一跳作为关键字,在所述P2MP隧道表中查找目的地址是所述关键字的P2MP隧道表项;使用查找到的P2MP隧道表项中记录的封装属性、以及本地记录的所述第一接口地址对所述报文进行GRE封装;将GRE封装后的报文通过所述第二GRE隧道口进行转发。可选的,所述生成单元,在基于该GRE报文生成P2MP隧道表项时,具体用于若确定本地未生成与该GRE报文对应的P2MP隧道表项,且在本地已生成的与该GRE报文对应的P2MP隧道表项已老化,则基于该GRE报文生成P2MP隧道表项。根据本申请实施例的第三方面,提供一种转发设备,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使执行如第一方面所述方法。根据本申请实施例的第四方面,提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器执行如第一方面所述方法。本申请实施例中心节点在接收到GRE报文后,选择内层源地址是该分支节点的GRE隧道口地址的GRE报文来生成P2MP隧道表项,由于该生成的P2MP隧道表项的目的地址是分支节点上GRE隧道口地址,而不再是分支节点连接的各用户主机的地址,使得该一条P2MP隧道表项就可以代替与该分支节点连接的各用户主机对应的多条P2MP隧道表项,所以采用本申请实施例提供的方法来生成P2MP隧道表项,会大大减少P2MP隧道表项的数量,因此大大减少了P2MP隧道表项对于中心节点资源的占用。此外,由于P2MP隧道表项的内容发生更改,本申请实施例还提供了适用于本申请实施例的P2MP隧道表项转发报文的流程,使得中心节点可以基于包含有分支节点上GRE隧道口地址的P2MP隧道表项,将报文转发给该分支节点连接的用户主机。附图说明图1是一种P2MP组网的组网架构图;图2是本申请实施例一示例性实施例示出的一种报文转发方法的流程图;图3是本申请实施例一示例性实施例示出的一种报文转发方法的示意图;图4是本申请实施例一示例性实施例示出的一种转发设备的硬件结构图;图5是本申请实施例一示例性实施例示出的一种报文转发装置的框图。具体实施方式这里将详本文档来自技高网...

【技术保护点】
1.一种报文转发方法,其特征在于,所述方法应用于点到多点通用路由封装P2MP GRE组网的中心节点,所述方法包括:接收P2MP GRE组网中的分支节点通过GRE隧道发送的GRE报文,所述GRE隧道的一端为所述中心节点的第一接口,所述GRE隧道的另一端为所述分支节点的第二接口;所述第二接口中配置第一GRE隧道口;若确定该GRE报文的内层源地址是所述第一GRE隧道口的地址,则基于该GRE报文生成P2MP隧道表项并将该P2MP隧道表项添加至P2MP隧道表;依据所述P2MP隧道表和已储存的路由表转发接收到的报文;其中,所述P2MP隧道表项的目的地址是所述GRE报文的内层源地址,封装属性是所述GRE报文的外层源地址;所述GRE报文的外层源地址为所述第二接口的地址。

【技术特征摘要】
1.一种报文转发方法,其特征在于,所述方法应用于点到多点通用路由封装P2MPGRE组网的中心节点,所述方法包括:接收P2MPGRE组网中的分支节点通过GRE隧道发送的GRE报文,所述GRE隧道的一端为所述中心节点的第一接口,所述GRE隧道的另一端为所述分支节点的第二接口;所述第二接口中配置第一GRE隧道口;若确定该GRE报文的内层源地址是所述第一GRE隧道口的地址,则基于该GRE报文生成P2MP隧道表项并将该P2MP隧道表项添加至P2MP隧道表;依据所述P2MP隧道表和已储存的路由表转发接收到的报文;其中,所述P2MP隧道表项的目的地址是所述GRE报文的内层源地址,封装属性是所述GRE报文的外层源地址;所述GRE报文的外层源地址为所述第二接口的地址。2.根据权利要求1所述的方法,其特征在于,所述第一接口中配置第二GRE隧道口;所述确定该GRE报文的内层源地址是所述分支节点上的第一GRE隧道口的地址,包括:检测所述GRE报文的内层源地址与所述第二GRE隧道口的地址是否在同一网段;若是,则确定所述GRE报文的内层源地址是所述分支节点上的第一GRE隧道口的地址。3.根据权利要求1所述的方法,其特征在于,所述依据所述P2MP隧道表和已储存的路由表转发接收到的报文,包括:当接收到报文时,在本地储存的路由表中查找与该报文匹配的路由表项;若所述路由表项的出接口为所述第二GRE隧道口,则将所述路由表项的下一跳作为关键字,在所述P2MP隧道表中查找目的地址是所述关键字的P2MP隧道表项;使用查找到的P2MP隧道表项中记录的封装属性、以及本地记录的所述第一接口地址对所述报文进行GRE封装;将GRE封装后的报文通过所述第二GRE隧道口进行转发。4.根据权利要求1所述的方法,其特征在于,所述基于该GRE报文生成P2MP隧道表项,包括:若确定本地未生成与该GRE报文对应的P2MP隧道表项,且在本地已生成的与该GRE报文对应的P2MP隧道表项已老化,则基于该GRE报文生成P2MP隧道表项。5.一种报文转发装置,其特征在于,所述装置应用于点到多点通用路由封装P2MPGRE组网的中心节点,所述装置包括:接收单元,用于接收P2MPGRE组网中的分支节点通过GRE隧道发送的GRE报文,所述GRE...

【专利技术属性】
技术研发人员:饶小兵杨银柱
申请(专利权)人:北京华三通信技术有限公司
类型:发明
国别省市:北京,11

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

1