CN116032880A - 一种会话同步的系统、方法、电子设备及存储介质 - Google Patents

一种会话同步的系统、方法、电子设备及存储介质 Download PDF

Info

Publication number
CN116032880A
CN116032880A CN202211632769.6A CN202211632769A CN116032880A CN 116032880 A CN116032880 A CN 116032880A CN 202211632769 A CN202211632769 A CN 202211632769A CN 116032880 A CN116032880 A CN 116032880A
Authority
CN
China
Prior art keywords
core
synchronous
message
synchronization
session
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211632769.6A
Other languages
English (en)
Inventor
赵鹏程
张晚生
周清志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN202211632769.6A priority Critical patent/CN116032880A/zh
Publication of CN116032880A publication Critical patent/CN116032880A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提供了一种会话同步的系统、方法、电子设备及存储介质,涉及人工智能技术领域,具体涉及云计算和云网络技术领域。具体实现方案为:通过在第一NAT网关中设置单独的同步核进行同步报文的构建以及转发,并在第二NAT网关中使用同步核接收第一NAT网关发送的同步报文,无需使用转发核进行会话同步,降低转发核数据处理量,提高转发核转发性能,提高NAT网关转发性能。

Description

一种会话同步的系统、方法、电子设备及存储介质
技术领域
本公开涉及人工智能技术领域,具体涉及云计算和云网络技术领域。
背景技术
在网络数据传输中,通常会使用NAT(Network Address Translation,网络地址转换)网关进行私网设备与公网设备之间的通信。具体的,NAT网关通过将私网设备的IP地址、端口地址映射为公中的IP地址以及端口地址,从而实现私网设备与公网设备之间的通信。
发明内容
本公开提供了一种会话同步的系统、方法、电子设备以及存储介质,以提高NAT网关的转发性能。
根据本公开的一方面,提供了一种会话同步的系统,包括第一NAT网关以及第二NAT网关;所述第一NAT网关以及第二NAT网关中均包含同步核以及转发核;
所述第一NAT网关,用于使用转发核基于转发至目标网络的第一目标业务报文,向同步核发送会话同步请求;使用所述同步核基于所述会话同步请求生成同步报文;所述同步报文中包括所述第一目标业务报文的会话信息;使用所述同步核将所述同步报文发送至所述第二NAT网关;
所述第二NAT网关,用于使用同步核接收所述同步报文;并将所述同步报文中的会话信息存储至转发核。
根据本公开的另一方面,提供了一种会话同步的方法,应用于第一NAT网关,所述第一NAT网关中包括同步核以及转发核,所述方法包括:
使用转发核基于转发至目标网络的第一目标业务报文,向同步核发送会话同步请求;
使用所述同步核基于所述会话同步请求生成同步报文;所述同步报文中包括所述第一目标业务报文的会话信息;
使用所述同步核将所述同步报文发送至所述第二NAT网关。
根据本公开的另一方面,提供了一种会话同步的方法,应用于第二NAT网关,所述第二NAT网关中包括转发核以及同步核,所述方法包括:
使用同步核接收所述同步报文,其中,所述同步报文为第一NAT网关的同步核基于所述第一NAT网关的转发核转发至目标网络的第一目标业务报文生成并发送至第二NAT网关的;
将所述同步报文中的会话信息存储至转发核。
根据本公开的另一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述任一所述的会话同步的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述任一所述的会话同步的方法。
根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述任一所述的会话同步的方法。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本公开的限定。其中:
图1是根据本公开提供的会话同步的系统的第一实施例的示意图;
图2是本公开提供的会话同步系统中的网关灾备示意图;
图3是本公开中NAT网关对业务报文以及同步报文进行分核处理的示意图;
图4是本公开中NAT网关的一种实例的结构示意图;
图5是根据本公开提供的会话同步的系统的第二实施例的示意图;
图6是根据本公开提供的会话同步的系统的第三实施例的示意图;
图7是根据本公开提供的会话同步的方法的第一实施例的示意图;
图8是根据本公开提供的会话同步的方法的第二实施例的示意图;
图9是用来实现本公开实施例的会话同步的方法的电子设备的框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
目前,集群化集中式NAT网关在网络数据传输中有着广泛应用。集中式NAT网关指的是在一台电子设备上编写多个程序,每个程序可以虚化出多个NAT网关,来为租用NAT网关的不同租户VPC(Virtual Private cloud,虚拟私有云)中的云服务器提供网络地址转化功能。多个集中式NAT网关构成NAT网关集群。
NAT网关进行网络地址转化时,会创建会话来保存通信相关信息,上述会话中通常包括通信的五元组信息,即包括本次通信的源IP地址、源端口、目的IP地址、目的端口和传输层协议。
私网,如上述VPC发送的业务报文通常会由某一NAT网关进行处理,上述会话也会由该NAT网关进行创建以及存储。但是,由于网关可能出现异常情况,如升级、故障、宕机等导致无法正常处理业务报文。因此,现在大多数集群化集中式NAT网关都需要使用会话同步技术来满足因网关节点升级,故障,宕机等,导致业务报文切流到集群中其他网关节点时能被正常处理。
会话同步是指将NAT网关将创建的会话同步至集群中的其他NAT网关中。目前,大多数NAT网关是基于DPDK(Data Plane Development Kit,数据平面开发套件)进行创建的。DPDK是一种数据层面的开源转发工具,其创造的环境抽象层可以将电子设备中的程序逻辑抽象出来,形成单个的功能模块。具体的,环境抽象层提供将执行单元分配给特定核并创建执行实例的机制,上述核指的是CPU中的处理器核心。例如,可以将NAT网关中的转发程序抽象出来,分配给一处理器核心形成转发核;将控制程序抽象出来,分配给处理器核心形成控制核等等。
目前大多数网关在DPDK的RTC模式(同步模式)下采用转发核存储会话,并通过损耗一定转发核的性能,在会话完成创建时构建报文,填充业务报文的五元组信息以生成同步报文,并发送到集群中其他网关节点。由于转发核在执行转发任务的同时还需要进行会话同步,使得转发核需要处理大量数据,使得NAT网关转发性能较低。
为了提高NAT网关的转发性能,本公开提供了一种会话同步的系统、方法、电子设备及存储介质。下面首先对本公开提供的会话同步的系统进行示例性说明。
如图1所示,图1为根据本公开提供的会话同步的系统的第一实施例的示意图,该系统可以包括:第一NAT网关101以及第二NAT网关102;所述第一NAT网关101以及第二NAT网关102中均包含同步核以及转发核;
所述第一NAT网关101,用于使用转发核基于转发至目标网络的第一目标业务报文,向同步核发送会话同步请求;使用所述同步核基于所述会话同步请求生成同步报文;所述同步报文中包括所述第一目标业务报文的会话信息;使用所述同步核将所述同步报文发送至所述第二NAT网关;
所述第二NAT网关102,用于使用同步核接收所述同步报文;并将所述同步报文中的会话信息存储至转发核。
应用本公开实施例,通过在第一NAT网关中设置单独的同步核进行同步报文的构建以及转发,并在第二NAT网关中使用同步核接收第一NAT网关发送的同步报文,会话同步过程中,转发核仅需通过核间通信方式向同步核发送会话同步请求即可,无需使用转发核进行同步报文的构建以及发送,降低会话同步过程对转发核的占用时间,同时降低转发核数据处理量,提高转发核转发性能,提高NAT网关转发性能。
上述会话同步的系统中包括多个NAT网关,各NAT网关均为集中式网关。上述NAT网关可以是部署在物理机上的网关也可以是部署在裸金属服务器上的网关。裸金属服务器是基于虚拟化技术而打造的新型计算类服务器产品,保留了普通云服务器的弹性体验和物理机的性能与特性。多个物理机裸金属部署的NAT网关构建成一个网关集群。
上述各NAT网关中存储有全量VPC的NAT网关实例的配置,即每个NAT网关都可以接收任一私网设备的业务报文并对其进行地址转换。
如上所述,VPC中的设备在与公网中的设备进行通信时,通常会将业务报文发送至某一特定的NAT网关,由该网关进行地址转换以及同步报文的构建。为了以示区分,本公开中将该特定NAT网关称为第一NAT网关,将接收该第一NAT网关发送的同步报文的NAT网关称作第二NAT网关。
上述第一NAT网关以及第二NAT网关均为基于DPDK建立的网关。上述转发核即由DPDK的环境抽象层对NAT中的转发程序进行核分配形成的。上述同步核即对NAT网关中构建同步报文的程序进行核分配,得到的单独的核。
上述转发核可以在收到来自私网设备的业务报文后,对其进行地址转换后发送。同时,针对该业务报文建立会话,保存该业务报文的五元组信息。同步核可以基于上述五元组信息构建同步报文,并发送至集群中的各个第二NAT网关中。上述私网设备如VPC中的虚拟机等。
作为一种具体实施方式,转发核可以在判断需要进行会话同步时,如在判断业务报文为长连接业务的业务报文时,向同步核发送会话同步请求。该会话同步请求中包括上述业务报文的五元组信息。同步核在接收到该会话同步请求后即可构建报文并将上述五元组信息填充至报文中,得到同步报文,发送至各第二NAT网关。同一NAT网关中的同步核与转发核之间的通信属于核间通信,速度较快,对转发核的性能影响较小,与相关技术中使用转发核进行会话同步相比,可以减少转发核的占用时间,提高转发核转发性能,提高NAT网关转发性能。
在一种可能的实施例中,还可以在各NAT网关中设置NUMA(Non Uniform MemoryAccess,非统一内存访问)。NUMA是一种用于多处理器的电脑内存体设置。在NUMA下,处理器访问同一NUMA中的存储器的速度比非同一NUMA中的存储器快一些。一个NAT网关中可以有多个NUMA,每个NUMA中都可以包含转发核以及同步核。这样,可以进一步提高同一NUMA中转发核与同步核的核间通信速度。
在本公开的一种实施例中,上述系统中还可以包括导流网关,用于对原始业务报文添加外层源端口号并进行封装,得到第一目标业务报文;将所述第一目标业务报文发送至所述第一NAT网关。
计算机网络传输结构为五层结构,包括应用层、传输层、网络层、物理层以及数据链路层。其中,网络层负责从源通过路由到目的地的过程。上述NAT网关即为网络层路由设备。目前,在网络层通常使用Overlay网络。Overlay Network(覆盖网络)是一种覆盖在物理网络(Underlay)上的虚拟化网络,Overlay网络中的节点可以看作是通过虚拟或逻辑链路而连接起来的,其可在对基础网络不进行大规模修改的条件下,实现应用在网络上的承载。Overlay是一种封装在IP报文之上的新的数据格式,因此,这种数据可以通过路由的方式在网络中分发,而路由网络本身并无特殊网络结构限制,具备良性大规模扩展能力。
因此,上述导流网关具体为VXLAN((Virtual eXtensible Local Area Network,虚拟扩展局域网))网关。VXLAN是Overlay网络中的一种重要技术。VXLAN是一种网络虚拟化技术,通过引入一个UDP(User Datagram Protocol,用户数据报协议)格式的外层隧道作为数据链路层,将虚拟机发出的数据包封装在UDP进行传输,到达目的地后由隧道终结点解封装并将数据发送给目标虚拟机。
上游导流网关会将业务报文封装成Overlay报文格式。Overlay报文中包括外层源端口号,是基于业务报文五元组计算得到的。
上游导流网关对原始业务报文进行封装,得到第一目标业务报文后,即可将第一目标业务报文转发至第一NAT网关,由第一NAT网关中的转发核将第一目标业务报文转发至目标网络。上述目标网络可以是公网,也可以是私网,具体可以根据实际需要进行设置。
第一NAT网关中可以包含一个转发核,也可以包含多个转发核。因此,在一种可能的实施例中,第一NAT网关接收到上述目标业务报文后,可以基于上述目标业务报文的外层源端口号,将上述目标业务报文分发至相应的转发核中进行转发。
作为一种具体实施方式,第一NAT网关,可以基于所述第一NAT网关中预设的外层源端口号与转发核的对应关系,利用与所述第一目标业务报文的外层源端口号对应的转发核转发所述目标报文。
上述网关集群中的各NAT网关中均可以包含多个转发核。各NAT网关中均可预先存储外层源端口号与转发核的对应关系。当第一NAT网关接收到导流网关重新封装并下发的第一目标业务报文时,可以基于第一目标业务报文的外层源端口号,将上述第一目标业务报文导流至与上述第一目标业务报文的外层源端口号对应的转发核中,应用该转发核转发报文。
相应的,作为一种具体实施方式,上述会话同步请求中还可以包括上述第一目标业务报文的外层源端口号,上述同步核可以通过以下步骤生成同步报文:
提取所述会话同步请求中的五元组信息,得到会话信息;
按照所述会话信息以及所述外层源端口号,生成同步报文。
上述会话信息即同步会话。示例性的,同步核在接收到上述会话同步请求后,即可构建报文,并将上述会话信息,即目标业务报文包含的五元组信息以及外层源端口号填充进报文,得到同步报文。
相关技术中,通常由转发核进行同步会话的创建以及后续的监控,如长连接业务中会话标识的虚拟机的各种操作等等,需要占用大量内存,而应用本公开实施例,由同步核基于报文五元组信息进行会话同步,同步核保存的同步会话中只有完整会话中的五元组信息和少量控制信息,一份同步会话的大小约为完整会话的1/2,可以大大减少网关会话同步所占用的内存空间,节省网关的内存空间消耗。
在一种可能的实施例中,同步核在构建同步报文时,可以将同一外层源端口号对应的会话均封装在报文中。相关技术中,当一个同步报文中包含多个会话信息时,对同步报文的处理会占用一定转发核的时间片,而应用本公开实施例,可以极大程度上减少转发核工作量。
上述第二NAT网关在通过同步核接收到上述同步报文后,可以基于上述同步报文得到同步会话,并获取同步报文的外层源端口号。示例性的,第二NAT网关可以从同步报文中获取上述目标业务报文的五元组信息,生成同步会话。
第二NAT网关的同步核在得到上述同步会话后,可以根据同步报文的外层源端口号,基于所述第二NAT网关中预设的外层源端口号与转发核的对应关系,确定所述外层源端口号对应的目标转发核;并将所述会话信息发送至所述目标转发核进行存储。
作为一种具体实施方式,第二NAT网关的同步核可以基于外层源端口号将会话存放的地址核间通信到目标转发核上。上述地址可以转发核中的地址也可以是同步核中的地址。在一种可能的实施例中,上述转发核中可以预设同步会话缓存空间,同步核可以将同步会话发送至该缓存空间进行存储。这样,同步核以及转发核均已知会话信息的存储位置,由此目标转发核和同步核都能访问到同步会话。
在一种实施例中,上述转发核还可以向同步核发送会话更新、删除请求,同步核在接收到上述会话更新、删除请求时,可以将相应的更新、删除信息同步至各第二NAT网关的同步核。
如上所述,同步会话在转发核以及同步核上均可访问到,但是多线程共用同步会话需要地址安全,因此同步核可以在同步会话创建、更新以及删除时将状态信息以核间通信的形式发送到转发核。同时,同步核可以删除对上述同步会话内存的访问指针,以此实现安全的地址管理。且让转发核和同步核共享同步会话所存储的内存空间,可以进一步节省同步会话所占用的内存空间。
当上述第一NAT网关由于出现异常无法继续处理报文时,导流网关会将上述目标网络返回的针对上述第一目标业务报文的报文转发至网关集群中的其他网关进行继续处理。下文中称目标网络返回的针对所述第一目标业务报文的业务报文为第二目标业务报文。上述第二目标业务报文同样是导流网关进行封装后得到的,与上述目标业务报文的外层源端口号相同。
因此,在一种可能的实施例中,上述第二NAT网关还可以用于接收第二目标业务报文;
基于所述第二NAT网关中预设的外层源端口号与转发核的对应关系,将所述第二目标业务报文发送至与所述第二目标业务报文的外层源端口号对应的目标转发核中。
第二NAT网关将第二目标业务报文分发至第二目标业务报文对应的转发核进行处理的过程与第一NAT网关完全一致。具体的,若上述导流网关将第二目标业务报文分发至第二NAT网关,第二NAT网关可以基于第二NAT网关中预设的外层源端口号与转发核的对应关系,将第二目标业务报文发送至第二目标业务报文对应的目标转发核进行处理。
由于上述同步报文是基于目标业务报文的五元组信息以及目标业务报文的外层源端口号得到的,也就是说,目标业务报文的同步报文与目标业务报文的外层源端口号相同,而第二目标业务报文的外层源端口号也与目标业务报文的外层源端口号相同。因此,第二NAT网关基于其内部预设的源端口与转发核的对应关系,会将第二目标业务报文以及同步会话发送至相同的目标转发核。因此,当第一NAT网关由于异常无法对第二目标业务报文进行处理时,第二NAT网关可以利用目标转发核,基于目标转发核中存储的目标业务报文的同步会话,对第二目标业务报文进行处理。可见,应用本公开实施例,多个网关节点可以相互灾备,使得一台网关节点下线时,其上的长连接业务可以在其他机器上恢复,保证长连接业务的稳定性。
另外,由于对业务报文以及同步会话均是基于外层源端口号进行导流,即使第一NAT网关与第二NAT网关配置不同,如转发核数量不同,也可以基于外层源端口号的导流规则使得业务报文在确定的转发核上被处理,同时转发核也可以找到相应的同步会话,可以成功处理针对目标业务报文返回的报文,实现了不同配置的网关的会话同步,可满足物理机变配下长连接业务依然自动恢复的场景。
作为一种具体实施方式,上述各NAT网关中还可以包括收发网卡。上述收发网卡中均针对NAT网关中的转发核以及同步核设置收发队列,以将业务报文发送至转发核、接收转发核处理后的业务报文并下发以及接收来自其他NAT网关的同步报文并发送NAT网关同步核创建的同步报文。
作为一种具体实施例,如图2所示,对于会话同步系统中的两个NAT网关NGW1以及NGW2,其中,NGW1和NGW2中均包含NUMA0、NUMA1以及两个NUMA对应的网卡1、网卡2。NGW1的NUMA0以及NUMA1中均包含转发核0、转发核1以及同步核0。两个网卡中均针对上述转发核以及同步核创建收发队列。网卡1与网卡2配置相同,以网卡1为例,队列1、2用于收发同步报文,队列3-6分别用于收发NUMA0中的两个转发核以及NUMA1中的两个转发核的业务报文。NGW2中,网卡1、2的队列1-4用于收发NUMA0以及NUMA1中的四个同步核的同步报文,队列5-8用于收发NUMA0以及NUMA1中的四个转发核的同步报文。
当NGW1中的网卡2由于故障无法正常工作时,业务报文(图2中的流量)可能由NGW1的网卡1的队列3或NGW2的网卡1或2的队列4接收,上述接收到业务报文的网卡队列会将业务报文发送至队列对应的转发核中处理,实现了网关节点网卡的相互灾备。
由上可见,上述各NAT网关中可以包括一个同步核,也可以包括多个同步核。具体的,在单个同步核性能不够,不能满足海量会话快速同步时,可以配置多个同步核。作为一种实施方式,上述各NAT网关中还可以存储外层源端口号与同步核的对应关系。
作为一种实施方式,上述第二NAT网关具体可以基于所述第二NAT网关中预设的外层源端口号与同步核的对应关系,确定与所述同步报文的外层源端口号对应的同步核;
使用与所述同步报文的外层源端口号对应的同步核获取所述同步报文的外层源端口号。
示例性的,如图3所示,NAT网关NGW1中存在NUMA0以及NUMA1,NUMA0以及NUMA1中均包含两个转发核以及一个同步核。在网关1中预先设置外层源端口号为0-511的业务报文由NUMA0中的转发核0处理,外层源端口号为512-1023的业务报文由NUMA0中的转发核1处理,外层源端口号为1024-1535的业务报文由NUMA1中的转发核0处理,外层源端口号为1536-2047的业务报文由NUMA1中的转发核1处理。同时,设置外层源端口号为0-1023的同步报文由NUMA0中的同步核0处理,外层源端口号为1024-2047的同步报文由NUMA1中的同步核0处理。因此,如图3所示,外层源端口号为0-5的业务报文被分发至NUMA0中的转发核0处理,外层源端口号为1023、1024的业务报文被分发至NUMA0中的转发核1处理,外层源端口号为2046、2047的业务报文被分发至NUMA1的转发核1中处理。外层源端口号为0-5的同步报文被分发至NUMA0的同步核0进行处理,外层源端口号为2046、2047的业务报文被分发至NUMA1的同步核0中处理。具体的,若上述NGW1为第二NAT网关,NUMA0的同步核0基于外层源端口号为0-5的同步报文生成相应的同步对话发送至NUMA0的转发核0中存储,NUMA1的同步核0基于外层源端口号为2046、2047的同步报文生成相应的同步会话发送至NUMA0中的转发核1存储。
如上所述,NAT网关中可能包含多个转发核以及同步核,在一种具体实施方式中,上述第二NAT网关还可以用于:
基于所述第二NAT网关中预设的转发核与同步核的对应关系,判断所述同步核是否与所述目标转发核对应;
若所述同步核不与所述目标转发核对应,则将所述会话信息发送至与所述目标转发核对应的目标同步核中;
通过所述目标同步核将所述同步会话发送至所述目标转发核进行存储。
上述各同步核中可以存储其对应的转发核的地址。当同步核接收到同步报文时,可以基于同步报文的外层源端口号查询该外层源端口号对应的目标转发核的地址,若查找到,则可直接从同步报文中获取同步会话,发送至该转发核中存储。
但若由于出现异常情况,如对应关系配置错误等,导致上述同步报文被发送至错误的同步核中时,该同步核无法获取同步报文的外层源端口号对应的目标转发核的地址。因此,该同步核可以基于第二NAT网关中预设的同步核与转发核的对应关系,将从上述同步报文中提取的同步会话发送至于同步报文对应的转发核对应的同步核中,由正确的同步核将同步会话发送至对应的转发核中存储。这样,可以增加第二目标业务报文被成功处理的成功率。
如图4所示,图4示出了本公开的一种实例,具体的:NAT网关NGW中,包含NUMAX、NUMAY以及控制核。上述控制核用于发送预热控制信息至上述两同步核中,以使同步核调整至合适的工作温度。NUMAX以及NUMAY中均包含两个转发核以及一个同步核。转发核在需要进行会话同步时,会向同NUMA中的同步核发送会话同步请求。
当网卡将同步报文发送至NUMAY的同步核中时,NUMAY的同步核可以获取同步报文中的外层源端口号,并基于该外层源端口号判断该外层源端口号对应的目标转发核是否是NUMAY的同步核对应的转发核,若不是,则需要将同步会话同步至正确的同步核中。本例中,正确的同步核为NUMAX中的同步核0。NUMAX中的同步核0在接收到上述同步会话后,会将上述同步会话发送至会话对应的转发核中的缓存区进行存储,以使当转发核接收到同步报文对应的业务报文时,可以基于存储的同步会话正常处理上述业务报文。
在本公开的一种实施例中,上述同步核可以对会话的进行定期同步。所述第一NAT网关还可以用于,通过所述同步核向所述第二NAT网关发送会话保活指令。
若第二NAT网关预设时长内未接收到针对所述会话信息的保活指令,则通过所述同步核删除所述会话信息。
作为一种具体实施方式,可以在各第二NAT网关中由同步核针对每个同步会话单独启动定时器,如果在预设时长内没有收到来自其他节点的会话保活指令或删除报文,则同步会话会自动过期老化删除。
相关技术中,定时任务由转发核完成,上亿的会话会给转发核带来巨大的性能损耗,而应用本公开实施例,由同步核完成会话的同步,极大减少了集中式NAT网关转发核的性能损耗。
如图5所示,图5为本公开提供的会话同步系统的一种架构示意图:NAT网关中包括NUMA0以及NUMA1,下面以NUMA0为例对本公开提供的会话同步系统进行说明:
NUMA0中存在两个同步核SyncerCPU6-7以及四个转发核workerCPU7-10,其中SyncerCPU 6用于处理workerCPU7、8的同步会话,SyncerCPU 7用于处理workerCPU9、10的同步会话。NUMA0对应的网卡中针对对应的各转发核以及同步核均设置单独的收发队列。具体的,队列0-3分别对应workerCPU7-10,用于相应转发核处理的业务报文的收发,同步队列0以及同步队列1分别用于SyncerCPU 6以及SyncerCPU 7的同步报文的收发。rte_flow为预设的配置规则,即报文的导流规则,包括报文的外层源端口与转发核的对应关系。该网关中还包括控制核、监控核、虚拟网络接口核以及地址解析核。
实际应用中,同步报文以及业务报文经rte_flow导流至相应的网卡接收队列,并由网卡接收队列将业务报文或同步报文发送至对应的转发核或同步核中。以workerCPU7接收业务报文为例,网卡队列0将业务报文转发至workerCPU7,workerCPU7在接收业务报文后,将业务报文转发至网卡队列0中进行下发,同时,workerCPU7通过核间通信的方式向SyncerCPU6发送创建/删除会话的请求,该请求中包含上述业务报文的五元组信息。SyncerCPU6基于上述五元组信息封装同步报文,并将五元组信息存储至其内部的同步会话缓冲区。之后,SyncerCPU6基于定时器,定时将上述同步报文发送至NUMA1的同步核中。以SyncerCPU6接收同步会话为例,同步报文经rte_flow分流至网卡同步队列0,网卡同步队列0将该同步报文发送至SyncerCPU6中,SyncerCPU6提取同步会话,并通过核间通信的方式,基于同步报文的外层源端口号信息,将同步会话发送至workerCPU7的同步会话缓冲区进行存储。当由于其他网关节点故障导致业务报文被分流至NUMA0中的workerCPU7时,workerCPU7即可根据保存的同步会话处理业务报文。若同步核确定当前同步报文的外层源端口号对应于另一同步核对应的转发核,可以将该同步报文核间通信至另一同步核中。
在一种可能的实施例中,所述第二NAT网关有多个,所述系统还包括组播网关,
所述将所述同步报文发送至第二NAT网关,包括:
将所述同步报文发送至所述组播网关,以使得所述组播网关将所述同步报文组播至各所述第二NAT网关。
组播技术指的是单个发送者对应多个接收者的一种网络通信。组播技术中,通过向多个接收方传送单信息流方式,可以减少具有多个接收方同时收听或查看相同资源情况下的网络通信流量。具体的,可以预先在组播网关中配置组播成员,即需要接受上述同步报文的第二NAT网关信息。将上述同步报文发送至组播网关后,组播网关可以对同步报文进行复制,并将复制得到的组播报文发送至上述各第二NAT网关中。
相关技术中,将同步报文发送至多个第二NAT网关通常由网关节点自己完成,会损耗网关的发送性能以及占用网关之间的链路带宽。应用本公开实施例,通过使用在组播网关发送同步报文,第一NAT网关仅需发送一次同步报文,可减少网关的发送性能损耗以及减少网关上的链路负载。
如图6所示,图6为本公开实施例提供的一种具体实例的示意图,其中,上游网关指的是将业务报文发送至NAT网关的网关。
具体的数据传输过程为:上游网关对从交换机收到的虚机发送的业务报文封装外层报文填充外层源端口号sport。并基于业务报文的外层源端口号做导流,发送至确定的NAT网关1中。NAT网关1创建同步会话,并将业务报文发送至上游网关,由上游网关将业务报文转发至公网。同时NAT网关1构建同步报文发送到组播网关,组播网关将同步报文同步到其他NAT网关。上游网关接收公网回包,上述公网回包即公网针对上述业务报文返回的业务报文。上游网关选择NAT网关1处理该返回的业务报文,并由NAT网关1将业务报文下发导流至VPC路由器,由VPC路由器将返回的业务报文导流回虚拟机。
应用本公开实施例,将同步报文的接受处理完全交给同步核,减少了转发核的工作量。且同步核中只保存会话中的报文元组信息,以及少量控制信息,整体大小不到完整会话结构的1/2,节省了大量同步会话所需要的内存;且无需集群中节点同配,可满足物理机变配下长连接业务依然自动恢复的场景。另外,基于组播网关转发组播报文,减少网关节点之间相互同步的同步报文流量。
根据本公开实施例,本公开还提供了一种方法,如图7所示,上述方法应用于第一NAT网关,所述第一NAT网关中包括同步核以及转发核,所述方法包括:
步骤S701、使用转发核基于转发至目标网络的第一目标业务报文,向同步核发送会话同步请求;
步骤S702、使用所述同步核基于所述会话同步请求生成同步报文;所述同步报文中包括所述第一目标业务报文的会话信息;
步骤S703、使用所述同步核将所述同步报文发送至所述第二NAT网关。
在一种可能的实施例中,所述第一目标业务报文由导流网关对原始业务报文添加外层源端口号并进行封装得到;
所述会话同步请求中包含所述第一目标业务报文的五元组信息以及所述第一目标业务报文的外层源端口号;
所述基于所述会话同步请求生成同步报文,包括:
提取所述会话同步请求中的五元组信息,得到会话信息;
按照所述会话信息以及所述外层源端口号,生成同步报文。
在一种可能的实施例中,所述将所述同步报文发送至所述第二NAT网关,包括:
将所述同步报文发送至所述组播网关,以使得所述组播网关将所述同步报文组播至各所述第二NAT网关。
根据本公开实施例,本公开还提供了一种会话同步的方法,应用于第二NAT网关,所述第二NAT网关中包括转发核以及同步核,如图8所示,所述方法包括:
步骤S801、使用同步核接收同步报文,其中,所述同步报文为第一NAT网关的同步核基于所述第一NAT网关的转发核转发至目标网络的第一目标业务报文生成并发送至第二NAT网关的;
步骤S802、将所述同步报文中的会话信息存储至转发核。
在一种可能的实施例中,所述同步报文中还包括外层源端口号;所述方法还包括:
使用所述同步核获取所述同步报文的外层源端口号;
从所述同步报文中获取会话信息;
基于所述第二NAT网关中预设的外层源端口号与转发核的对应关系,确定所述外层源端口号对应的目标转发核;
将所述会话信息发送至所述目标转发核进行存储;
接收第二目标业务报文,所述第二目标业务报文为从所述目标网络返回的针对所述第一目标业务报文的业务报文;包含与所述第一目标业务报文相同的外层源端口号;
基于所述第二NAT网关中预设的外层源端口号与转发核的对应关系,将所述第二目标业务报文发送至与所述第二目标业务报文的外层源端口号对应的目标转发核中。
在一种可能的实施例中,上述方法还可以包括:
基于所述第二NAT网关中预设的转发核与同步核的对应关系,判断所述同步核是否与所述目标转发核对应;
若所述同步核不与所述目标转发核对应,则将所述会话信息发送至与所述目标转发核对应的目标同步核中;
通过所述目标同步核将所述同步会话发送至所述目标转发核进行存储。
在一种可能的实施例中,上述方法还包括:预设时长内未接收到针对所述会话信息的保活指令,则通过所述同步核删除所述会话信息。
上述会话同步方法的具体实施方式可以参考系统实施例的叙述,此处不进行赘述。
本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
图9示出了可以用来实施本公开的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如会话同步的方法。例如,在一些实施例中,会话同步的方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM 903并由计算单元901执行时,可以执行上文描述的会话同步的方法的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行会话同步的方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。

Claims (17)

1.一种会话同步的系统,包括第一NAT网关以及第二NAT网关;所述第一NAT网关以及第二NAT网关中均包含同步核以及转发核;
所述第一NAT网关,用于使用转发核基于转发至目标网络的第一目标业务报文,向同步核发送会话同步请求;使用所述同步核基于所述会话同步请求生成同步报文;所述同步报文中包括所述第一目标业务报文的会话信息;使用所述同步核将所述同步报文发送至所述第二NAT网关;
所述第二NAT网关,用于使用同步核接收所述同步报文;并将所述同步报文中的会话信息存储至转发核。
2.根据权利要求1所述的系统,还包括导流网关;
所述导流网关,用于对原始业务报文添加外层源端口号并进行封装,得到第一目标业务报文;将所述第一目标业务报文发送至所述第一NAT网关;
所述会话同步请求中包含所述第一目标业务报文的五元组信息以及所述第一目标业务报文的外层源端口号;
所述基于所述会话同步请求生成同步报文,包括:
提取所述会话同步请求中的五元组信息,得到会话信息;
按照所述会话信息以及所述外层源端口号,生成同步报文。
3.根据权利要求2所述的系统,其中,所述将所述同步报文中的会话信息存储至转发核,包括:
使用所述同步核获取所述同步报文的外层源端口号;
从所述同步报文中获取会话信息;
基于所述第二NAT网关中预设的外层源端口号与转发核的对应关系,确定所述外层源端口号对应的目标转发核;
将所述会话信息发送至所述目标转发核进行存储。
4.根据权利要求3所述的系统,其中,所述第二NAT网关用于,
接收第二目标业务报文,所述第二目标业务报文为从所述目标网络返回的针对所述第一目标业务报文的业务报文;包含与所述第一目标业务报文相同的外层源端口号;
基于所述第二NAT网关中预设的外层源端口号与转发核的对应关系,将所述第二目标业务报文发送至与所述第二目标业务报文的外层源端口号对应的目标转发核中。
5.根据权利要求3所述的系统,所述第二NAT网关还用于,
基于所述第二NAT网关中预设的转发核与同步核的对应关系,判断所述同步核是否与所述目标转发核对应;
若所述同步核不与所述目标转发核对应,则将所述会话信息发送至与所述目标转发核对应的目标同步核中;
通过所述目标同步核将所述同步会话发送至所述目标转发核进行存储。
6.根据权利要求3所述的系统,其中,所述第二NAT网关,还用于预设时长内未接收到针对所述会话信息的保活指令,则通过所述同步核删除所述会话信息。
7.根据权利要求1所述的系统,还包括组播网关;
所述将所述同步报文发送至所述第二NAT网关,包括:
将所述同步报文发送至所述组播网关,以使得所述组播网关将所述同步报文组播至各所述第二NAT网关。
8.一种会话同步的方法,应用于第一NAT网关,所述第一NAT网关中包括同步核以及转发核,所述方法包括:
使用转发核基于转发至目标网络的第一目标业务报文,向同步核发送会话同步请求;
使用所述同步核基于所述会话同步请求生成同步报文;所述同步报文中包括所述第一目标业务报文的会话信息;
使用所述同步核将所述同步报文发送至所述第二NAT网关。
9.根据权利要求8所述的方法,其中,所述第一目标业务报文由导流网关对原始业务报文添加外层源端口号并进行封装得到;
所述会话同步请求中包含所述第一目标业务报文的五元组信息以及所述第一目标业务报文的外层源端口号;
所述基于所述会话同步请求生成同步报文,包括:
提取所述会话同步请求中的五元组信息,得到会话信息;
按照所述会话信息以及所述外层源端口号,生成同步报文。
10.根据权利要求8所述的方法,其中,所述将所述同步报文发送至所述第二NAT网关,包括:
将所述同步报文发送至所述组播网关,以使得所述组播网关将所述同步报文组播至各所述第二NAT网关。
11.一种会话同步的方法,应用于第二NAT网关,所述第二NAT网关中包括转发核以及同步核,所述方法包括:
使用同步核接收所述同步报文,其中,所述同步报文为第一NAT网关的同步核基于所述第一NAT网关的转发核转发至目标网络的第一目标业务报文生成并发送至第二NAT网关的;
将所述同步报文中的会话信息存储至转发核。
12.根据权利要求11所述的方法,其中,所述同步报文中还包括外层源端口号;所述方法还包括:
使用所述同步核获取所述同步报文的外层源端口号;
从所述同步报文中获取会话信息;
基于所述第二NAT网关中预设的外层源端口号与转发核的对应关系,确定所述外层源端口号对应的目标转发核;
将所述会话信息发送至所述目标转发核进行存储;
接收第二目标业务报文,所述第二目标业务报文为从所述目标网络返回的针对所述第一目标业务报文的业务报文;包含与所述第一目标业务报文相同的外层源端口号;
基于所述第二NAT网关中预设的外层源端口号与转发核的对应关系,将所述第二目标业务报文发送至与所述第二目标业务报文的外层源端口号对应的目标转发核中。
13.根据权利要求12所述的方法,还包括:
基于所述第二NAT网关中预设的转发核与同步核的对应关系,判断所述同步核是否与所述目标转发核对应;
若所述同步核不与所述目标转发核对应,则将所述会话信息发送至与所述目标转发核对应的目标同步核中;
通过所述目标同步核将所述同步会话发送至所述目标转发核进行存储。
14.根据权利要求12所述的方法,还包括:预设时长内未接收到针对所述会话信息的保活指令,则通过所述同步核删除所述会话信息。
15.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求8-10或11-14中任一项所述的方法。
16.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求8-10或11-14中任一项所述的方法。
17.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求8-10或11-14中任一项所述的方法。
CN202211632769.6A 2022-12-19 2022-12-19 一种会话同步的系统、方法、电子设备及存储介质 Pending CN116032880A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211632769.6A CN116032880A (zh) 2022-12-19 2022-12-19 一种会话同步的系统、方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211632769.6A CN116032880A (zh) 2022-12-19 2022-12-19 一种会话同步的系统、方法、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN116032880A true CN116032880A (zh) 2023-04-28

Family

ID=86073291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211632769.6A Pending CN116032880A (zh) 2022-12-19 2022-12-19 一种会话同步的系统、方法、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN116032880A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116760504A (zh) * 2023-08-16 2023-09-15 中移(苏州)软件技术有限公司 会话同步方法、装置、服务节点、终端及可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116760504A (zh) * 2023-08-16 2023-09-15 中移(苏州)软件技术有限公司 会话同步方法、装置、服务节点、终端及可读存储介质
CN116760504B (zh) * 2023-08-16 2023-11-03 中移(苏州)软件技术有限公司 会话同步方法、装置、服务节点、终端及可读存储介质

Similar Documents

Publication Publication Date Title
US11563669B2 (en) Method for implementing network virtualization and related apparatus and communications system
US10757072B2 (en) Packet transmission method, apparatus, and system
CN113326228B (zh) 基于远程直接数据存储的报文转发方法、装置及设备
US20170078184A1 (en) Flow table management method, and related device and system
US10305973B2 (en) Distributed load-balancing for software defined networks
WO2023011254A1 (zh) 基于远程直接数据存储的热迁移方法、装置及设备
CN112787913B (zh) 智能网卡组件、物理机、云服务系统以及报文发送方法
CN116032880A (zh) 一种会话同步的系统、方法、电子设备及存储介质
CN107483628B (zh) 基于dpdk的单向代理方法及系统
CN113254148A (zh) 一种虚拟机的迁移方法及云管理平台
CN115225634B (zh) 虚拟网络下的数据转发方法、装置及计算机程序产品
CN115633037A (zh) 数据包的转发方法、装置、虚拟网关设备、介质及系统
CN106506247B (zh) 虚拟网络创建方法和装置
CN114866509B (zh) 虚拟ip切换方法、装置和系统
CN115118654B (zh) 虚拟网络下的数据转发方法、系统、装置及程序产品
CN114979016B (zh) 网关系统、网关、报文转发方法及程序产品
WO2023231836A1 (zh) 一种文件同步方法、装置、设备及存储介质
CN114006707B (zh) 东西向防火墙配置方法、装置和系统
CN114745393B (zh) 会话同步系统及其方法、云计算中心和云计算设备
CN115827690A (zh) 数据处理方法、装置、计算机设备和存储介质
CN117914707A (zh) 一种虚拟网关计算节点融合布置方法、装置及存储介质
CN116132295A (zh) 一种报文交互的方法和网络功能虚拟化网元
CN115484272A (zh) 一种同步会话方法、装置、设备及存储介质
CN118300994A (zh) 基于云手机的虚拟网络管理方法、装置、设备及存储介质
CN117271064A (zh) 一种虚拟机管理方法、装置、电子设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination