公开/公告号CN101964799A
专利类型发明专利
公开/公告日2011-02-02
原文格式PDF
申请/专利权人 神州数码网络(北京)有限公司;
申请/专利号CN201010514283.3
发明设计人 徐岩;
申请日2010-10-21
分类号H04L29/06(20060101);H04L29/12(20060101);H04L12/46(20060101);
代理机构11332 北京品源专利代理有限公司;
代理人宋松
地址 100085 北京市海淀区上地九街9号数码科技广场一段三层A区
入库时间 2023-12-18 01:39:26
法律状态公告日
法律状态信息
法律状态
2014-06-04
授权
授权
2011-07-27
实质审查的生效 IPC(主分类):H04L29/06 申请日:20101021
实质审查的生效
2011-02-02
公开
公开
技术领域
本发明涉及网络通信技术领域,尤其涉及一种点到网隧道方式下地址冲突的解决方法。
背景技术
VPN(Virtual Private Network虚拟专用网)可以通过特殊的加密的通讯协议在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有的通讯线路,能够利用公共网络建立虚拟私有网,目前在企业中得到了广泛的应用;其中,SSLVPN以其简单的客户端配置、细粒度的ACL控制和丰富的功能等特点正渐渐取代传统的IPSecVPN。
在SSLVPN中,一个重要的使用方式就是点到网隧道,用户通过与SSLVPN建立一条加密的隧道来进行业务访问。在用户端和SSLVPN端,此隧道均需使用虚拟网卡,并由SSLVPN给用户端分配虚拟网卡的IP地址。隧道建立成功后,用户端将自己的请求数据包通过隧道传送到SSLVPN,SSLVPN将该请求转发到后端的服务器。这个过程中,用户端需要使用虚拟网卡的IP地址作为请求数据包的源IP地址。在以上应用中,分配给用户端的IP地址可能会与用户端的网络环境发生冲突,如与本机路由表中的某一项相同或被某一项包含,通常情况下,解决这种问题的方法是由SSLVPN重新分配另外一个不同的IP地址给用户端。
但是某些情况下要求用户端的虚拟网卡必须使用特定的IP地址,如果此时恰好发生冲突,上述方法就无法解决了。举例说明如下:某高校经过授权后可以使用国外的某个数字图书馆,该数字图书馆使用IP地址来禁止非授权用户访问,即只有从该高校的某个特定IP地址或地址段发出的请求才允许访问。此时采用SSLVPN给用户端分配的虚拟网卡的IP地址则不能满足访问的条件。
发明内容
本发明是针对上述提到的点到网隧道应用中存在的问题,提供一种解决方法。
本发明通过以下方案实现上述目的:
一种点到网隧道方式下地址冲突的解决方法,包括以下步骤:
S101用户端开始向SSLVPN发起隧道建立请求;
S102用户端向SSLVPN发起IP地址请求;
S103SSLVPN生成影子IP,此影子IP与原始IP地址通过哈希进行关联;
S104SSLVPN将影子IP发送给用户端;
S105用户端判断影子IP地址是否与本机网络环境存在冲突:
如果存在冲突,返回到步骤3由SSLVPN重新生成影子IP;
如果不存在冲突,则使用此影子IP作为虚拟网卡的IP地址。
优选的,在步聚S103生成影子IP时,采用的规则为:假设IP地址为x1:x2:x3:x4,
根据x2的值改变x2为x2`,
如果x2大于等于127,x2`=x2-1;
如果x2小于127,x2`=x2+1;
将x1:x2`:x3:x4作为影子IP;
如果改变x2生成的影子IP均发生冲突,则根据x1的值改变x1为x1`,
如果x1大于等于127,x1`=x1-1;
如果x1小于127,x1`=x1+1;
将x1`:x2:x3:x4作为影子IP。
在步聚S105中用户端判断影子IP地址与本机网络环境存在冲突时,将影子IP地址与本机路由表进行比较,如果IP地址与本机路由表中的某一项相同或被某一项包含,则判定为冲突。
进一步的,点到网隧道建立成功后,SSLVPN收到用户端通过此隧道发来的数据包时,根据需要对IP地址进行处理,将影子IP替换为原始IP。
进一步的,点到网隧道建立成功后,SSLVPN对后端服务器返回的数据包,根据需要进行反替换,即将原始IP替换为影子IP,然后通过隧道发送给用户端。
本发明能成功解决上述的地址冲突问题,使点到网隧道能够应对各种网络拓扑要求,拓宽了此种应用的使用范围。
附图说明
下面根据实施例和附图对本发明作进一步详细说明。
图1是本发明所述实施例应用现场的系统结构图;
图2是本发明所述方法的原理流程框图;
图3是本发明所述方法建立点到网隧道成功后的数据处理原理图。
具体实施方式
图1是本发明所述实施例应用现场的系统结构图,图2给出了处理流程图,本方法包括以下步骤:
S101用户端开始向SSLVPN发起隧道建立请求;
S102用户端向SSLVPN发起IP地址请求;
S103SSLVPN生成影子IP,此影子IP与原始IP地址通过哈希进行关联;
S104SSLVPN将影子IP发送给用户端;
S105用户端判断影子IP地址是否与本机网络环境存在冲突:
如果存在冲突,返回到步骤S103由SSLVPN重新生成影子IP;
如果不存在冲突,则使用此影子IP作为虚拟网卡的IP地址。
优选的,在步聚S103生成影子IP时,采用的规则为:假设IP地址为x1:x2:x3:x4,
根据x2的值改变x2为x2`,
如果x2大于等于127,x2`=x2-1;
如果x2小于127,x2`=x2+1;
将x1:x2`:x3:x4作为影子IP;
如果改变x2生成的影子IP均发生冲突,则根据x1的值改变x1为x1`,
如果x1大于等于127,x1`=x1-1;
如果x1小于127,x1`=x1+1;
将x1`:x2:x3:x4作为影子IP。
在步聚S105中用户端判断影子IP地址与本机网络环境存在冲突时,将影子IP地址与本机路由表进行比较,如果IP地址与本机路由表中的某一项相同或被某一项包含,则判定为冲突。
图3是给出了本发明所述方法建立点到网隧道成功后的数据处理原理图,点到网隧道建立成功后,SSLVPN收到用户端通过此隧道发来的数据包时,根据需要对IP地址进行处理,将影子IP替换为原始IP;点到网隧道建立成功后,SSLVPN对后端服务器返回的数据包,根据需要进行反替换,即将原始IP替换为影子IP,然后通过隧道发送给用户端。
具体实施例如下:
用户端真实网卡的IP地址为192.168.1.100,并准备通过隧道方式访问服务器1,但是服务器1要求只有源地址是192.168.1.100的用户才能访问,即用户端虚拟网卡的IP地址应该是192.168.1.100。基于此,SSLVPN为用户端分配了虚拟IP地址:192.168.1.100。但是此IP地址与用户端的真实网卡IP地址冲突,无法使用隧道,于是用户端将冲突通知给SSLVPN,SSLVPN根据算法为用户端生成了影子IP 192.168.2.100,并下发给用户端,同时SSLVPN记录这两个IP地址的关联。由于192.168.2.100与用户端没有冲突,这样,隧道建立成功。用户端通过此隧道向服务器1发起资源请求,这个请求的源IP和目的IP分别为:192.168.2.100->192.168.1.1。请求到达SSLVPN后,SSLVPN在转发前,根据先前记录的关联关系,将此数据包的源IP从192.168.2.100修改为192.168.1.100。这样,到达服务器1的请求包变为:192.168.1.100->192.168.1.1。符合服务器1的限制,该请求被接受。而服务器1的回复为:192.168.1.1->192.168.1.100。到达SSLVPN后,SSLVPN根据先前记录的关联关系,将此数据包的目的IP从192.168.1.100修改为192.168.2.100,然后将此回复数据包通过隧道转发给用户端。以后的数据包皆按以上方式进行转发,最终实现了用户端对服务器1的访问。
应该注意,虽然以上是参考具体实施方式对本发明进行说明的,但这并不意味是对本发明的限制,本发明的保护范围是由所附权利要求而不是具体实施方式来限定的。
机译: 基于隧道信息的地址冲突解决方法和系统
机译: 基于隧道信息的地址冲突解决系统及解决方法
机译: 基于隧道信息的地址冲突解决方法和系统