本发明涉及通信领域,具体涉及一种基于身份标识的跨网隧道传输方法。
背景技术:
在现有网络环境下,以文电应用为例,同网域用户之间的信息交换过程如图1所示,发送方首先将信息交给发送方传输代理,信息接收方用名字标识,发送方传输代理通过名录解析获得接收方传输代理的网络地址,然后发送方传输代理将用户信息发送给接收方传输代理,接着由接收方传输代理将信息交给信息接收方,信息交换过程结束。如图2所示,当信息发送方与接收方分属不同网系时,上述信息交换过程难以完成,原因主要是:发送方所在网域和接收方所在网域之间没有路由交换,彼此不存在可达路由;同时如果不同网系之间,存在相同网段的,甚至ip相同的主机,在进行跨网传输的过程中,就会导致路由寻址失败,不能正确跨网。
技术实现要素:
针对现有技术中的上述不足,本发明提供的一种基于身份标识的跨网隧道传输方法解决了跨网域传输数据难的问题。
为了达到上述发明目的,本发明采用的技术方案为:
提供一种基于身份标识的跨网隧道传输方法,其包括以下步骤:
s1、在不同网域中配置具有私有隧道协议的额外网关单元;
s2、通过额外网关单元分别为同网域中终端用户生成唯一的身份标识,将终端用户的真实ip和身份标识进行映射存储并发送给其他网域中的额外网关单元;
s3、通过传输代理设备解析原始报文并将其通信目的ip和通信源ip发送给源网域的额外网关单元,通过源网域的额外网关单元查询通信源ip对应的身份标识;其中通信目的ip为接收方的身份标识,通信源ip为发送方的真实ip;
s4、通过源网域的额外网关查询通信目的ip是否上线,若是则进入步骤s5,否则终止该数据传输且不返回查询结果给源网域的传输代理设备;
s5、通过源网域的额外网关单元将其自身的身份标识和通信源ip对应的身份标识返回给源网域的传输代理设备;
s6、通过源网域的传输代理设备根据额外网关单元和通信源ip对应的身份标识对原始报文进行私有隧道协议封装并路由到源网域的额外网关单元;
s7、通过源网域的额外网关单元将封装后的报文传输到目的网域的额外网关单元;
s8、通过目的网域的额外网关单元将接收到的报文传输至目的网域的传输代理设备;
s9、通过目的网域的传输代理设备对报文进行脱隧道封装,并根据解封装后报文的通信目的ip查询接收方的真实ip,并选择路由进行转发,完成跨网隧道传输。
进一步地,步骤s1中私有隧道协议的封装格式为:
外ip+udp+n2n_tun+内ip+data;其中:
外ip采用标准ipv4协议头部,外ip中的目的ip字段为通信目的ip,协议字段填充为udp,外ip中其余字段与需要进行跨网传输的数据报文的相应字段相同;
udp采用标准udp协议头部,源端口固定为6061,目的端口固定为8787;
n2n_tun为私有隧道协议认证头,为四层结构,第一层包括并列的sign_head字段、len字段和reserved字段,依次用于标识认证头部、标识认证头长度和保留使用;第二层包括spi字段,用于标识安全参数;第三层包括sequencenum字段,用于抗重放攻击;第四层包括authenticationdata字段,用于计算内ip报文的摘要值,校验报文完整性;
内ip用于记录通信源ip对应的身份标识;
data为数据部分,用于存放需要进行跨网传输的数据内容。
进一步地,sign_head字段为一个字节,固定为0xaa;len字段为一个字节,默认值为0x7;reserved字段为两个字节;spi字段为四个字节并采用随机数;sequencenum字段为四个字节,采用序列号;authenticationdata字段为20个字节,用于计算内ip报文的摘要值的默认算法为sha1。
进一步地,步骤s2中身份标识的生成方法为:
对终端用户生成一个28位的随机数,将该随机数与0xdcffffff做与运算,将运算结果作为该终端用户对应的身份标识;其中终端用户的真实ip与身份标识之间的映射关系采用m-tree格式进行存储。
进一步地,步骤s6的具体方法为:
按照私有隧道协议的封装格式对需要进行跨网传输的数据进行私有隧道协议封装,并将发送方的原始报文中的通信源ip替换为其对应的身份标识,将同网域的额外网关单元的真实ip作为私有隧道协议中的目的地址,将发送方的身份标识作为私有隧道协议中的源地址,得到第一次处理后的报文,并将第一次处理后的报文路由到源网域的额外网关单元。
进一步地,步骤s7的具体方法为:
通过源网域的额外网关单元对第一次处理后的报文进行防重放和完整性校验,并进行管理员预设的交换权限检测,若都通过则将第一次处理后的报文的私有隧道协议中的目的地址修改为目的网域的额外网关单元的身份标识、将私有隧道协议中的源地址修改为源网域的额外网关的身份标识,得到第二次处理后的报文,并将第二次处理后的报文发送至目的网域的额外网关单元;否则拒绝对第一次处理后的报文进行处理。
进一步地,步骤s8的具体方法为:
通过目的网域的额外网关单元对第二次处理后的报文进行防重放和完整性校验,若通过则将第二次处理后的报文的私有隧道协议中的目的地址修改为私有隧道协议中的目的地址对应的真实ip,将私有隧道协议中的通信源ip修改为目的网域的额外网关单元的真实ip,将接收方的安全参数重新填充到私有隧道协议的认证头中,得到第三次处理后的报文,并将第三次处理后的报文传输至目的网域的传输代理设备;否则拒绝对第二次处理后的报文进行处理。
进一步地,步骤s9的具体方法为:
通过目的网域的传输代理设备将第三次处理后的报文进行脱隧道封装,将脱隧道封装得到的报文中的目的地址修改为该目的地址对应的真实ip,得到第四次处理后的报文;重新计算第四次处理后的报文的三层和四层校验和,若校验通过则根据第四次处理后的报文中的目的地址选择路由进行转发,完成跨网隧道传输;否则拒绝对第四次处理后的报文进行处理。
本发明的有益效果为:本方法能够解决在不同网系之间路由隔离的情况下,实现跨网通信,同时对跨网通信的数据提供防篡改、防重放、隐藏用户ip信息的安全防护功能。并且解决了不同网域之间存在相同网段,甚至相同ip终端的路由寻址问题,让一个网域内的ip地址规划不受其他网系地址规划的影响。
附图说明
图1为网内信息交换示意图;
图2为网间信息交换示意图;
图3为本方法的流程示意图;
图4为本方法跨网域信息交换系统示意图;
图5为私有隧道协议封装格式示意图;
图6为n2n_tun格式示意图;
图7为实施例中的系统信息示意图。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
如图3和图4所示,该基于身份标识的跨网隧道传输方法包括以下步骤:
s1、在不同网域中配置具有私有隧道协议的额外网关单元;
s2、通过额外网关单元分别为同网域中终端用户生成唯一的身份标识,将终端用户的真实ip和身份标识进行映射存储并发送给其他网域中的额外网关单元;
s3、通过传输代理设备解析原始报文并将其通信目的ip和通信源ip发送给源网域的额外网关单元,通过源网域的额外网关单元查询通信源ip对应的身份标识;其中通信目的ip为接收方的身份标识,通信源ip为发送方的真实ip;
s4、通过源网域的额外网关查询通信目的ip是否上线,若是则进入步骤s5,否则终止该数据传输且不返回查询结果给源网域的传输代理设备;
s5、通过源网域的额外网关单元将其自身的身份标识和通信源ip对应的身份标识返回给源网域的传输代理设备;
s6、通过源网域的传输代理设备根据额外网关单元和通信源ip对应的身份标识对原始报文进行私有隧道协议封装并路由到源网域的额外网关单元;
s7、通过源网域的额外网关单元将封装后的报文传输到目的网域的额外网关单元;
s8、通过目的网域的额外网关单元将接收到的报文传输至目的网域的传输代理设备;
s9、通过目的网域的传输代理设备对报文进行脱隧道封装,并根据解封装后报文的通信目的ip查询接收方的真实ip,并选择路由进行转发,完成跨网隧道传输。
如图5和图6所示,步骤s1中私有隧道协议的封装格式为:
外ip+udp+n2n_tun+内ip+data;其中:
外ip采用标准ipv4协议头部,外ip中的目的ip字段为通信目的ip,协议字段填充为udp,外ip中其余字段与需要进行跨网传输的数据报文的相应字段相同;
udp采用标准udp协议头部,源端口固定为6061,目的端口固定为8787;
n2n_tun为私有隧道协议认证头,为四层结构,第一层包括并列的sign_head字段、len字段和reserved字段,依次用于标识认证头部、标识认证头长度和保留使用;第二层包括spi字段,用于标识安全参数;第三层包括sequencenum字段,用于抗重放攻击;第四层包括authenticationdata字段,用于计算内ip报文的摘要值,校验报文完整性;
内ip用于记录通信源ip对应的身份标识;
data为数据部分,用于存放需要进行跨网传输的数据内容。
sign_head字段为一个字节,固定为0xaa;len字段为一个字节,默认值为0x7;reserved字段为两个字节;spi字段为四个字节并采用随机数;sequencenum字段为四个字节,采用序列号;authenticationdata字段为20个字节,用于计算内ip报文的摘要值的默认算法为sha1。
步骤s2中身份标识的生成方法为:对终端用户生成一个28位的随机数,将该随机数与0xdcffffff做与运算,将运算结果作为该终端用户对应的身份标识;其中终端用户的真实ip与身份标识之间的映射关系采用m-tree格式进行存储。
步骤s6的具体方法为:按照私有隧道协议的封装格式对需要进行跨网传输的数据进行私有隧道协议封装,并将发送方的原始报文中的通信源ip替换为其对应的身份标识,将同网域的额外网关单元的真实ip作为私有隧道协议中的目的地址,将发送方的身份标识作为私有隧道协议中的源地址,得到第一次处理后的报文,并将第一次处理后的报文路由到源网域的额外网关单元。
步骤s7的具体方法为:通过源网域的额外网关单元对第一次处理后的报文进行防重放和完整性校验,并进行管理员预设的交换权限检测,若都通过则将第一次处理后的报文的私有隧道协议中的目的地址修改为目的网域的额外网关单元的身份标识、将私有隧道协议中的源地址修改为源网域的额外网关的身份标识,得到第二次处理后的报文,并将第二次处理后的报文发送至目的网域的额外网关单元;否则拒绝对第一次处理后的报文进行处理。
步骤s8的具体方法为:通过目的网域的额外网关单元对第二次处理后的报文进行防重放和完整性校验,若通过则将第二次处理后的报文的私有隧道协议中的目的地址修改为私有隧道协议中的目的地址对应的真实ip,将私有隧道协议中的通信源ip修改为目的网域的额外网关单元的真实ip,将接收方的安全参数重新填充到私有隧道协议的认证头中,得到第三次处理后的报文,并将第三次处理后的报文传输至目的网域的传输代理设备;否则拒绝对第二次处理后的报文进行处理。
步骤s9的具体方法为:通过目的网域的传输代理设备将第三次处理后的报文进行脱隧道封装,将脱隧道封装得到的报文中的目的地址修改为该目的地址对应的真实ip,得到第四次处理后的报文;重新计算第四次处理后的报文的三层和四层校验和,若校验通过则根据第四次处理后的报文中的目的地址选择路由进行转发,完成跨网隧道传输;否则拒绝对第四次处理后的报文进行处理。
在本发明的一个实施例中,如图7所示,pc1为数据发送方,pc2为数据接收方,网关包括源网域额外网关单元和目的网域额外网关,在源网域中,pc1的真实ip为171.3.4.10,身份标识为220.3.4.10;源网域额外网关单元的真实ip为171.3.4.2,身份标识为223.255.255.4。在目的网域中,pc2的真实ip为171.221.115.36,身份标识为220.221.115.36;目的网域额外网关单元的真实ip为171.221.115.36,身份标识为223.255.255.3。
当pc1想发送原始报文至pc2时,由于pc1只知晓pc2的身份标识,所以原始报文中的源地址为171.3.4.10,目的地址为220.221.115.36。该原始报文到达源网域代理设备后,源网域代理设备将始报文中的源地址修改为220.3.4.10,并进行私有隧道协议封装,将私有隧道协议封装中的外ip的地址填写为171.3.4.2,将私有隧道协议中的源地址填写为220.3.4.10。
当源网域的额外网关单元接收到报文后,将私有隧道协议中的目的地址修改为223.255.255.3,将私有隧道协议中的源地址修改为223.255.255.4。
当目的网域的额外网关单元接收到报文后,将私有隧道协议中的目的地址修改为171.221.115.36,将私有隧道协议中的通信源ip修改为171.221.115.36。
当目的网域的代理设备接收到报文后,对接收到的报文进行解封装,将脱隧道封装得到的报文中的目的地址修改为171.221.115.36,至此,接收方接收到的报文的源地址为pc1的身份标识220.3.4.10,目的地址为pc2的真实地址171.221.115.36。
由此可见,整个通信过程中的双方都只知道对端的身份标识,而不知道对方在其所在网域中的ip,同时本方法解决了不同网域之间存在相同网段,甚至相同ip终端的路由寻址问题,让一个网域内的ip地址规划不受其他网系地址规划的影响,且本方法能够解决在不同网系之间路由隔离的情况下,实现跨网通信,同时对跨网通信的数据提供防篡改、防重放、隐藏用户ip信息的安全防护功能。