一种报文处理方法、装置、存储介质及网关设备与流程

文档序号:29136979发布日期:2022-03-05 02:06阅读:60来源:国知局
一种报文处理方法、装置、存储介质及网关设备与流程

1.本发明涉及通信技术领域,特别涉及一种报文处理方法、装置、存储介质及网关设备。


背景技术:

2.arp(address resolution protocol,地址解析协议)是根据ip地址获取mac地址的一个tcp/ip协议。当网关设备重新启动后,此时将包含目标ip地址的arp请求广播到网络上的所有虚拟主机,并接收所有虚拟主机的arp响应,以此确定所有虚拟主机的mac地址,在收到来自所有虚拟主机返回的arp响应报文后,将该arp响应报文中的物理地址和与其对应的ip地址存入网关设备的arp缓存表中并保留一定时间,下次网关设备发送报文时直接可查询arp缓存表来确定目标虚拟主机。该方式需要花费大量时间重新学习虚拟主机的mac地址,会导致发送给虚拟主机的流量发生中断,因此研发人员越发渴望降低学习目标mac地址的时间来提升报文转发的实时性。
3.在现有技术中,为了降低学习目标mac地址的时间来提升流量的实时性,通常采用两台网关设备,并采用m-lag技术实现跨设备链路聚合的方式处理报文,在一台网关设备发生故障后,另一台网关设备存有目标虚拟主机的arp缓存表(即ip地址和mac地址),可使用另一台网关设备继续转发报文。但是该方案中当两台网关设备同时发生故障进行重新启动后,就无法继续承担报文的转发,从而降低了报文转发的实时性,降低了网关设备重启后业务恢复的效率。


技术实现要素:

4.本技术实施例提供了一种报文处理方法、装置、存储介质及网关设备。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
5.第一方面,本技术实施例提供了一种报文处理方法,应用于网关设备,方法包括:
6.在所述网关设备重新启动后,接收客户端发送的用于访问目标虚机主机的第一报文;
7.根据所述第一报文的目的ip地址,生成所述目标虚拟主机的mac地址;
8.根据生成的mac地址,对所述第一报文进行重新封装,得到第二报文,并将所述第二报文作为未知单播报文在所述目的ip地址所属的vlan内进行泛洪播;
9.若在预设时长内收到所述目标虚拟主机发送的针对所述未知单播报文的第一响应报文,则将所述第一响应报文发送至所述客户端。
10.可选的,所述根据所述第一报文的目的ip地址,生成所述目标虚拟主机的mac地址,包括:
11.根据预设字符串生成mac地址的前两个字节;
12.将所述第一报文的目的ip地址进行进制转换,生成mac地址的后四个字节;
13.组合所述mac地址的前两个字节与所述mac地址的后四个字节,得到所述目标虚拟主机的mac地址。
14.可选的,通过以下方式得到第二报文:
15.将所述第一报文的源mac地址替换为所述网关设备的mac地址,将所述第一报文的目的mac地址替换为生成的mac地址,得到第二报文。
16.可选的,所述方法还包括:
17.在所述预设时长内收到所述目标虚拟主机发送的针对所述未知单播报文的第一响应报文之后,将所述目的ip地址与生成的mac地址保存至arp缓存表。
18.可选的,所述方法还包括:
19.若在所述预设时长内未收到所述目标虚拟主机发送的针对所述未知单播报文的第一响应报文,广播携带有所述目的ip地址的arp请求;
20.接收所述目标虚拟主机发送的针对所述arp请求的arp响应,从所述arp响应中获取所述目标虚拟主机的mac地址;
21.将所述目的ip地址与获取到的mac地址保存至arp缓存表;
22.根据获取到的mac地址,对所述第一报文进行重新封装,得到第三报文,并将所述第三报文转发给所述目标虚拟主机;
23.接收所述目标虚拟主机发送的针对所述第三报文的第二响应报文,并将所述第二响应报文发送至所述客户端。
24.第二方面,本技术实施例提供了一种报文处理装置,应用于网关设备,装置包括:
25.报文接收模块,用于在所述网关设备重新启动后,接收客户端发送的用于访问目标虚机主机的第一报文;
26.mac地址生成模块,用于根据所述第一报文的目的ip地址,生成所述目标虚拟主机的mac地址;
27.报文封装模块,用于根据生成的mac地址,对所述第一报文进行重新封装,得到第二报文,并将所述第二报文作为未知单播报文在所述目的ip地址所属的vlan内进行泛洪播;
28.报文发送模块,用于若在预设时长内收到所述目标虚拟主机发送的针对所述未知单播报文的第一响应报文,则将所述第一响应报文发送至所述客户端。
29.第三方面,本技术实施例提供一种计算机存储介质,计算机存储介质存储有多条指令,指令适于由处理器加载并执行上述的方法步骤。
30.第四方面,本技术实施例提供一种网关设备,可包括:处理器和存储器;其中,存储器存储有计算机程序,计算机程序适于由处理器加载并执行上述的方法步骤。
31.本技术实施例提供的技术方案可以包括以下有益效果:
32.在本技术实施例中,在网关设备重新启动后,网关设备接收客户端发送的用于访问目标虚机主机的第一报文,并根据第一报文的目的ip地址,生成目标虚拟主机的mac地址,然后,网关设备根据生成的mac地址,对第一报文进行重新封装,得到第二报文,并将第二报文作为未知单播报文在目的ip地址所属的vlan内进行泛洪,最后,若在预设时长内收到目标虚拟主机发送的针对未知单播报文的第一响应报文,则说明网关设备生成的mac地
址为真实的mac地址,此时,网关设备将第一响应报文发送至客户端。这样一来,网关设备不需要花费时间以arp请求的方式去学习目标虚拟主机的mac地址,从而提升了网关设备重启后业务恢复的效率。
33.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
34.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
35.图1是本技术实施例提供的一种报文处理方法的流程示意图;
36.图2是本技术实施例提供的一种报文处理过程的过程示意框图;
37.图3是本技术实施例提供的一种报文处理装置的结构示意图;
38.图4是本技术实施例提供的一种mac地址生成模块的结构示意图;
39.图5是本技术实施例提供的一种网关设备的结构示意图;
40.图6是本技术实施例提供的一种存储介质示意图。
具体实施方式
41.以下描述和附图充分地示出本发明的具体实施方案,以使本领域的技术人员能够实践它们。
42.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
43.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
44.在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
45.下面将结合附图1-附图2,对本技术实施例提供的报文处理方法进行详细介绍。该方法可依赖于计算机程序实现,可运行于基于冯诺依曼体系的报文处理装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。
46.请参见图1,为本技术实施例提供了一种报文处理方法的流程示意图。如图1所示,本技术实施例的方法可以包括以下步骤:
47.s101,在所述网关设备重新启动后,接收客户端发送的用于访问目标虚机主机的第一报文;
48.其中,网关(gateway)设备又称网间连接器、协议转换器,是多个网络间提供数据转换服务的计算机系统或设备。可以说网关设备就是不同网之间的连接器,就是数据要从一端到另外一端时要经过“协商”的设备。客户端可以理解为用户使用的主机。第一报文是客户端发送至网关设备的封装数据包。
49.通常,导致网关设备重新启动的原因可以是网关设备初次使用的原因,也可以是电源关闭的原因,还可以是网关设备故障的原因。
50.在一种可能的实现方式中,在网关设备重新启动后,可实时接收客户端发送的用于访问目标虚机主机的第一报文。
51.s102,根据第一报文的目的ip地址,生成目标虚拟主机的mac地址;
52.在本技术实施例中,在根据第一报文的目的ip地址,生成目标虚拟主机的mac地址时,首先根据预设字符串生成mac地址的前两个字节,然后将第一报文的目的ip地址进行进制转换,生成mac地址的后四个字节,最后组合mac地址的前两个字节与mac地址的后四个字节,得到目标虚拟主机的mac地址。
53.进一步地,在组合mac地址的前两个字节与mac地址的后四个字节时,首先获取预设mac地址模板,例如xx.xx.yy.yy.yy.yy,然后将前两个字节填充到对应的xx.xx.,最后将后四个字节填充到对应的yy.yy.yy.yy。
54.通常,预设字符串是用户预先设定的,该字符串可根据实际应用场景进行自行设备,例如可以是网关设备的参数,也可以是特定网络属性,例如标记为数据库,web服务等。
55.具体的,mac地址的前两个字节由大写字母构成,在根据预设字符串生成mac地址的前两个字节时,根据字母转换函数将设定的字符串转换为两个字节的大写字母。该方式可以通过两个字节的大写字母来区分不同的虚拟主机,进而还可以采用该标识来过滤非法的访问来节约acl资源,实现更强大的报文过滤功能。
56.s103,根据生成的mac地址,对所述第一报文进行重新封装,得到第二报文,并将所述第二报文作为未知单播报文在所述目的ip地址所属的vlan内进行泛洪播;
57.通常,在目的ip地址所属的vlan内泛洪,实际上是在目的ip地址所属的vlan对应的端口上进行泛洪。
58.在本技术实施例中,在得到第二报文时,首先识别第一报文中的目的mac地址、源mac地址,然后将第一报文的源mac地址替换为网关设备的mac地址,将第一报文的目的mac地址替换为生成的mac地址,得到第二报文,并将所述第二报文作为未知单播报文在所述目的ip地址所属的vlan内进行泛洪播。
59.s104,若在预设时长内收到所述目标虚拟主机发送的针对所述未知单播报文的第一响应报文,则将所述第一响应报文发送至所述客户端。
60.在本技术实施例中,可以设置一个定时器,定时器的时长为预设时长,在目的ip地址所属的vlan内进行泛洪播的同时启动定时器进行倒计时或者顺计时,在定时器超时后如果收到所述目标虚拟主机发送的针对所述未知单播报文的第一响应报文,说明按照本技术生成的mac地址是真实的mac地址,此时则将目的ip地址与生成的mac地址保存至arp缓存表,并将所述第一响应报文发送至所述客户端。
61.在定时器超时后如果网关设备未收到第一响应报文,说明按照本技术生成的mac地址不是真实的mac地址,则按照现有方式学习目标虚拟主机的mac地址。也即,若在预设时
长内未收到目标虚拟主机发送的针对未知单播报文的第一响应报文,广播携带有目的ip地址的arp请求,然后接收目标虚拟主机发送的针对arp请求的arp响应,从arp响应中获取目标虚拟主机的mac地址,其次将目的ip地址与获取到的mac地址保存至arp缓存表,再根据获取到的mac地址,对第一报文进行重新封装,得到第三报文,并将第三报文转发给目标虚拟主机,最后接收目标虚拟主机发送的针对第三报文的第二响应报文,并将第二响应报文发送至客户端。
62.例如图2所示,当客户端(client)访问虚拟主机(vm)时,首先客户端client根据自身ip地址(例如3.0.0.1)和网关设备lw的ip地址(ip:1.0.0.1)向网关设备lw发送用于访问目标虚机主机的第一报文,网关设备lw在收到第一报文后,通过根据第一报文的目的ip地址(ip:1.0.0.4),生成目标虚拟主机的mac address(例如为xxxx-0100-0004),其次根据生成的mac地址,对第一报文进行重新封装,得到第二报文,并将第二报文作为未知单播报文在目的ip地址所属的vlan对应的端口(例如te1/0/1)上进行泛洪,最后若在预设时长内收到目标虚拟主机vm(ip:1.0.0.4,mac:xxxx-0100-0004)发送的针对未知单播报文的第一响应报文,则将第一响应报文发送至客户端,不需要等待学习arp缓存表的时间,这样就可以大大的提高业务恢复效率。
63.在本技术实施例中,报文处理装置首先在网关设备重新启动后,接收客户端发送的用于访问目标虚机主机的第一报文,然后根据第一报文的目的ip地址,生成目标虚拟主机的mac地址,其次根据生成的mac地址,对第一报文进行重新封装,得到第二报文,并将第二报文作为未知单播报文在目的ip地址所属的vlan内进行泛洪播,最后若在预设时长内收到目标虚拟主机发送的针对未知单播报文的第一响应报文,则说明生成的mac地址为真实的mac地址,并将第一响应报文发送至客户端。由于本技术根据来自客户端的报文的ip地址自动生成待访问的虚拟主机的mac地址,使得网关设备仅仅根据ip地址就可对应出虚拟主机的mac地址,而不需要花费时间等待网关设备通过向待访问虚拟主机发送arp请求的方式去学习虚拟主机的mac地址,从而提升了网关设备重启后业务恢复的效率。
64.下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
65.请参见图3,其示出了本发明一个示例性实施例提供的报文处理装置的结构示意图。该报文处理装置可以通过软件、硬件或者两者的结合实现成为网关设备的全部或一部分。该装置1包括报文接收模块10、mac地址生成模块20、报文封装模块30、报文发送模块40。
66.报文接收模块10,用于在所述网关设备重新启动后,接收客户端发送的用于访问目标虚机主机的第一报文;
67.mac地址生成模块20,用于根据所述第一报文的目的ip地址,生成所述目标虚拟主机的mac地址;
68.报文封装模块30,用于根据生成的mac地址,对所述第一报文进行重新封装,得到第二报文,并将所述第二报文作为未知单播报文在所述目的ip地址所属的vlan内进行泛洪播;
69.报文发送模块40,用于若在预设时长内收到所述目标虚拟主机发送的针对所述未知单播报文的第一响应报文,则将所述第一响应报文发送至所述客户端。
70.可选的,例如图4所示,所述mac地址生成模块20,包括:
71.第一字节生成单元201,用于根据预设字符串生成mac地址的前两个字节;
72.第二字节生成单元202,用于将所述第一报文的目的ip地址进行进制转换,生成mac地址的后四个字节;
73.字节组合单元203,用于组合所述mac地址的前两个字节与所述mac地址的后四个字节,得到所述目标虚拟主机的mac地址。
74.可选的,所述报文封装模块30,具体用于:将所述第一报文的源mac地址替换为所述网关设备的mac地址,将所述第一报文的目的mac地址替换为生成的mac地址,得到第二报文。
75.需要说明的是,上述实施例提供的报文处理装置在执行报文处理方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的报文处理装置与报文处理方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。
76.上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
77.在本技术实施例中,报文处理装置首先在网关设备重新启动后,接收客户端发送的用于访问目标虚机主机的第一报文,然后根据第一报文的目的ip地址,生成目标虚拟主机的mac地址,其次根据生成的mac地址,对第一报文进行重新封装,得到第二报文,并将第二报文作为未知单播报文在目的ip地址所属的vlan内进行泛洪播,最后若在预设时长内收到目标虚拟主机发送的针对未知单播报文的第一响应报文,则说明生成的mac地址为真实的mac地址,并将第一响应报文发送至客户端。由于本技术根据来自客户端的报文的ip地址自动生成待访问的虚拟主机的mac地址,使得网关设备仅仅根据ip地址就可对应出虚拟主机的mac地址,而不需要花费时间等待网关设备通过向待访问虚拟主机发送arp请求的方式去学习虚拟主机的mac地址,从而提升了网关设备重启后业务恢复的效率。
78.本发明还提供一种计算机可读介质,其上存储有程序指令,该程序指令被处理器执行时实现上述各个方法实施例提供的报文处理方法。
79.本发明还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个方法实施例的报文处理方法。
80.请参见图5,为本技术实施例提供了一种网关设备的结构示意图。如图5所示,该网关设备包括通过系统总线连接的处理器、介质、存储器和网络接口。其中,该网关设备的介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种报文处理方法。该网关设备的处理器用于提供计算和控制能力,支撑整个设备的运行。该网关设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种报文处理方法。该网关设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的设备的限定,具体的设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,介质为一种可读的存储介质。该网关设备中的处理器执行计算机程序时实现以下步骤:
81.在所述网关设备重新启动后,接收客户端发送的用于访问目标虚机主机的第一报
文;
82.根据所述第一报文的目的ip地址,生成所述目标虚拟主机的mac地址;
83.根据生成的mac地址,对所述第一报文进行重新封装,得到第二报文,并将所述第二报文作为未知单播报文在所述目的ip地址所属的vlan内进行泛洪播;
84.若在预设时长内收到所述目标虚拟主机发送的针对所述未知单播报文的第一响应报文,则将所述第一响应报文发送至所述客户端。
85.在一个实施例中,处理器执行根据所述第一报文的目的ip地址,生成所述目标虚拟主机的mac地址时,具体执行以下操作:
86.根据预设字符串生成mac地址的前两个字节;
87.将所述第一报文的目的ip地址进行进制转换,生成mac地址的后四个字节;
88.组合所述mac地址的前两个字节与所述mac地址的后四个字节,得到所述目标虚拟主机的mac地址。
89.在一个实施例中,处理器通过以下方式得到第二报文时,具体执行以下操作:
90.将所述第一报文的源mac地址替换为所述网关设备的mac地址,将所述第一报文的目的mac地址替换为生成的mac地址,得到第二报文。
91.在一个实施例中,处理器还执行以下操作:
92.在所述预设时长内收到所述目标虚拟主机发送的针对所述未知单播报文的第一响应报文之后,将所述目的ip地址与生成的mac地址保存至arp缓存表。
93.在一个实施例中,处理器还执行以下操作:
94.若在所述预设时长内未收到所述目标虚拟主机发送的针对所述未知单播报文的第一响应报文,广播携带有所述目的ip地址的arp请求;
95.接收所述目标虚拟主机发送的针对所述arp请求的arp响应,从所述arp响应中获取所述目标虚拟主机的mac地址;
96.将所述目的ip地址与获取到的mac地址保存至arp缓存表;
97.根据获取到的mac地址,对所述第一报文进行重新封装,得到第三报文,并将所述第三报文转发给所述目标虚拟主机;
98.接收所述目标虚拟主机发送的针对所述第三报文的第二响应报文,并将所述第二响应报文发送至所述客户端。
99.在本技术实施例中,报文处理装置首先在网关设备重新启动后,接收客户端发送的用于访问目标虚机主机的第一报文,然后根据第一报文的目的ip地址,生成目标虚拟主机的mac地址,其次根据生成的mac地址,对第一报文进行重新封装,得到第二报文,并将第二报文作为未知单播报文在目的ip地址所属的vlan内进行泛洪播,最后若在预设时长内收到目标虚拟主机发送的针对未知单播报文的第一响应报文,则说明生成的mac地址为真实的mac地址,并将第一响应报文发送至客户端。由于本技术根据来自客户端的报文的ip地址自动生成待访问的虚拟主机的mac地址,使得网关设备仅仅根据ip地址就可对应出虚拟主机的mac地址,而不需要花费时间等待网关设备通过向待访问虚拟主机发送arp请求的方式去学习虚拟主机的mac地址,从而提升了网关设备重启后业务恢复的效率。
100.本技术实施方式还提供一种与前述实施方式所提供的报文处理方法对应的计算机可读存储介质,请参考图6,其示出的计算机可读存储介质为光盘30,其上存储有计算机
程序(即程序产品),计算机程序在被处理器运行时,会执行前述任意实施方式所提供的报文处理方法。
101.需要说明的是,计算机可读存储介质的例子还可以包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
102.本技术的上述实施例提供的计算机可读存储介质与本技术实施例提供的报文处理方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
103.以上,仅为本技术较佳的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
104.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,服务的访问控制的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体或随机存储记忆体等。
105.以上所揭露的仅为本技术较佳实施例而已,当然不能以此来限定本技术之权利范围,因此依本技术权利要求所作的等同变化,仍属本技术所涵盖的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1