一种基于SNAT资源池实现报文处理的系统及方法技术方案

技术编号:35691338 阅读:20 留言:0更新日期:2022-11-23 14:39
本发明专利技术涉及虚拟化云技术领域,提供一种基于SNAT资源池实现报文处理的系统及方法,本发明专利技术的系统包括:NAT网关中控服务模块,用于创建SNAT资源池实例,将SNAT资源池实例信息写入到OVN北向数据库中;OVN北向数据库,用于将SNAT资源池实例信息提供给OVN Northd流表翻译中间件;OVN Northd流表翻译中间件,用于将从OVN北向数据库拉取的SNAT资源池实例信息翻译成逻辑流表写入到OVN南向数据库中;OVN南向数据库,用于将逻辑流表提供给OVN本地控制器;OVN本地控制器,用于将从南向数据库中拉取的逻辑流表翻译成物理流表并下发到本地的虚拟路由器;虚拟路由器,用于根据物理流表对虚拟机或容器的报文进行处理。本发明专利技术可以解决并发量大应用场景中IP端口耗尽导致无法创建新连接的问题。问题。问题。

【技术实现步骤摘要】
一种基于SNAT资源池实现报文处理的系统及方法


[0001]本专利技术涉及虚拟化云
,尤其涉及一种基于SNAT资源池实现报文处理的系统及方法。

技术介绍

[0002]目前,SDN虚拟化云平台中VPC内网中的多个虚拟机主要是借助NAT网关中SNAT功能访问公网。通过在NAT网关中创建一个SNAT规则,设置从指定VPC网段发出去的内网报文,在经过NAT网关转发到公网时,将报文的IP及端口修改为某一个事先配置好的公网IP及端口,端口根据不同的session从1

65535中随机选择,公网上的设备收到该报文后看到的源IP是一个公网IP而非虚拟机的真实内网IP,该操作的目的是让公网设备回复报文的目的IP也是公网IP地址,这样该回复报文才能正确路由回到NAT网关设备并最终返回到VPC内的虚拟机,完成VPC内网虚拟机和公网设备的通信。
[0003]在实际应用中,VPC内的所有虚拟机出公网做SNAT时只能使用一个公网IP来替换源IP及源端口,但是在四层网络协议中udp或者tcp中的端口是16bit,即可用的端口范围是1

65535,在VPC中多个虚拟机同时出公网且并发量很大的场景中,一个IP的端口会很快耗尽,导致无法创建新的连接。
[0004]因此,如何提供一种报文通信方法,避免并发量大的应用场景中一个IP的端口会很快耗尽导致无法创建新的连接的不足,成为亟待解决的技术问题。

技术实现思路

[0005]有鉴于此,为了解决并发量大的应用场景中一个IP的端口会很快耗尽导致无法创建新的连接的问题,本专利技术基于OpenFlow流表创建公网IP SNAT资源池,使VPC内多个虚拟机出公网做SNAT时可以从一个由多个公网EIP组成的SNAT资源池中选择一个公网EIP及端口替换报文的源IP及源端口,实现报文的转发。
[0006]一方面,本专利技术提供一种基于SNAT资源池实现报文处理的系统,包括:
[0007]NAT网关中控服务模块,用于根据根据客户端的调用请求创建SNAT资源池实例,将SNAT资源池实例信息写入到OVN北向数据库中;
[0008]OVN北向数据库,用于存储NAT网关中控服务模块写入的SNAT资源池实例信息,并将所述SNAT资源池实例信息提供给OVN Northd流表翻译中间件;
[0009]OVN Northd流表翻译中间件,用于从OVN北向数据库拉取SNAT资源池实例信息,将拉取的SNAT资源池实例信息翻译成逻辑流表写入到OVN南向数据库中;
[0010]OVN南向数据库,用于存储OVN Northd流表翻译中间件写入的逻辑流表,并将所述逻辑流表提供给OVN本地控制器;
[0011]OVN本地控制器,用于从南向数据库中拉取逻辑流表并将所述逻辑流表翻译成物理流表并下发到本地的虚拟路由器;
[0012]虚拟路由器,用于根据物理流表对虚拟机或容器的报文进行处理。
[0013]进一步地,本专利技术基于SNAT资源池实现报文处理的系统中,虚拟路由器,用于根据物理流表对虚拟机或容器的报文进行处理,包括:当内网虚拟机访问外网的流表经过虚拟路由器时,虚拟路由器根据当前报文的五元组的hash值判断所述报文对应的会话是否是新会话,根据判断结果采用不同的方式修改报文,将修改的报文发送到公网。
[0014]进一步地,本专利技术基于SNAT资源池实现报文处理的系统中,虚拟路由器根据当前报文的五元组的hash值判断所述报文对应的会话是否是新会话,包括:当会话表中不存在所述报文对应的会话记录,判定所述报文对应的会话是新会话;当会话表中存在所述报文对应的会话记录,判定所述报文对应的会话不是新会话。
[0015]进一步地,本专利技术基于SNAT资源池实现报文处理的系统中,虚拟路由器根据判断结果采用不同的方式修改报文,包括:当所述报文对应的会话是新会话时,虚拟路由器基于已有会话中记录的公网EIP及端口修改报文的源IP及源端口,将修改的报文发送到公网。
[0016]进一步地,本专利技术基于SNAT资源池实现报文处理的系统中,虚拟路由器根据判断结果采用不同的方式修改报文,还包括:当所述报文对应的会话是新会话时,虚拟路由器从物理流表中查询是否存在可用的EIP及端口;当物理流表中存在可用的EIP及端口时,采用查询所得的EIP及端口替换报文的源IP及源端口,并记录该会话,将修改的报文发送到公网;当物理流表中不存在可用的EIP及端口时,打印报警log并丢弃报文。
[0017]另一方面,本专利技术提供一种基于SNAT资源池实现报文处理的方法,包括:
[0018]步骤S1:通过NAT网关中控服务模块根据客户端的调用请求创建SNAT资源池实例,将SNAT资源池实例信息写入到OVN北向数据库中;
[0019]步骤S2:采用OVN Northd流表翻译中间件从OVN北向数据库拉取SNAT资源池实例信息,将拉取的SNAT资源池实例信息翻译成SNAT资源池对应的SNAT逻辑流表,并将所述SNAT逻辑流表写入到OVN南向数据库中;
[0020]步骤S3:采用OVN本地控制器从南向数据库中拉取逻辑流表并将逻辑流表翻译成物理流表并下发到本地的虚拟路由器;
[0021]步骤S4:采用虚拟路由器根据物理流表对虚拟机或容器的报文进行处理。
[0022]进一步地,本专利技术基于SNAT资源池实现报文处理的方法的步骤S4,包括:
[0023]步骤S41:虚拟路由器根据当前报文的五元组的hash值判断所述报文对应的会话是否是新会话;
[0024]步骤S42:虚拟路由器根据步骤S41的判断结果采用不同的方式修改报文,将修改的报文发送到公网。
[0025]进一步地,本专利技术基于SNAT资源池实现报文处理的方法的步骤S41,包括:当内网虚拟机访问外网的流表经过虚拟路由器时,虚拟路由器根据当前报文的五元组的hash值从会话表中查询是否存在所述报文对应的会话记录;当会话表中不存在所述报文对应的会话记录,判定所述报文对应的会话是新会话;当会话表中存在所述报文对应的会话记录,判定所述报文对应的会话不是新会话。
[0026]进一步地,本专利技术基于SNAT资源池实现报文处理的方法的步骤S42中,虚拟路由器根据步骤S41的判断结果采用不同的方式修改报文,包括:当所述报文属于新会话时,基于已有会话中记录的公网EIP及端口修改报文的源IP及源端口,将修改的报文发送到公网。
[0027]进一步地,本专利技术基于SNAT资源池实现报文处理的方法的步骤S42中,虚拟路由器
根据步骤S41的判断结果采用不同的方式修改报文,还包括:当所述报文不属于新会话时,从物理流表中查询是否存在可用的公网EIP及端口;当物理流表中存在可用的公网EIP及端口时,采用查询所得的公网EIP及端口替换报文的源IP及源端口,并记录该会话,将修改的报文发送到公网;当物理流表中不存在可用的公网EIP及端口时,打印报警log并丢弃报文。
[0028]本专利技术一种基于SNAT资源池本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于SNAT资源池实现报文处理的系统,其特征在于所述系统,包括:NAT网关中控服务模块,用于根据根据客户端的调用请求创建SNAT资源池实例,将SNAT资源池实例信息写入到OVN北向数据库中;OVN北向数据库,用于存储NAT网关中控服务模块写入的SNAT资源池实例信息,并将所述SNAT资源池实例信息提供给OVN Northd流表翻译中间件;OVN Northd流表翻译中间件,用于从OVN北向数据库拉取SNAT资源池实例信息,将拉取的SNAT资源池实例信息翻译成逻辑流表写入到OVN南向数据库中;OVN南向数据库,用于存储OVN Northd流表翻译中间件写入的逻辑流表,并将所述逻辑流表提供给OVN本地控制器;OVN本地控制器,用于从南向数据库中拉取逻辑流表并将所述逻辑流表翻译成物理流表并下发到本地的虚拟路由器;虚拟路由器,用于根据物理流表对虚拟机或容器的报文进行处理。2.根据权利要求1所述的基于SNAT资源池实现报文处理的系统,其特征在于,虚拟路由器,用于根据物理流表对虚拟机或容器的报文进行处理,包括:当内网虚拟机访问外网的流表经过虚拟路由器时,虚拟路由器根据当前报文的五元组的hash值判断所述报文对应的会话是否是新会话,根据判断结果采用不同的方式修改报文,将修改的报文发送到公网。3.根据权利要求2所述的基于SNAT资源池实现报文处理的系统,其特征在于,虚拟路由器根据当前报文的五元组的hash值判断所述报文对应的会话是否是新会话,包括:当会话表中不存在所述报文对应的会话记录,判定所述报文对应的会话是新会话;当会话表中存在所述报文对应的会话记录,判定所述报文对应的会话不是新会话。4.根据权利要求2所述的基于SNAT资源池实现报文处理的系统,其特征在于,根据判断结果采用不同的方式修改报文,包括:当所述报文对应的会话是新会话时,虚拟路由器基于已有会话中记录的公网EIP及端口修改报文的源IP及源端口,将修改的报文发送到公网。5.根据权利要求2所述的基于SNAT资源池实现报文处理的系统,其特征在于,根据判断结果采用不同的方式修改报文,还包括:当所述报文对应的会话是新会话时,虚拟路由器从物理流表中查询是否存在可用的EIP及端口;当物理流表中存在可用的EIP及端口时,采用查询所得的EIP及端口替换报文的源IP及源端口,并记录该会话,将修改的报文发送到公网;当物理流表中不存在可用的EIP及端口时,打印报警log并...

【专利技术属性】
技术研发人员:施亮杨志祥王晓东
申请(专利权)人:中电云数智科技有限公司
类型:发明
国别省市:

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

1