CN111770211B - 一种snat方法、装置、电子设备及存储介质 - Google Patents
一种snat方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111770211B CN111770211B CN202010555573.6A CN202010555573A CN111770211B CN 111770211 B CN111770211 B CN 111770211B CN 202010555573 A CN202010555573 A CN 202010555573A CN 111770211 B CN111770211 B CN 111770211B
- Authority
- CN
- China
- Prior art keywords
- snat
- rule
- configuration request
- user
- request
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 101000652292 Homo sapiens Serotonin N-acetyltransferase Proteins 0.000 title claims abstract 82
- 102100030547 Serotonin N-acetyltransferase Human genes 0.000 title claims abstract 82
- 238000004891 communication Methods 0.000 claims abstract description 21
- 230000004044 response Effects 0.000 claims description 41
- 238000012795 verification Methods 0.000 claims description 24
- 230000015654 memory Effects 0.000 claims description 20
- 230000009471 action Effects 0.000 claims description 17
- 238000013519 translation Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 description 14
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101000765037 Mus musculus Class E basic helix-loop-helix protein 40 Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2521—Translation architectures other than single NAT servers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例公开了一种SNAT方法、装置、电子设备及存储介质,涉及云计算技术领域,包括:接收用户通过终端发送的SNAT配置请求;对所述SNAT配置请求进行合法性校验;在所述SNAT配置请求通过合法性校验的情况下,根据所述SNAT配置请求对所述用户的当前SNAT规则进行更新;根据更新后的SNAT规则确定与所述用户匹配的目标公网出口IP;通过所述目标公网出口IP建立用户资源与外网之间的通信连接。本申请实施例能够提高公网出口IP的访问成功率,并优化公网出口IP的流量负载均衡。
Description
技术领域
本申请实施例涉及计算机技术领域,具体涉及云计算技术。
背景技术
对于支持网络地址转换功能的云产品来说,SNAT(Source Network AddressTranslation,源地址转换)功能是网络地址转换功能中其中一项地址转换功能,主要用于云内的资源与弹性公网IP(Elastic IP,EIP)进行绑定,使得云内的资源通过绑定的EIP访问外网资源。由于云内的资源都是通过绑定的EIP作为公网出口IP,因此,如何为云内各个资源定义有效的SNAT规则,对于云产品的访问成功率以及流量负载均衡问题的意义都十分重大。
发明内容
本申请实施例提供了一种SNAT方法、装置、电子设备及存储介质,以提高公网出口IP的访问成功率,并优化公网出口IP的流量负载均衡。
第一方面,本申请实施例提供了一种SNAT方法,包括:
接收用户通过终端发送的SNAT配置请求;
对所述SNAT配置请求进行合法性校验;
在所述SNAT配置请求通过合法性校验的情况下,根据所述SNAT配置请求对所述用户的当前SNAT规则进行更新;
根据更新后的SNAT规则确定与所述用户匹配的目标公网出口IP;
通过所述目标公网出口IP建立用户资源与外网之间的通信连接。
第二方面,本申请实施例提供了一种SNAT装置,包括:
请求接收模块,用于接收用户通过终端发送的SNAT配置请求;
请求校验模块,用于对所述SNAT配置请求进行合法性校验;
规则更新模块,用于在所述SNAT配置请求通过合法性校验的情况下,根据所述SNAT配置请求对所述用户的当前SNAT规则进行更新;
出口IP确定模块,用于根据更新后的SNAT规则确定与所述用户匹配的目标公网出口IP;
通信连接建立模块,用于通过所述目标公网出口IP建立用户资源与外网之间的通信连接。
第三方面,本申请实施例提供了一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行第一方面实施例所提供的SNAT方法。
第四方面,本申请实施例还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行第一方面实施例所提供的SNAT方法。
本申请实施例通过对用户通过终端发送的SNAT配置请求进行合法性校验,并在SNAT配置请求通过合法性校验的情况下,根据SNAT配置请求对用户的当前SNAT规则进行更新,以根据更新后的SNAT规则确定与用户匹配的目标公网出口IP,并通过目标公网出口IP建立用户资源与外网之间的通信连接,能够提高公网出口IP的访问成功率,并优化公网出口IP的流量负载均衡。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的一种SNAT方法的流程图;
图2是本申请实施例提供的一种SNAT方法的流程图;
图3是本申请实施例提供的一种SNAT装置的结构图;
图4是用来实现本申请实施例的SNAT方法的电子设备的结构示意图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
目前,云产品,如云上NAT(Network Address Translation,网络地址转换)产品等,可以支持SNAT和DNAT(Destination Network Address Translation,目的地址转换)。其中,SNAT功能需要云内各用户的用户资源绑定SNAT EIP。具体实现时,NAT网关控制器(用于管理网络地址的映射关系等功能)会根据用户所提供的待绑定IP的个数,固定按照端口范围选择EIP。例如,假设共有6个EIP,每个EIP分别固定对应一组范围的端口号,6个EIP对应的端口号的总和为65536,且各EIP对应的端口号之间不互相重复。如果用户A所提供的待绑定IP通过12345的端口号访问外网,而12345的端口属于EIP3(6个EIP中的其中一个EIP)的绑定范围,则用户A只能通过EIP3访问外网。上述定义SNAT规则的方式存在较大的局限性,主要体现在:
1)对于一些安全性需求较高或者有备案需求的业务,所访问的对端资源可能针对访问地址设置白名单限制或直接进行备案处理。如果云内的用户资源的EIP不属于对端资源的白名单或未进行备案,则会造成访问失败。
2)当云内不同用户资源同时访问外网资源时,容易出现某一时刻访问请求的端口号集中出现在某一个范围的情况。此时如果所有的用户资源都通过同一个EIP访问外网,可能导致可用连接数不足的问题,或导致公网出口IP的流量负载不均衡的问题。
在一个示例中,图1是本申请实施例提供的一种SNAT方法的流程图,本实施例可适用于用户自定义SNAT规则的情况,该方法可以由SNAT装置来执行,该装置可以由软件和/或硬件的方式来实现,并一般可集成在电子设备中。该电子设备可以是NAT网关设备,可以实现网络地址转换功能。相应的,如图1所示,该方法包括如下操作:
S110、接收用户通过终端发送的SNAT配置请求。
其中,SNAT配置请求可以用于对用户当前的SNAT规则进行自定义的配置,可以包括多种类型的SNAT自定义规则。SNAT自定义规则也即用户自定义的SNAT规则,例如,用户针对待绑定IP,从可选的EIP中指定一个或多个EIP作为公网出口IP。终端可以是用于对SNAT规则进行配置的终端,如网关控制器等,本申请实施例并不对终端的具体类型进行限定。
在本申请实施例中,在检测到用户通过终端发送的SNAT配置请求后,可以接收用户通过终端发送的SNAT配置请求。
S120、对所述SNAT配置请求进行合法性校验。
相应的,在接收到SNAT配置请求后,进一步可以对接收的SNAT配置请求进行合法性校验。所谓合法性校验,可以是诸如对SNAT配置请求中用户指定的EIP是否符合SNAT条件进行校验,例如,校验用户指定的EIP的格式和所属网段范围是否符合SNAT要求,以及用户指定的EIP是否与DNAT绑定的EIP相冲突等,本申请实施例并不对合法性校验的具体校验内容进行限定。
S130、在所述SNAT配置请求通过合法性校验的情况下,根据所述SNAT配置请求对所述用户的当前SNAT规则进行更新。
其中,当前SNAT规则可以是用户当前所采用的SNAT规则,也即,用户当前针对SNAT功能所绑定的EIP。
相应的,如果SNAT配置请求通过了合法性校验,则可以利用合法的SNAT配置请求中所涉及的SNAT自定义规则对用户的当前SNAT规则进行更新。需要说明的是,用户当前的SNAT可以是空,也可以是有具体的SNAT规则,本申请实施例对此并不进行限制。
S140、根据更新后的SNAT规则确定与所述用户匹配的目标公网出口IP。
其中,目标公网出口IP也即用户从各EIP中指定的,用于本用户资源访问外网的EIP。
S150、通过所述目标公网出口IP建立用户资源与外网之间的通信连接。
其中,用户资源也即用户在公网内的资源,如云内各用户的服务器或存储器等设备。
在本申请实施例中,用户通过终端对用户的当前SNAT规则完成更新后,用户资源即可利用用户自定义配置的目标公网出口IP访问外网。
由此可见,在本申请实施例中,各用户匹配的SNAT规则不再由网关控制器根据用户所提供的待绑定IP的个数,固定按照端口范围选择EIP,而是根据用户发送的SNAT配置请求对用户的当前SNAT规则进行更新,支持用户自定义公网出口IP访问外网,能够满足白名单限制以及访问地址备案等业务需求,从而提高公网出口IP的访问成功率。同时,由于用户指定公网出口IP,因此,即使在某一时刻访问请求的端口号集中出现在某一个范围,各用户资源也不会只通过一个EIP访问外网,从而解决因访问请求的端口号集中出现在某一个范围导致可用连接数不足或公网出口IP流量负载不均衡的问题。
本申请实施例通过对用户通过终端发送的SNAT配置请求进行合法性校验,并在SNAT配置请求通过合法性校验的情况下,根据SNAT配置请求对用户的当前SNAT规则进行更新,以根据更新后的SNAT规则确定与用户匹配的目标公网出口IP,并通过目标公网出口IP建立用户资源与外网之间的通信连接,能够提高公网出口IP的访问成功率,并优化公网出口IP的流量负载均衡。
在一个示例中,图2是本申请实施例提供的一种SNAT方法的流程图,本申请实施例在上述各实施例的技术方案的基础上,进行了优化改进,给出了对所述SNAT配置请求进行合法性校验以及根据所述SNAT配置请求对所述用户的当前SNAT规则进行更新的具体可选的实现方式。
如图2所示的一种SNAT方法,包括:
S210、接收用户通过终端发送的SNAT配置请求。
在本申请的一个可选实施例中,所述SNAT配置请求可以包括创建SNAT规则请求、修改SNAT规则请求、删除SNAT规则请求以及查看SNAT规则请求。
其中,创建SNAT规则请求可以用于创建新的SNAT,修改SNAT规则请求可以用于修改用户当前的一个或多个SNAT规则,删除SNAT规则请求可以用于删除用户当前的一个或多个SNAT规则,查看SNAT规则请求可以用于查看用户当前的一个或多个SNAT规则。
在本申请实施例中,SNAT配置请求的类型可以包括但不限于创建SNAT规则请求、修改SNAT规则请求、删除SNAT规则请求以及查看SNAT规则请求。也即,用户可以实现对SNAT规则的增删改查功能。
在本申请的一个可选实施例中,所述SNAT配置请求可以包括SNAT规则参数、SNAT标识参数以及规则动作参数。
其中,SNAT规则参数用于描述需要创建、修改、删除以及查看的SNAT规则等,SNAT标识参数用于描述SNAT规则的标识,规则工作参数用于描述针对规则具体的操作。
在一个可选的实例中,假设用户发送的SNAT配置请求的类型为创建SNAT规则请求,则用户在发送创建SNAT规则请求之前,可以首先指定创建SNAT规则对应的网关。然后对SNAT规则参数、SNAT标识参数以及规则动作参数分别赋值。例如,对SNAT规则参数赋值需要创建的SNAT规则,对SNAT标识参数赋值为需要创建的SNAT规则的ID(Identity document,身份证标识号)号,对规则动作参数赋值为“create_snat_rules”(表示创建SNAT规则)。其中,SNAT规则参数的类型可以为JSON(JavaScript Object Notation,JS对象简谱)list格式,SNAT标识参数以及规则动作参数的类型可以为字符串格式。
在一个可选的实例中,假设用户发送的SNAT配置请求的类型为修改SNAT规则请求,则用户在发送修改SNAT规则请求之前,可以首先指定修改SNAT规则对应的网关。然后对SNAT规则参数、SNAT标识参数以及规则动作参数分别赋值。例如,对SNAT规则参数赋值需要修改的SNAT规则,对SNAT标识参数赋值为需要修改的SNAT规则的ID号,对规则动作参数赋值为“update_snat_rules”(表示修改SNAT规则)。其中,SNAT规则参数的类型可以为JSONlist格式,SNAT标识参数以及规则动作参数的类型可以为字符串格式。
在一个可选的实例中,假设用户发送的SNAT配置请求的类型为删除SNAT规则请求,则用户在发送删除SNAT规则请求之前,可以首先指定删除SNAT规则对应的网关。然后对SNAT规则参数、SNAT标识参数以及规则动作参数分别赋值。例如,对SNAT规则参数赋值需要删除的SNAT规则,对SNAT标识参数赋值为需要删除的SNAT规则的ID号,对规则动作参数赋值为“delete_snat_rules”(表示删除SNAT规则)。其中,SNAT规则参数的类型可以为JSONlist格式,SNAT标识参数以及规则动作参数的类型可以为字符串格式。
在一个可选的实例中,假设用户发送的SNAT配置请求的类型为查看SNAT规则请求,则用户在发送查看SNAT规则请求之前,可以首先指定查看SNAT规则对应的网关。然后对SNAT规则参数、SNAT标识参数以及规则动作参数分别赋值。例如,对SNAT规则参数赋值需要查看的SNAT规则,对SNAT标识参数赋值为需要查看的SNAT规则的ID号,对规则动作参数赋值为“view_snat_rules”(表示查看SNAT规则)。其中,SNAT规则参数的类型可以为JSONlist格式,SNAT标识参数以及规则动作参数的类型可以为字符串格式。
可选的,SNAT规则参数的字段可以包括但不限于name、rule_id、status、create_time、cidr及eips。其中,name字段表示规则的名称,该字段不是必须的字段,其字段值可以为空。rule_id字段表示SNAT规则的ID号,该字段同样不是必须的字段,其字段值也可以为空。例如,在用户查看、修改或删除SNAT规则时,该字段可以有具体的赋值,但用于创建SNAT规则时,则该字段的字段值可以为空。status和create_time两个字段可以应用于查看SNAT规则请求中。其中,status字段的字段值可以为configuring(配置中)或active(生效中)。create_time字段则表示SNAT规则的创建时间。cidr则可以表示SNAT规则中公网出口IP地址所属的网段。Eips则可以表示SNAT规则的公网出口IP。其中,cidr及eips两个字段为必须的字段。name、rule_id、status、create_time及cidr等字段的类型可以是字符串,eips字段的类型可以是JSON list格式。
上述方案中,通过利用SNAT规则参数、SNAT标识参数以及规则动作参数等SNAT配置请求的请求参数形成多种类型的SNAT配置请求,可以支持用户对SNAT规则实现增删改查等自定义功能。
S220、在对所述SNAT配置请求响应成功的情况下,向所述用户返回响应成功参数。
S230、在对所述SNAT配置请求响应失败的情况下,向所述用户返回响应失败参数,或不执行返回参数的操作。
其中,响应成功参数可以是表明响应成功的参数。例如,响应成功参数可以设置为200或20等,本申请实施例并不对响应成功参数的具体参数内容进行限定。响应失败参数可以是表明响应失败的参数。例如,响应失败参数可以设置为400或40等。或者,响应失败参数还可以是用户的当前SNAT规则的参数等,本申请实施例同样不对响应失败参数的具体参数内容进行限定。
在本申请实施例中,还可以根据SNAT配置请求的类型对SNAT配置请求进行响应。
可选的,针对创建SNAT规则请求类型,具体的响应方式可以为:如果响应成功,则向用户返回200。如果响应失败,则向用户返回当前SNAT规则的参数。可选的,当前SNAT规则的参数具体可以是当前具体的SNAT规则内容。
可选的,针对修改SNAT规则请求类型,具体的响应方式可以为:如果响应成功,则向用户返回200。如果响应失败,则可以不返回参数。
可选的,针对删除SNAT规则请求类型,具体的响应方式可以为:如果响应成功,则向用户返回200。如果响应失败,则可以不返回参数。
可选的,针对查看SNAT规则请求类型,具体的响应方式可以为:如果响应成功,则向用户返回当前SNAT规则的参数。可选的,当前SNAT规则的参数具体可以是当前具体的SNAT规则内容。如果响应失败,则可以不返回参数。
上述方案中,通过根据SNAT配置请求的类型响应SNAT配置请求,可以使用户了解当前SNAT配置请求具体的响应情况,以供用户了解SNAT规则的自定义结果。
S240、根据预设IP校验规则,对所述SNAT配置请求中目标SNAT规则包括的EIP进行合法性校验。
其中,所述预设IP校验规则可以包括:所述目标SNAT规则包括的EIP属于目标网段;所述目标SNAT规则包括的EIP与目的地址转换DNAT EIP互不冲突。
其中,目标网段可以是满足SNAT规则需求的网段类型,如区别于NAT网关所属局域网(也即用户资源所在的局域网)的网段,本申请实施例并不对目标网段的具体类型进行限定。DNAT EIP可以是DNAT规则中涉及的公网出口IP地址。
可选的,在对SNAT配置请求进行合法性校验时,可以主要对SNAT配置请求中的SNAT自定义规则进行校验,更具体的,可以校验SNAT自定义规则中SNAT EIP的合法性。也即,检验SNAT自定义规则中SNAT EIP是否属于目标网段,也即要求SNAT EIP属于网段参数。如果EIP为单一的IP地址,则可以为EIP添加“/32”的信息,使其成为网段参数。同时,可以要求SNAT自定义规则中SNAT EIP与DNAT EIP不能重复。
上述方案中,通过对SNAT EIP进行合法性校验,可以保证用户自定义的SNAT规则能够满足SNAT规则要求,保证用户自动定义的SNAT规则的可用性。
在本申请的一个可选实施例中,在所述SNAT配置请求通过合法性校验的情况下,将所述SNAT配置请求包括的目标SNAT规则保存至数据库中。
其中,目标SNAT规则也即SNAT配置请求中涉及的SNAT自定义规则。
在本申请实施例中,可选的,如果SNAT配置请求通过合法性校验,则可以将符合规定的SNAT自定义规则持久化保存至数据库中。
S250、将所述SNAT配置请求包括的目标SNAT规则与所述当前SNAT规则进行对比。
S260、在确定所述目标SNAT规则与所述当前SNAT规则存在区别的情况下,将所述当前SNAT规则更新为所述目标SNAT规则。
可选的,在SNAT配置请求通过合法性校验后,可以将SNAT配置请求包括的目标SNAT规则与本地存储的当前SNAT规则进行对比。如果对比结果为目标SNAT规则与当前SNAT规则不同,则可以利用目标SNAT规则更新当前SNAT规则;否则,不执行更新操作。
在本申请的一个可选实施例中,所述将所述当前SNAT规则更新为所述目标SNAT规则,可以包括:在所述目标SNAT规则包括多个EIP的情况下,对各所述EIP的连接数进行均衡处理。
在本申请实施例中,目标SNAT规则可以包括单一的EIP或多个EIP组。如果目标SNAT规则包括多个EIP,在利用各EIP访问外网资源时,还可以对各EIP的连接数进行均衡处理。例如,假设EIP 1当前的连接数较少,则用户后续的访问请求可以优先通过EIP1进行访问。这样设置的好处是:可以进一步对用户绑定的各EIP的连接数进行均衡,避免过多访问请求仅通过一个或少量EIP访问外网时导致的可用连接数不足,以及公网出口IP流量负载不均衡的问题,实现对公网出口IP的流量负载均衡的进一步优化。
S270、对所述当前SNAT规则的更新结果进行确认。
在本申请实施例中,如果完成对用户的当前SNAT规则的更新操作,进一步还可以对当前SNAT规则的更新结果进行确认,以确保当前SNAT规则的更新操作无误。
需要说明的是,在本申请实施例中,SNAT方法除了可以支持用户自定义SNAT规则,还可以兼容现有的SNAT方法。也即,如果用户没有配置SNAT自定义规则,则在访问外网时,仍然由网关控制器根据用户所提供的待绑定IP的个数,固定按照端口范围选择EIP。
S280、根据更新后的SNAT规则确定与所述用户匹配的目标公网出口IP。
S290、通过所述目标公网出口IP建立用户资源与外网之间的通信连接。
在一个具体的可选示例中,可以由NAT网关设备中的网关控制器来实现用户自定义SNAT规则的整个流程。可选的,可以由网关控制器的接口接收用户发送的SNAT配置请求。在网关控制器通过接口接收到SNAT配置请求后,可以将SNAT配置请求匹配的SNAT自定义规则下发至网关控制器的校验模块,以利用校验模块对SNAT配置请求包括的SNAT自定义规则进行合法性校验。校验模块可以将通过合法性校验的SNAT自定义规则下发至网关控制器的NAT代理模块,并由NAT代理模块根据接收的SNAT自定义规则对用户的当前SNAT规则进行更新。同时,校验模块还可以将通过合法性校验的SNAT自定义规则持久化到数据库中。需要说明的是,NAT代理模块可以采用心跳报文的方式与校验模块交互,并根据SNAT自定义规则对用户的当前SNAT规则进行更新。也即,校验模块可以在NAT代理模块汇报心跳时,向NAT代理模块下发SNAT自定义规则。同时,NAT代理模块也可以根据心跳信息与用户的当前SNAT规则进行对比更新。NAT代理模块完成SNAT自定义规则的更新操作后,可以在下一次的心跳报文中携带更新后的SNAT自定义规则,以供交易模块对更新结果进行确认。
上述技术方案,通过对用户发送的多种类型的SNAT配置请求进行响应和合法性校验,并在SNAT配置请求通过合法性校验的情况下,根据SNAT配置请求对用户的当前SNAT规则进行更新,能够提高公网出口IP的访问成功率,并优化公网出口IP的流量负载均衡。
在一个示例中,图3是本申请实施例提供的一种SNAT装置的结构图,本申请实施例可适用于用户自定义SNAT规则的情况,该装置通过软件和/或硬件实现,并具体配置于电子设备中。该电子设备可以是NAT网关设备,可以实现网络地址转换功能。
如图3所示的一种SNAT装置300,包括:请求接收模块310、请求校验模块320、规则更新模块330、出口IP确定模块340和通信连接建立模块350。其中,
请求接收模块310,用于接收用户通过终端发送的SNAT配置请求;
请求校验模块320,用于对所述SNAT配置请求进行合法性校验;
规则更新模块330,用于在所述SNAT配置请求通过合法性校验的情况下,根据所述SNAT配置请求对所述用户的当前SNAT规则进行更新;
出口IP确定模块340,用于根据更新后的SNAT规则确定与所述用户匹配的目标公网出口IP;
通信连接建立模块350,用于通过所述目标公网出口IP建立用户资源与外网之间的通信连接。
本申请实施例通过对用户通过终端发送的SNAT配置请求进行合法性校验,并在SNAT配置请求通过合法性校验的情况下,根据SNAT配置请求对用户的当前SNAT规则进行更新,以根据更新后的SNAT规则确定与用户匹配的目标公网出口IP,并通过目标公网出口IP建立用户资源与外网之间的通信连接,能够提高公网出口IP的访问成功率,并优化公网出口IP的流量负载均衡。
可选的,所述SNAT配置请求包括创建SNAT规则请求、修改SNAT规则请求、删除SNAT规则请求以及查看SNAT规则请求。
可选的,所述SNAT配置请求包括SNAT规则参数、SNAT标识参数以及规则动作参数。
可选的,所述装置还包括:第一请求响应模块,用于在对所述SNAT配置请求响应成功的情况下,向所述用户返回响应成功参数;第二请求响应模块,用于在对所述SNAT配置请求响应失败的情况下,向所述用户返回响应失败参数,或不执行返回参数的操作。
可选的,请求校验模块320具体用于:根据预设IP校验规则,对所述SNAT配置请求中目标SNAT规则包括的EIP进行合法性校验;其中,所述预设IP校验规则包括:所述目标SNAT规则包括的EIP属于目标网段;所述目标SNAT规则包括的EIP与DNAT EIP互不冲突。
可选的,规则更新模块330具体用于:将所述SNAT配置请求包括的目标SNAT规则与所述当前SNAT规则进行对比;在确定所述目标SNAT规则与所述当前SNAT规则存在区别的情况下,将所述当前SNAT规则更新为所述目标SNAT规则。
可选的,规则更新模块330具体用于:在所述目标SNAT规则包括多个EIP的情况下,对各所述EIP的连接数进行均衡处理。
可选的,所述装置还包括:更新结果确认模块,用于对所述当前SNAT规则的更新结果进行确认。
可选的,所述装置还包括:请求保存模块,用于在所述SNAT配置请求通过合法性校验的情况下,将所述SNAT配置请求包括的目标SNAT规则保存至数据库中。
上述SNAT装置可执行本申请任意实施例所提供的SNAT方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请任意实施例提供的SNAT方法。
由于上述所介绍的SNAT装置为可以执行本申请实施例中的SNAT方法的装置,故而基于本申请实施例中所介绍的SNAT方法,本领域所属技术人员能够了解本实施例的SNAT装置的具体实施方式以及其各种变化形式,所以在此对于该SNAT装置如何实现本申请实施例中的SNAT方法不再详细介绍。只要本领域所属技术人员实施本申请实施例中SNAT方法所采用的装置,都属于本申请所欲保护的范围。
在一个示例中,本申请还提供了一种电子设备和一种可读存储介质。
图4是用来实现本申请实施例的SNAT方法的电子设备的结构示意图。如图4所示,是根据本申请实施例的SNAT方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图4所示,该电子设备包括:一个或多个处理器401、存储器402,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图4中以一个处理器401为例。
存储器402即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的SNAT方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的SNAT方法。
存储器402作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的SNAT方法对应的程序指令/模块(例如,附图3所示请求接收模块310、请求校验模块320、规则更新模块330、出口IP确定模块340和通信连接建立模块350)。处理器401通过运行存储在存储器402中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的SNAT方法。
存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储实现SNAT方法的电子设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至实现SNAT方法的电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现SNAT方法的电子设备还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。
输入装置403可接收输入的数字或字符信息,以及产生与实现SNAT方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置404可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。
本申请实施例通过对用户通过终端发送的SNAT配置请求进行合法性校验,并在SNAT配置请求通过合法性校验的情况下,根据SNAT配置请求对用户的当前SNAT规则进行更新,以根据更新后的SNAT规则确定与用户匹配的目标公网出口IP,并通过目标公网出口IP建立用户资源与外网之间的通信连接,能够提高公网出口IP的访问成功率,并优化公网出口IP的流量负载均衡。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (12)
1.一种源地址转换SNAT方法,包括:
接收用户通过终端发送的SNAT配置请求;
对所述SNAT配置请求进行合法性校验;
在所述SNAT配置请求通过合法性校验的情况下,根据所述SNAT配置请求中的SNAT自定义规则对所述用户的当前SNAT规则进行更新;
根据更新后的SNAT规则确定与所述用户匹配的目标公网出口IP;
通过所述目标公网出口IP建立用户资源与外网之间的通信连接;
其中,所述SNAT配置请求用于对用户当前的SNAT规则进行自定义配置;
其中,所述根据所述SNAT配置请求中的SNAT自定义规则对所述用户的当前SNAT规则进行更新,包括:
将所述SNAT配置请求包括的目标SNAT规则与所述当前SNAT规则进行对比;
在确定所述目标SNAT规则与所述当前SNAT规则存在区别的情况下,将所述当前SNAT规则更新为所述目标SNAT规则;
其中,所述将所述当前SNAT规则更新为所述目标SNAT规则,包括:
在所述目标SNAT规则包括多个EIP的情况下,对各所述EIP的连接数进行均衡处理。
2.根据权利要求1所述的方法,其中,所述SNAT配置请求包括创建SNAT规则请求、修改SNAT规则请求、删除SNAT规则请求以及查看SNAT规则请求。
3.根据权利要求1或2所述的方法,其中,所述SNAT配置请求包括SNAT规则参数、SNAT标识参数以及规则动作参数。
4.根据权利要求1或2所述的方法,在所述接收用户通过终端发送的SNAT配置请求之后,还包括:
在对所述SNAT配置请求响应成功的情况下,向所述用户返回响应成功参数;
在对所述SNAT配置请求响应失败的情况下,向所述用户返回响应失败参数,或不执行返回参数的操作。
5.根据权利要求1所述的方法,其中,所述对所述SNAT配置请求进行合法性校验,包括:
根据预设IP校验规则,对所述SNAT配置请求中目标SNAT规则包括的公网出口IP EIP进行合法性校验;
其中,所述预设IP校验规则包括:
所述目标SNAT规则包括的EIP属于目标网段;
所述目标SNAT规则包括的EIP与目的地址转换DNAT EIP互不冲突。
6.一种SNAT装置,包括:
请求接收模块,用于接收用户通过终端发送的SNAT配置请求;其中,所述SNAT配置请求用于对用户当前的SNAT规则进行自定义配置
请求校验模块,用于对所述SNAT配置请求进行合法性校验;
规则更新模块,用于在所述SNAT配置请求通过合法性校验的情况下,根据所述SNAT配置请求中的SNAT自定义规则对所述用户的当前SNAT规则进行更新;
出口IP确定模块,用于根据更新后的SNAT规则确定与所述用户匹配的目标公网出口IP;
通信连接建立模块,用于通过所述目标公网出口IP建立用户资源与外网之间的通信连接;
其中,所述规则更新模块具体用于:
将所述SNAT配置请求包括的目标SNAT规则与所述当前SNAT规则进行对比;
在确定所述目标SNAT规则与所述当前SNAT规则存在区别的情况下,将所述当前SNAT规则更新为所述目标SNAT规则;
其中,所述规则更新模块具体用于:
在所述目标SNAT规则包括多个EIP的情况下,对各所述EIP的连接数进行均衡处理。
7.根据权利要求6所述的装置,其中,所述SNAT配置请求包括创建SNAT规则请求、修改SNAT规则请求、删除SNAT规则请求以及查看SNAT规则请求。
8.根据权利要求6或7所述的装置,其中,所述SNAT配置请求包括SNAT规则参数、SNAT标识参数以及规则动作参数。
9.根据权利要求6或7所述的装置,所述装置还包括:
第一请求响应模块,用于在对所述SNAT配置请求响应成功的情况下,向所述用户返回响应成功参数;
第二请求响应模块,用于在对所述SNAT配置请求响应失败的情况下,向所述用户返回响应失败参数,或不执行返回参数的操作。
10.根据权利要求6所述的装置,其中,所述请求校验模块具体用于:
根据预设IP校验规则,对所述SNAT配置请求中包括的公网出口IP EIP进行合法性校验;
其中,所述预设IP校验规则包括:
所述SNAT配置请求中包括的EIP属于目标网段;
所述SNAT配置请求中包括的EIP与目的地址转换DNAT EIP互不冲突。
11.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的SNAT方法。
12.一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行权利要求1-5中任一项所述的SNAT方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010555573.6A CN111770211B (zh) | 2020-06-17 | 2020-06-17 | 一种snat方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010555573.6A CN111770211B (zh) | 2020-06-17 | 2020-06-17 | 一种snat方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111770211A CN111770211A (zh) | 2020-10-13 |
CN111770211B true CN111770211B (zh) | 2023-04-18 |
Family
ID=72721011
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010555573.6A Active CN111770211B (zh) | 2020-06-17 | 2020-06-17 | 一种snat方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111770211B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113794583B (zh) * | 2021-08-15 | 2023-12-29 | 新华三信息安全技术有限公司 | 配置方法及装置 |
CN114679428A (zh) * | 2022-04-07 | 2022-06-28 | 上海数禾信息科技有限公司 | 在nat规则上新增eip的方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1841164A1 (de) * | 2006-03-29 | 2007-10-03 | Swisscom AG | System, Verfahren und Verbindungseinheit zum dynamischen Konfigurieren von NAT-Routern |
CN110830574A (zh) * | 2019-11-05 | 2020-02-21 | 浪潮云信息技术有限公司 | 一种基于docker容器实现内网负载均衡的方法 |
CN111010459A (zh) * | 2019-12-06 | 2020-04-14 | 紫光云(南京)数字技术有限公司 | 一种解决slb做snat时ip地址冲突的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101227398B (zh) * | 2008-01-31 | 2010-08-18 | 中兴通讯股份有限公司 | 网络地址转换的自动调整应用的系统及方法 |
CN101299772B (zh) * | 2008-06-04 | 2011-05-11 | 中兴通讯股份有限公司 | 网络地址转换优选规则转换处理的系统和方法 |
CN104270464A (zh) * | 2014-10-22 | 2015-01-07 | 西安未来国际信息股份有限公司 | 一种云计算虚拟化网络架构及优化方法 |
CN111193773B (zh) * | 2019-12-06 | 2022-12-09 | 腾讯云计算(北京)有限责任公司 | 负载均衡方法、装置、设备及存储介质 |
-
2020
- 2020-06-17 CN CN202010555573.6A patent/CN111770211B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1841164A1 (de) * | 2006-03-29 | 2007-10-03 | Swisscom AG | System, Verfahren und Verbindungseinheit zum dynamischen Konfigurieren von NAT-Routern |
CN110830574A (zh) * | 2019-11-05 | 2020-02-21 | 浪潮云信息技术有限公司 | 一种基于docker容器实现内网负载均衡的方法 |
CN111010459A (zh) * | 2019-12-06 | 2020-04-14 | 紫光云(南京)数字技术有限公司 | 一种解决slb做snat时ip地址冲突的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111770211A (zh) | 2020-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111327720B (zh) | 一种网络地址转换方法、装置、网关设备及存储介质 | |
CN111741026B (zh) | 一种跨链事务请求处理方法、装置、设备以及存储介质 | |
CN110765024B (zh) | 模拟测试方法、装置、电子设备和计算机可读存储介质 | |
CN111277647B (zh) | 区块链网络成员管理方法、装置、设备和介质 | |
CN111858628B (zh) | 基于数据库的管理方法、平台、电子设备及存储介质 | |
CN109597643A (zh) | 应用灰度发布方法、装置、电子设备及存储介质 | |
CN112437006B (zh) | 基于api网关的请求控制方法、装置、电子设备和存储介质 | |
US10924590B1 (en) | Virtual workspace experience visualization and optimization | |
CN111770211B (zh) | 一种snat方法、装置、电子设备及存储介质 | |
CN112565356B (zh) | 数据存储方法、装置以及电子设备 | |
CN111698346A (zh) | 一种专线网络地址转换方法、装置、专线网关及存储介质 | |
CN111625195A (zh) | 用于服务器扩容的方法及装置 | |
CN111770176B (zh) | 流量调度方法及装置 | |
US11457071B2 (en) | Method and apparatus for communication between private networks, electronic device and storage medium | |
CN111866092B (zh) | 消息传输的方法、装置、电子设备和可读存储介质 | |
CN111352706A (zh) | 一种数据访问方法、装置、设备及存储介质 | |
KR102583532B1 (ko) | 스케줄링 방법, 장치, 기기, 기록 매체 및 컴퓨터 프로그램 | |
CN112084000A (zh) | 容器集群的测试方法和装置 | |
CN113726902B (zh) | 微服务的调用方法、系统、服务器、设备和存储介质 | |
US20200267230A1 (en) | Tracking client sessions in publish and subscribe systems using a shared repository | |
CN111835857B (zh) | 用于访问数据的方法和装置 | |
CN111092876B (zh) | 多主机系统、电子设备、存储介质、用于多主机系统的信息处理方法及装置 | |
CN112165430B (zh) | 数据路由方法、装置、设备以及存储介质 | |
CN111416860B (zh) | 基于区块链的事务处理方法、装置、电子设备和介质 | |
CN113691403A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |