具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的一种网络访问方法,应用于服务器端。服务器端可以包括代理服务器和远端服务器等,其中远端服务器是各种服务器的一个抽象概念包括了授权服务器,身份识别,数据转发等各种服务器。
图1为本发明提供的一种内网访问方法实施例的流程示意图。如图1所示,该内网访问方法,包括以下步骤:
S101,接收客户端发出的域名查询请求。
在步骤S101中,客户端可以是电脑、智能手机或者平板,本发明实施例对客户端不作限定。域名(Domain Name)是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位,可以通过获取网站的域名对网站进行访问。客户端上安装有应用程序,应用程序想要访问网站,可以向服务器端发出域名查询的请求。
S102,对获取的域名查询请求的数据包进行解析,得到客户端想要访问的网站的域名。
在步骤S102中,服务器端首先获取域名查询请求的数据包,对该数据包进行解析,可以得到客户端想要访问的网站的域名。
S103,对域名进行解析,得到对应的真实地址信息。
在步骤S103中,真实地址信息可以是网络之间互连的协议(Internet Protocol,简称IP)地址。可以通过DNS对域名进行解析,得到对应的IP地址。DNS作为因特网上域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,也就是域名,最终得到该主机名对应的IP地址的过程叫做域名解析或主机名解析。DNS协议运行在用户数据报协议之上,用户数据报协议(User Datagram Protocol,简称UDP)是开放式系统互联(Open System Interconnection,简称OSI)参考模型中一种无连接的传输层协议。
S104,若真实地址信息为内网的地址信息,获取域名的虚拟地址信息。
在步骤S104中,根据真实地址信息可以判断访问的是否是内网。内网也称局域网,内网的计算机以网络地址转换协议,通过一个公共的网关访问互联网。内网的计算机可向互联网上的其他计算机发送连接请求,但互联网上其他的计算机无法向内网的计算机发送连接请求。此时可以通过查询列表获取域名的虚拟地址信息。虚拟地址信息可以是虚拟IP地址(Vrtual IP Address),虚拟IP地址是一种不与特定计算机或者特定计算机网卡相对应的IP地址。所有发往这个IP地址的数据包最后都会经过真实的网卡到达目的服务器的目的进程。
S105,将虚拟地址信息发送到客户端。
S106,接收客户端发出的根据虚拟地址信息对内网进行访问的请求,对内网进行访问。
在步骤S105和步骤S106中,服务器端将虚拟地址信息返回至客户端,客户端需要根据虚拟地址信息才能对内网进行访问。
本发明实施例提供的网络访问方法,通过接收客户端发出的域名查询请求;对获取的域名查询请求的数据包进行解析,得到客户端想要访问的网站的域名;对域名进行解析,得到对应的真实地址信息;若真实地址信息为内网的地址信息,获取域名的虚拟地址信息;将虚拟地址信息发送到客户端;接收客户端发出的根据虚拟地址信息对内网进行访问的请求,对内网进行访问。当服务器通过解析访问请求中的域名,得到对应的真实地址信息,根据真实地址信息判断想要访问的网站为内网时,由于真实地址信息无法对内网进行访问,可以通过获取域名对应的虚拟地址信息,基于域名对应的虚拟地址信息实现对内网的访问。
图2为本发明提供的获取虚拟地址的方法实施例的流程示意图。如图2所示,该获取虚拟地址的方法,可以包括以下步骤:
S201,若真实地址信息为内网的地址信息,查询域名与虚拟地址信息的映射关系。
S202,根据映射关系,获取域名的虚拟地址信息。
在步骤S201和步骤S202中,域名与虚拟地址信息的映射关系可以是基于预设的算法预先建立好的,域名与虚拟地址信息的映射关系可以通过列表的形式体现,本发明实施例对此不作限定。域名与虚拟地址信息的映射关系可以存储在DNS代理服务器中。DNS代理服务器可以用于在客户端与DNS服务器之间转发DNS请求、应答以及构造DNS请求响应。
本发明提供的获取虚拟地址的方法,通过将域名与虚拟地址信息的映射关系可以方便快捷地获取域名的虚拟地址信息。
图3为本发明提供的另一种内网访问的方法实施例的流程示意图。如图3所示,该内网访问的方法,可以包括以下步骤:
S301,将虚拟地址信息与真实地址信息进行绑定。
S302,根据真实地址信息,对内网进行访问。
在步骤S301和步骤S302中,代理服务器接收客户端发出的根据虚拟地址信息对内网进行访问的请求,并将该请求转发至远端服务器。远端服务器接收到虚拟地址信息,将虚拟地址信息和真实地址信息进行绑定,对客户端发出的访问请求进行授权,并根据真实的真实地址信息对内网进行访问。其中,代理服务器(Proxy Server)是一种重要的服务器安全功能,它的工作主要在开放系统互联(OSI)模型的会话层,从而起到防火墙的作用。
在一些可选的实施例中,若真实地址信息为外网的地址信息,可以根据真实地址信息对外网进行访问。
在本发明提供的实施例中,若真实地址信息为外网的地址信息,服务器端将真实地址信息发送到服务代理模块,服务代理模块将真实地址信息转发到远端服务器,远端服务器根据真实地址信息对外网进行访问。
图4为本发明提供的一种网络访问方法实施例的流程示意图。如图4所示,该网络访问方法,包括以下步骤:
S401,接收客户端发出的域名查询请求。
在步骤S401中,对步骤S401的说明详见步骤S101,在此不作赘述。
S402,对获取的域名查询请求的数据包进行解析,得到客户端想要访问的网站的域名。
在步骤S402中,对步骤S402的说明详见步骤S102,在此不作赘述。
S403,对域名进行解析,得到对应的真实地址信息。
在步骤S403中,对步骤S403的说明详见步骤S103,在此不作赘述。
S404,若真实地址信息为内网的地址信息,获取域名的虚拟地址信息。
在步骤S404中,对步骤S404的说明详见步骤S104,在此不作赘述。
S405,将虚拟地址信息发送到客户端。
在步骤S405中,对步骤S405的说明详见步骤S105,在此不作赘述。
S406,接收客户端发出的根据虚拟地址信息对内网进行访问的请求,对内网进行访问。
在步骤S406中,对步骤S406的说明详见步骤S106,在此不作赘述。
S407,若真实地址信息为外网的地址信息,根据真实地址信息对外网进行访问。
在步骤S407中,对步骤S407的说明详见上述实施例,在此不作赘述。
本发明实施例提供的网络访问方法,通过接收客户端发出的域名查询请求;对获取的域名查询请求的数据包进行解析,得到客户端想要访问的网站的域名;对域名进行解析,得到对应的真实地址信息;若真实地址信息为内网的地址信息,获取域名的虚拟地址信息;将虚拟地址信息发送到客户端;接收客户端发出的根据虚拟地址信息对内网进行访问的请求,对内网进行访问;若真实地址信息为外网的地址信息,根据真实地址信息对外网进行访问。该方法可以在零信任环境下实现对内网和外网的访问。
图5为本发明提供的又一种内网访问方法实施例的流程示意图。如图5所示,该内网访问方法,包括以下步骤:
S501,接收客户端发出的域名查询请求。
在步骤S501中,对步骤S501的说明详见步骤S101,在此不作赘述。
S502,对获取的域名查询请求的数据包进行解析,得到客户端想要访问的网站的域名。
在步骤S502中,对步骤S502的说明详见步骤S102,在此不作赘述。
S503,对域名进行解析,得到对应的真实地址信息。
在步骤S503中,对步骤S503的说明详见步骤S103,在此不作赘述。
S504,若真实地址信息为内网的地址信息,获取域名的虚拟地址信息。
在步骤S504中,对步骤S404的说明详见步骤S104,在此不作赘述。
S505,将虚拟地址信息发送到客户端。
在步骤S505中,对步骤S505的说明详见步骤S105,在此不作赘述。
S506,将虚拟地址信息与真实地址信息进行绑定,对内网进行访问的请求,对内网进行访问。
在步骤S506中,对步骤S506的说明详见步骤S201和步骤S202,在此不作赘述。
在一些可选的实施例中,学校区域内覆盖的校园网为局域网,即内网,通过校园网范围外的客户端想要访问该校园网,可以包括以下步骤:
客户端发出查询访问校园网的域名的指令,服务器端的DNS流量拦截模块对查询访问校园网的域名的指令的数据包进行拦截,并将其导入DNS虚拟模块。DNS虚拟模块对数据包进行解析,得到访问校园网的域名,对得到的域名进行解析,得到对应的IP地址。根据IP地址可以判断访问的校园网为内网,访问内网需要通过虚拟IP访问,查询域名与虚拟IP的映射关系表,可以确定域名的虚拟IP。DNS虚拟模块将虚拟IP返回DNS流量拦截模块,DNS流量拦截模块将虚拟IP返回客户端。客户端根据虚拟IP向本地代理服务器发出访问去请求,本地代理服务器将虚拟IP发送发到远端服务器,远端服务器将虚拟IP和其对应的真实的IP地址,也就是通过解析得到的IP地址进行绑定,根据解析得到的IP地址对内网进行访问。
图6为本发明提供的一种应用场景示意图。如图6所示,根据虚拟地址信息对内网进行访问的过程可以包括以下步骤:
步骤1,应用向服务器端发出域名查询的请求,服务器端的DNS流量拦截模块中的DNS组件和虚拟网路组件对该请求进行拦截,获取该请求的DNS数据包;步骤2,DNS流量拦截模块将DNS数据包发送给虚拟DNS模块,虚拟DNS模块对接收的DNS数据包进行解析,得到应用想要访问的网站的域名,对域名进行解析,得到域名对应的真实地址信息,根据真实地址信息可以判断应用想要访问的网站是内网,查询得到域名对应的虚拟地址信息,也就是虚拟IP。步骤3,虚拟DNS模块可以根据查询请求访问接口的不同,可以直接构造虚拟地址信息的DNS的UDP报文,或者也可以构造IP数据包,或者还可以构造DNS响应的IP数据包,将虚拟地址信息返回至应用,应用根据虚拟地址信息向代理服务器发出访问请求;步骤4,代理服务器将接收的虚拟地址信息发送到远端服务器,远端服务器将虚拟信息和所述真实地址信息进行绑定,将对访问请求的授权发送至代理服务器,代理服务器将授权信息返回至应用,远端服务器根据真实地址信息对内网进行访问。
图7为本发明提供的另一种应用场景示意图。如图7所示,访问用户是指需要访问受保护的业务的人或设备,访问程序是指电脑上安装的应用程序,用于业务访问的应用软件比如浏览器,邮件等应用程序。访问用户访问业务是通过零信任的客户端以及其它的访问程序一起完成的,在访问具体的业务前,启动零信任的客户端,认证登录后,零信任客户端收到远端服务器下发的业务信息和用户信息以DNS的配置策略等信息,零信任客户端将配置信息设置到虚拟DNS模块,虚拟DNS模块根据DNS的配置策略和业务列表映射成虚拟IP列表,处理DNS的请求和查询。
应用程序访问业务可以包括:应用程序发出域名查询请求,域名查询请求的流量就会被DNS导流模块拦截,并将流量导入到虚拟DNS模块,虚拟DNS模块解析DNS查询报文请求后,发现请求的域名存在于访问业务列表里,根据虚拟IP地址构造成一个DNS查询的响应报文给导流模块,然后导流模块就将请求的虚拟IP地址返回给应用程序。
应用程序根据返回的虚拟IP地址进行访问,然后访问的流量被虚拟网卡模块拦截和识别,虚拟网卡模块将流量交给代理模块处理,代理模块能够将虚拟IP地址和访问应用的唯一标识发送到远端服务器进行授权,授权成功后就可以通过代理模块开始进行业务的访问。
图8为本发明提供的一种网络访问装置实施例的结构组成示意图。如图8所示,该网络访问装置,包括:
接收模块801,用于接收客户端发出的域名查询请求;
第一解析模块802,用于对获取的域名查询请求的数据包进行解析,得到客户端想要访问的网站的域名;
第二解析模块803,用于对域名进行解析,得到对应的真实地址信息;
获取模块804,用于若真实地址信息为内网的地址信息,获取域名的虚拟地址信息;
发送模块805,用于将虚拟地址信息发送到客户端;
内网访问模块806,用于接收客户端发出的根据虚拟地址信息对内网进行访问的请求,对内网进行访问。
可选地,获取模块804,包括:
查询单元,用于若真实地址信息为内网的地址信息,查询虚拟域名与虚拟地址信息的映射关系;
获取单元,用于根据映射关系,获取域名的虚拟地址信息。
可选地,内网访问模块806,包括:
绑定单元,用于将虚拟地址信息与所述真实地址信息进行绑定;
访问单元,用于根据真实地址信息,对内网进行访问。
可选地,该网络访问装置,还包括:
外网访问模块,用于若真实地址信息为外网的地址信息,根据真实地址信息对所述外网进行访问。
图9示例了一种电子设备的实体结构示意图,如图9示,该电子设备可以包括:处理器(processor)901、通信接口(CommunicationsInterface)902、存储器(memory)903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。处理器901可以调用存储器903中的逻辑指令,以执行如下方法:接收客户端发出的域名查询请求;对获取的域名查询请求的数据包进行解析,得到客户端想要访问的网站的域名;对域名进行解析,得到对应的真实地址信息;若真实地址信息为内网的地址信息,获取域名的虚拟地址信息;将虚拟地址信息发送到客户端;接收客户端发出的根据虚拟地址信息对内网进行访问的请求,对内网进行访问。
此外,上述的存储器903中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各实施例提供的网络访问方法,例如包括:接收客户端发出的域名查询请求;对获取的域名查询请求的数据包进行解析,得到客户端想要访问的网站的域名;对域名进行解析,得到对应的真实地址信息;若真实地址信息为内网的地址信息,获取域名的虚拟地址信息;将虚拟地址信息发送到客户端;接收客户端发出的根据虚拟地址信息对内网进行访问的请求,对内网进行访问。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的网络访问方法,例如包括:接收客户端发出的域名查询请求;对获取的域名查询请求的数据包进行解析,得到客户端想要访问的网站的域名;对域名进行解析,得到对应的真实地址信息;若真实地址信息为内网的地址信息,获取域名的虚拟地址信息;将虚拟地址信息发送到客户端;接收客户端发出的根据虚拟地址信息对内网进行访问的请求,对内网进行访问。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。