转发报文的方法以及相关设备技术

技术编号:37632054 阅读:12 留言:0更新日期:2023-05-20 08:53
本申请公开了一种转发报文的方法,该方法应用于转发设备中的第一处理节点,转发设备还包括第二处理节点,该方法包括:接收第二处理节点发送的报文的信息,报文在第二处理节点存储的热点路由表中未匹配到对应的目标出端口;根据第一处理节点存储的全局路由表,确定报文对应的目标出端口,以使得转发设备通过目标出端口对报文进行转发。这样,第二处理节点可以以较低的功耗、存储资源和硬件成本,基于热点路由信息来实现高效地路由查询,此外,还可以合理利用第一处理节点的存储资源和数据处理资源来匹配非热点路由信息,以提升转发设备的转发性能。转发性能。转发性能。

【技术实现步骤摘要】
转发报文的方法以及相关设备


[0001]本申请涉及转发设备
,具体涉及转发报文的方法以及相关设备。

技术介绍

[0002]诸如路由器、交换机等转发设备可以对接收到的报文进行转发。
[0003]目前,随着网络应用不断发展,转发设备的转发量越来越大,路由表对应的存储需求也随之增大,导致转发设备中提供转发功能的转发芯片等硬件的存储压力以及路由查询压力较大,常常无法满足应用场景的需要,从而影响了转发设备的转发性能。

技术实现思路

[0004]本申请实施例提供一种转发报文的方法,用于解决目前的转发设备的转发量越来越大,路由表对应的存储需求也随之增大,导致转发设备中提供转发功能的转发芯片等硬件的存储压力以及路由查询压力较大,常常无法满足应用场景的需要的问题。本申请实施例还提供了相应的装置、计算机设备、计算机可读存储介质和计算机程序产品等。
[0005]本申请第一方面提供一种转发报文的方法,该方法应用于转发设备中的第一处理节点,转发设备还包括第二处理节点,该方法包括:接收第二处理节点发送的报文的信息,报文在第二处理节点存储的热点路由表中未匹配到对应的目标出端口;根据第一处理节点存储的全局路由表,确定报文对应的目标出端口,以使得转发设备通过目标出端口对报文进行转发。
[0006]在上述第一方面中,转发设备可以为交换机(switch)、路由器(router)或者网关设备。第一处理节点和第二处理节点可以是转发设备中不同的物理模块,也可以是转发设备中不同的虚拟机或者不同的容器。路由表(routing table)用于根据报文的目的IP地址,在转发设备中查找对应的出端口。在上述第一方面中,路由表可以包括热点路由表和全局路由表。其中,热点路由表可以包括但不限于转发设备在一定的时间段内进行报文转发时使用次数较多的出端口的相关信息。而全局路由表可以包括转发设备进行报文转发所对应的所有出端口的相关信息。路由表中所包含的具体信息以及确定报文对应的目标出端口的方法可以基于转发设备基于路由表进行路由查找所采用的原则来确定。示例性地,基于路由表进行路由查找所采用的原则可以为最长前缀匹配(longest prefix match,LPM)原则。
[0007]该第一方面中,第二处理节点根据热点路由表来匹配接收到的报文对应的目标出端口,这样,第二处理节点可以以较低的功耗、存储资源和硬件成本,基于热点路由信息来实现高效地路由查询。若在第二处理节点存储的热点路由表中没有匹配到报文对应的目标出端口,则第二处理节点向第一处理节点发送报文,使得第一处理节点可以根据第一处理节点存储的全局路由表,确定报文对应的目标出端口,以使得转发设备通过目标出端口对报文进行转发。这样,可以合理利用第一处理节点的存储资源和数据处理资源来匹配非热点路由信息,以提升转发设备的转发性能。
[0008]在第一方面的一种可能的实现方式中,热点路由表包含转发设备对应的至少一个
热点前缀和每个热点前缀对应的出端口的信息,全局路由表包括转发设备对应的所有前缀和每个前缀对应的出端口的信息,所有前缀包含至少一个热点前缀,报文是基于最长前缀匹配LPM原则在热点路由表和全局路由表中进行匹配的。
[0009]在该种可能的实现方式中,前缀可以通过由0和/或1,以及*组成的数组来表示,前缀的最后一位为*,除最后一位之外的其他位为0或1。其中,*表示在进行最长前缀匹配时,该位不匹配。该种可能的实现方式中,通过最长前缀匹配原则来进行确定报文对应的出端口,可以避免采用哈希查找算法可能导致的哈希冲突以及虚假匹配等情况,保证较好的准确性。
[0010]在第一方面的一种可能的实现方式中,该方法还包括:根据第一处理节点在预设时间段内通过全局路由表匹配成功的前缀,和/或,第二处理节点在预设时间段内通过热点路由表匹配成功的前缀,获得至少一个第一前缀;若至少一个第一前缀在基于所有前缀所得到的前缀树中对应有前缀子树,则根据每个第一前缀,以及,第一前缀对应的前缀子树中的子节点的前缀,获得目标前缀,每个前缀子树的根节点与相应的第一前缀对应;根据目标前缀以及目标前缀对应的出端口,重新确定热点路由表;向第二处理节点发送重新确定的热点路由表。
[0011]在该种可能的实现方式中,可以是第一处理节点从第二处理节点主动获取第二匹配前缀,也可以是第二处理节点向第一处理节点主动发送第二匹配前缀的信息。该第二处理节点向第一处理节点主动发送第二匹配前缀的信息时,可以是第二处理节点每次通过热点路由表匹配到一个热点前缀时,就向第一处理节点进行发送该热点前缀的信息,也可以是第二处理节点定时(例如,以预设时间段为时间间隔)向第一节点发送相应周期内匹配到的热点前缀的信息。示例性地,该第二处理节点可以基于telemetry技术,定时向第一节点发送相应周期内匹配到的热点前缀的信息。
[0012]在该种可能的实现方式中,在进行基于最长前缀匹配原则进行匹配时,若前缀树中的任一子节点的前缀与报文的目的IP地址相匹配,则该子节点的父节点的前缀也必然与该报文的目的IP地址相匹配。而由于前缀树中的任一子节点对应的前缀相对于该子节点的父节点对应的前缀更长,因此,可以认为该子节点对应的前缀所包含的路由的信息越具体,从而更好地保证报文的准确转发。因此,可以根据第一前缀对应的前缀子树中子节点的前缀,确定热点前缀,此时,第一前缀对应的前缀子树中子节点的前缀可以在第一前缀的基础上包含相较于第一前缀较多的路由信息,此外若第一前缀为在预设时间段内被匹配的前缀甚至是匹配次数较多的前缀,则第一前缀对应的前缀子树中子节点的前缀也有较大可能为在后续可能被匹配到的前缀。示例性地,第一前缀对应的前缀子树中的子节点的前缀可以均作为目标前缀。或者,也可以根据各自对应的出端口,对每个第一前缀以及第一前缀对应的前缀子树中的子节点的前缀进行筛选,以获得目标前缀。
[0013]在第一方面的一种可能的实现方式中,上述步骤:若至少一个第一前缀在基于所有前缀所得到的前缀树中对应有前缀子树,则根据每个第一前缀,以及,第一前缀对应的前缀子树中的子节点的前缀,获得目标前缀,包括:若至少一个第一前缀在基于所有前缀所得到的前缀树中对应有前缀子树,则将每个第一前缀,以及每个前缀子树中的目标子节点的前缀,确定为目标前缀,目标子节点与在相应前缀子树中的父节点对应有不同的出端口。
[0014]在该种可能的实现方式中,在进行基于最长前缀匹配原则进行匹配时,若前缀树
中的任一子节点的前缀与报文的目的IP地址相匹配,则该子节点的父节点的前缀也必然与该报文的目的IP地址相匹配。而若该子节点对应的出端口与相应父节点对应的出端口相同,则任一匹配到该子节点的前缀的报文实际上也都可以基于与该子节点对应的父节点的前缀的匹配结果来确定该报文对应的目标出端口。可见,在实际匹配过程中,该子节点的匹配结果可以合并至对应的父节点的匹配结果中。因此,为了减少热点路由表的大小,并且降低前缀匹配时的计算量,该种可能的实现方式中,可以将第一前缀对应的前缀子树中,与相应父节点对应有不同的出端口的子本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种转发报文的方法,其特征在于,应用于转发设备中的第一处理节点,所述转发设备还包括第二处理节点,所述方法包括:接收第二处理节点发送的报文的信息,所述报文在所述第二处理节点存储的热点路由表中未匹配到对应的目标出端口;根据所述第一处理节点存储的全局路由表,确定所述报文对应的目标出端口,以使得所述转发设备通过所述目标出端口对所述报文进行转发。2.根据权利要求1所述的方法,其特征在于,所述热点路由表包含所述转发设备对应的至少一个热点前缀和每个所述热点前缀对应的出端口的信息,所述全局路由表包括所述转发设备对应的所有前缀和每个所述前缀对应的出端口的信息,所述所有前缀包含所述至少一个热点前缀,所述报文是基于最长前缀匹配LPM原则在所述热点路由表和所述全局路由表中进行匹配的。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:根据所述第一处理节点在预设时间段内通过所述全局路由表匹配成功的前缀,和/或,所述第二处理节点在所述预设时间段内通过所述热点路由表匹配成功的前缀,获得至少一个第一前缀;若至少一个所述第一前缀在基于所述所有前缀所得到的前缀树中对应有前缀子树,则根据每个所述第一前缀,以及,所述第一前缀对应的前缀子树中的子节点的前缀,获得目标前缀,每个所述前缀子树的根节点与相应的第一前缀对应;根据所述目标前缀以及所述目标前缀对应的出端口,重新确定所述热点路由表;向所述第二处理节点发送重新确定的所述热点路由表。4.根据权利要求3所述的方法,所述若至少一个所述第一前缀在基于所述所有前缀所得到的前缀树中对应有前缀子树,则根据每个所述第一前缀,以及,所述第一前缀对应的前缀子树中的子节点的前缀,获得目标前缀,包括:若至少一个所述第一前缀在基于所述所有前缀所得到的前缀树中对应有前缀子树,则将每个所述第一前缀,以及每个所述前缀子树中的目标子节点的前缀,确定为所述目标前缀,所述目标子节点与在相应前缀子树中的父节点对应有不同的出端口。5.根据权利要求1

4任一项所述的方法,其特征在于,所述根据所述第一处理节点存储的全局路由表,确定所述报文对应的目标出端口,以使得所述转发设备通过所述目标出端口对所述报文进行转发,包括:根据所述第一处理节点存储的全局路由表,确定所述报文对应的目标出端口;根据所述目标出端口和所述报文,获得反馈信息;向所述第二处理节点发送所述反馈信息,以使得所述第二处理节点根据所述反馈信息转发所述报文。6.根据权利要求5所述的方法,其特征在于,所述根据所述目标出端口和所述报文,获得反馈信息,包括:在位于所述报文之前的目标字段中,写入所述目标出端口的信息,以获得所述反馈信息,所述反馈信息用于所述第二处理节点读取所述目标字段中的目标出端口的信息,并根据读取到的所述目标出端口的信息转发所述报文。7.根据权利要求1

6任一项所述的方法,其特征在于,所述第二处理节点为转发芯片,
所述第一处理节点为中央处理器CPU。8.一种转发报文的方法,其特征在于,应用于转发设备中的第二处理节点,所述转发设备还包括第一处理节点,所述方法包括:接收报文;在所述第二处理节点存储的热点路由表中,匹配所述报文对应的目标出端口;若在所述第二处理节点存储的热点路由表中未匹配到所述报文对应的目标出端口,则向所述第一处理节点发送所述报文的信息,以使得所述第一处理节点根据所述第一处理节点存储的全局路由表,确定所述报文对应的目标出端口,所述目标出端口用于所述转发设备通过所述目标出端口对所述报文进行转发。9.根据权利要求8所述的方法,其特征在于,还包括:接收所述第一处理节点发送的反馈信息,所述反馈信息为所述第一处理节点在位于所述报文之前的目标字段中,写入所述目标出端口的信息而得到;读取所述反馈信息中所述目标字段的目标出端口的信息;根据读取到的所述目标出端口的信息转发所述报文。10.一种转发报文的装置,其特征在于,应用于转发设备中的第一处理节点,所述转发设备还包括第二处理节点,所述装置包括:接收模块,用于接收第二处理节点发送的报文的信息,所述报文在所述第二处理节点存储的热点路由表中未匹配到对应的目标出端口;处理模块,用于根据所述第一处理节点存储的全局路由表,确定所述报文对应的目标出端口,以...

【专利技术属性】
技术研发人员:陈志赛
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1