一种报文转发方法及装置与流程

文档序号:28696595发布日期:2022-01-29 12:28阅读:45来源:国知局
一种报文转发方法及装置与流程

1.本发明涉及网络技术领域,特别是涉及一种报文转发方法及装置。


背景技术:

2.一台网络设备中可以配置不同的彼此之间路由隔离的vpn(virtual private network,虚拟专用网络),通过不同的vpn实现不同的网络转发功能,网络设备中记录有不同vpn能够使用的路由表项,在网络设备内的vpn接收到待转发的三层报文后,网络设备可以从该vpn能够使用的路由表项中查找与报文的目的ip地址匹配的路由表项,并基于查找到的路由表项转发报文。例如,网络设备中配置有vpn1与vpn2,vpn1能够使用路由表项1,vpn2能够使用路由表项2,则网络设备中分别存储有vpn1能够使用的路由表项1以及vpn2能够使用的路由表项2。
3.但若不同vpn之间需要互相转发报文,则需要不同vpn之间路由互通,为此网络设备中需要存储多份互通的路由表项分别对应不同的vpn,以使得网络设备内路由互通的不同vpn接收到报文后,均可以基于互通的路由表项转发报文。例如,若vpn1与vpn2路由互通,则交换芯片中可以分别存储vpn1对应的路由表项1与路由表项2,以及vpn2对应的路由表项1与路由表项2,路由表项1与路由表项2均被存储两份。因此采用现有技术中的方式转发报文,网络设备中需要存储重复的路由表项,从而造成网络设备中路由表项存储资源的浪费。


技术实现要素:

4.本发明实施例的目的在于提供一种报文转发方法及装置,以减少网络设备中路由表项存储资源的浪费。具体技术方案如下:
5.第一方面,本发明实施例提供了一种报文转发方法,方法包括:
6.接收待转发的三层报文;
7.识别报文所属的目标vpn;
8.基于预先创建的部分互通路由表中记录的各个路由表项的识别信息,查找目标vpn在进行报文转发时能够使用的路由表项,其中,互通路由表中记录有:多个vpn之间互通的路由表项以及各路由表项的识别信息,每一路由表项的识别信息表示:所有能够使用该路由表项进行报文转发的vpn;
9.从查找到的路由表项中选择与报文中记录的目的ip地址相匹配的路由表项;
10.基于所选择路由表项中记录的下一跳地址,转发报文。
11.第二方面,本发明实施例提供了一种报文转发装置,装置包括:
12.报文接收模块,用于接收待转发的三层报文;
13.vpn识别模块,用于识别报文所属的目标vpn;
14.第一表项查找模块,用于基于预先创建的部分互通路由表中记录的各个路由表项的识别信息,查找目标vpn在进行报文转发时能够使用的路由表项,其中,互通路由表中记录有:多个vpn之间互通的路由表项以及各路由表项的识别信息,每一路由表项的识别信息
表示:所有能够使用该路由表项进行报文转发的vpn;
15.表项选择模块,用于从查找到的路由表项中选择与报文中记录的目的ip地址相匹配的路由表项;
16.报文转发模块,用于基于所选择路由表项中记录的下一跳地址,转发报文。
17.本发明实施例有益效果:
18.本发明实施例提供了一种报文转发方法,在接收到待转发的三层报文之后,识别报文所属的目标vpn,基于预先创建的部分互通路由表中记录的各个路由表项对应的、表示所有能够使用该路由表项进行报文转发的vpn的识别信息,查找目标vpn在进行报文转发时能够使用的路由表项。再从所查找到的路由表项中选择与报文中记录的目的ip地址相匹配的路由表项,从而基于所选择的路由表项中记录的下一跳地址转发报文。
19.由以上可见,本发明实施例中针对每一路由表项,记录有表示所有能够使用该路由表项进行报文转发的vpn的识别信息,因此基于各个路由表项的识别信息能够筛选出目标vpn能够使用的路由表项,进而从筛选出的路由表项中匹配路由表项,转发待转发的报文。由此可见,针对每一路由表项,网络设备中仅需要存储一份该路由表项,能够使用该路由表项的各个vpn便均可以查找到该路由表项,并进一步的基于该路由表项转发报文。因此本发明实施例提供的方案中,对于不同的路由表项,网络设备仅需要存储一份该路由表项便可以实现不同vpn互通路由表项的配置,可以减少网络设备中路由表项存储资源的浪费。
附图说明
20.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
21.图1为本发明实施例提供的第一种报文转发方法的流程示意图;
22.图2为本发明实施例提供的第二种报文转发方法的流程示意图;
23.图3为本发明实施例提供的第一种报文转发装置的结构示意图;
24.图4为本发明实施例提供的第二种报文转发装置的结构示意图。
具体实施方式
25.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员基于本技术所获得的所有其他实施例,都属于本发明保护的范围。
26.参见图1,为本发明实施例提供的第一种报文转发方法的流程示意图,该方法包括以下步骤s101-s105。
27.具体的,本发明实施例可以应用于网络设备,网络设备中配置有多个vpn,多个vpn之间存在路由隔离。
28.s101:接收待转发的三层报文。
29.s102:识别报文所属的目标vpn。
30.具体的,可以先确定报文所属的vlan(virtual local area network,虚拟局域
网),并确定属于vlan的vpn作为目标vpn。
31.s103:基于预先创建的部分互通路由表中记录的各个路由表项的识别信息,查找目标vpn在进行报文转发时能够使用的路由表项。
32.其中,部分互通路由表中记录有:多个vpn之间互通的路由表项以及各路由表项的识别信息,每一路由表项的识别信息表示:所有能够使用该路由表项进行报文转发的vpn。
33.具体的,部分互通路由表可以记录于交换芯片中,部分互通路由表中的每一个表项中记录一个路由表项,以及该路由表项的识别信息。
34.本发明的一个实施例中,可以遍历各个路由表项识别信息,针对每一识别信息,分别确定目标vpn是否能够使用该路由表项进行报文转发,从而确定目标vpn能够使用的路由表项。
35.其中,针对每一路由表项,该路由表项的识别信息可以为能够使用该路由表项的vpn的标识的集合,vpn的标识可以为vpn的编号,例如,vpn1的编号为1,vpn2的编号为2,以此类推。若vpn1与vpn4均能够使用路由表项m,则路由表项m的识别信息可以为1与4。
36.另外,识别信息中的各个比特与网络设备中配置的各个vpn一一对应,针对每一比特,若该比特的取值为预设值,则表示该比特对应的vpn能够使用该路由表项转发报文。识别信息中包含的比特的数量与网络设备配置的vpn的数量相同。
37.例如,预设值可以为1,则若比特的取值为1,则表示该比特对应的vpn能够使用该路由表项转发报文,若比特的取值为0,则表示该比特对应的vpn不能够使用该路由表项转发报文。预设值也可以为0,则若比特的取值为0,则表示该比特对应的vpn能够使用该路由表项转发报文,若比特的取值为1,则表示该比特对应的vpn不能够使用该路由表项转发报文。
38.若网络设备中配置有8个vpn,则识别信息中可以包含8个比特,按照各个比特的排列顺序,从后往前各比特可以分别对应vpn1-vpn8,预设值可以为1。则若第一掩码为“00000001”,则表示路由表项与vpn1相对应,若第一掩码为“00000101”,则表示路由表项与vpn1和vpn3相对应,也就是vpn1与vpn3路由互通。若第一掩码为“11111111”,则表示该路由表项与vpn1-vpn8均对应,该路由表项为公网vpn中的路由表项,各个vpn均可以使用。
39.本发明的一个实施例中,预设值为1,则可以通过以下步骤a实现步骤s103。
40.步骤a:将目标vpn的标识分别与各个路由表项的识别信息进行按位相与计算,将计算结果为1的路由表项确定为目标vpn在进行报文转发时能够使用的路由表项。
41.其中,目标vpn的标识包含的比特数与识别信息包含的比特数相同,目标vpn的标识中目标次序处的比特取值为1,除目标次序外其他位置处的比特的取值为0,目标次序为:目标vpn在识别信息中对应的次序。
42.具体的,由于目标vpn的标识中目标次序出的比特取值为1,其他位置处的比特的取值为0,因为将目标vpn的标识与路由表项的识别信息进行按位相与计算后,若识别信息中目标次序处比特的取值也为1,则计算结果为1,若识别信息中目标次序处比特的取值为0,则计算结果为0。
43.因此若计算结果为1,则说明该识别信息中目标次序处比特的取值为1,也就表示目标次序处比特对应的vpn能够使用该识别信息对应的路由表项。分别将目标vpn的标识分别与各个路由表项的识别信息进行按位相与计算,计算结果为1的所有路由表项就是目标
vpn在进行报文转发时能够使用的路由表项。
44.具体的,可以复用交换芯片中原本包含的fib(forwarding information base,转发信息库)表,fib表中的各个fib表项中原本便分别记录有网络设备中配置的各个路由表项,可以在fib表中添加一项数据用于记录识别信息,从而将fib表复用为部分互通路由表。
45.s104:从查找到的路由表项中选择与报文中记录的目的ip地址相匹配的路由表项。
46.具体的,选择与报文中记录的目标ip地址相匹配的路由表项的方式与现有技术相同,在此不再赘述。
47.s105:基于所选择路由表项中记录的下一跳地址,转发报文。
48.具体的,可以向所选择的路由表项中记录的下一跳地址转发报文。
49.由以上可见,本发明实施例中针对每一路由表项,记录有表示所有能够使用该路由表项进行报文转发的vpn的识别信息,因此基于各个路由表项的识别信息能够筛选出目标vpn能够使用的路由表项,进而从筛选出的路由表项中匹配路由表项,转发待转发的报文。由此可见,针对每一路由表项,网络设备中仅需要存储一份该路由表项,能够使用该路由表项的各个vpn便均可以查找到该路由表项,并进一步的基于该路由表项转发报文。因此本发明实施例提供的方案中,对于不同的路由表项,网络设备仅需要存储一份该路由表项便可以实现不同vpn互通路由表项的配置,可以减少网络设备中路由表项存储资源的浪费。
50.参见图2,为本发明实施例提供的第二种报文转发方法的流程示意图,本实施例中还包括以下步骤s106,通过步骤s106可以查找目标vpn在进行报文转发时能够使用的路由表项,在查找到路由表项后,可以继续基于步骤s104-s105转发报文。
51.s106:基于预先创建的完全互通路由表中记录的各个路由表项对应的vpn的标识,查找目标vpn在进行报文转发时能够使用的路由表项。
52.其中,完全互通路由表中记录有:多个完全互通路由表项的vpn均能够使用的路由表项以及各个路由表项对应的vpn的标识,并且多个完全互通路由表项的vpn的标识相同。
53.具体的,若vpn中的各个路由表项均互通,说明路由互通后各个vpn能够使用的路由表项完全相同。因此本发明实施例中将路由表项互通的各个vpn的标识统一为相同的标识,统一后的标识可以被称为supervpn标识,在完全互通路由表项中记录路由表项以及路由表项对应的vpn的标识。则对于完全互通的vpn,完全互通路由表项中记录有完全互通的vpn均能使用的路由表项,以及完全互通的vpn统一的标识,表示标识为所记录的标识的vpn能够使用该路由表项。
54.因此,在确定目标vpn之后,可以以目标vpn的标识作为查找路由表项的索引,查找该标识对应的路由表项,即为目标vpn能够使用的路由表项。由于完全互通的vpn的标识被统一,因此无论完全互通的vpn中的哪个vpn接收到了报文,均可以基于统一的标识查找到路由表项。
55.具体的,可以复用fib表,作为完全互通路由表项。
56.其中,fib表中每一表项内原本便记录有路由表项以及能够使用该路由表项的vpn的标识,对于完全互通的vpn,将fib表中记录的完全互通的vpn的标识更新为统一后的vpn的标识,从而表示完全互通的各个vpn均能够使用该路由表项进行报文转发。
57.由以上可见,若互通的各个vpn的路由表项均互通,则各个vpn能够使用的路由表
项会完全相同。因此可以不需要针对每一路由表项,单独记录能够使用该路由表项转发报文的vpn,而是直接将各个完全互通的vpn的标识统一为相同的标识,并且在完全互通路由表中记录路由表项对应的vpn的统一的标识,每一路由表项只存储一次,便能够表示路由完全互通的vpn均能够使用各个路由表项。网络设备不需要重复记录路由表项,应用本发明实施例提供的方案可以节省网络设备中记录路由表项的存储空间。
58.与前述报文转发方法相对应,本发明实施例还提供了一种报文转发装置。
59.参见图3,为本发明实施例提供的第一种报文转发装置的结构示意图,该装置包括:
60.报文接收模块301,用于接收待转发的三层报文;
61.vpn识别模块302,用于识别报文所属的目标vpn;
62.第一表项查找模块303,用于基于预先创建的部分互通路由表中记录的各个路由表项的识别信息,查找目标vpn在进行报文转发时能够使用的路由表项,其中,部分互通路由表中记录有:多个vpn之间互通的路由表项以及各路由表项的识别信息,每一路由表项的识别信息表示:所有能够使用该路由表项进行报文转发的vpn;
63.表项选择模块304,用于从查找到的路由表项中选择与报文中记录的目的ip地址相匹配的路由表项;
64.报文转发模块305,用于基于所选择路由表项中记录的下一跳地址,转发报文。
65.由以上可见,本发明实施例中针对每一路由表项,记录有表示所有能够使用该路由表项进行报文转发的vpn的识别信息,因此基于各个路由表项的识别信息能够筛选出目标vpn能够使用的路由表项,进而从筛选出的路由表项中匹配路由表项,转发待转发的报文。由此可见,针对每一路由表项,网络设备中仅需要存储一份该路由表项,能够使用该路由表项的各个vpn便均可以查找到该路由表项,并进一步的基于该路由表项转发报文。因此本发明实施例提供的方案中,对于不同的路由表项,网络设备仅需要存储一份该路由表项便可以实现不同vpn互通路由表项的配置,可以减少网络设备中路由表项存储资源的浪费。
66.本发明的一个实施例中,识别信息中的各个比特与网络设备中配置的各个vpn一一对应,针对每一比特,若该比特的取值为预设值,则表示该比特对应的vpn能够使用该路由表项转发报文。
67.本发明的一个实施例中,预设值为1,第一表项查找模块303,具体用于:
68.将目标vpn的标识分别与各个路由表项的识别信息进行按位相与计算,将计算结果为1的路由表项确定为目标vpn在进行报文转发时能够使用的路由表项,其中,目标vpn的标识包含的比特数与识别信息包含的比特数相同,目标vpn的标识中目标次序处的比特取值为1,除目标次序外其他位置处的比特的取值为0,目标次序为:目标vpn在识别信息中对应的次序。
69.参见图4,为本发明实施例提供的第二种报文转发装置的结构示意图,装置还包括第二表项查找模块306,用于通过以下方式查找目标vpn在进行报文转发时能够使用的路由表项
70.基于预先创建的完全互通路由表中记录的各个路由表项对应的vpn的标识,查找目标vpn在进行报文转发时能够使用的路由表项,其中,完全互通路由表中记录有:多个完全互通路由表项的vpn均能够使用的路由表项以及各个路由表项对应的vpn的标识,并且多
个完全互通路由表项的vpn的标识相同。
71.由以上可见,若互通的各个vpn的路由表项均互通,则各个vpn能够使用的路由表项会完全相同。因此可以不需要针对每一路由表项,单独记录能够使用该路由表项转发报文的vpn,而是直接将各个完全互通的vpn的标识统一为相同的标识,并且在完全互通路由表中记录路由表项对应的vpn的统一的标识,每一路由表项只存储一次,便能够表示路由完全互通的vpn均能够使用各个路由表项。网络设备不需要重复记录路由表项,应用本发明实施例提供的方案可以节省网络设备中记录路由表项的存储空间。
72.本发明实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
73.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
74.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
75.以上仅为本发明的较佳实施例,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1