一种IPV4地址与IPV6地址有状态转换的方法及设备.pdf

上传人:1*** 文档编号:4893501 上传时间:2018-11-24 格式:PDF 页数:14 大小:1.35MB
返回 下载 相关 举报
摘要
申请专利号:

CN201410539660.7

申请日:

2014.10.13

公开号:

CN104243631A

公开日:

2014.12.24

当前法律状态:

撤回

有效性:

无权

法律详情:

发明专利申请公布后的视为撤回IPC(主分类):H04L 29/12申请公布日:20141224|||实质审查的生效IPC(主分类):H04L 29/12申请日:20141013|||公开

IPC分类号:

H04L29/12; H04L12/749(2013.01)I

主分类号:

H04L29/12

申请人:

北京太一星晨信息技术有限公司

发明人:

姜殊佳

地址:

100193 北京市海淀区东北旺西路8号21号306号

优先权:

专利代理机构:

北京安信方达知识产权代理有限公司 11262

代理人:

李红爽;栗若木

PDF下载: PDF下载
内容摘要

一种IPv4地址与IPv6地址有状态转换的方法及设备,包括:接收到IP报文后,根据IP报文信息所构造的五元组到连接跟踪表查找对应的连接记录,如未查找到,为IP报文生成新的连接记录,其中,五元组包含第一协议的IP地址和端口;对IP报文进行跨协议栈地址转换,将第一协议的IP地址和端口转换为第二协议的IP地址和端口,其中,第一协议和第二协议分别为IPv4协议和IPv6协议中的一种且互不相同;根据第二协议的IP地址和端口构造IP报文的另一方向的五元组,将根据IP报文信息所构造的五元组及另一方向的五元组写入新的连接记录并挂载到连接跟踪表中。本发明还提供了相应的设备。本发明可以实现高效查找的跨协议地址转换并节约存储空间。

权利要求书

权利要求书1.  一种IPv4地址与IPv6地址有状态转换的方法,应用于网络地址转换设备,包括:接收到IP报文后,根据所述IP报文信息所构造的五元组到连接跟踪表查找对应的连接记录,如未查找到,为所述IP报文生成新的连接记录,其中,所述五元组包含第一协议的IP地址和端口;对所述IP报文进行跨协议栈地址转换,将第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,其中,第一协议和第二协议分别为IPv4协议和IPv6协议中的一种且互不相同;根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组,将根据所述IP报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录并挂载到所述连接跟踪表中。2.  如权利要求1所述的方法,其特征在于,还包括:接收到IP报文后,根据所述IP报文信息所构造的五元组到连接跟踪表查找对应的连接记录;如查找到,对所述IP报文进行跨协议栈地址转换时,从查找到的连接记录中获取所述IP报文的另一方向的五元组,将所述IP报文中的IP地址和端口转换为所述另一方向的五元组中另一协议的相应IP地址和端口。3.  如权利要求1或2所述的方法,其特征在于:将第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,包括:将第一协议的目的IP地址和目的端口转换为第二协议的目的IP地址和目的端口,将第一协议的源IP地址和源端口转换为第二协议的源IP地址的源端口;其中,所述第二协议的源端口是从可选的第二协议的源端口中选择得到的。4.  如权利要求3所述的方法,其特征在于:根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组,包括:根据第二协议的所述IP地址和端口构造一个另一方向的五元组并进行冲突校验,如无冲突,将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组;如有冲突,则重新选择一个转换后的第二协议的源端口,重新构造一个另一方向的五元组并进行冲突校验,如此循环处理,直到构造的另一方向的五元组的冲突校验结果为无冲突时,再将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组;其中,所述冲突校验是判断所述连接跟踪表中是否已存在与当前构造的另一方向的五元组相同的五元组,如存在,则有冲突,如不存在,则无冲突。5.  如权利要求1或2或4所述的方法,其特征在于:所述连接跟踪表为哈希表,所述哈希表中的每一哈希值对应一个链表;将根据所述IP报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录并挂载到所述连接跟踪表中,包括:将两个五元组写入所述新的连接记录进行存储,获取所述两个五元组的地址信息,所述两个五元组包括根据所述IP报文信息所构造的五元组及所述另一方向的五元组;分别计算所述两个五元组的哈希值,将所述两个五元组的地址信息分别插入到各自哈希值对应的链表中;其中,计算所述两个五元组的哈希值时,使用的哈希算法兼容IPv4类型和IPv6类型的五元组。6.  一种可实现IPv4地址与IPv6地址有状态转换的网络地址转换设备,其特征在于,包括:连接跟踪查找单元,用于在接收到IP报文后,根据所述IP报文信息所构造的五元组到连接跟踪表查找对应的连接记录,将查找结果通知报文转换单元和连接记录生成单元,所述五元组包含第一协议的IP地址和端口;所述报文转换单元,用于在所述查找结果为未查找到时,将所述IP报文 中第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,其中,第一协议和第二协议分别为IPv4协议和IPv6协议中的一种且互不相同;所述连接记录生成单元,用于在查找结果为未查找到时,为所述IP报文生成新的连接记录,并根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组,将根据所述IP报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录中;连接跟踪表维护单元,用于对连接跟踪表进行维护,在新的连接记录生成完成后,将写入其中的两个五元组均挂载到连接跟踪表中。7.  如权利要求6所述的网络地址转换设备,其特征在于:所述报文转换单元还用于在所述查找结果为查找到时,从查找到的连接记录中获取所述IP报文的另一方向的五元组,将所述IP报文中的IP地址和端口转换为所述另一方向的五元组中另一协议的相应IP地址和端口。8.  如权利要求6或7所述的网络地址转换设备,其特征在于:所述报文转换单元将第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,包括:将第一协议的目的IP地址和目的端口转换为第二协议的目的IP地址和目的端口,将第一协议的源IP地址和源端口转换为第二协议的源IP地址的源端口;其中,所述第二协议的源端口是从可选的第二协议的源端口中选择得到的。9.  如权利要求8所述的网络地址转换设备,其特征在于:所述连接记录生成单元根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组,包括:根据第二协议的所述IP地址和端口构造一个另一方向的五元组并进行冲突校验,如无冲突,将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组;如有冲突,则重新选择一个转换后的第二协议的源端口,重新构造一个另一方向的五元组并进行冲突校验,如此循环处理,直到构造的另一方向的五元组的冲突校验结果为无冲突时,再将当前构造的另一方向 的五元组作为所述IP报文的另一方向的五元组;其中,所述冲突校验是判断所述连接跟踪表中是否已存在与当前构造的另一方向的五元组相同的五元组,如存在,则有冲突,如不存在,则无冲突。10.  如权利要求6或7或9所述的网络地址转换设备,其特征在于:所述连接跟踪表维护单元维护的连接跟踪表为哈希表,所述哈希表中的每一哈希值对应一个链表;所述连接跟踪表维护单元将写入新生成的连接记录中的两个五元组挂载到连接跟踪表中,包括:确定所述两个五元组在所述新生成的连接记录中的地址信息;分别计算所述两个五元组的哈希值,将所述两个五元组的地址信息分别插入到各自哈希值对应的链表中;其中,计算所述两个五元组的哈希值时,使用的哈希算法兼容IPv4类型和IPv6类型的五元组。

说明书

说明书一种IPv4地址与IPv6地址有状态转换的方法及设备
技术领域
本发明涉及网络技术,更具体地,涉及一种IPv4地址与IPv6地址有状态转换的方法和设备。
背景技术
IPv6协议栈作为替代IPv4协议的下一代IP协议,在世界范围中得到了广泛的推广和实施,但对于使用IPv4协议栈作为主流选择的用户来说,如何实现IPv4环境向IPv6环境的平滑过渡成为了更加重要与实际的问题。
目前提出的IPv4地址与IPv6地址转换的方式,分为有状态转换以及无状态转换两种。其中有状态转换是指维护了IPv4地址及端口,与IPv6地址及端口的映射关系,转换是基于这种映射关系来进行的。无状态是指根据指定的映射算法,实现不同协议栈地址的转换,不用维护映射关系。其中,由于有状态转换可实现映射地址的重用,在实际的使用场景中更具有实用意义。
目前实现IPv4地址与IPv6地址有状态转换时,都需要单独维护类似于转换前与转换后地址的映射表,在流量很大的情况下,对设备的存储要求也变得更高。同时如果查找方式不够高效,也容易成为设备的性能瓶颈。
发明内容
本发明要解决的技术问题是提供一种可节约存储空间的IPv4地址与IPv6地址有状态转换的方法
本发明要解决的另一技术问题是提供一种IPv4地址与IPv6地址有状态转换的方法,应用于网络地址转换设备,包括:
接收到IP报文后,根据所述IP报文信息所构造的五元组到连接跟踪表查找对应的连接记录,如未查找到,为所述IP报文生成新的连接记录,其中, 所述五元组包含第一协议的IP地址和端口;
对所述IP报文进行跨协议栈地址转换,将第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,其中,第一协议和第二协议分别为IPv4协议和IPv6协议中的一种且互不相同;
根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组,将根据所述IP报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录并挂载到所述连接跟踪表中。
较佳地,
所述方法还包括:
接收到IP报文后,根据所述IP报文信息所构造的五元组到连接跟踪表查找对应的连接记录;
如查找到,对所述IP报文进行跨协议栈地址转换时,从查找到的连接记录中获取所述IP报文的另一方向的五元组,将所述IP报文中的IP地址和端口转换为所述另一方向的五元组中另一协议的相应IP地址和端口。
较佳地,
将第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,包括:
将第一协议的目的IP地址和目的端口转换为第二协议的目的IP地址和目的端口,将第一协议的源IP地址和源端口转换为第二协议的源IP地址的源端口;其中,所述第二协议的源端口是从可选的第二协议的源端口中选择得到的。
较佳地,
根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组,包括:
根据第二协议的所述IP地址和端口构造一个另一方向的五元组并进行冲突校验,如无冲突,将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组;如有冲突,则重新选择一个转换后的第二协议的源端口,重新构造一个另一方向的五元组并进行冲突校验,如此循环处理,直到构造 的另一方向的五元组的冲突校验结果为无冲突时,再将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组;
其中,所述冲突校验是判断所述连接跟踪表中是否已存在与当前构造的另一方向的五元组相同的五元组,如存在,则有冲突,如不存在,则无冲突。
较佳地,
所述连接跟踪表为哈希表,所述哈希表中的每一哈希值对应一个链表;
将根据所述IP报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录并挂载到所述连接跟踪表中,包括:
将两个五元组写入所述新的连接记录进行存储,获取所述两个五元组的地址信息,所述两个五元组包括根据所述IP报文信息所构造的五元组及所述另一方向的五元组;
分别计算所述两个五元组的哈希值,将所述两个五元组的地址信息分别插入到各自哈希值对应的链表中;
其中,计算所述两个五元组的哈希值时,使用的哈希算法兼容IPv4类型和IPv6类型的五元组。
相应地,本发明提供的可实现IPv4地址与IPv6地址有状态转换的网络地址转换设备包括:
连接跟踪查找单元,用于在接收到IP报文后,根据所述IP报文信息所构造的五元组到连接跟踪表查找对应的连接记录,将查找结果通知报文转换单元和连接记录生成单元,所述五元组包含第一协议的IP地址和端口;
所述报文转换单元,用于在所述查找结果为未查找到时,将所述IP报文中第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,其中,第一协议和第二协议分别为IPv4协议和IPv6协议中的一种且互不相同;
所述连接记录生成单元,用于在查找结果为未查找到时,为所述IP报文生成新的连接记录,并根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组,将根据所述IP报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录中;
连接跟踪表维护单元,用于对连接跟踪表进行维护,在新的连接记录生成完成后,将写入其中的两个五元组均挂载到连接跟踪表中。
较佳地,
所述报文转换单元还用于在所述查找结果为查找到时,从查找到的连接记录中获取所述IP报文的另一方向的五元组,将所述IP报文中的IP地址和端口转换为所述另一方向的五元组中另一协议的相应IP地址和端口。
较佳地,
所述报文转换单元将第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,包括:
将第一协议的目的IP地址和目的端口转换为第二协议的目的IP地址和目的端口,将第一协议的源IP地址和源端口转换为第二协议的源IP地址的源端口;其中,所述第二协议的源端口是从可选的第二协议的源端口中选择得到的。
较佳地,
所述连接记录生成单元根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组,包括:
根据第二协议的所述IP地址和端口构造一个另一方向的五元组并进行冲突校验,如无冲突,将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组;如有冲突,则重新选择一个转换后的第二协议的源端口,重新构造一个另一方向的五元组并进行冲突校验,如此循环处理,直到构造的另一方向的五元组的冲突校验结果为无冲突时,再将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组;
其中,所述冲突校验是判断所述连接跟踪表中是否已存在与当前构造的另一方向的五元组相同的五元组,如存在,则有冲突,如不存在,则无冲突。
较佳地,
所述连接跟踪表维护单元维护的连接跟踪表为哈希表,所述哈希表中的每一哈希值对应一个链表;
所述连接跟踪表维护单元将写入新生成的连接记录中的两个五元组挂载 到连接跟踪表中,包括:
确定所述两个五元组在所述新生成的连接记录中的地址信息;
分别计算所述两个五元组的哈希值,将所述两个五元组的地址信息分别插入到各自哈希值对应的链表中;
其中,计算所述两个五元组的哈希值时,使用的哈希算法兼容IPv4类型和IPv6类型的五元组。
上述方案实现了IPv4地址与IPv6报文地址有状态的转换。同时,由于IPv4地址与IPv6地址之间的映射关系的维护是复用已有的连接跟踪机制来实现的,节约了存储空间。由于连接跟踪表是采用hash表的形式进行存储的,报文在查到连接跟踪的同时也查到了对应的映射关系,没有增加多余的查找复杂度,保证了查找的高效性。使用户不用改变已有的环境和拓扑,就能访问位于另一协议栈网络环境中的主机及服务。
附图说明
图1A和图1B分别是现有IPv4协议报文和IPv6协议报文的连接记录中的五元组结构的示意图;
图2是作为连接跟踪表的哈希表的结构示意图;
图3是本发明实施例方法中,接收到IP报文后没有查找到相应连接记录时的处理流程图;
图4是本发明实施例方法中,接收到IP报文后查找到相应连接记录时的处理流程图;
图5是本发明实施例NAT设备的模块图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申 请中的实施例及实施例中的特征可以相互任意组合。
实施例
本实施例中,IPv4地址与IPv6地址的有状态转换基于报文的连接跟踪机制实现。
连接跟踪(conntrack)作为网络层通用的连接管理方式。所谓连接跟踪,就是跟踪并记录连接状态。对于收到一个连接的IP报文,连接跟踪机制首先要进行连接记录(Connection entry)的查找,查找时根据IP报文网络层以及传输层头部信息中的五元组,到连接跟踪表中进行查找该五元组。如没有查找到,为该连接生成一个连接记录(Connection entry)。此后,所有属于此连接的IP报文都被唯一地分配给这个连接。在一个连接记录中,记录有IP报文的两个方向的五元组、记录生存时间、连接在当前时间点的状态等信息。一般将根据连接的首个IP报文信息所构造的五元组称为正向五元组,根据该首个IP报文的应答报文信息所构造的五元组称为反向五元组。两个五元组中均包括传输层协议号、源IP地址、源端口、目的IP地址和目的端口,其中,反向五元组中的源IP地址、源端口从正向五元组中的目的IP地址和目的端口得到,反向五元组中的目的IP地址和目的端口从正向五元组中的源IP地址和源端口得到。关于IPv4协议报文和IPv6协议报文的连接记录及其中的五元组可参见图1A和图1B所示的结构。
为了方便查找和对比,连接记录中的两个五元组需要挂载在一个连接跟踪表中以实现高效的查询。连接跟踪表可以用哈希表实现但不局限于此,图2所示是以哈希表作为连接跟踪表的一个示例,在该哈希表中,为每个哈希值建有一个链表,链表中的每一节点都保存有一个指针,指向具有该哈希值的一个五元组。所谓的挂载即计算两个五元组的哈希值,将两个五元组在连接记录中的地址信息(如五元组数据结构的头结点的地址)插入在各自哈希值对应的链表中。接收到该连接的后续报文后,根据后续报文所构造的五元组计算哈希值,到该哈希值对应的链表查找到该五元组,也即查找到该连接的连接记录。
本实施例复用连接跟踪表作为映射关系表,复用连接记录作为存储不同协议IP地址和端口的映射关系的结构。在本发明实施方案中,除特别指出外,IP报文均是指需要进行跨协议栈地址转换的IP报文。对于不需要进行跨协议IP地址转换的报文,按照常规方式处理即可。
图3所示是本实施例的网络地址转换设备(NAT)接收到IP报文,没有查找到相应连接记录时的处理流程,包括:
步骤110,接收到IP报文后,根据所述IP报文信息所构造的五元组到连接跟踪表查找对应的连接记录,其中,所述五元组包含第一协议的IP地址和端口;
接收到的IP报文中的五元组可能是正向五元组,也可能是反向五元组。
步骤120,为所述IP报文生成新的连接记录;
步骤130,对所述IP报文进行跨协议栈地址转换,将第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,其中,第一协议和第二协议分别为IPv4协议和IPv6协议中的一种且互不相同;
文中也将五元组中的源IP地址和目的IP地址统称为五元组中的IP地址,将五元组中的源端口和目的端口统称为五元组中的端口。
在本步骤中,将第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,包括:
将第一协议的目的IP地址和目的端口转换为第二协议的目的IP地址和目的端口;其中,目的地址的转换方式可以根据用户配置决定,目的端口一般不进行改动,除非用户指定需要进行变动。为了保证转换后的目的地址是可路由的,NAT设备会查找路由,并记录出接口以及下一跳信息;
将第一协议的源IP地址和源端口转换为第二协议的源IP地址的源端口;其中,源地址的转换方式可以根据用户配置决定,而第二协议的源端口是唯一没有被用户指定的,可以从可选的第二协议的源端口中选择得到的。
步骤140,根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组;
源IP地址、源端口、目的IP地址,目的端口以及传输层协议号是五元 组的基本元素,为了保证五元组的唯一性,根据第二协议的所述IP地址和端口构造一个另一方向的五元组后,要进行冲突校验,如无冲突,将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组;如有冲突,则重新选择一个转换后的第二协议的源端口,重新构造一个另一方向的五元组并进行冲突校验,如此循环处理,直到构造的另一方向的五元组的冲突校验结果为无冲突时,再将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组。其中,所述冲突校验是判断所述连接跟踪表中是否已存在与当前构造的另一方向的五元组相同的五元组,如存在,则有冲突,如不存在,则无冲突。
步骤150,将根据所述IP报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录并挂载到所述连接跟踪表中。
本实施例中,所述连接跟踪表为哈希表,所述哈希表中的每一哈希值对应一个链表;将根据所述IP报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录并挂载到所述连接跟踪表中,包括:
将两个五元组写入所述新的连接记录进行存储,获取所述两个五元组的地址信息,所述两个五元组包括根据所述IP报文信息所构造的五元组及所述另一方向的五元组;
分别计算所述两个五元组的哈希值,将所述两个五元组的地址信息分别插入到各自哈希值对应的链表中;其中,计算所述两个五元组的哈希值时,使用的哈希算法兼容IPv4类型和IPv6类型的五元组。
需要说明的是,虽然上述流程展现了一些处理之间的顺序,但这只是示例性的。例如,上述对IP报文执行的跨协议栈地址转换的处理,和构造IP报文的另一方向的五元组,写入所述新的连接记录并挂载到所述连接跟踪表的处理之间的顺序可以调,本发明对此并不限制。而对两个五元组所执行的写入所述新的连接记录并挂载到所述连接跟踪表的操作也不必同时进行,可以有先后顺序。等等。
上述图3所示的处理后,IP报文的IPv4地址和IPv6地址之间的映射关系被保存在了连接记录中,即连接记录中保存了不同协议的IP地址和端口。因而根据该连接后续IP报文中的五元组,可以查找连接跟踪表获取该映射关系,从而完成地址转换。
图4所示是本实施例的网络地址转换设备(NAT)接收到IP报文,查找到相应连接记录时的处理流程,包括:
步骤210,接收到IP报文后,根据所述IP报文信息所构造的五元组到连接跟踪表查找到对应的连接记录;
步骤组220,对所述IP报文进行跨协议栈地址转换时,从查找到的连接记录中获取所述IP报文的另一方向的五元组,将所述IP报文中的IP地址和端口转换为所述另一方向的五元组中另一协议的相应IP地址和端口。
以IPv4协议报文为例,该IP报文中的IP地址和端口包括基于IPv4协议的源地址和相应源端口,以及基于IPv4协议的目的地址和相应目的端口。在该IP报文的另一方向的五元组中,保存有该IP报文应答报文的基于IPv6协议的源地址和相应源端口,以及基于IPv6协议的目的地址和相应目的端口。该IP报文及其应答报文中的源地址、端口及目的地址、端口是互换的。因此,在转换时,将该IP报文中的基于IPv4协议的源地址和相应源端口转换为该另一方向的五元组中的基于IPv6协议的目的地址和相应目的端口,将该IP报文中的基于IPv4协议的目的地址和相应目的端口转换为该另一方向的五元组中的基于IPv6协议的源地址和相应源端口。
本实施例NAT设备进行的网络地址转换,除了跨协议栈地址转换外,还可以进行其他网络地址转换如公、私网地址的转换等。
相应地,本实施例提供的可实现IPv4地址与IPv6地址有状态转换的网络地址转换设备,如图5所示,包括:
连接跟踪查找单元10,用于在接收到IP报文后,根据所述IP报文信息所构造的五元组到连接跟踪表查找对应的连接记录,将查找结果通知报文转换单元和连接记录生成单元,所述五元组包含第一协议的IP地址和端口;
报文转换单元20,用于在所述查找结果为未查找到时,将所述IP报文中第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,其中,第一协议和第二协议分别为IPv4协议和IPv6协议中的一种且互不相同;
连接记录生成单元30,用于在查找结果为未查找到时,为所述IP报文生成新的连接记录,并根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组,将根据所述IP报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录中;
连接跟踪表维护单元40,用于对连接跟踪表进行维护,在新的连接记录生成完成后,将写入其中的两个五元组均挂载到连接跟踪表中。
较佳地,报文转换单元20还用于在所述查找结果为查找到时,从查找到的连接记录中获取所述IP报文的另一方向的五元组,将所述IP报文中的IP地址和端口转换为所述另一方向的五元组中另一协议的相应IP地址和端口。
较佳地,报文转换单元20将第一协议的所述IP地址和端口转换为第二协议的IP地址和端口,包括:将第一协议的目的IP地址和目的端口转换为第二协议的目的IP地址和目的端口,将第一协议的源IP地址和源端口转换为第二协议的源IP地址的源端口;其中,所述第二协议的源端口是从可选的第二协议的源端口中选择得到的。
较佳的,连接记录生成单元30根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组,包括:根据第二协议的所述IP地址和端口构造一个另一方向的五元组并进行冲突校验,如无冲突,将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组;如有冲突,则重新选择一个转换后的第二协议的源端口,重新构造一个另一方向的五元组并进行冲突校验,如此循环处理,直到构造的另一方向的五元组的冲突校验结果为无冲突时,再将当前构造的另一方向的五元组作为所述IP报文的另一方向的五元组;其中,所述冲突校验是判断所述连接跟踪表中是否已存在与当前构造的另一方向的五元组相同的五元组,如存在,则有冲突,如不存在,则无冲突。
较佳地,连接跟踪表维护单元维护的连接跟踪表为哈希表,所述哈希表中的每一哈希值对应一个链表;所述连接跟踪表维护单元将写入新生成的连 接记录中的两个五元组挂载到连接跟踪表中,包括:确定所述两个五元组在所述新生成的连接记录中的地址信息;分别计算所述两个五元组的哈希值,将所述两个五元组的地址信息分别插入到各自哈希值对应的链表中;其中,计算所述两个五元组的哈希值时,使用的哈希算法兼容IPv4类型和IPv6类型的五元组。
上述实施方案可以支持IPv4协议端发起的会话,也支持IPv6协议端发起的会话,能将会话报文转换为目的协议栈类型的报文,满足位于不同网络协议栈的用户互访的需求,实现两种协议栈的无缝衔接,从而逐步达到从IPv4网络环境向IPv6网络环境过渡的目标。
上述实施方案是基于网络层的连接跟踪机制实现的,在连接跟踪机制的基础上,不需要另外的空间来进行映射关系的存储,也不需要其他的步骤来进行映射关系的查询,对设备的性能不会有大的影响,是一种高效使用的转换方式。并且,能通过调整转换后的源端口避免冲突,可以满足用户关于映射地址可以重用的要求。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

一种IPV4地址与IPV6地址有状态转换的方法及设备.pdf_第1页
第1页 / 共14页
一种IPV4地址与IPV6地址有状态转换的方法及设备.pdf_第2页
第2页 / 共14页
一种IPV4地址与IPV6地址有状态转换的方法及设备.pdf_第3页
第3页 / 共14页
点击查看更多>>
资源描述

《一种IPV4地址与IPV6地址有状态转换的方法及设备.pdf》由会员分享,可在线阅读,更多相关《一种IPV4地址与IPV6地址有状态转换的方法及设备.pdf(14页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 104243631 A (43)申请公布日 2014.12.24 CN 104243631 A (21)申请号 201410539660.7 (22)申请日 2014.10.13 H04L 29/12(2006.01) H04L 12/749(2013.01) (71)申请人 北京太一星晨信息技术有限公司 地址 100193 北京市海淀区东北旺西路 8 号 21 号 306 号 (72)发明人 姜殊佳 (74)专利代理机构 北京安信方达知识产权代理 有限公司 11262 代理人 李红爽 栗若木 (54) 发明名称 一种 IPv4 地址与 IPv6 地址有状态转换的方 。

2、法及设备 (57) 摘要 一种 IPv4 地址与 IPv6 地址有状态转换的方 法及设备, 包括 : 接收到 IP 报文后, 根据 IP 报文 信息所构造的五元组到连接跟踪表查找对应的连 接记录, 如未查找到, 为 IP 报文生成新的连接记 录, 其中, 五元组包含第一协议的 IP 地址和端口 ; 对 IP 报文进行跨协议栈地址转换, 将第一协议的 IP地址和端口转换为第二协议的IP地址和端口, 其中, 第一协议和第二协议分别为 IPv4 协议和 IPv6 协议中的一种且互不相同 ; 根据第二协议的 IP地址和端口构造IP报文的另一方向的五元组, 将根据 IP 报文信息所构造的五元组及另一方向。

3、 的五元组写入新的连接记录并挂载到连接跟踪表 中。本发明还提供了相应的设备。本发明可以实 现高效查找的跨协议地址转换并节约存储空间。 (51)Int.Cl. 权利要求书 3 页 说明书 7 页 附图 3 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书3页 说明书7页 附图3页 (10)申请公布号 CN 104243631 A CN 104243631 A 1/3 页 2 1. 一种 IPv4 地址与 IPv6 地址有状态转换的方法, 应用于网络地址转换设备, 包括 : 接收到 IP 报文后, 根据所述 IP 报文信息所构造的五元组到连接跟踪表查找对应的连 接记录, 。

4、如未查找到, 为所述 IP 报文生成新的连接记录, 其中, 所述五元组包含第一协议的 IP 地址和端口 ; 对所述 IP 报文进行跨协议栈地址转换, 将第一协议的所述 IP 地址和端口转换为第二 协议的 IP 地址和端口, 其中, 第一协议和第二协议分别为 IPv4 协议和 IPv6 协议中的一种 且互不相同 ; 根据第二协议的所述 IP 地址和端口构造所述 IP 报文的另一方向的五元组, 将根据所 述 IP 报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录并挂载到 所述连接跟踪表中。 2. 如权利要求 1 所述的方法, 其特征在于, 还包括 : 接收到 IP 报文后, 根据所。

5、述 IP 报文信息所构造的五元组到连接跟踪表查找对应的连 接记录 ; 如查找到, 对所述 IP 报文进行跨协议栈地址转换时, 从查找到的连接记录中获取所述 IP 报文的另一方向的五元组, 将所述 IP 报文中的 IP 地址和端口转换为所述另一方向的五 元组中另一协议的相应 IP 地址和端口。 3. 如权利要求 1 或 2 所述的方法, 其特征在于 : 将第一协议的所述 IP 地址和端口转换为第二协议的 IP 地址和端口, 包括 : 将第一协议的目的 IP 地址和目的端口转换为第二协议的目的 IP 地址和目的端口, 将 第一协议的源IP地址和源端口转换为第二协议的源IP地址的源端口 ; 其中, 。

6、所述第二协议 的源端口是从可选的第二协议的源端口中选择得到的。 4. 如权利要求 3 所述的方法, 其特征在于 : 根据第二协议的所述 IP 地址和端口构造所述 IP 报文的另一方向的五元组, 包括 : 根据第二协议的所述 IP 地址和端口构造一个另一方向的五元组并进行冲突校验, 如 无冲突, 将当前构造的另一方向的五元组作为所述 IP 报文的另一方向的五元组 ; 如有冲 突, 则重新选择一个转换后的第二协议的源端口, 重新构造一个另一方向的五元组并进行 冲突校验, 如此循环处理, 直到构造的另一方向的五元组的冲突校验结果为无冲突时, 再将 当前构造的另一方向的五元组作为所述 IP 报文的另一。

7、方向的五元组 ; 其中, 所述冲突校验是判断所述连接跟踪表中是否已存在与当前构造的另一方向的五 元组相同的五元组, 如存在, 则有冲突, 如不存在, 则无冲突。 5. 如权利要求 1 或 2 或 4 所述的方法, 其特征在于 : 所述连接跟踪表为哈希表, 所述哈希表中的每一哈希值对应一个链表 ; 将根据所述 IP 报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接 记录并挂载到所述连接跟踪表中, 包括 : 将两个五元组写入所述新的连接记录进行存储, 获取所述两个五元组的地址信息, 所 述两个五元组包括根据所述 IP 报文信息所构造的五元组及所述另一方向的五元组 ; 分别计算所述两个五。

8、元组的哈希值, 将所述两个五元组的地址信息分别插入到各自哈 希值对应的链表中 ; 其中, 计算所述两个五元组的哈希值时, 使用的哈希算法兼容IPv4类型和IPv6类型的 权 利 要 求 书 CN 104243631 A 2 2/3 页 3 五元组。 6.一种可实现IPv4地址与IPv6地址有状态转换的网络地址转换设备, 其特征在于, 包 括 : 连接跟踪查找单元, 用于在接收到IP报文后, 根据所述IP报文信息所构造的五元组到 连接跟踪表查找对应的连接记录, 将查找结果通知报文转换单元和连接记录生成单元, 所 述五元组包含第一协议的 IP 地址和端口 ; 所述报文转换单元, 用于在所述查找结果。

9、为未查找到时, 将所述 IP 报文中第一协议的 所述 IP 地址和端口转换为第二协议的 IP 地址和端口, 其中, 第一协议和第二协议分别为 IPv4 协议和 IPv6 协议中的一种且互不相同 ; 所述连接记录生成单元, 用于在查找结果为未查找到时, 为所述 IP 报文生成新的连接 记录, 并根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组, 将根据 所述 IP 报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录中 ; 连接跟踪表维护单元, 用于对连接跟踪表进行维护, 在新的连接记录生成完成后, 将写 入其中的两个五元组均挂载到连接跟踪表中。 7. 如权利要求 。

10、6 所述的网络地址转换设备, 其特征在于 : 所述报文转换单元还用于在所述查找结果为查找到时, 从查找到的连接记录中获取所 述 IP 报文的另一方向的五元组, 将所述 IP 报文中的 IP 地址和端口转换为所述另一方向的 五元组中另一协议的相应 IP 地址和端口。 8. 如权利要求 6 或 7 所述的网络地址转换设备, 其特征在于 : 所述报文转换单元将第一协议的所述 IP 地址和端口转换为第二协议的 IP 地址和端 口, 包括 : 将第一协议的目的 IP 地址和目的端口转换为第二协议的目的 IP 地址和目的端口, 将 第一协议的源IP地址和源端口转换为第二协议的源IP地址的源端口 ; 其中,。

11、 所述第二协议 的源端口是从可选的第二协议的源端口中选择得到的。 9. 如权利要求 8 所述的网络地址转换设备, 其特征在于 : 所述连接记录生成单元根据第二协议的所述IP地址和端口构造所述IP报文的另一方 向的五元组, 包括 : 根据第二协议的所述 IP 地址和端口构造一个另一方向的五元组并进行冲突校验, 如 无冲突, 将当前构造的另一方向的五元组作为所述 IP 报文的另一方向的五元组 ; 如有冲 突, 则重新选择一个转换后的第二协议的源端口, 重新构造一个另一方向的五元组并进行 冲突校验, 如此循环处理, 直到构造的另一方向的五元组的冲突校验结果为无冲突时, 再将 当前构造的另一方向的五元。

12、组作为所述 IP 报文的另一方向的五元组 ; 其中, 所述冲突校验是判断所述连接跟踪表中是否已存在与当前构造的另一方向的五 元组相同的五元组, 如存在, 则有冲突, 如不存在, 则无冲突。 10. 如权利要求 6 或 7 或 9 所述的网络地址转换设备, 其特征在于 : 所述连接跟踪表维护单元维护的连接跟踪表为哈希表, 所述哈希表中的每一哈希值对 应一个链表 ; 所述连接跟踪表维护单元将写入新生成的连接记录中的两个五元组挂载到连接跟踪 表中, 包括 : 权 利 要 求 书 CN 104243631 A 3 3/3 页 4 确定所述两个五元组在所述新生成的连接记录中的地址信息 ; 分别计算所述两。

13、个五元组的哈希值, 将所述两个五元组的地址信息分别插入到各自哈 希值对应的链表中 ; 其中, 计算所述两个五元组的哈希值时, 使用的哈希算法兼容IPv4类型和IPv6类型的 五元组。 权 利 要 求 书 CN 104243631 A 4 1/7 页 5 一种 IPv4 地址与 IPv6 地址有状态转换的方法及设备 技术领域 0001 本发明涉及网络技术, 更具体地, 涉及一种IPv4地址与IPv6地址有状态转换的方 法和设备。 背景技术 0002 IPv6 协议栈作为替代 IPv4 协议的下一代 IP 协议, 在世界范围中得到了广泛的推 广和实施, 但对于使用 IPv4 协议栈作为主流选择的用。

14、户来说, 如何实现 IPv4 环境向 IPv6 环境的平滑过渡成为了更加重要与实际的问题。 0003 目前提出的 IPv4 地址与 IPv6 地址转换的方式, 分为有状态转换以及无状态转换 两种。其中有状态转换是指维护了 IPv4 地址及端口, 与 IPv6 地址及端口的映射关系, 转换 是基于这种映射关系来进行的。无状态是指根据指定的映射算法, 实现不同协议栈地址的 转换, 不用维护映射关系。其中, 由于有状态转换可实现映射地址的重用, 在实际的使用场 景中更具有实用意义。 0004 目前实现 IPv4 地址与 IPv6 地址有状态转换时, 都需要单独维护类似于转换前与 转换后地址的映射表,。

15、 在流量很大的情况下, 对设备的存储要求也变得更高。 同时如果查找 方式不够高效, 也容易成为设备的性能瓶颈。 发明内容 0005 本发明要解决的技术问题是提供一种可节约存储空间的IPv4地址与IPv6地址有 状态转换的方法 0006 本发明要解决的另一技术问题是提供一种IPv4地址与IPv6地址有状态转换的方 法, 应用于网络地址转换设备, 包括 : 0007 接收到 IP 报文后, 根据所述 IP 报文信息所构造的五元组到连接跟踪表查找对应 的连接记录, 如未查找到, 为所述 IP 报文生成新的连接记录, 其中, 所述五元组包含第一协 议的 IP 地址和端口 ; 0008 对所述 IP 报。

16、文进行跨协议栈地址转换, 将第一协议的所述 IP 地址和端口转换为 第二协议的 IP 地址和端口, 其中, 第一协议和第二协议分别为 IPv4 协议和 IPv6 协议中的 一种且互不相同 ; 0009 根据第二协议的所述 IP 地址和端口构造所述 IP 报文的另一方向的五元组, 将根 据所述 IP 报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录并挂 载到所述连接跟踪表中。 0010 较佳地, 0011 所述方法还包括 : 0012 接收到 IP 报文后, 根据所述 IP 报文信息所构造的五元组到连接跟踪表查找对应 的连接记录 ; 0013 如查找到, 对所述 IP 报文进行跨。

17、协议栈地址转换时, 从查找到的连接记录中获取 说 明 书 CN 104243631 A 5 2/7 页 6 所述 IP 报文的另一方向的五元组, 将所述 IP 报文中的 IP 地址和端口转换为所述另一方向 的五元组中另一协议的相应 IP 地址和端口。 0014 较佳地, 0015 将第一协议的所述 IP 地址和端口转换为第二协议的 IP 地址和端口, 包括 : 0016 将第一协议的目的 IP 地址和目的端口转换为第二协议的目的 IP 地址和目的端 口, 将第一协议的源 IP 地址和源端口转换为第二协议的源 IP 地址的源端口 ; 其中, 所述第 二协议的源端口是从可选的第二协议的源端口中选择。

18、得到的。 0017 较佳地, 0018 根据第二协议的所述 IP 地址和端口构造所述 IP 报文的另一方向的五元组, 包 括 : 0019 根据第二协议的所述 IP 地址和端口构造一个另一方向的五元组并进行冲突校 验, 如无冲突, 将当前构造的另一方向的五元组作为所述 IP 报文的另一方向的五元组 ; 如 有冲突, 则重新选择一个转换后的第二协议的源端口, 重新构造一个另一方向的五元组并 进行冲突校验, 如此循环处理, 直到构造的另一方向的五元组的冲突校验结果为无冲突时, 再将当前构造的另一方向的五元组作为所述 IP 报文的另一方向的五元组 ; 0020 其中, 所述冲突校验是判断所述连接跟踪。

19、表中是否已存在与当前构造的另一方向 的五元组相同的五元组, 如存在, 则有冲突, 如不存在, 则无冲突。 0021 较佳地, 0022 所述连接跟踪表为哈希表, 所述哈希表中的每一哈希值对应一个链表 ; 0023 将根据所述 IP 报文信息所构造的五元组及所述另一方向的五元组写入所述新的 连接记录并挂载到所述连接跟踪表中, 包括 : 0024 将两个五元组写入所述新的连接记录进行存储, 获取所述两个五元组的地址信 息, 所述两个五元组包括根据所述 IP 报文信息所构造的五元组及所述另一方向的五元组 ; 0025 分别计算所述两个五元组的哈希值, 将所述两个五元组的地址信息分别插入到各 自哈希值。

20、对应的链表中 ; 0026 其中, 计算所述两个五元组的哈希值时, 使用的哈希算法兼容IPv4类型和IPv6类 型的五元组。 0027 相应地, 本发明提供的可实现 IPv4 地址与 IPv6 地址有状态转换的网络地址转换 设备包括 : 0028 连接跟踪查找单元, 用于在接收到 IP 报文后, 根据所述 IP 报文信息所构造的五 元组到连接跟踪表查找对应的连接记录, 将查找结果通知报文转换单元和连接记录生成单 元, 所述五元组包含第一协议的 IP 地址和端口 ; 0029 所述报文转换单元, 用于在所述查找结果为未查找到时, 将所述 IP 报文中第一协 议的所述IP地址和端口转换为第二协议的。

21、IP地址和端口, 其中, 第一协议和第二协议分别 为 IPv4 协议和 IPv6 协议中的一种且互不相同 ; 0030 所述连接记录生成单元, 用于在查找结果为未查找到时, 为所述 IP 报文生成新的 连接记录, 并根据第二协议的所述 IP 地址和端口构造所述 IP 报文的另一方向的五元组, 将根据所述 IP 报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录 中 ; 说 明 书 CN 104243631 A 6 3/7 页 7 0031 连接跟踪表维护单元, 用于对连接跟踪表进行维护, 在新的连接记录生成完成后, 将写入其中的两个五元组均挂载到连接跟踪表中。 0032 较佳地,。

22、 0033 所述报文转换单元还用于在所述查找结果为查找到时, 从查找到的连接记录中获 取所述 IP 报文的另一方向的五元组, 将所述 IP 报文中的 IP 地址和端口转换为所述另一方 向的五元组中另一协议的相应 IP 地址和端口。 0034 较佳地, 0035 所述报文转换单元将第一协议的所述IP地址和端口转换为第二协议的IP地址和 端口, 包括 : 0036 将第一协议的目的 IP 地址和目的端口转换为第二协议的目的 IP 地址和目的端 口, 将第一协议的源 IP 地址和源端口转换为第二协议的源 IP 地址的源端口 ; 其中, 所述第 二协议的源端口是从可选的第二协议的源端口中选择得到的。 。

23、0037 较佳地, 0038 所述连接记录生成单元根据第二协议的所述IP地址和端口构造所述IP报文的另 一方向的五元组, 包括 : 0039 根据第二协议的所述 IP 地址和端口构造一个另一方向的五元组并进行冲突校 验, 如无冲突, 将当前构造的另一方向的五元组作为所述 IP 报文的另一方向的五元组 ; 如 有冲突, 则重新选择一个转换后的第二协议的源端口, 重新构造一个另一方向的五元组并 进行冲突校验, 如此循环处理, 直到构造的另一方向的五元组的冲突校验结果为无冲突时, 再将当前构造的另一方向的五元组作为所述 IP 报文的另一方向的五元组 ; 0040 其中, 所述冲突校验是判断所述连接跟。

24、踪表中是否已存在与当前构造的另一方向 的五元组相同的五元组, 如存在, 则有冲突, 如不存在, 则无冲突。 0041 较佳地, 0042 所述连接跟踪表维护单元维护的连接跟踪表为哈希表, 所述哈希表中的每一哈希 值对应一个链表 ; 0043 所述连接跟踪表维护单元将写入新生成的连接记录中的两个五元组挂载到连接 跟踪表中, 包括 : 0044 确定所述两个五元组在所述新生成的连接记录中的地址信息 ; 0045 分别计算所述两个五元组的哈希值, 将所述两个五元组的地址信息分别插入到各 自哈希值对应的链表中 ; 0046 其中, 计算所述两个五元组的哈希值时, 使用的哈希算法兼容IPv4类型和IPv。

25、6类 型的五元组。 0047 上述方案实现了 IPv4 地址与 IPv6 报文地址有状态的转换。同时, 由于 IPv4 地址 与 IPv6 地址之间的映射关系的维护是复用已有的连接跟踪机制来实现的, 节约了存储空 间。由于连接跟踪表是采用 hash 表的形式进行存储的, 报文在查到连接跟踪的同时也查到 了对应的映射关系, 没有增加多余的查找复杂度, 保证了查找的高效性。 使用户不用改变已 有的环境和拓扑, 就能访问位于另一协议栈网络环境中的主机及服务。 附图说明 说 明 书 CN 104243631 A 7 4/7 页 8 0048 图 1A 和图 1B 分别是现有 IPv4 协议报文和 IP。

26、v6 协议报文的连接记录中的五元组 结构的示意图 ; 0049 图 2 是作为连接跟踪表的哈希表的结构示意图 ; 0050 图3是本发明实施例方法中, 接收到IP报文后没有查找到相应连接记录时的处理 流程图 ; 0051 图4是本发明实施例方法中, 接收到IP报文后查找到相应连接记录时的处理流程 图 ; 0052 图 5 是本发明实施例 NAT 设备的模块图。 具体实施方式 0053 为使本发明的目的、 技术方案和优点更加清楚明白, 下文中将结合附图对本发明 的实施例进行详细说明。 需要说明的是, 在不冲突的情况下, 本申请中的实施例及实施例中 的特征可以相互任意组合。 0054 实施例 00。

27、55 本实施例中, IPv4 地址与 IPv6 地址的有状态转换基于报文的连接跟踪机制实现。 0056 连接跟踪 (conntrack) 作为网络层通用的连接管理方式。所谓连接跟踪, 就是 跟踪并记录连接状态。对于收到一个连接的 IP 报文, 连接跟踪机制首先要进行连接记 录 (Connection entry) 的查找, 查找时根据 IP 报文网络层以及传输层头部信息中的五 元组, 到连接跟踪表中进行查找该五元组。如没有查找到, 为该连接生成一个连接记录 (Connection entry)。此后, 所有属于此连接的 IP 报文都被唯一地分配给这个连接。在一 个连接记录中, 记录有 IP 报。

28、文的两个方向的五元组、 记录生存时间、 连接在当前时间点的 状态等信息。一般将根据连接的首个 IP 报文信息所构造的五元组称为正向五元组, 根据该 首个 IP 报文的应答报文信息所构造的五元组称为反向五元组。两个五元组中均包括传输 层协议号、 源 IP 地址、 源端口、 目的 IP 地址和目的端口, 其中, 反向五元组中的源 IP 地址、 源端口从正向五元组中的目的 IP 地址和目的端口得到, 反向五元组中的目的 IP 地址和目 的端口从正向五元组中的源 IP 地址和源端口得到。关于 IPv4 协议报文和 IPv6 协议报文 的连接记录及其中的五元组可参见图 1A 和图 1B 所示的结构。 0。

29、057 为了方便查找和对比, 连接记录中的两个五元组需要挂载在一个连接跟踪表中以 实现高效的查询。连接跟踪表可以用哈希表实现但不局限于此, 图 2 所示是以哈希表作为 连接跟踪表的一个示例, 在该哈希表中, 为每个哈希值建有一个链表, 链表中的每一节点都 保存有一个指针, 指向具有该哈希值的一个五元组。所谓的挂载即计算两个五元组的哈希 值, 将两个五元组在连接记录中的地址信息 ( 如五元组数据结构的头结点的地址 ) 插入在 各自哈希值对应的链表中。接收到该连接的后续报文后, 根据后续报文所构造的五元组计 算哈希值, 到该哈希值对应的链表查找到该五元组, 也即查找到该连接的连接记录。 0058 。

30、本实施例复用连接跟踪表作为映射关系表, 复用连接记录作为存储不同协议 IP 地址和端口的映射关系的结构。在本发明实施方案中, 除特别指出外, IP 报文均是指需要 进行跨协议栈地址转换的 IP 报文。对于不需要进行跨协议 IP 地址转换的报文, 按照常规 方式处理即可。 0059 图 3 所示是本实施例的网络地址转换设备 (NAT) 接收到 IP 报文, 没有查找到相应 说 明 书 CN 104243631 A 8 5/7 页 9 连接记录时的处理流程, 包括 : 0060 步骤 110, 接收到 IP 报文后, 根据所述 IP 报文信息所构造的五元组到连接跟踪表 查找对应的连接记录, 其中,。

31、 所述五元组包含第一协议的 IP 地址和端口 ; 0061 接收到的 IP 报文中的五元组可能是正向五元组, 也可能是反向五元组。 0062 步骤 120, 为所述 IP 报文生成新的连接记录 ; 0063 步骤 130, 对所述 IP 报文进行跨协议栈地址转换, 将第一协议的所述 IP 地址和端 口转换为第二协议的 IP 地址和端口, 其中, 第一协议和第二协议分别为 IPv4 协议和 IPv6 协议中的一种且互不相同 ; 0064 文中也将五元组中的源 IP 地址和目的 IP 地址统称为五元组中的 IP 地址, 将五元 组中的源端口和目的端口统称为五元组中的端口。 0065 在本步骤中, 。

32、将第一协议的所述IP地址和端口转换为第二协议的IP地址和端口, 包括 : 0066 将第一协议的目的 IP 地址和目的端口转换为第二协议的目的 IP 地址和目的端 口 ; 其中, 目的地址的转换方式可以根据用户配置决定, 目的端口一般不进行改动, 除非用 户指定需要进行变动。为了保证转换后的目的地址是可路由的, NAT 设备会查找路由, 并记 录出接口以及下一跳信息 ; 0067 将第一协议的源IP地址和源端口转换为第二协议的源IP地址的源端口 ; 其中, 源 地址的转换方式可以根据用户配置决定, 而第二协议的源端口是唯一没有被用户指定的, 可以从可选的第二协议的源端口中选择得到的。 0068。

33、 步骤140, 根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元 组 ; 0069 源 IP 地址、 源端口、 目的 IP 地址, 目的端口以及传输层协议号是五元组的基本元 素, 为了保证五元组的唯一性, 根据第二协议的所述 IP 地址和端口构造一个另一方向的五 元组后, 要进行冲突校验, 如无冲突, 将当前构造的另一方向的五元组作为所述 IP 报文的 另一方向的五元组 ; 如有冲突, 则重新选择一个转换后的第二协议的源端口, 重新构造一个 另一方向的五元组并进行冲突校验, 如此循环处理, 直到构造的另一方向的五元组的冲突 校验结果为无冲突时, 再将当前构造的另一方向的五元组作。

34、为所述 IP 报文的另一方向的 五元组。其中, 所述冲突校验是判断所述连接跟踪表中是否已存在与当前构造的另一方向 的五元组相同的五元组, 如存在, 则有冲突, 如不存在, 则无冲突。 0070 步骤 150, 将根据所述 IP 报文信息所构造的五元组及所述另一方向的五元组写入 所述新的连接记录并挂载到所述连接跟踪表中。 0071 本实施例中, 所述连接跟踪表为哈希表, 所述哈希表中的每一哈希值对应一个链 表 ; 将根据所述 IP 报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接 记录并挂载到所述连接跟踪表中, 包括 : 0072 将两个五元组写入所述新的连接记录进行存储, 获取所述。

35、两个五元组的地址信 息, 所述两个五元组包括根据所述 IP 报文信息所构造的五元组及所述另一方向的五元组 ; 0073 分别计算所述两个五元组的哈希值, 将所述两个五元组的地址信息分别插入到 各自哈希值对应的链表中 ; 其中, 计算所述两个五元组的哈希值时, 使用的哈希算法兼容 IPv4 类型和 IPv6 类型的五元组。 说 明 书 CN 104243631 A 9 6/7 页 10 0074 需要说明的是, 虽然上述流程展现了一些处理之间的顺序, 但这只是示例性的。 例 如, 上述对 IP 报文执行的跨协议栈地址转换的处理, 和构造 IP 报文的另一方向的五元组, 写入所述新的连接记录并挂载。

36、到所述连接跟踪表的处理之间的顺序可以调, 本发明对此并 不限制。 而对两个五元组所执行的写入所述新的连接记录并挂载到所述连接跟踪表的操作 也不必同时进行, 可以有先后顺序。等等。 0075 上述图 3 所示的处理后, IP 报文的 IPv4 地址和 IPv6 地址之间的映射关系被保存 在了连接记录中, 即连接记录中保存了不同协议的IP地址和端口。 因而根据该连接后续IP 报文中的五元组, 可以查找连接跟踪表获取该映射关系, 从而完成地址转换。 0076 图 4 所示是本实施例的网络地址转换设备 (NAT) 接收到 IP 报文, 查找到相应连接 记录时的处理流程, 包括 : 0077 步骤 21。

37、0, 接收到 IP 报文后, 根据所述 IP 报文信息所构造的五元组到连接跟踪表 查找到对应的连接记录 ; 0078 步骤组 220, 对所述 IP 报文进行跨协议栈地址转换时, 从查找到的连接记录中获 取所述 IP 报文的另一方向的五元组, 将所述 IP 报文中的 IP 地址和端口转换为所述另一方 向的五元组中另一协议的相应 IP 地址和端口。 0079 以 IPv4 协议报文为例, 该 IP 报文中的 IP 地址和端口包括基于 IPv4 协议的源地 址和相应源端口, 以及基于 IPv4 协议的目的地址和相应目的端口。在该 IP 报文的另一方 向的五元组中, 保存有该IP报文应答报文的基于I。

38、Pv6协议的源地址和相应源端口, 以及基 于 IPv6 协议的目的地址和相应目的端口。该 IP 报文及其应答报文中的源地址、 端口及目 的地址、 端口是互换的。因此, 在转换时, 将该 IP 报文中的基于 IPv4 协议的源地址和相应 源端口转换为该另一方向的五元组中的基于 IPv6 协议的目的地址和相应目的端口, 将该 IP 报文中的基于 IPv4 协议的目的地址和相应目的端口转换为该另一方向的五元组中的基 于 IPv6 协议的源地址和相应源端口。 0080 本实施例 NAT 设备进行的网络地址转换, 除了跨协议栈地址转换外, 还可以进行 其他网络地址转换如公、 私网地址的转换等。 0081。

39、 相应地, 本实施例提供的可实现 IPv4 地址与 IPv6 地址有状态转换的网络地址转 换设备, 如图 5 所示, 包括 : 0082 连接跟踪查找单元10, 用于在接收到IP报文后, 根据所述IP报文信息所构造的五 元组到连接跟踪表查找对应的连接记录, 将查找结果通知报文转换单元和连接记录生成单 元, 所述五元组包含第一协议的 IP 地址和端口 ; 0083 报文转换单元 20, 用于在所述查找结果为未查找到时, 将所述 IP 报文中第一协议 的所述IP地址和端口转换为第二协议的IP地址和端口, 其中, 第一协议和第二协议分别为 IPv4 协议和 IPv6 协议中的一种且互不相同 ; 00。

40、84 连接记录生成单元 30, 用于在查找结果为未查找到时, 为所述 IP 报文生成新的连 接记录, 并根据第二协议的所述IP地址和端口构造所述IP报文的另一方向的五元组, 将根 据所述 IP 报文信息所构造的五元组及所述另一方向的五元组写入所述新的连接记录中 ; 0085 连接跟踪表维护单元 40, 用于对连接跟踪表进行维护, 在新的连接记录生成完成 后, 将写入其中的两个五元组均挂载到连接跟踪表中。 0086 较佳地, 报文转换单元 20 还用于在所述查找结果为查找到时, 从查找到的连接记 说 明 书 CN 104243631 A 10 7/7 页 11 录中获取所述 IP 报文的另一方向。

41、的五元组, 将所述 IP 报文中的 IP 地址和端口转换为所述 另一方向的五元组中另一协议的相应 IP 地址和端口。 0087 较佳地, 报文转换单元 20 将第一协议的所述 IP 地址和端口转换为第二协议的 IP 地址和端口, 包括 : 将第一协议的目的IP地址和目的端口转换为第二协议的目的IP地址和 目的端口, 将第一协议的源 IP 地址和源端口转换为第二协议的源 IP 地址的源端口 ; 其中, 所述第二协议的源端口是从可选的第二协议的源端口中选择得到的。 0088 较佳的, 连接记录生成单元 30 根据第二协议的所述 IP 地址和端口构造所述 IP 报 文的另一方向的五元组, 包括 : 。

42、根据第二协议的所述 IP 地址和端口构造一个另一方向的五 元组并进行冲突校验, 如无冲突, 将当前构造的另一方向的五元组作为所述 IP 报文的另一 方向的五元组 ; 如有冲突, 则重新选择一个转换后的第二协议的源端口, 重新构造一个另一 方向的五元组并进行冲突校验, 如此循环处理, 直到构造的另一方向的五元组的冲突校验 结果为无冲突时, 再将当前构造的另一方向的五元组作为所述 IP 报文的另一方向的五元 组 ; 其中, 所述冲突校验是判断所述连接跟踪表中是否已存在与当前构造的另一方向的五 元组相同的五元组, 如存在, 则有冲突, 如不存在, 则无冲突。 0089 较佳地, 连接跟踪表维护单元维。

43、护的连接跟踪表为哈希表, 所述哈希表中的每一 哈希值对应一个链表 ; 所述连接跟踪表维护单元将写入新生成的连接记录中的两个五元组 挂载到连接跟踪表中, 包括 : 确定所述两个五元组在所述新生成的连接记录中的地址信息 ; 分别计算所述两个五元组的哈希值, 将所述两个五元组的地址信息分别插入到各自哈希值 对应的链表中 ; 其中, 计算所述两个五元组的哈希值时, 使用的哈希算法兼容 IPv4 类型和 IPv6 类型的五元组。 0090 上述实施方案可以支持IPv4协议端发起的会话, 也支持IPv6协议端发起的会话, 能将会话报文转换为目的协议栈类型的报文, 满足位于不同网络协议栈的用户互访的需 求,。

44、 实现两种协议栈的无缝衔接, 从而逐步达到从IPv4网络环境向IPv6网络环境过渡的目 标。 0091 上述实施方案是基于网络层的连接跟踪机制实现的, 在连接跟踪机制的基础上, 不需要另外的空间来进行映射关系的存储, 也不需要其他的步骤来进行映射关系的查询, 对设备的性能不会有大的影响, 是一种高效使用的转换方式。 并且, 能通过调整转换后的源 端口避免冲突, 可以满足用户关于映射地址可以重用的要求。 0092 本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令 相关硬件完成, 所述程序可以存储于计算机可读存储介质中, 如只读存储器、 磁盘或光盘 等。可选地, 上述实施例的全。

45、部或部分步骤也可以使用一个或多个集成电路来实现, 相应 地, 上述实施例中的各模块 / 单元可以采用硬件的形式实现, 也可以采用软件功能模块的 形式实现。本发明不限制于任何特定形式的硬件和软件的结合。 0093 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的任何修 改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。 说 明 书 CN 104243631 A 11 1/3 页 12 图 1A图 1B 图 2 说 明 书 附 图 CN 104243631 A 12 2/3 页 13 图 3 图 4 说 明 书 附 图 CN 104243631 A 13 3/3 页 14 图 5 说 明 书 附 图 CN 104243631 A 14 。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 电学 > 电通信技术


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1