一种地址分配方法、CGN设备及CGN双主系统与流程

文档序号:18968818发布日期:2019-10-28 23:43阅读:510来源:国知局
一种地址分配方法、CGN设备及CGN双主系统与流程

本发明涉及移动通信技术领域,尤其涉及一种地址分配方法、运营商级NAT(CGN,Carrie Grade Network Address Translation)设备及CGN双主系统。



背景技术:

城域网的宽带用户数量巨大,是消耗网络第四版互联网协议(IPv4,Internet Protocol version 4)地址的主力军。面对IPv4地址的枯竭,引入第六版互联网协议(IPv6,Internet Protocol version 6)是网络演进的必然趋势。但是,在IPV4地址耗尽之前,运营商的网络、业务平台、终端以及网络内容服务商(IPC,Internet Content Provider)无法全面支持IPV6,并具备IPV6商用能力。在IPV6过渡期内,为延长IPV4的使用期限,引入CGN技术,从而保证业务的平稳过渡,为IPV6的部署争取了时间。

独立的CGN设备,例如:防火墙,使用网络地址转换(NAT,Network Address Translation)444技术时,目前只支持集中式场景,在分布式场景中CGN设备使用NAT444技术还存在一些问题,其中集中式场景是指仅存在一个CGN设备进行地址转换的场景,分布式场景是指存在多个CGN设备进行地址转换的场景。

但是,在CGN双主场景中,两个CGN设备都具有为私网地址分配公网地址以及端口段的功能,那么,存在如下场景:两个CGN设备接收到来自于同一私网地址的不同数据包,两个CGN设备各自为该私网地址分配公网地址和端口段,那么,该私网地址可以获得两个不同的公网地址以及端口段。

但是,CGN设备为了满足溯源的要求,要求具有同一个源私网地址的数据流无论被分流到CGN双主场景中的哪个CGN设备,该源私网地址所获得的公网地址以及端口段必须是相同的。而上述场景中的情况与溯源相违背,无法保证溯源的一致性。



技术实现要素:

本发明实施例提供了一种地址分配方法、CGN设备及CGN双主系统,用以解决现有技术双主场景中CGN设备无法满足溯源一致性的要求的问题。

第一方面,提供一种地址分配方法,包括:

第一运营商级网络地址转换CGN设备接收第二CGN设备发送的地址分配请求,所述地址分配请求中携带第一私网地址;

所述第一CGN设备在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在所述第一私网地址;

基于所述对应关系中不存在所述第一私网地址的查找结果,所述第一CGN设备为所述第一私网地址分配公网地址以及端口段,并记录所述第一私网地址和分配的公网地址以及端口段的对应关系;以及

向所述第二CGN设备同步所述第一私网地址和分配的公网地址以及端口段的对应关系;

其中,所述第一CGN设备为CGN双主场景中预先设定的用于为私网地址分配公网地址以及端口段的设备,所述第二CGN设备为CGN双主场景中预先设定的不为私网地址分配公网地址以及端口段的设备。

结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:所述第一CGN设备获得第一待发送报文;在所述对应关系中查找是否存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段;基于所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,所述第一CGN设备从查找到的端口段的第一端口集中确定尚未分配的端口;并将所述第一待发送报文的源地址替换为查找到的公网地址,以及将所述第一待发送报文的源端口替换为确定的端口,生成修改后的报文,并发送所述修改后的报文;其中,按照预设划分规则将所述端口段划分为第二端口集和所述第一端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

结合第一方面,在第一方面的第二种可能的实现方式中,向所述第二CGN设备同步所述第一私网地址和分配的公网地址以及端口段的对应关系,具体包括:从为所述第一私网地址分配的端口段中确定第一端口集和第二端口集,其中,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复;向所述第二CGN设备同步所述第一私网地址和分配的公网地址以及端口段的对应关系、以及所述第二端口集。

结合第一方面,或者结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:第一CGN设备接收网络地址转换NAT转换设备发送的第二待发送报文;在所述对应关系中查找是否存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段;基于所述对应关系中不存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段的查找结果,为所述第二待发送报文的源地址分配公网地址以及端口段;从为所述第二待发送报文的源地址分配的端口段中确定第一端口集和第二端口集;向所述第二CGN设备同步所述第二待发送报文的源地址和分配的公网地址以及端口段的对应关系、以及所述第二端口集。

结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,基于所述对应关系中存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段的查找结果,所述方法还包括:从查找到的端口段的第一端口集中确定尚未分配的端口;将所述第二待发送报文的源地址替换为查找到的公网地址,以及将所述第二待发送报文的源端口替换为确定的端口,生成修改后的报文,并发送所述修改后的报文。

第二方面,提供一种地址分配方法,包括:

第二运营商级网络地址转换CGN设备接收网络地址转换NAT转换设备发送的第一待发送报文;

在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段;

基于所述对应关系中不存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,所述第二CGN设备向第一CGN设备发送地址分配请求,其中,所述地址分配请求携带所述第一待发送报文的源地址;

接收所述第一CGN设备发送的所述第一待发送报文的源地址和公网地址以及端口段三者的对应关系;

其中,所述第一CGN设备为CGN双主场景中预先约定的用于为私网地址分配公网地址以及端口段的设备,所述第二CGN设备为CGN双主场景中预先约定的不为私网地址分配公网地址以及端口段的设备。

结合第二方面,在第二方面的第一种可能的实现方式中,基于所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,所述方法还包括:所述第二CGN设备从查找到的端口段的第二端口集中确定尚未分配的端口;并将所述第一待发送报文的源地址替换为查找到的公网地址,以及将所述第一待发送报文的源端口替换为确定的端口,生成修改后的报文,并发送所述修改后的报文;其中,按照预设划分规则将所述端口段划分为第一端口集和第二端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

结合第二方面,在第二方面的第二种可能的实现方式中,接收所述第一CGN设备发送的所述第一待发送报文的源地址和分配的公网地址以及端口段的对应关系,具体包括:接收所述第一CGN设备发送的所述第一待发送报文的源地址和公网地址以及端口段的对应关系,以及所述第一CGN设备从所述端口段中确定的第二端口集,其中,所述第一CGN设备将所述端口段划分为第一端口集和第二端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述方法还包括:接收所述第一CGN设备发送的其他私网地址和公网地址以及端口段的对应关系,以及所述第一CGN设备从所述端口段中确定的第二端口集,其中,所述其他私网地址为所述第一CGN设备接收的NAT转换设备发送的报文的源地址。

结合第二方面的第二种可能的实现方式,或者结合第二方面的第三中可能的实现方式,在第二方面的第四种可能的实现方式中,基于所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,所述方法还包括:所述第二CGN设备从查找到的端口段的第二端口集中确定尚未分配的端口;将所述第一待发送报文的源地址替换为查找到的公网地址,以及将所述第一待发送报文的源端口替换为确定的端口,生成修改后的报文,并发送所述修改后的报文。

第三方面,提供一种CGN设备,作为第一CGN设备,包括:

接收模块,用于接收第二CGN设备发送的地址分配请求,所述地址分配请求中携带第一私网地址;

查找模块,用于在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在所述接收模块接收的第一私网地址;

分配模块,用于基于所述查找模块得到的所述对应关系中不存在所述第一私网地址的查找结果,为所述第一私网地址分配公网地址以及端口段,并记录所述第一私网地址和分配的公网地址以及端口段的对应关系;

发送模块,用于向所述第二CGN设备同步所述第一私网地址和所述分配模块分配的公网地址以及端口段的对应关系;

其中,本CGN设备为CGN双主场景中预先设定的用于为私网地址分配公网地址以及端口段的设备,所述第二CGN设备为CGN双主场景中预先设定的不为私网地址分配公网地址以及端口段的设备。

结合第三方面,在第三方面的第一种可能的实现方式中,还包括:获得模块和端口确定模块;所述获得模块,用于获得第一待发送报文;所述查找模块,还用于在所述对应关系中查找是否存在为所述获得模块获得的第一待发送报文的源地址对应分配的公网地址以及端口段;所述端口确定模块,用于基于所述查找模块得到的所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从所述查找模块查找到的端口段的第一端口集中确定尚未分配的端口;并所述发送模块,还用于将所述第一待发送报文的源地址替换为所述查找模块查找到的公网地址,以及将所述第一待发送报文的源端口替换为所述端口确定模块确定的端口,生成修改后的报文,并发送所述修改后的报文;其中,按照预设划分规则将所述端口段划分为第二端口集和所述第一端口集,所述第一端口集是供本CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

结合第三方面,在第三方面的第二种可能的实现方式中,所述分配模块,还用于从为所述第一私网地址分配的端口段中确定第一端口集和第二端口集,其中,所述第一端口集是供本CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复;所述发送模块,具体用于向所述第二CGN设备同步所述第一私网地址和所述分配模块分配的公网地址以及端口段的对应关系、以及确定的所述第二端口集。

结合第三方面,或者结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,所述接收模块,还用于接收网络地址转换NAT转换设备发送的第二待发送报文;所述查找模块,还用于在所述对应关系中查找是否存在为所述接收模块接收的第二待发送报文的源地址对应分配的公网地址以及端口段;所述分配模块,还用于基于所述查找模块得到的所述对应关系中不存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段的查找结果,为所述第二待发送报文的源地址分配公网地址以及端口段;以及从为所述第二待发送报文的源地址分配的端口段中确定第一端口集和第二端口集;所述发送模块,还用于向所述第二CGN设备同步所述第二待发送报文的源地址和所述分配模块分配的公网地址以及端口段的对应关系、以及所述第二端口集。

结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,还包括:端口确定模块;所述端口确定模块,用于基于所述查找模块得到的所述对应关系中存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从所述查找模块查找到的端口段的第一端口集中确定尚未分配的端口;所述发送模块,还用于将所述第二待发送报文的源地址替换为所述查找模块查找到的公网地址,以及将所述第二待发送报文的源端口替换为所述端口确定模块确定的端口,生成修改后的报文,并发送所述修改后的报文。

第四方面,提供一种CGN设备,作为第二CGN设备,包括:

接收模块,用于接收网络地址转换NAT转换设备发送的第一待发送报文;

查找模块,用于在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在为所述接收模块接收的第一待发送报文的源地址对应分配的公网地址以及端口段;

发送模块,用于基于所述查找模块得到的所述对应关系中不存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,向第一CGN设备发送地址分配请求,其中,所述地址分配请求携带所述第一待发送报文的源地址;

所述接收模块,还用于接收所述第一CGN设备针对所述发送模块发送的地址分配请求发送的所述第一待发送报文的源地址和公网地址以及端口段三者的对应关系;

其中,所述第一CGN设备为CGN双主场景中预先约定的用于为私网地址分配公网地址以及端口段的设备,本CGN设备为CGN双主场景中预先约定的不为私网地址分配公网地址以及端口段的设备。

结合第四方面,在第四方面的第一种可能的实现方式中,还包括:端口确定模块;所述端口确定模块,用于基于所述查找模块得到的所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从所述查找模块查找到的端口段的第二端口集中确定尚未分配的端口;所述发送模块,还用于将所述第一待发送报文的源地址替换为所述查找模块查找到的公网地址,以及将所述第一待发送报文的源端口替换为所述端口确定模块确定的端口,生成修改后的报文,并发送所述修改后的报文;其中,按照预设划分规则将所述端口段划分为第一端口集和第二端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供本CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

结合第四方面,在第四方面的第二种可能的实现方式中,所述接收模块,具体用于接收所述第一CGN设备发送的所述第一待发送报文的源地址和公网地址以及端口段的对应关系,以及所述第一CGN设备从所述端口段中确定的第二端口集,其中,所述第一CGN设备将所述端口段划分为第一端口集和第二端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供本CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

结合第四方面的第二种可能的方式,在第四方面的第三种可能的实现方式中,所述接收模块,还用于接收所述第一CGN设备发送的其他私网地址和公网地址以及端口段的对应关系,以及所述第一CGN设备从所述端口段中确定的第二端口集,其中,所述其他私网地址为所述第一CGN设备接收的NAT转换设备发送的报文的源地址。

结合第四方面的第二种可能的方式,或者结合第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,还包括:端口确定模块;所述端口确定模块,用于基于所述查找模块得到的所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从所述查找模块查找到的端口段的第二端口集中确定尚未分配的端口;所述发送模块,还用于将所述第一待发送报文的源地址替换为所述查找模块查找到的公网地址,以及将所述第一待发送报文的源端口替换为所述端口确定模块确定的端口,生成修改后的报文,并发送所述修改后的报文。

第五方面,提供一种CGN双主系统,包括:第三方面或者第三方面的任意一种可能的实现方式所述的CGN设备,以及第四方面或者第四方面的任意一种可能的实现方式所述的CGN设备。

第六方面、提供一种CGN设备,作为第一CGN设备,包括:

网络接口,用于接收第二CGN设备发送的地址分配请求,所述地址分配请求中携带第一私网地址;

处理器,用于在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在所述网络接口接收的第一私网地址;基于所述对应关系中不存在所述第一私网地址的查找结果,为所述第一私网地址分配公网地址以及端口段,并记录所述第一私网地址和分配的公网地址以及端口段的对应关系;

网络接口,还用于向所述第二CGN设备同步所述第一私网地址和所述处理器分配的公网地址以及端口段的对应关系;

其中,本CGN设备为CGN双主场景中预先设定的用于为私网地址分配公网地址以及端口段的设备,所述第二CGN设备为CGN双主场景中预先设定的不为私网地址分配公网地址以及端口段的设备。

结合第六方面,在第六方面的第一种可能的实现方式中,所述网络接口,还用于获得第一待发送报文;所述处理器,还用于在所述对应关系中查找是否存在为所述网络接口获得的第一待发送报文的源地址对应分配的公网地址以及端口段;基于所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从查找到的端口段的第一端口集中确定尚未分配的端口;所述网络接口,还用于将所述第一待发送报文的源地址替换为处理器查找到的公网地址,以及将所述第一待发送报文的源端口替换为处理器确定的端口,生成修改后的报文,并发送所述修改后的报文;其中,按照预设划分规则将所述端口段划分为第二端口集和所述第一端口集,所述第一端口集是供本CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

结合第六方面,在第六方面的第二种可能的实现方式中,所述处理器,还用于从为所述第一私网地址分配的端口段中确定第一端口集和第二端口集,其中,所述第一端口集是供本CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复;所述网络接口,具体用于向所述第二CGN设备同步所述第一私网地址和所述处理器分配的公网地址以及端口段的对应关系、以及确定的所述第二端口集。

结合第六方面,或者结合第六方面的第二种可能的实现方式,在第六方面的第三种可能的实现方式中,所述网络接口,还用于接收网络地址转换NAT转换设备发送的第二待发送报文;所述处理器,还用于在所述对应关系中查找是否存在为所述网络接口接收的第二待发送报文的源地址对应分配的公网地址以及端口段;基于所述对应关系中不存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段的查找结果,为所述第二待发送报文的源地址分配公网地址以及端口段;以及从为所述第二待发送报文的源地址分配的端口段中确定第一端口集和第二端口集;所述网络接口,还用于向所述第二CGN设备同步所述第二待发送报文的源地址和所述处理器分配的公网地址以及端口段的对应关系、以及所述第二端口集。

结合第六方面的第三种可能的实现方式,在第六方面的第四种可能的实现方式中,所述处理器,还用于基于所述对应关系中存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从查找到的端口段的第一端口集中确定尚未分配的端口;所述网络接口,还用于将所述第二待发送报文的源地址替换为所述处理器查找到的公网地址,以及将所述第二待发送报文的源端口替换为所述处理器确定的端口,生成修改后的报文,并发送所述修改后的报文。

第七方面,提供一种CGN设备,作为第二CGN设备,包括:

网络接口,用于接收网络地址转换NAT转换设备发送的第一待发送报文;

处理器,用于在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在为所述网络接口接收的第一待发送报文的源地址对应分配的公网地址以及端口段;

网络接口,还用于基于所述处理器得到的所述对应关系中不存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,向第一CGN设备发送地址分配请求,其中,所述地址分配请求携带所述第一待发送报文的源地址;

所述网络接口,还用于接收所述第一CGN设备针对所述网络接口发送的所述地址分配请求发送的所述第一待发送报文的源地址和公网地址以及端口段三者的对应关系;

其中,所述第一CGN设备为CGN双主场景中预先约定的用于为私网地址分配公网地址以及端口段的设备,本CGN设备为CGN双主场景中预先约定的不为私网地址分配公网地址以及端口段的设备。

结合第七方面,在第七方面的第一种可能的实现方式中,所述处理器,还用于基于所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从查找到的端口段的第二端口集中确定尚未分配的端口;所述网络接口,还用于将所述第一待发送报文的源地址替换为所述处理器查找到的公网地址,以及将所述第一待发送报文的源端口替换为所述处理器确定的端口,生成修改后的报文,并发送所述修改后的报文;其中,按照预设划分规则将所述端口段划分为第一端口集和第二端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供本CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

结合第七方面,在第七方面的第二种可能的实现方式中,所述网络接口,具体用于接收所述第一CGN设备发送的所述第一待发送报文的源地址和公网地址以及端口段的对应关系,以及所述第一CGN设备从所述端口段中确定的第二端口集,其中,所述第一CGN设备将所述端口段划分为第一端口集和第二端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供本CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

结合第七方面的第二种可能的方式,在第七方面的第三种可能的实现方式中,所述网络接口,还用于接收所述第一CGN设备发送的其他私网地址和公网地址以及端口段的对应关系,以及所述第一CGN设备从所述端口段中确定的第二端口集,其中,所述其他私网地址为所述第一CGN设备接收的NAT转换设备发送的报文的源地址。

结合第七方面的第二种可能的方式,或者结合第七方面的第三种可能的实现方式,在第七方面的第四种可能的实现方式中,所述处理器,还用于基于所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从所述查找模块查找到的端口段的第二端口集中确定尚未分配的端口;所述网络接口,还用于将所述第一待发送报文的源地址替换为所述处理器查找到的公网地址,以及将所述第一待发送报文的源端口替换为所述处理器确定的端口,生成修改后的报文,并发送所述修改后的报文。

第八方面、提供一种CGN双主系统,包括:第六方面或者第六方面的任意一种可能的实现方式所述的CGN设备,以及上第七方面或者第七方面的任意一种可能的实现方式所述的CGN设备。

本发明实施例的有益效果包括:

本发明实施例提供的一种地址分配方法、CGN设备及CGN双主系统,包括:在CGN双主场景中,预先约定将第一CGN设备确定为用于为私网地址进行公网地址以及端口段分配的设备,将第二CGN设备确定为不为私网地址进行公网地址以及端口段分配的设备。当第二CGN设备接收到NAT转换设备发送的第一待发送报文时,在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在第一待发送报文的源地址;基于上述对应关系中不存在第一待发送报文的源地址的查找结果,第二CGN设备向第一CGN设备发送地址分配请求;当第一CGN设备接收到地址分配请求时,在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在地址分配请求中携带的第一私网地址;基于上述对应关系中不存在第一私网地址的查找结果,第一CGN设备为第一私网地址分配公网地址以及端口段,并记录第一私网地址和分配的公网地址以及端口段的对应关系;向第二CGN设备同步第一私网地址和分配的公网地址以及端口段的对应关系。本发明实施例提供的地址分配方法,在CGN双主场景的两个CGN设备中,确定其中一个CGN设备(第一CGN设备)用于为私有地址进行公网地址以及端口段分配,另一个CGN设备(第二CGN设备)不为私有地址进行公网地址以及端口段分配,避免了两个CGN设备在没有来得及同步的前提下,为同一个私网地址分配不同的公网地址以及端口段,使得一个私网地址只能分配一个公网地址以及一个端口段,保证了溯源的一致性,避免了公网地址资源以及端口资源的浪费。

附图说明

图1为本发明实施例提供的CGN双主场景中CGN设备使用NAT444技术场景示意图;

图2为本发明实施例提供的一种地址分配方法,应用于第一CGN设备侧的流程图;

图3为本发明实施例提供的一种地址分配方法,应用于第二CGN设备侧的流程图;

图4为本发明实施例1提供的一种地址分配方法,应用于第一CGN设备侧的流程图;

图5为本发明实施例2提供的一种地址分配方法,应用于第二CGN设备侧的流程图;

图6为本发明实施例3提供的一种地址分配方法,应用于第一CGN设备侧的流程图;

图7为本发明实施例4提供的一种地址分配方法,应用于第二CGN设备侧的流程图;

图8为本发明实施例提供的地址分配方法数据流示意图之一;

图9为本发明实施例提供的地址分配方法数据流示意图之二;

图10为本发明实施例提供的CGN设备之一的结构示意图;

图11为本发明实施例提供的CGN设备之二的结构示意图;

图12为本发明实施例提供的CGN设备之三的结构示意图;

图13为本发明实施例提供的CGN设备之四的结构示意图。

具体实施方式

本发明实施例提供了一种地址分配方法、CGN设备及CGN双主系统,以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

图1为现有技术CGN双主场景中CGN设备使用NAT444技术场景示意图。在图1所示的场景中,终端设备1和终端设备2通过路由设备1接入网络,终端设备3和终端设备4通过路由设备2接入网络,终端设备1和终端设备2通过用户接入设备1(CPE,Customer Premises Equipment)利用NAT44技术完成第一层IP地址的转换,终端设备3和终端设备4通过CPE2利用NAT44技术完成第一层IP地址的转换,即将多个终端的地址转换成一个私网地址,并且将以该私网地址为源地址的报文传输给CGN设备A或者CGN设备B。

现有技术中,CGN设备A和CGN设备B可以按照下述方式为私网地址分配公网地址和端口段:CGN设备A或者CGN设备B接收到以私网地址为源地址的报文之后,查找存储的用户表,其中用户表中的表项用于存储私网地址和对应的为该私网地址分配的公网地址以及端口段,判断是否已经为该私网地址分配了公网地址,若查找到相关表项,则将该报文的源地址替换为查找到的表项中记录的为该私网地址分配的公网地址,以及将该报文的源端口替换为已为该私网地址分配的端口段中尚未分配的端口号,将替换后得到的报文发送出去;若未查找到相关表项,则为该私网地址分配公网地址以及端口段,并将该私网地址以及分配的公网地址以及端口段存储到用户表中,以便当需要发送以该私有地址为源地址的报文时,从为该私有地址分配的端口段中确定尚未分配的端口,并将该报文的源地址替换为分配的公网地址,以及将该报文的源端口替换为确定的端口,将替换后得到的报文发送出去。

基于上述CGN双主场景,本发明实施例提供一种地址分配方法,应用于第一CGN设备侧,如图2所示,包括:

S201、第一CGN设备接收第二CGN设备发送的地址分配请求,

其中,该地址分配请求中携带第一私网地址。

S202、第一CGN设备在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在S201中接收的第一私网地址。

S203、基于上述对应关系中不存在第一私网地址的查找结果,第一CGN设备为第一私网地址分配公网地址以及端口段,并记录第一私网地址和分配的公网地址以及端口段的对应关系。

S204、向第二CGN设备同步第一私网地址和分配的公网地址以及端口段的对应关系。

与上述图2所示方法相应的,本发明实施例还提供一种地址分配方法,应用于第二CGN设备侧,如图3所示,包括:

S301、第二CGN设备接收NAT转换设备发送的第一待发送报文。

S302、在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在为S301中接收的第一待发送报文的源地址对应分配的公网地址以及端口段。

S303、基于上述对应关系中不存在为第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,第二CGN设备向第一CGN设备发送地址分配请求,

其中,地址分配请求用于请求为第一待发送报文的源地址对应分配的公网地址以及端口段。

S304、接收第一CGN设备发送的第一待发送报文的源地址和分配的公网地址以及端口段的对应关系。

进一步地,第一CGN设备为CGN双主场景中预先约定的用于为私网地址分配公网地址以及端口段的设备,第二CGN设备为CGN双主场景中预先约定的不为私网地址分配公网地址以及端口段的设备,而仅是为已分配公网地址和端口段的私网地址映射分配的公网地址和分配的端口段中尚未使用的端口号。如图1所示,在现有技术提供的地址分配方法中,CGN设备A和CGN设备B从功能上看并无差别,二者均具有为私网地址分配公网地址和地址段的功能,采用本发明实施例提供的地址分配方法,当CGN设备A是用于为私网地址分配公网地址以及端口段的设备,CGN设备B不是为私网地址分配公网地址以及端口段的设备时,可以将CGN设备A作为本发明实施例中提供的第一CGN设备,将CGN设备B作为本发明实施例中提供的第二CGN设备;当CGN设备B是用于为私网地址分配公网地址以及端口段的设备,CGN设备A不是为私网地址分配公网地址以及端口段的设备时,可以将CGN设备B作为本发明实施例中提供的第一CGN设备,将CGN设备A作为本发明实施例中提供的第二CGN设备。也就是说,采用本发明实施例提供的地址分配方法,CGN设备A和CGN设备B中只有作为第一CGN设备的CGN设备才能为私网地址分配公网地址和端口段,这样,CGN设备A和CGN设备B不会为相同私网地址分配不同的公网地址和端口段,满足溯源一致性的要求,并且避免了资源的浪费。

下面结合附图,用具体实施例对本发明提供的方法及相关设备进行详细描述。

实施例1:

本发明实施例1中,提供一种地址分配方法,应用于第一CGN设备侧,在实施例1中,第一CGN设备和第二CGN设备具有互不重复的各自用来为私网地址映射端口的端口集,且端口集的划分通过预先划分的形式实现。如图4所示,具体包括如下步骤:

S401、第一CGN设备接收第二CGN设备发送的地址分配请求,其中,地址分配请求中携带第一私网地址。

S402、第一CGN设备在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在S401中接收的第一私网地址,若存在,则进入步骤S404,若不存在,进入步骤S403。

进一步地,私网地址、公网地址以及端口段三者的对应关系可以记录在用户表中,本步骤中,可以从用户表中查找该第一私网地址。

S403、第一CGN设备为第一私网地址分配公网地址以及端口段,并记录第一私网地址和分配的公网地址以及端口段的对应关系。

进一步地,基于在私网地址、公网地址以及端口段三者的对应关系中未查找到第一私网地址的查找结果,执行本步骤,可以将第一私网地址和分配的公网地址以及端口段的对应关系记录到用户表中。

进一步地,当第一CGN设备接收到NAT转换设备(可以为利用NAT44技术完成第一层IP地址的转换的设备,例如:CPE设备)发送的源地址为私网地址的报文时,执行与S401~S403类似的步骤,包括:在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在该源地址;基于上述对应关系中不存在该源地址的查找结果,为该源地址分配公网地址以及端口段,并记录该源地址和分配的公网地址以及端口段的对应关系;以及向第二CGN设备同步该源地址和对应的分配的公网地址以及端口段的对应关系。

S404、向第二CGN设备同步第一私网地址和分配的公网地址以及端口段的对应关系。

进一步地,本步骤中,可以按照预设同步规则向第二CGN设备同步分配的公网地址以及端口段。例如,可以每为一个私网地址分配了公网地址和端口段之后就向第二CGN设备同步,或者为预设个数个私网地址分配了公网地址和端口段之后再向第二CGN设备同步,或者按照预设同步周期,当同步周期到来时,向第二CGN设备同步本周期内分配的公网地址和端口段及其对应的私网地址。

S405、第一CGN设备获得第一待发送报文。

进一步地,本步骤中,第一CGN设备可以通过NAT转换设备获得第一待发送报文,即NAT转换设备可以向第一CGN设备发送第一待发送报文。

S406、在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在为第一待发送报文的源地址对应分配的公网地址以及端口段,若存在,进入步骤S409,若不存在,进入步骤S407。

S407、为第一待发送报文的源地址分配公网地址以及端口段,并记录第一待发送报文的源地址和分配的公网地址以及端口段的对应关系。

S408、向第二CGN设备同步第一待发送报文的源地址和分配的公网地址以及端口段的对应关系。

S409、第一CGN设备从查找到的端口段的第一端口集中确定尚未分配的端口;

其中,按照预设划分规则将端口段划分为第一端口集和第二端口集,第一端口集是供第一CGN设备进行端口分配的端口集,第二端口集是供第二CGN设备进行端口分配的端口集,第一端口集和第二端口集中的端口标识互不重复。

进一步地,不管是为NAT转换设备发送的报文的源地址(私网地址)分配的端口段,还是为第二CGN设备发送的第一私网地址分配的端口段,针对分配给所有私网地址的端口段,均需要按照预设划分规则将该端口段划分为互不重复的端口集,第一CGN设备和第二CGN设备能使用各自对应的端口集中的端口进行端口分配。

现有技术中存在如下使用场景:假设私网IP地址1.1.1.1已经获得了端口段资源[2048~2304],并且在主CGN设备和从CGN设备上的用户表中均对私网IP地址1.1.1.1的映射关系进行了记录。来自CPE设备的数据流1.1.1.1:80-->baidu.com被分流到主CGN设备,主CGN设备为该数据流分配公网IP地址10.1.1.1及端口资源2050,即映射关系为1.1.1.1:80[10.1.1.1:2050]--→baidu.com。在该资源分配信息被同步到从CGN设备之前,存在另一数据流1.1.1.1:90-→baidu.com被分流到从CGN设备,从CGN设备也可能为该数据流分配与主CGN设备分配的资源相同的资源,即公网IP地址10.1.1.1及端口资源2050,那么得到的映射关系为1.1.1.1:90[10.1.1.1:2050]--→baidu.com。

在上述使用场景中,出现了公网地址以及端口重叠的情况,使得回程的报文再转换成私网IP地址时出现混乱,也就是说,当接收到来自10.1.1.1:2050的报文时,无法确定将该报文转发给1.1.1.1:80,还是转发给1.1.1.1:90,无法保证回程报文的正确转发。本发明实施例提供的地址分配方法,按照预设划分规则将为私有地址分配端口段划分为的互不重复的、且分别供第一CGN设备以及第二CGN设备进行端口分配的端口集,使得第一CGN设备和第二CGN设备不会为私网地址映射重叠的公网地址以及端口,保证了回程报文的正确转发。

进一步地,预设划分规则可以根据实际情况进行设置,并且与第一CGN设备以及第二CGN设备均预先约定,使得第一CGN设备和第二CGN设备均知晓自身对应的端口段中的部分。例如:可以将端口段分成端口号连续的前后两段,使前一段供第一CGN设备进行分配,后一段供第二CGN设备进行分配,或者使后一段供第二CGN设备进行分配,前一段供第一CGN设备进行分配,例如:对于端口段[2049~2304],使[2049~2177]供第一CGN设备进行分配,[2178~2304]供第二CGN设备进行分配;或者,可以使端口段中奇数端口号供第一CGN设备进行分配,偶数端口号供第二CGN设备进行分配,或者使端口段中偶数端口号供第一CGN设备进行分配,奇数端口号供第二CGN设备进行分配等。

S410、将第一待发送报文的源地址替换为第一待发送报文的源地址对应的公网地址,将第一待发送报文的源端口替换为S409确定的端口,生成修改后的报文,并发送该修改后的报文。

进一步地,基于在上述对应关系中存在第一待发送报文的源地址的结果,第一待发送报文的源地址对应的端口段可以为查找到的端口段,第一待发送报文的源地址对应的公网地址可以为查找到的公网地址,基于在上述对应关系中不存在第一待发送报文的源地址的结果,第一待发送报文的源地址对应的端口段可以为分配的端口段,第一待发送报文的源地址对应的公网地址可以为分配的公网地址。

步骤S401~步骤S404的执行与步骤S405~步骤S410的执行没有严格的先后顺序,以及步骤S407~步骤S408的执行与步骤S409~步骤S410的执行没有严格的先后顺序。

实施例2:

与实施例1相应地,本发明实施例2中,提供一种地址分配方法,应用于第二CGN设备侧,在实施例2中,如图5所示,具体包括如下步骤:

S501、第二CGN设备接收NAT转换设备发送的第一待发送报文。

S502、在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在为S501中接收的第一待发送报文的源地址对应分配的公网地址以及端口段,若不存在,则进入步骤S503,若存在,进入步骤S505。

S503、第二CGN设备向第一CGN设备发送地址分配请求,

其中,地址分配请求用于请求为第一待发送报文的源地址对应分配的公网地址以及端口段。

进一步地,本步骤中,当第二CGN设备未查找到第一待发送报文的源地址对应的公网地址和端口段时,可能是第一CGN设备为第一待发送报文的源地址分配了公网地址以及端口段但尚未向第二CGN设备同步,也可能是第一CGN设备尚未为第一待发送报文的源地址分配公网地址以及端口段,由于第二CGN设备不能为私网地址分配公网地址以及端口段,因此,第二CGN设备需要向第一CGN设备发送地址分配请求,若第一CGN设备已经为该私网地址分配了公网地址以及端口段,只是尚未向第二CGN设备同步,则第一CGN设备可以向第二CGN设备同步分配的公网地址和端口段,若第一CGN设备未为该私网地址分配公网地址以及端口段,则第一CGN设备为该私网地址分配公网地址以及端口段,并向第二CGN设备同步分配的公网地址和端口段。

现有技术中存在如下使用场景:假设预分配的端口段长度为256,即端口被预分配为如下端口段形式:[2049~2304],[2305~2561],……,[65279~65535]。假设来自CPE1的数据流192.1.1.2:80--→sina.com被分流到CGN设备A,并且在CGN设备A的用户表中没有查到192.1.1.2这个私网IP地址,也就是说该私网IP地址是首次上线,还没有为该私网IP地址分配公网IP地址以及端口段,CGN设备A可以为该私网IP地址分配公网IP地址10.1.1.1以及公网端口段[1029~2304]。在CGN设备A将该端口段资源分配给该私网IP地址之后,尚未将刚分配的信息同步到CGN设备B,这时CGN设备B可能收到来自CPE2的192.1.1.2:90--→sohu.com数据包,又由于192.168.1.1.2在CGN设备B上也是首次登陆,CGN设备B的用户表中也没有查到192.1.1.2这个私网IP地址,同样CGN设备B需要为该私网IP地址分配公网地址以及端口段资源。CGN设备B可以为该私网IP地址分配公网IP地址10.1.1.2以及公网端口段[2305~2561]。

在上述使用场景中,私网IP地址192.1.1.2获得了两个不同的公网IP地址以及端口段资源,无法保证溯源的一致性,并且上述使用场景中的情况也造成了公网地址资源以及端口资源的浪费。本发明实施例提供的地址分配方法,CGN设备A和CGN设备B中仅作为第一CGN设备的CGN设备才能为私网地址分配公网地址和端口段,而作为第二CGN设备的CGN设备当接收到以私网地址为源地址的报文,并且在自身存储的用户表中未查找到为该私网地址分配的公网地址以及端口段时,可以向第一CGN设备发送地址分配请求,请求第一CGN设备为该私网地址分配公网地址和端口段,并将分配的公网地址和端口段同步给第二CGN设备,保证不会为相同私网地址分配不同的公网地址和端口段,满足溯源一致性的要求以及避免资源的浪费。

S504、接收第一CGN设备发送的第一待发送报文的源地址和分配的公网地址以及端口段的对应关系。

S505、第二CGN设备从第一待发送报文的源地址对应的端口段的第二端口集中确定尚未分配的端口。

进一步地,第二CGN设备在CGN双主场景中不为私网地址分配公网地址以及端口段,但是需要为接收到的报文的源地址(私网地址)映射公网地址,为接收到的报文的源端口映射分配的端口集中的端口。

S506、将第一待发送报文的源地址替换为第一待发送报文的源地址对应的公网地址,将第一待发送报文的源端口替换为S505中确定的端口,生成修改后的报文,并发送该修改后的报文。

进一步地,本实施例中,在第一CGN设备接收到NAT转换设备发送的报文,且在为该报文的源地址分配了公网地址和端口段之后,还包括:第二CGN设备接收第一CGN设备发送的该私有地址以及对应的公网地址和端口段,并且根据预设划分规则,第二CGN设备能够确定端口段中供自身进行分配的第二端口集。

实施例3:

本发明实施例3中,提供一种地址分配方法,应用于第一CGN设备侧,在实施例3中,第一CGN设备和第二CGN设备具有互不重复的各自用来为私网地址映射端口的端口集,且端口集的划分由第一CGN设备确定。如图6所示,具体包括如下步骤:

S601、第一CGN设备接收第二CGN设备发送的地址分配请求,

其中,地址分配请求中携带第一私网地址。

S602、第一CGN设备在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在S601中接收的地址分配请求中携带的第一私网地址,若存在,则进入步骤S605,若不存在,进入步骤S603。

S603、第一CGN设备为第一私网地址分配公网地址以及端口段,并记录第一私网地址和分配的公网地址以及端口段的对应关系。

S604、从为第一私网地址分配的端口段中确定第一端口集和第二端口集,

其中,第一端口集是供第一CGN设备进行端口分配的端口集,第二端口集是供第二CGN设备进行端口分配的端口集,第一端口集和第二端口集中的端口标识互不重复。

S605、向第二CGN设备同步第一私网地址和分配的公网地址以及端口段的对应关系、以及第二端口集。

S606、第一CGN设备接收NAT转换设备发送的第二待发送报文。

S607、在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在为S606中接收的第二待发送报文的源地址对应分配的公网地址以及端口段,若存在,进入步骤S611,若不存在,进入步骤S608。

S608、为S606中接收的第二待发送报文的源地址分配公网地址以及端口段。

S609、从S608中为第二待发送报文的源地址分配的端口段中确定第一端口集和第二端口集。

S610、向第二CGN设备同步第二待发送报文的源地址和分配的公网地址以及端口段的对应关系、以及第二端口集。

进一步地,不管是为NAT转换设备发送的报文的源地址(私网地址)分配的端口段,还是为第二CGN设备发送的待分配私网地址分配的端口段,针对分配给所有私网地址的端口段,均需要按照预设划分规则将该端口段划分为互不重复的端口集,第一CGN设备和第二CGN设备能使用各自对应的端口集中的端口进行端口分配。

进一步地,第一CGN设备可以按照预设划分规则将端口段划分成互不重复的端口集,并将为第二CGN设备分配的端口集发送给第二CGN设备。例如:可以将端口段分成端口号连续的前后两段,使前一段供第一CGN设备进行分配,后一段供第二CGN设备进行分配,或者使后一段供第二CGN设备进行分配,前一段供第一CGN设备进行分配,例如:对于端口段[2049~2304],使[2049~2177]供第一CGN设备进行分配,[2178~2304]供第二CGN设备进行分配;或者,可以使端口段中奇数端口号供第一CGN设备进行分配,偶数端口号供第二CGN设备进行分配,或者使端口段中偶数端口号供第一CGN设备进行分配,奇数端口号供第二CGN设备进行分配等。具体端口集的划分方式在这里难以一一列举,只要保证端口集互不重复即可。

进一步地,步骤S605和步骤S608中可以按照预设同步规则将分配的公网地址以及端口段、以及第一CGN设备确定的供第二CGN设备映射的端口集同步给第二CGN设备。例如,可以每为一个待分配私网地址分配了公网地址和端口段之后就同步给第二CGN设备,或者为预设个数个私网地址分配了公网地址和端口段之后再同步给第二CGN设备,或者按照预设同步周期,当同步周期到来时,将本周期内分配的公网地址和端口段及其对应的私网地址同步给第二CGN设备。也就是说,步骤S605和步骤S608中的同步的执行可以为在两次同步过程中完成的,也可以为在一次同步过程中完成的。

进一步地,步骤S601~步骤S605的执行与步骤S606~步骤S608的执行没有严格的先后顺序。

S611、从第二待发送报文的源地址对应的端口段的第一端口集中确定尚未分配的端口。

S612、将第二待发送报文的源地址替换为第二待发送报文的源地址对应的公网地址,以及将第二待发送报文的源端口替换为S611中确定的端口,生成修改后的报文,并发送该修改后的报文。

进一步地,基于在上述对应关系中存在第二待发送报文的源地址的结果,第二待发送报文的源地址对应的端口段可以为查找到的端口段,第二待发送报文的源地址对应的公网地址可以为查找到的公网地址,基于在上述对应关系中不存在第二待发送报文的源地址的结果,第二待发送报文的源地址对应的端口段可以为分配的端口段,第二待发送报文的源地址对应的公网地址可以为分配的公网地址。

进一步地,步骤S601~步骤S605,与步骤S606~步骤S612的执行没有严格的先后顺序,以及步骤S608~步骤S610与步骤S611~步骤S612的执行没有严格的先后顺序。

实施例4:

与实施例3相应地,本发明实施例4中,提供一种地址分配方法,应用于第二CGN设备侧,在实施例4中,如图7所示,具体包括如下步骤:

S701、第二CGN设备接收NAT转换设备发送的第一待发送报文。

S702、在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在为S701中接收的第一待发送报文的源地址对应分配的公网地址以及端口段,若不存在,则进入步骤S703,若存在,进入步骤S705。

S703、第二CGN设备向第一CGN设备发送地址分配请求,

其中,地址分配请求用于请求为第一待发送报文的源地址对应分配的公网地址以及端口段。

S704、接收第一CGN设备发送的第一待发送报文的源地址和分配的公网地址以及端口段的对应关系,以及第一CGN设备从端口段中确定的第二端口集。

其中,第一CGN设备将端口段划分为第一端口集和第二端口集,第一端口集是供第一CGN设备进行端口分配的端口集,第二端口集是供第二CGN设备进行端口分配的端口集,第一端口集和第二端口集中的端口标识互不重复。

S705、从第一待发送报文的源地址对应的端口段的第二端口集中确定尚未分配的端口。

S706、将第一待发送报文的源地址替换为第一待发送报文的源地址对应的公网地址,将第一待发送报文的源端口替换为S705中确定的端口,生成修改后的报文,并发送该修改后的报文。

S707、接收第一CGN设备发送的其他私网地址和分配的公网地址以及端口段的对应关系,以及第一CGN设备从端口段中确定的第二端口集,

其中,其他私网地址为第一CGN设备接收的NAT转换设备发送的报文的源地址。

进一步地,步骤S704和步骤S707中,由于第一CGN设备可以按照预设同步规则向第二CGN设备同步分配的公网地址以及端口段、以及第一CGN设备确定的供第二CGN设备映射的端口集。那么,步骤S704和步骤S707中接收的步骤可以为在两次同步过程中完成的,也可以为在一次同步过程中完成的。

进一步地,步骤S701~S706的执行与步骤S707的执行没有严格的先后顺序。

进一步地,图8为本发明实施例提供的地址分配方法数据流示意图之一,如图8所示,数据流801表征当第二CGN设备接收到源地址为私网地址的报文,且未查找到为该私网地址分配的公网地址以及端口段,向第一CGN设备发送地址分配请求,并在第二CGN设备接收到第一CGN设备发送的该私网地址对应的公网地址以及端口段之后,记录该私网地址对应的公网地址以及端口段的对应关系,并确定本次为该报文映射的端口将报文转发;数据流802表征第二CGN设备后续接收到源地址为该私网地址的报文,能够通过自身的记录查找到该私网地址对应的公网地址以及端口段,并进行报文转发,无需再次向第一CGN设备发送地址分配请求。使得同一个私网地址不会分配到不同的公网地址以及端口段,保证了溯源的一致性,避免了公网地址资源以及端口资源的浪费。

进一步地,图9为本发明实施例提供的地址分配方法数据流示意图之二,如图9所示,数据流901表征在第一CGN设备接收到源地址为私网地址(例如:192.168.0.1)的报文之后,根据记录的该私网地址对应的公网地址以及端口段,以及供第一CGN设备映射的端口集(例如:[2049~2176]),从该端口集中确定为该报文映射的端口;数据流902表征在第二CGN设备接收到源地址为相同的私网地址(例如:192.168.0.1)的报文之后,根据记录的该私网地址对应的公网地址以及端口段,以及供第二CGN设备映射的端口集(例如:[2177~2304]),从该端口集中确定为该报文映射的端口。使得第一CGN设备和第二CGN设备不会为私网地址映射重叠的公网地址以及端口,保证了回程报文的正确转发。

基于同一发明构思,本发明实施例还提供了一种CGN设备及CGN双主系统,由于这些设备和系统所解决问题的原理与前述地址分配方法相似,因此该设备和系统的实施可以参见前述方法的实施,重复之处不再赘述。

本发明实施例提供的一种CGN设备之一,用于执行前面方法实施例中所述的第一CGN设备的功能,其应用场景以及与其他设备,例如第二CGN设备和NAT设备的连接关系以及相互报文交换流程,可以参照前面方法实施例中的描述。如图10所示,该CGN设备包括如下模块:

接收模块1001,用于接收第二CGN设备发送的地址分配请求,所述地址分配请求中携带第一私网地址;

查找模块1002,用于在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在所述接收模块1001接收的第一私网地址;

分配模块1003,用于基于所述查找模块1002得到的所述对应关系中不存在所述第一私网地址的查找结果,为所述第一私网地址分配公网地址以及端口段,并记录所述第一私网地址和分配的公网地址以及端口段的对应关系;

发送模块1004,用于向所述第二CGN设备同步所述第一私网地址和所述分配模块1003分配的公网地址以及端口段的对应关系;

其中,本CGN设备为CGN双主场景中预先设定的用于为私网地址分配公网地址以及端口段的设备,所述第二CGN设备为CGN双主场景中预先设定的不为私网地址分配公网地址以及端口段的设备。

进一步地,接收模块1001接收第二CGN设备发送的地址分配请求,由查找模块1002对分配请求中携带的第一私网地址进行查找,分配模块1003根据查找模块1002得到的查找结果为第一私网地址分配公网地址以及端口段,并由发送模块1004向第二CGN设备同步第一私网地址以及分配的公网地址和端口段的地址分配流程请参加本发明实施例1步骤S401~步骤S404。

进一步地,所述CGN设备,还包括:获得模块1005和端口确定模块1006;

所述获得模块1005,用于获得第一待发送报文;

所述查找模块1002,还用于在所述对应关系中查找是否存在为所述获得模块1005获得的第一待发送报文的源地址对应分配的公网地址以及端口段;

所述端口确定模块1006,用于基于所述查找模块1002得到的所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从所述查找模块1002查找到的端口段的第一端口集中确定尚未分配的端口;并

所述发送模块1004,还用于将所述第一待发送报文的源地址替换为所述查找模块1002查找到的公网地址,以及将所述第一待发送报文的源端口替换为所述端口确定模块1006确定的端口,生成修改后的报文,并发送所述修改后的报文;

其中,按照预设划分规则将所述端口段划分为第二端口集和所述第一端口集,所述第一端口集是供本CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

进一步地,获得模块1005获得第一待发送报文,通过查找模块1002查找该第一待发送报文的源地址对应的公网地址以及端口段,端口确定模块1006根据查找模块1002得到的查找结果,从第一端口集中为第一待发送报文确定可用端口,并由发送模块1004将替换了源地址和源端口的修该后的报文发送的地址分配流程请参加本发明实施例1步骤S405~步骤410。

进一步地,所述分配模块1003,还用于从为所述第一私网地址分配的端口段中确定第一端口集和第二端口集,其中,所述第一端口集是供本CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复;

所述发送模块1004,具体用于向所述第二CGN设备同步所述第一私网地址和所述分配模块1003分配的公网地址以及端口段的对应关系、以及确定的所述第二端口集。

进一步地,接收模块1001接收第二CGN设备发送的地址分配请求,由查找模块1002对分配请求中携带的第一私网地址进行查找,分配模块1003根据查找模块1002得到的查找结果为第一私网地址分配公网地址以及端口段,并将端口段划分成第一端口集和第二端口集,由发送模块1004向第二CGN设备同步第一私网地址以及分配的公网地址和端口段以及第二端口集的地址分配流程请参加本发明实施例3步骤S601~步骤S605。

进一步地,所述接收模块1001,还用于接收网络地址转换NAT转换设备发送的第二待发送报文;

所述查找模块1002,还用于在所述对应关系中查找是否存在为所述接收模块1001接收的第二待发送报文的源地址对应分配的公网地址以及端口段;

所述分配模块1003,还用于基于所述查找模块1002得到的所述对应关系中不存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段的查找结果,为所述第二待发送报文的源地址分配公网地址以及端口段;以及从为所述第二待发送报文的源地址分配的端口段中确定第一端口集和第二端口集;

所述发送模块1004,还用于向所述第二CGN设备同步所述第二待发送报文的源地址和所述分配模块1003分配的公网地址以及端口段的对应关系、以及所述第二端口集。

进一步地,所述CGN设备,还包括:端口确定模块1006;

所述端口确定模块1006,用于基于所述查找模块1002得到的所述对应关系中存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从所述查找模块1002查找到的端口段的第一端口集中确定尚未分配的端口;

所述发送模块1004,还用于将所述第二待发送报文的源地址替换为所述查找模块1002查找到的公网地址,以及将所述第二待发送报文的源端口替换为所述端口确定模块1006确定的端口,生成修改后的报文,并发送所述修改后的报文。

进一步地,接收模块1001接收NAT转换设备发送的第二待发送报文,由查找模块1002在所述对应关系中对第二待发送报文的源地址进行查找,分配模块1003根据查找模块1002得到的查找结果为第二待发送报文的源地址分配公网地址以及端口段,将分配的端口段划分成第一端口集和第二端口集,并由发送模块1004向第二CGN设备同步第一私网地址以及分配的公网地址和端口段以及第二端口集,以及将第二待发送报文的源地址和源端口进行修改并发送的地址分配流程请参加本发明实施例3步骤S606~步骤S612。

本发明实施例提供的一种运营商级网络地址转换CGN设备之二,用于执行前面方法实施例中所述的第二CGN设备的功能,其应用场景以及与其他设备,例如第一CGN设备和NAT设备的连接关系以及相互报文交换流程,可以参照前面方法实施例中的描述。如图11所示,该CGN设备包括:

接收模块1101,用于接收网络地址转换NAT转换设备发送的第一待发送报文;

查找模块1102,用于在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在为所述接收模块1101接收的第一待发送报文的源地址对应分配的公网地址以及端口段;

发送模块1103,用于基于所述查找模块1102得到的所述对应关系中不存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,向第一CGN设备发送地址分配请求,其中,所述地址分配请求携带所述第一待发送报文的源地址;

所述接收模块1101,还用于接收所述第一CGN设备针对所述发送模块1103发送的所述地址分配请求发送的所述第一待发送报文的源地址和公网地址以及端口段三者的对应关系;

其中,所述第一CGN设备为CGN双主场景中预先约定的用于为私网地址分配公网地址以及端口段的设备,本CGN设备为CGN双主场景中预先约定的不为私网地址分配公网地址以及端口段的设备。

进一步地,所述CGN设备,还包括:端口确定模块1104;

所述端口确定模块1104,用于基于所述查找模块1102得到的所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从所述查找模块1102查找到的端口段的第二端口集中确定尚未分配的端口;

所述发送模块1103,还用于将所述第一待发送报文的源地址替换为所述查找模块1102查找到的公网地址,以及将所述第一待发送报文的源端口替换为所述端口确定模块1104确定的端口,生成修改后的报文,并发送所述修改后的报文;

其中,按照预设划分规则将所述端口段划分为第一端口集和第二端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供本CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

进一步地,接收模块1101接收到NAT转换设备发送的第一待发送报文,查找模块1102在所述对应关系中查找第一待发送报文的源地址,发送模块1103根据查找模块1102未查找到该源地址的查找结果,向第一CGN设备发送地址分配请求,接收模块1101接收第一CGN设备回复的为该源地址分配的公网地址和端口段,端口确定模块1104从分配的端口段的第二端口集中确定端口,并由发送模块1103将修改了源地址和源端口的报文发送的地址分配流程参加本发明实施例2的步骤S501~步骤S506。

进一步地,所述接收模块1101,具体用于接收所述第一CGN设备发送的所述第一待发送报文的源地址和公网地址以及端口段的对应关系,以及所述第一CGN设备从所述端口段中确定的第二端口集,其中,所述第一CGN设备将所述端口段划分为第一端口集和第二端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供本CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

进一步地,所述接收模块1101,还用于接收所述第一CGN设备发送的其他私网地址和公网地址以及端口段的对应关系,以及所述第一CGN设备从所述端口段中确定的第二端口集,

其中,所述其他私网地址为所述第一CGN设备接收的NAT转换设备发送的报文的源地址。

进一步地,所述的CGN设备,还包括:端口确定模块1104;

所述端口确定模块1104,用于基于所述查找模块1102得到的所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从所述查找模块1102查找到的端口段的第二端口集中确定尚未分配的端口;

所述发送模块1103,还用于将所述第一待发送报文的源地址替换为所述查找模块1102查找到的公网地址,以及将所述第一待发送报文的源端口替换为所述端口确定模块1104确定的端口,生成修改后的报文,并发送所述修改后的报文。

进一步地,接收模块1101接收到NAT转换设备发送的第一待发送报文,查找模块1102在所述对应关系中查找第一待发送报文的源地址,发送模块1103根据查找模块1102未查找到该源地址的查找结果,向第一CGN设备发送地址分配请求,接收模块1101接收第一CGN设备回复的为该源地址分配的公网地址和端口段以及第二端口集,端口确定模块1104从第二端口集中确定端口,并由发送模块1103将修改了源地址和源端口的报文发送的地址分配流程参见本发明实施例4的步骤S701~步骤S707。

本发明实施例提供的一种CGN双主系统,包括:上述的CGN设备之一,以及上述的CGN设备之二。

基于同一发明构思,本发明实施例还提供了一种用于建立安全连接的设备及系统,由于这些设备和系统所解决问题的原理与前述一种用于建立安全连接的方法相似,因此该设备和系统的实施可以参见前述方法的实施,重复之处不再赘述。

本发明实施例提供了一种CGN设备之三,用于执行前面方法实施例中所述的第一CGN设备的功能,其应用场景以及与其他设备,例如第二CGN设备和NAT设备的连接关系以及相互报文交换流程,可以参照前面方法实施例中的描述。如图12所示,该CGN设备包括网络接口1201、处理器1202(可以为一个或多个,本发明各实施例中以一个为例)、存储器1203以及总线系统1204,其中:

网络接口1201可以是有线接口,例如光纤分布式数据接口(Fiber Distributed Data Interface,简称FDDI)、千兆以太网(Gigabit Ethernet,简称GE)接口;网络接口1201也可以是无线接口。

处理器1202控制一种CGN设备之三的操作,处理器1202还可以称为CPU(Central Processing Unit,中央处理单元)。处理器1202可能是一种集成电路芯片,具有信号的处理能力。处理器1202还可以是通用处理器、数字信号处理器(DSP,Digital Signal Processing)、专用集成电路(ASIC,Application Specific Integrated Circuit)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器1203可以包括只读存储器和随机存取存储器,并向处理器1202提供指令和数据。存储器1203的一部分还可以包括非易失性随机存取存储器(NVRAM)。

一种CGN设备之三的各个组件通过总线系统1204耦合在一起,其中总线系统1204除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。该总线系统可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外部设备互连)总线或EISA(Extended Industry Standard Architecture,扩展工业标准体系结构)总线等。所述总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。在本发明的其它一些实施例中,处理器1202、存储器1203以及网络接口1201也可以通过通信线路直接连接。但是为了清楚说明起见,在图中将各种总线都标为总线系统1204。

存储器1203存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:

操作指令:包括各种操作指令,用于实现各种操作。

操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

在本发明实施例中,处理器1202通过调用存储器1203存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:

网络接口1201,用于接收第二CGN设备发送的地址分配请求,所述地址分配请求中携带第一私网地址;

处理器1202,用于在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在所述网络接口1201接收的第一私网地址;基于所述对应关系中不存在所述第一私网地址的查找结果,为所述第一私网地址分配公网地址以及端口段,并记录所述第一私网地址和分配的公网地址以及端口段的对应关系;

网络接口1201,还用于向所述第二CGN设备同步所述第一私网地址和所述处理器1202分配的公网地址以及端口段的对应关系;

其中,本CGN设备为CGN双主场景中预先设定的用于为私网地址分配公网地址以及端口段的设备,所述第二CGN设备为CGN双主场景中预先设定的不为私网地址分配公网地址以及端口段的设备。

进一步地,网络接口1201接收第二CGN设备发送的地址分配请求,由处理器1202对分配请求中携带的第一私网地址进行查找,根据查找结果为第一私网地址分配公网地址以及端口段,并由网络接口1201向第二CGN设备同步第一私网地址以及分配的公网地址和端口段的地址分配流程请参加本发明实施例1步骤S401~步骤S404。

进一步地,所述网络接口1201,还用于获得第一待发送报文;

所述处理器1202,还用于在所述对应关系中查找是否存在为所述网络接口1201获得的第一待发送报文的源地址对应分配的公网地址以及端口段;基于所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从查找到的端口段的第一端口集中确定尚未分配的端口;

所述网络接口1201,还用于将所述第一待发送报文的源地址替换为处理器1202查找到的公网地址,以及将所述第一待发送报文的源端口替换为处理器1202确定的端口,生成修改后的报文,并发送所述修改后的报文;

其中,按照预设划分规则将所述端口段划分为第二端口集和所述第一端口集,所述第一端口集是供本CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

进一步地,网络接口1201获得第一待发送报文,通过处理器1202查找该第一待发送报文的源地址对应的公网地址以及端口段,根据查找结果,从第一端口集中为第一待发送报文确定可用端口,并由网络接口1201将替换了源地址和源端口的修该后的报文发送的地址分配流程请参加本发明实施例1步骤S405~步骤410。

进一步地,所述处理器1202,还用于从为所述第一私网地址分配的端口段中确定第一端口集和第二端口集,其中,所述第一端口集是供本CGN设备进行端口分配的端口集,所述第二端口集是供所述第二CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复;

所述网络接口1201,具体用于向所述第二CGN设备同步所述第一私网地址和所述处理器1202分配的公网地址以及端口段的对应关系、以及确定的所述第二端口集。

进一步地,网络接口1201接收第二CGN设备发送的地址分配请求,由处理器1202对分配请求中携带的第一私网地址进行查找,根据查找结果为第一私网地址分配公网地址以及端口段,并将端口段划分成第一端口集和第二端口集,并由网络接口1201向第二CGN设备同步第一私网地址以及分配的公网地址和端口段以及第二端口集的地址分配流程请参加本发明实施例3步骤S601~步骤S605。

进一步地,所述网络接口1201,还用于接收网络地址转换NAT转换设备发送的第二待发送报文;

所述处理器1202,还用于在所述对应关系中查找是否存在为所述网络接口1201接收的第二待发送报文的源地址对应分配的公网地址以及端口段;基于所述对应关系中不存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段的查找结果,为所述第二待发送报文的源地址分配公网地址以及端口段;以及从为所述第二待发送报文的源地址分配的端口段中确定第一端口集和第二端口集;

所述网络接口1201,还用于向所述第二CGN设备同步所述第二待发送报文的源地址和所述处理器1202分配的公网地址以及端口段的对应关系、以及所述第二端口集。

进一步地,所述处理器1202,还用于基于所述对应关系中存在为所述第二待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从查找到的端口段的第一端口集中确定尚未分配的端口;

所述网络接口1201,还用于将所述第二待发送报文的源地址替换为所述处理器1202查找到的公网地址,以及将所述第二待发送报文的源端口替换为所述处理器1202确定的端口,生成修改后的报文,并发送所述修改后的报文。

进一步地,网络接口1201接收NAT转换设备发送的第二待发送报文,由处理器1202在所述对应关系中对第二待发送报文的源地址进行查找,根据查找结果为第二待发送报文的源地址分配公网地址以及端口段,并将端口段划分成第一端口集和第二端口集,并由网络接口1201向第二CGN设备同步第一私网地址以及分配的公网地址和端口段以及第二端口集,以及将第二待发送报文的源地址和源端口进行修改并发送的地址分配流程请参加本发明实施例3步骤S606~步骤S612。

本发明实施例提供的一种运营商级网络地址转换CGN设备之四,用于执行前面方法实施例中所述的第二CGN设备的功能,其应用场景以及与其他设备,例如第一CGN设备和NAT设备的连接关系以及相互报文交换流程,可以参照前面方法实施例中的描述。如图13所示,该CGN设备包括网络接口1301、处理器1302(可以为一个或多个,本发明各实施例中以一个为例)、存储器1303以及总线系统1304,其中:

网络接口1301可以是有线接口,例如光纤分布式数据接口(Fiber Distributed Data Interface,简称FDDI)、千兆以太网(Gigabit Ethernet,简称GE)接口;网络接口1301也可以是无线接口。

处理器1302控制一种CGN设备之四的操作,处理器1302还可以称为CPU(Central Processing Unit,中央处理单元)。处理器1302可能是一种集成电路芯片,具有信号的处理能力。处理器1302还可以是通用处理器、数字信号处理器(DSP,Digital Signal Processing)、专用集成电路(ASIC,Application Specific Integrated Circuit)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器1303可以包括只读存储器和随机存取存储器,并向处理器1302提供指令和数据。存储器1303的一部分还可以包括非易失性随机存取存储器(NVRAM)。

一种CGN设备之四的各个组件通过总线系统1304耦合在一起,其中总线系统1304除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。该总线系统可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(Peripheral Component Interconnect,外部设备互连)总线或EISA(Extended Industry Standard Architecture,扩展工业标准体系结构)总线等。所述总线可以是一条或多条物理线路,当是多条物理线路时可以分为地址总线、数据总线、控制总线等。在本发明的其它一些实施例中,处理器1302、存储器1303以及网络接口1301也可以通过通信线路直接连接。但是为了清楚说明起见,在图中将各种总线都标为总线系统1304。

存储器1303存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:

操作指令:包括各种操作指令,用于实现各种操作。

操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

在本发明实施例中,处理器1302通过调用存储器1303存储的操作指令(该操作指令可存储在操作系统中),执行如下操作:

网络接口1301,用于接收网络地址转换NAT转换设备发送的第一待发送报文;

处理器1302,用于在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在为所述网络接口1301接收的第一待发送报文的源地址对应分配的公网地址以及端口段;

网络接口1301,还用于基于所述处理器1302得到的所述对应关系中不存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,向第一CGN设备发送地址分配请求,其中,所述地址分配请求携带所述第一待发送报文的源地址;以及接收所述第一CGN设备针对所述网络接口1301发送的所述地址分配请求发送的所述第一待发送报文的源地址和公网地址以及端口段三者的对应关系;

其中,所述第一CGN设备为CGN双主场景中预先约定的用于为私网地址分配公网地址以及端口段的设备,本CGN设备为CGN双主场景中预先约定的不为私网地址分配公网地址以及端口段的设备。

进一步地,所述处理器1302,还用于基于所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从查找到的端口段的第二端口集中确定尚未分配的端口;

所述网络接口1301,还用于将所述第一待发送报文的源地址替换为所述处理器1302查找到的公网地址,以及将所述第一待发送报文的源端口替换为所述处理器1302确定的端口,生成修改后的报文,并发送所述修改后的报文;

其中,按照预设划分规则将所述端口段划分为第一端口集和第二端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供本CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

进一步地,网络接口1301接收到NAT转换设备发送的第一待发送报文,处理器1302在所述对应关系中查找第一待发送报文的源地址,网络接口1301根据处理器1302未查找到该源地址的查找结果,向第一CGN设备发送地址分配请求,网络接口1301接收第一CGN设备回复的为该源地址分配的公网地址和端口段,处理器1302从分配的端口段的第二端口集中确定端口,并由网络接口1301将修改了源地址和源端口的报文发送的地址分配流程参加本发明实施例2的步骤S501~步骤S506。

进一步地,所述网络接口1301,具体用于接收所述第一CGN设备发送的所述第一待发送报文的源地址和公网地址以及端口段的对应关系,以及所述第一CGN设备从所述端口段中确定的第二端口集,其中,所述第一CGN设备将所述端口段划分为第一端口集和第二端口集,所述第一端口集是供所述第一CGN设备进行端口分配的端口集,所述第二端口集是供本CGN设备进行端口分配的端口集,所述第一端口集和所述第二端口集中的端口标识互不重复。

进一步地,所述网络接口1301,还用于接收所述第一CGN设备发送的其他私网地址和公网地址以及端口段的对应关系,以及所述第一CGN设备从所述端口段中确定的第二端口集,

其中,所述其他私网地址为所述第一CGN设备接收的NAT转换设备发送的报文的源地址。

进一步地,所述处理器1302,还用于基于所述对应关系中存在为所述第一待发送报文的源地址对应分配的公网地址以及端口段的查找结果,从查找到的端口段的第二端口集中确定尚未分配的端口;

所述网络接口1301,还用于将所述第一待发送报文的源地址替换为所述处理器1302查找到的公网地址,以及将所述第一待发送报文的源端口替换为所述处理器1302确定的端口,生成修改后的报文,并发送所述修改后的报文。

进一步地,网络接口1301接收到NAT转换设备发送的第一待发送报文,处理器1302在所述对应关系中查找第一待发送报文的源地址,网络接口1301根据处理器1302未查找到该源地址的查找结果,向第一CGN设备发送地址分配请求,网络接口1301接收第一CGN设备回复的为该源地址分配的公网地址和端口段以及第二端口集,处理器1302从第二端口集中确定端口,并由网络接口1301将修改了源地址和源端口的报文发送的地址分配流程参见本发明实施例4的步骤S701~步骤S707。

本发明实施例提供的一种CGN双主系统,包括:上述的CGN设备之三,以及上述的CGN设备之四。

上述各单元的功能可对应于图2至图7所示流程中的相应处理步骤,在此不再赘述。

本发明实施例提供的一种地址分配方法、CGN设备及CGN双主系统,包括:在CGN双主场景中,预先约定将第一CGN设备确定为用于为私网地址进行公网地址以及端口段分配的设备,将第二CGN设备确定为不为私网地址进行公网地址以及端口段分配的设备。当第二CGN设备接收到NAT转换设备发送的第一待发送报文时,在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在第一待发送报文的源地址;基于上述对应关系中不存在第一待发送报文的源地址的查找结果,第二CGN设备向第一CGN设备发送地址分配请求;当第一CGN设备接收到地址分配请求时,在已记录的私网地址、公网地址以及端口段三者的对应关系中查找是否存在地址分配请求中携带的第一私网地址;基于上述对应关系中不存在第一私网地址的查找结果,第一CGN设备为第一私网地址分配公网地址以及端口段,并记录第一私网地址和分配的公网地址以及端口段的对应关系;向第二CGN设备同步第一私网地址和分配的公网地址以及端口段的对应关系。本发明实施例提供的地址分配方法,在CGN双主场景的两个CGN设备中,确定其中一个CGN设备(第一CGN设备)用于为私有地址进行公网地址以及端口段分配,另一个CGN设备(第二CGN设备)不为私有地址进行公网地址以及端口段分配,避免了两个CGN设备在没有来得及同步的前提下,为同一个私网地址分配不同的公网地址以及端口段,使得一个私网地址只能分配一个公网地址以及一个端口段,保证了溯源的一致性,避免了公网地址资源以及端口资源的浪费。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明实施例可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1