CN115225292A - 一种内网访问方法、装置、设备及计算机可读存储介质 - Google Patents
一种内网访问方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN115225292A CN115225292A CN202110404454.5A CN202110404454A CN115225292A CN 115225292 A CN115225292 A CN 115225292A CN 202110404454 A CN202110404454 A CN 202110404454A CN 115225292 A CN115225292 A CN 115225292A
- Authority
- CN
- China
- Prior art keywords
- address
- data packet
- network
- preset
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2592—Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种内网访问方法、装置、设备及计算机可读存储介质,涉及云技术领域;方法包括:对原始请求数据包进行封装,得到第一网络数据包;第一网络数据包的目标网络地址为本机代理应用地址;根据本机代理应用地址在预设路由表中进行路由寻址,将第一网络数据包路由至虚拟网卡,并通过虚拟网卡将第一网络数据包传输至本机代理应用;虚拟网卡地址为本机代理应用地址在预设路由表中对应的最小跃跳数的路由地址;通过本机代理应用,对第一网络数据包进行重新封装,得到封装数据包;利用物理网卡发送封装数据包;封装数据包的目标网络地址为目标内网地址。通过本申请,能够实现对内网访问全流量的自动拦截。
Description
技术领域
本申请涉及云技术领域,尤其涉及一种内网访问方法、装置、设备及计算机可读存储介质。
背景技术
全尺寸办公是指既可以在工作地点办公,也可以在非工作地点办公,例如,在居住地、室外等地点通过网络来进行办公。全尺寸办公的前提是用户可以通过外网顺利地访问到内网,以实现与内网的资源交互。相关技术中,一般是利用配置代理服务器的方式来对用户发起的内外网资源请求流量进行拦截。在相关技术的方案中,客户端将接收到的流量发送给代理服务器,然后代理服务器再将流量发送给服务端,以实现通过代理服务器对需要到达服务端的流量进行转发。然而,目前的这种流量拦截方式需要用户手动配置上网代理的出口,未配置代理的客户端请求将不会通过代理服务器进行转发,而是直接向服务端发送请求,因此无法实现对内网访问的全流量的自动拦截。
发明内容
本申请实施例提供一种内网访问方法、装置、设备及计算机可读存储介质,能够实现对内网访问全流量的自动拦截。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种内网访问方法,包括:
从应用程序的内网访问请求中解析出原始请求数据包,并对所述原始请求数据包进行封装,得到第一网络数据包;所述第一网络数据包的目标网络地址为本机代理应用地址;
根据所述本机代理应用地址在预设路由表中进行路由寻址,将所述第一网络数据包路由至虚拟网卡,并通过所述虚拟网卡将所述第一网络数据包传输至本机代理应用;所述虚拟网卡对应的虚拟网卡地址为所述本机代理应用地址在所述预设路由表中对应的最小跃跳数的路由地址;
通过所述本机代理应用,对所述第一网络数据包进行重新封装,得到封装数据包;所述封装数据包的目标网络地址为所述内网访问请求对应的目标内网地址;
利用物理网卡发送所述封装数据包,以将所述原始请求数据包发送至所述目标内网地址对应的目标内网设备。
本申请实施例提供一种内网访问装置,包括:。
首次封装模块,用于从应用程序的内网访问请求中解析出原始请求数据包,并对所述原始请求数据包进行封装,得到第一网络数据包;所述第一网络数据包的目标网络地址为本机代理应用地址;
数据拦截模块,用于根据所述本机代理应用地址在预设路由表中进行路由寻址,将所述第一网络数据包路由至虚拟网卡,并通过所述虚拟网卡将所述第一网络数据包传输至本机代理应用;所述虚拟网卡对应的虚拟网卡地址为所述本机代理应用地址在所述预设路由表中对应的最小跃跳数的路由地址;
再次封装模块,用于通过所述本机代理应用,对所述第一网络数据包进行重新封装,得到封装数据包;所述封装数据包的目标网络地址为所述内网访问请求对应的目标内网地址;
数据发送模块,用于利用物理网卡发送所述封装数据包,以将所述原始请求数据包发送至所述目标内网地址对应的目标内网设备。
上述装置中,所述内网访问装置还包括设置模块,所述设置模块,用于根据所述本机代理应用地址在预设路由表中进行路由寻址,将所述第一网络数据包传输至虚拟网卡之前,当所述预设路由表中不包含所述虚拟网卡地址时,根据所述本机代理应用地址,在预设路由表中包含的至少一个预设目标网络地址中进行逐位匹配,得到最大匹配长度的预设目标网络地址;所述至少一个预设目标网络地址与至少一个预设路由信息一一对应;当所述最大匹配长度大于或等于预设长度阈值时,将所述预设目标网络地址作为候选目标地址;当所述最大匹配长度小于预设长度阈值时,将预设默认目标网络地址作为所述候选目标地址;所述至少一个预设目标网络地址包含预设默认目标网络地址;在所述预设路由表中,增加所述候选目标地址对应的目标路由信息;将目标路由信息中的目标网关地址确定为所述虚拟网卡地址,并将所述目标路由信息中的目标跃跳数设置为小于所述候选目标地址对应的预设路由信息中的跃跳数。
上述装置中,所述数据拦截模块,还用于根据所述本机代理应用地址,在预设路由表中包含的至少一个预设目标网络地址中进行最大长度匹配,得到至少一个候选目标地址;在所述至少一个候选目标地址对应的至少一个候选路由信息中,根据跃跳数确定至少一个候选路由信息的路由优先级;所述路由优先级与跃跳数成反比;从路由优先级最高的所述目标路由信息中获取所述虚拟网卡地址,将所述虚拟网卡地址作为所述第一网络数据包的路由地址,将所述第一网络数据包路由至所述虚拟网卡。
上述装置中,所述首次封装模块,还用于通过应用程序对应的第一预设套接字接口,根据所述目标内网地址对所述原始请求数据包进行封装,得到第一传输数据包;所述第一预设套接字接口为连接所述应用程序与内核空间的套接字接口;所述应用程序运行在用户空间;通过所述第一预设套接字接口,将所述第一传输数据包传输至所述内核空间中的预设网络协议栈;通过所述预设网络协议栈,将所述本机代理应用地址作为目标网络地址,对所述第一传输数据包进行封装,得到所述第一网络数据包。
上述装置中,所述数据拦截模块,还用于通过所述虚拟网卡,根据第一物理地址对所述第一网络数据包进行封装,得到中间数据包,并将所述中间数据包传输至预设字符设备;所述第一物理地址为所述预设字符设备的物理地址;所述预设字符设备用于在所述内核空间与所述用户空间之间进行数据包传输;通过所述预设字符设备,从所述中间数据包中解析出所述第一网络数据包,并将所述第一网络数据包传输至所述用户空间中的所述本机代理应用。
上述装置中,所述再次封装模块,还用于通过所述本机代理应用,从所述第一网络数据包中解析出所述原始请求数据包与所述目标内网地址,并将所述原始请求数据包传输至连接所述本机代理应用与内核空间的第二预设套接字接口;所述本机代理应用运行于用户空间;通过所述第二预设套接字接口,根据所述目标内网地址对所述原始请求数据包进行封装,得到第二传输数据包,并将所述第二传输数据包传输至所述预设网络协议栈;通过所述预设网络协议栈,根据所述目标内网地址在所述预设路由表中进行路由寻址,得到物理网卡地址;根据预设路由地址对所述第二传输数据包进行封装,得到第二网络数据包,并根据所述物理网卡地址将所述第二网络数据包路由至所述物理网卡;所述预设路由地址为所述物理网卡的出口网关对应的网络地址;通过所述物理网卡,在所述第二网络数据包的头部添加第二物理地址,得到所述封装数据包;所述第二物理地址为所述物理网卡的出口网关对应的物理地址。
上述装置中,所述数据发送模块,还用于通过物理网卡,根据所述第二物理地址将所述封装数据包发送至对应的出口网关,以使所述出口网关根据所述第二物理地址接收到所述封装数据包后,对所述封装数据包进行解析,得到所述第二传输数据包,并根据所述第二传输数据包中的所述目标内网地址将所述原始请求数据包发送至所述目标内网设备。
本申请实施例提供一种内网访问设备,包括:
存储器,用于存储可执行内网访问指令;
处理器,用于执行所述存储器中存储的可执行内网访问指令时,实现本申请实施例提供的内网访问方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行内网访问指令,用于引起处理器执行时,实现本申请实施例提供的内网访问方法。
本申请实施例具有以下有益效果:将虚拟网卡作为本机代理应用的网关,在首轮封装过程中,可以根据本机代理应用地址将内网访问请求对应的原始请求数据包进行封装,得到第一网络数据包,这样在第一网络数据包在协议栈的预设路由表中进行路由寻址时,可以通过本机代理应用地址匹配到虚拟网卡地址,并将虚拟网卡地址作为向本机代理应用发送数据包的路由地址。由于虚拟网卡地址是本机代理应用地址匹配的最小跃跳数的路由地址,因此被预设网络协议栈选择作为目标路由的优先级较高,从而保证了内网访问请求的数据能够优先通过虚拟网卡传递到本机代理应用,进而可以通过本机代理应用对内网访问请求的数据进行重新封装并发送至目标内网设备,从而实现了无论对于内网设备还是外网设备发出的内网访问请求,还是对于原本不支持代理的应用程序发出的内网访问请求,都可以通过本申请实施例中的方法实现内网访问的全流量的自动拦截,最终实现对内外网设备的内网访问请求进行统一代理、统一转发。
附图说明
图1是从用户态到内核态封装的过程示意图;
图2A是本申请实施例提供的内网访问系统100的一个可选的架构示意图;
图2B是本申请实施例提供的内网访问系统即分布式系统100应用于区块链系统的一个可选的结构示意图;
图2C是本申请实施例提供的区块结构(Block Structure)一个可选的示意图;
图3是本申请实施例提供的终端的结构示意图;
图4是本申请实施例提供的内网访问方法的一个可选的流程示意图一;
图5是本申请实施例提供的内网访问方法的一个可选的流程示意图二;
图6是本申请实施例提供的内网访问方法的一个可选的流程示意图三;
图7是本申请实施例提供的内网访问方法的一个可选的流程示意图四;
图8是本申请实施例提供的首次封装的示意图;
图9为本申请实施例提供的数据包流向和封装示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)云技术(Cloud Technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、存储、处理和共享的一种托管技术。
云技术是基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活遍历。云计算技术将变成重要支撑。技术网络系统的后台需要大量的计算、存储资源,如视频网络、图片类网站和更多门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标识,需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
2)内网,是指办公网,即公司内部所配置的局域网。一些公司为了保护内部资料不外泄,会配置局域网将公司内部的各个设备连接起来,以使得公司内部的设备之间可以进行会话、资源共享等,而公司外部的设备则不会访问到内部资源。
3)外网,可以理解为互联网。任何具备接入外网的条件的设备,都可以随时接入外网,从而,相比于内网,外网的覆盖程度更大。利用这一特点,公司员工可以随时随地借助于外网来访问公司的内网,从而实现远程办公。
4)代理服务,负责转发个人网络和互联网之间的网络信息,并对转发进行控制和登记,是个人网络和互联网之间的桥梁。
5)全流量代理,是指对所有的流量统一进行拦截并代理,即所有的数据包都需要通过同一个代理发出,这个代理就是全流量代理。
6)数据封装,数据包利用网络在不同设备之间传输时,为了能够准确地发送到目的地,并且高效利用传输资源,会对数据包进行拆分、打包,附加上目标地址、本地地址和一些用于纠错的字节等,这一系列过程就是数据封装。
更具体来说,数据封装是指将协议数据单元(Protocol Data Unit,PDU)封装在一组协议头和协议尾中的过程。在传输控制协议/互连(Transmission Control Protocol/Internet Protocol,TCP/IP)五层模型或者是开放式系统互联(Open SystemInterconnect,OSI)七层模型中,每层都主要负责与其他设备上的对等层进行通信,每层可以添加协议头和协议尾到其对应的PDU中,协议头包括层到层之间的通信相关信息。
7)代理自动配置(Proxy Auto Config,PAC)模式,是一种智能分流模式,其根据规则去匹配用户所要访问的网站,对于符合规则的网站直接进行访问,对于不符合规则的网站则通过代理进行访问。
8)用户态,运行用户程序,不能直接使用系统资源,也不能改变CPU的工作状态,只能访问应用程序自身所对应的存储空间。
9)内核态,运行操作系统程序,操作硬件。内核态CPU可以访问内存的所有数据,包括外围设备,例如硬盘、网卡等,CPU也可以将自己从一个程序切换到另一个程序。
10)跃跳数。跃跳数是指传输过程中需要经过多少个网络,每个被经过的网络设备点(有能力路由的)叫做一个跃点,地址就是它的IP。跃跳数是经过了多少个跃点的累加器,为了防止无用的数据包在网上流散,它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。跃跳数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。在两个不同跃跳数的目标IP中,数据包会优先通过跃跳数低的ip进行传递。
11)TAP/TUN:TAP/TUN是在云计算时代非常重要的虚拟网络网卡。不同于物理网卡靠硬件网卡实现,tap/tun虚拟网卡完全由软件来实现,功能和硬件实现完全没有差别,它们都属于网络设备,都可以配置IP,用于网络关联。其中,TUN设备是一种虚拟网络设备,通过此设备,程序可以方便地模拟网络行为。TUN模拟的是一个三层设备,也就是说,通过它可以处理来自网络层的数据如互联协议(Internet Protocol,IP)数据包。TAP设备TUN设备工作方式完全相同,区别在于TAP设备是一个二层设备,它可以收发媒体存取控制位址(MediaAccess Control Address,MAC)层数据包。
12)网络接口控制器(Network Interface Controller,NIC),又称网络接口控制器,网络适配器(Network Adapter),网卡(Network Interface Card),或局域网接收器(LAN Adapter),是一块被设计用来允许计算机在计算机网络上进行通讯的计算机硬件。
全尺寸办公是指既可以在工作地点办公,也可以在非工作地点办公,例如,在居住地、室外等地点通过网络来进行办公。全尺寸办公的前提时用户可以通过外网顺利地访问到内网,以实现与内网的资源交互。
移动终端具有携带便捷的特点,越来越多的用户选择了利用移动终端来进行办公。用户在利用移动终端请求访问内网的资源时,可以通过PAC模式来进行内网资源的请求。PAC模式会对移动终端处于内网还是外网进行区分,在处于内网时,可以不经过代理直接访问内网;在移动终端处于外网时,则通过PAC代理转发请求并获取内网资源。
在PAC模式下,来自应用层的数据包会通过移动终端的系统的套接字(Socket)库建立一个Socket连接,然后将应用层的数据包通过Socket连接进行发送时,数据包会经历从用户态到内核态的封装。
示例性的,图1是从用户态到内核态封装的过程示意图。参见图1,移动终端在应用层1-1获取到请求,然后经过Socket库1-2,将请求的请求体与请求头部分开,将请求体作为需要封装的数据包1-a。然后,将数据包1-a传输到TCP/IP协议栈1-3,在此过程中,会在数据包1-a的头部添加上TCP头1-b。接着,TCP/IP协议栈1-3会从路由表1-4中获取路由信息,并将数据包继续传输到设备驱动1-5,在此过载中,会为继续为数据包1-a添加上IP头1-c。之后,设备驱动1-5将数据包传输给网络接口控制器(Network Interface Controller,NIC)1-6,在此过程中,会为数据包1-a添加MAC地址1-d(媒体存取控制位址,Media AccessControl Address),然后通过NIC将经过层层封装之后所得到的数据包经由网卡发送出去。
然而,在使用PAC模式进行内网访问时,必须要用户手动进行代理模式配置使用上网代理的出口,未配置代理的客户端请求将不会通过代理进行转发,而是直接向服务端发送请求,因此这种方式下没有办法实现自动对所有访问内网的流量进行拦截。
本申请实施例提供一种内网访问方法、装置、设备和计算机可读存储介质,能够实现对内网访问的全流量自动拦截,下面说明本申请实施例提供的内网访问设备的示例性应用,本申请实施例提供的内网访问设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的终端,也可以实施为服务器。当通过终端对内网资源进行访问时,内网访问设备可以实施为终端,当通过服务器对内网资源进行访问是,内网访问设备可以实施为服务器。下面,将说明内网访问设备实施为终端的示例性应用。
参见图2A,图2A是本申请实施例提供的内网访问系统100的一个可选的架构示意图,为实现支撑一个内网访问应用,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。其中,终端400可以是预设内网网段内的终端设备,也可以是外网的终端设备。服务器200可以是预设内网网段内的公共服务器,也可以是预设内网网段内的某台内网主机。服务器200上存储有内网资源。
终端400(内网访问设备的一种实施方式)上运行有可以发起内网访问请求的应用程序,终端400用于在其图形界面(示例性示出了图形界面400-11和图形界面400-21)显示应用程序的展示界面,并在应用程序的展示界面中接收用户对应用程序的操作,根据用户操作触发应用程序生成内网访问请求;从应用程序的内网访问请求中解析出原始请求数据包,并对原始请求数据包进行封装,得到第一网络数据包;第一网络数据包的目标网络地址为本机代理应用地址;根据本机代理应用地址在预设路由表中进行路由寻址,将第一网络数据包传输至虚拟网卡,并通过虚拟网卡将第一网络数据包传输至本机代理应用;虚拟网卡对应的虚拟网卡地址为本机代理应用地址在预设路由表中对应的最小跃跳数的路由地址;通过本机代理应用,对第一网络数据包进行重新封装,得到封装数据包;利用物理网卡发送封装数据包,以将原始请求数据包发送至目标内网设备;封装数据包的目标网络地址为内网访问请求对应的目标内网地址。其中,目标内网设备为服务器200中包含的公共服务器或目标内网主机。
服务器200用于接收终端400通过本机代理应用转发的封装数据包,这里,服务器200与终端400之间可以包含至少一个中继路由设备,至少一个中继路由设备用于接收封装数据包,并对封装数据包进行重新封装与逐级转发,将其中的原始请求数据包传递至服务器200。服务器200可以对接收到数据包进行解封装,得到原始请求数据包,进而对原始请求数据包中的内网访问请求进行响应,实现终端400对服务200的内网访问过程。
在一些实施例中,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端400可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
在一些实施例中,本申请实施例涉及的内网访问系统100可以是由客户端、多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成的分布式系统。
以分布式系统为区块链系统为例,参见图2B,图2B是本申请实施例提供的分布式系统100应用于区块链系统的一个可选的结构示意图,由多个节点500(接入网络中的任意形式的计算设备,如服务器、用户终端)和客户端600形成,节点之间形成组成的点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,TransmissionControl Protocol)协议之上的应用层协议。在分布式系统中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。在一些实施例中,终端400、服务器200以及网络300中包含的中继路由设备可以加入而成为区块链中的节点500。
参见图2B示出的区块链系统中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;
2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
3)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据。
参见图2C,图2C是本申请实施例提供的区块结构(Block Structure)一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
参见图3,图3是本申请实施例提供的终端400的结构示意图,图3所示的终端400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。终端400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Me mory),易失性存储器可以是随机存取存储器(RAM,Random Access Memor y)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的内网访问装置可以采用软件方式实现,图3示出了存储在存储器450中的内网访问装置455,其可以是程序和插件等形式的软件,包括以下软件模块:首次封装模块4551、数据拦截模块4552、再次封装模块4553和数据发送模块4554,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的内网访问装置455可以采用硬件方式实现,作为示例,本申请实施例提供的内网访问装置455可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的内网访问方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Progra mmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
本申请实施例提供一种内网访问设备,包括:
存储器,用于存储可执行内网访问指令;
处理器,用于执行所述存储器中存储的可执行内网访问指令时,实现本申请实施例终端侧提供的内网访问方法。
将结合本申请实施例提供的终端的示例性应用和实施,说明本申请实施例提供的内网访问方法。
参见图4,图4是本申请实施例提供的内网访问方法的一个可选的流程示意图一,将结合图4示出的步骤进行说明。
S101、从应用程序的内网访问请求中解析出原始请求数据包,并对原始请求数据包进行封装,得到第一网络数据包;第一网络数据包的目标网络地址为本机代理应用地址。
本申请实施例是在用户使用终端通过外网或内网访问内网的场景下实现的,例如,通过外网访问内网的场景可以包括用户通过自己居住地的网络访问公司内网,或者是用户通过移动网络访问公司内网。终端中安装有能够为用户提供访问内网的功能接口的应用程序,当用户触发了该功能接口时,应用程序就会生成包含内网访问请求的数据包,这个数据包就是原始请求数据包。终端在检测到原始请求数据包之后,就会明确用户具有访问内网的需求,从而会对原始请求数据包添加在传输时所需要的协议头,以及配置原始请求数据包对应的目标网络地址,以对原始请求数据包进行首次封装,得到第一网络数据包。
在一些实施例中,内网访问请求可以是HTTP请求,终端可以从HTTP头部和数据体的数据进行解析,得到内网访问请求所要访问的目标内网地址,以及包含请求内容的原始请求数据包。
在一些实施例中,内网访问请求可以是对内网的公共服务器发起的资源访问请求,也可以是对内网中某个主机上的共享资源发起的访问请求,具体的根据实际情况进行选择,本申请实施例不作限定。
本申请实施例中,本机代理应用地址为本机代理应用对应的虚拟网络地址。本机代理应用可以通过虚拟网络地址接收拦截到的内网访问流量。
需要说明的是,本申请实施例中,为了能够在不区分内网和外网的条件下,将访问内网的全部流量拦截至本机代理应用地址,终端需要通过虚拟网卡对通信时的数据包进行统一拦截,从而,终端在首次对原始请求数据包进行封装时,可以先根据内网访问请求对应的目标内网地址,也即内网访问请求所要在内网中访问的资源所在的目标网络地址,对原始请求数据进行传输层封装,得到传输层封装包,再将本机代理应用地址作为目标网络地址,对传输层封装包进行封装,得到第一网络数据包。进一步的,终端内核协议栈的预设路由表中包含有虚拟网卡地址对应的目标路由信息,其中,虚拟网卡地址作为本机代理应用地址的网关地址,并且虚拟网卡地址对应的跃跳数预设为本机代理应用地址所能匹配到的至少一个候选路由信息中最小的跃跳数。这样,在内核协议栈接收到第一网络数据包时,可以根据最小跃跳数对应的虚拟网卡地址,优先将内网访问流量数据路由至虚拟网卡,从而可以自动的对内网访问的全流量进行拦截。也就是说,在本申请中首次封装表征发送到虚拟网卡时的封装。
在一些实施例中,内网访问请求用于向服务器表明用户需要访问内网。内网访问请求可以是与服务器约定好的字段、标识等,本申请在此不作限定。原始请求数据包可以包含用户的身份信息,以使目标内网设备在接收到原始请求数据包时可以进行相应的身份验证。示例性地,身份信息可以是用户ID,也可以是用户的工号、姓名等,还可以是用户所设置的密码等其他能够将用户与其他人区分开的标识信息。
本申请实施例中,终端可以通过应用程序与内核空间连接的第一预设套接字接口,将原始请求数据包传输至内核空间,这样,终端可以通过内核空间中集成的各种协议处理方法,如集成有网络层封装流程的预设网络协议栈,在原始请求数据包中添加包含控制信息的头部信息,或者协议尾部信息,从而将原始请求数据包封装为第一网络数据包。本申请实施例对第一网络数据封装的具体协议格式、封装流程与数据包格式不作限定。
S102、根据本机代理应用地址在预设路由表中进行路由寻址,将第一网络数据包传输至虚拟网卡,并通过虚拟网卡将第一网络数据包传输至本机代理应用;虚拟网卡对应的虚拟网卡地址为本机代理应用地址在预设路由表中对应的最小跃跳数的路由地址。
本申请实施例中,为了发出第一网络数据包,终端需要将第一网络数据包中的本机代理应用地址作为目标网络地址,在预设路由表中进行路由寻址,寻找与本机代理应用地址对应的传输方向,也即本机代理应用地址对应的下一个路由器的位置,通过下一个路由器的位置对第一网络数据包进行转发。
在一些实施例中,预设路由表为内核协议栈中包含的路由信息集合列表。以IPv4路由表为例,预设路由表可以如表1所示:
预设目标网络地址 | 网络掩码 | 网关地址 | 网关接口地址 | 跃点数 |
0.0.0.0 | 0.0.0.0 | 10.80.22.1 | 10.80.22.36 | 80 |
10.10.1.0 | 255.255.255.0 | 10.10.1.16 | 10.10.1.16 | 35 |
192.168.1.0 | 255.255.255.0 | 10.10.1.2 | 10.10.1.16 | 25 |
表1
表1中,预设目标网络地址表示网络数据包的最终目的地;网关地址代表路由器的IP地址;网关接口地址代表向对应路由器发送网络数据包的网络接口地址;跃点数代表通过对应路由器传输网络数据包的成本,跃点数越小说明路由器距离越近。示例性地,根据表1所示的内容,如果要向IP网络192.168.1.0中的设备发送网络数据包,可以将网络数据包发给地址为10.10.1.2的路由器进行转发。
在一些实施例中,终端可以根据最长匹配原则,将本机代理应用地址与预设路由表中的至少一个预设目标网络地址进行逐位(bit by bit)比对,找到与本机代理应用地址最大匹配长度的预设目标网络地址作为至少一个候选目标地址,并将至少一个候选目标地址对应的路由信息作为至少一个候选路由信息。其中,至少一个候选路由信息中也包含虚拟网卡地址作为网关的路由信息。由于虚拟网卡地址对应的跃跳数最小,终端会优先将第一网络数据包定向至虚拟网卡地址,进而相应地将第一网络数据包传输至虚拟网卡,再由虚拟网卡通过内核空间与用户空间的数据传输模块,如预设字符设备,将第一网络数据包传输至用户空间内的本机代理应用。
在一些实施例中,虚拟网卡可以是TUN虚拟设备,也可以是TAP虚拟设备,还可以是其他的虚拟设备,本申请在此不作限定。
S103、通过本机代理应用,对第一网络数据包进行重新封装,得到封装数据包;封装数据包的目标网络地址为内网访问请求对应的目标内网地址。
本申请实施例中,本机代理应用在接收到第一网络数据包后,会对第一网络数据包进行解封装,得到原始请求数据包以及目标内网地址,本机代理应用会将目标内网地址作为目标网络地址,结合本机代理应用对应的预设套接字接口与内核协议栈,启动对原始请求数据包的重新封装,以将原始请求数据包转发至对应的目标内网设备。
也就是说,本申请实施例中,终端对原始请求数据包进行了两次从用户空间到内核空间的封装,首次封装使得原始请求数据包能够被发送到虚拟网卡设备,并通过将虚拟网卡地址预设为本机代理应用地址在预设路由表中对应的最小跃跳数的路由地址,实现了对内网访问全流量的自动拦截。再次封装时由本机代理应用对第一网络数据包进行重新封装与最终目标内网设备的转发,这样,就可以实现将流量由一个统一的全流量代理进行转发,从而可以实现在不区分内网和外网的情况下对内网进行访问。
本申请实施例中,本机代理应用是指对所有内网访问流量进行统一代理的模块。终端可以在本机代理应用中实现基本的流量数据包转发功能,以将第一网络数据包中包含的原始请求数据包转发至目标内网设备,也可以进一步在本机代理应用中实现流量监控等附加功能,具体的根据实际情况进行选择,本申请实施例不做限定。
可以理解的是,在再次封装时,由于需要将原始请求数据包发送至内网访问请求对应的目的地,终端通过本机代理应用在第一网络数据包的头部添加传输协议头和MAC信息,这时的传输协议头和MAC信息,都是指向目标内网设备的。
S104、利用物理网卡发送封装数据包,以将原始请求数据包发送至目标内网地址对应的目标内网设备。
本申请实施例中,终端在完成向目标内网设备的封装,得到封装数据包时,可以利用物理网卡发送封装数据包,以使得封装数据包中的原始请求数据包可以被传递至目标内网设备。
可以理解的是,本申请实施例中,终端将虚拟网卡作为本机代理应用的网关,在首轮封装过程中,可以根据本机代理应用地址将内网访问请求对应的原始请求数据包进行封装,得到第一网络数据包,这样在第一网络数据包在协议栈的预设路由表中进行路由寻址时,可以通过本机代理应用地址匹配到虚拟网卡地址,并将虚拟网卡地址作为向本机代理应用发送数据包的路由地址。由于虚拟网卡地址是本机代理应用地址匹配的最小跃跳数的路由地址,因此被预设网络协议栈选择作为目标路由的优先级较高,从而保证了内网访问请求的数据能够优先通过虚拟网卡传递到本机代理应用,进而可以通过本机代理应用对内网访问请求的数据进行重新封装并发送至目标内网设备,从而实现了无论对于内网设备还是外网设备发出的内网访问请求,还是对于原本不支持代理的应用程序发出的内网访问请求,都可以通过本申请实施例中的方法实现内网访问的全流量的自动拦截,最终实现对内外网设备的内网访问请求进行统一代理、统一转发。
参见图5,图5是本申请实施例提供的内网访问方法的一个可选的流程示意图二。基于图4,S102之前,还可以包括S001-S004,如下:
S001、当预设路由表中不包含虚拟网卡地址时,根据本机代理应用地址,在预设路由表中包含的至少一个预设目标网络地址中进行逐位匹配,得到最大匹配长度的预设目标网络地址;至少一个预设目标网络地址与至少一个预设路由信息一一对应。
本申请实施例中,内网访问装置可以以代理应用软件的形式安装在终端上,在安装完毕时或通过代理应用软件首次监测到应用程序发起网络访问请求时,直至S102之前,终端可以检测自身内核空间重配置的预设路由表中是否包含虚拟网卡地址。当预设路由表中不包含虚拟网卡地址时,则需要相应添加虚拟网卡地址对应的路由信息。终端可以预先根据本机代理应用地址,在预设路由表中包含的至少一个预设目标网络地址中进行逐位匹配,得到最大匹配长度的预设目标网络地址。
本申请实施例中,预设路由表是一个存储在路由器或者联网设备的文件类数据库。预设路由表存储着指向特定网络地址的路径,包含网络周边的拓扑信息。预设路由表并不直接参与数据包的传输,而是用于生成一个指向表,这个指向标包含有路由算法选择的传输路径。预设路由表通常会为了优化硬件存储和查找而被压缩或者提前编译。
S002、当最大匹配长度大于或等于预设长度阈值时,将预设目标网络地址作为候选目标地址。
本申请实施例中,当最大匹配长度大于或等于预设长度阈值时,说明终端在预设路由表中找到了本机代理应用地址匹配的预设目标网络地址,可以直接将最大匹配长度的预设目标网络地址作为候选目标地址。
S003、当最大匹配长度小于预设长度阈值时,将预设默认目标网络地址作为候选目标地址;至少一个预设目标网络地址包含预设默认目标网络地址。
本申请实施例中,当最大匹配长度小于预设长度阈值时,说明预设路由表中没有本机代理应用地址匹配的预设目标网络地址,终端可以将预设默认目标网络地址作为候选目标地址。
本申请实施例中,预设默认目标网络地址用于在预设路由表中的所有预设目标网络地址都无法与用于寻址的目标网络地址匹配时,将网络数据包路由至默认路由,在一些实施例中,预设默认目标网络地址可以是0.0.0.0。在一些实施例中,终端的操作系统至少会有一个预设默认目标网络地址,示例性地,在windows系统上可以设置多个默认路由及其对应的多个预设默认目标网络地址。
S004、在预设路由表中,增加候选目标地址对应的目标路由信息;将目标路由信息中的目标网关地址确定为虚拟网卡地址,并将目标路由信息中的目标跃跳数设置为小于候选目标地址对应的预设路由信息中的跃跳数。
在一些实施例中,虚拟网卡地址可以是10.8.0.1,候选目标地址为表1中的预设默认目标网络地址0.0.0.0。当预设路由表中不包含虚拟网卡地址时,终端可以在预设路由表中增加虚拟网卡对应的一条目标路由信息,如表2所示。
预设目标网络地址 | 网络掩码 | 网关地址 | 网关接口地址 | 跃点数 |
0.0.0.0 | 0.0.0.0 | 10.80.0.1 | 10.80.0.10 | 25 |
表2
在这种跃跳数的设置方式下,流量如第一网络数据包可以优先从跃跳数更少的10.8.0.1网关的10.8.0.10接口发送到虚拟网卡,实现对流量的全部拦截。
本申请实施例中,通过S001-S003,终端可以获得本机代理应用地址在预设路由表中的不同匹配情况对应的数据包流向。为了实现全流量拦截,终端可以在预设路由表中增加候选目标地址对应的目标路由信息,在目标路由信息中个,将目标网关地址确定为虚拟网卡地址,从而实现了无论本机代理应用地址在预设路由表中匹配到的具体的某个出口路由是还是默认路由,都可以通过虚拟网卡进行全部流量的拦截;并且,终端将目标路由信息中的目标跃跳数设置为小于各个候选目标地址对应的预设路由信息中的跃跳数,也即虚拟网卡地址在各个候选路由地址中对应的跃跳数最小,从而可以使得内核协议栈自动将第一网络数据包优先发送至虚拟网卡地址,实现了对全流量的自动拦截。
可以理解的是,本申请实施例中,通过在预设路由表中预先配置虚拟网卡地址为各个候选路由地址中最小跃跳数的路由地址,可以实现内网访问流量优先自动流向虚拟网卡,而不需要用户进行手动进行繁琐的代理服务器出口设置,从而实现了对内网访问流量的全流量拦截,提高了内网访问的便捷程度。
参见图6,图6是本申请实施例提供的内网访问方法的一个可选的流程示意图三。基于图5,S102中的根据本机代理应用地址在预设主机路由表中进行路由寻址,将第一网络数据包传输至虚拟网卡可以通过执行S1021-S1023来实现,将结合各步骤进行说明。
S1021-1、根据本机代理应用地址,在预设路由表中包含的至少一个预设目标网络地址中进行最大长度匹配,得到至少一个候选目标地址。
本申请实施例中,终端可以通过与S001-S002类似的路由寻址过程,根据本机代理应用地址,以最大长度匹配原则,在预设路由表中包含的至少一个预设目标网络地址中进行逐位匹配,并根据最大匹配长度确定出的至少一个候选目标地址。
S1022-1、在至少一个候选目标地址对应的至少一个候选路由信息中,根据跃跳数确定至少一个候选路由信息的路由优先级;路由优先级与跃跳数成反比。
本申请实施例中,至少一个候选目标地址对应的至少一个候选路由信息包含各自的跃跳数,跃跳数越大,说明对应的路由地址越远,传输成本越高,优先级越低。也就是说,跃跳数与路由优先级成反比,终端可以根据跃跳数确定至少一个候选路由信息的路由优先级。
S1023-1、从路由优先级最高的目标路由信息中获取虚拟网卡地址,将虚拟网卡地址作为第一网络数据包的路由地址,将第一网络数据包路由至虚拟网卡,并通过虚拟网卡将第一网络数据包传输至本机代理应用。
本申请实施例中,由于通过S004的预先配置,虚拟网卡地址对应的跃跳数在至少一个候选路由信息中是最小的,因此终端可以从路由优先级最高的目标路由信息中获取到虚拟网卡地址,进而将虚拟网卡地址作为第一网络数据包的第一网络数据包的路由地址,将第一网络数据包路由至虚拟网卡。
本申请实施例中,虚拟网卡作为本机代理应用地址对应的路由,在接收到路由地址与自身网络地址对应的第一网络数据包时,可以继续将第一网络数据包传输至其目标网络地址,即本机代理应用地址对应的本机代理应用。
可以理解的是,本申请实施例中终端通过最长匹配原则进行路由表查询和匹配下一跳路由,同时通过跃点数来设置优先级,跃点数越低,优先级越高,通过配置路由的跃跳数实现了全流量代理模式;并且,本申请实施例中的方法不区分流量来源,不需要手动设置PAC代理模式,就可以对所有内网访问流量进行劫持。在外网访问内网流量的场景中,可以统一将流量转发至优先级更高的虚拟网卡地址,实现流量的全部劫持和转发。
参见图7,图7是本申请实施例提供的内网访问方法的一个可选的流程示意图四。基于图4,S101可以通过执行S1011至S1013来实现,S102可以通过执行S1021-2至S1022-2来实现,将结合各步骤进行说明。
S1011、从应用程序的内网访问请求中解析出原始请求数据包,通过应用程序对应的第一预设套接字接口,根据目标内网地址对原始请求数据包进行封装,得到第一传输数据包;第一预设套接字接口为连接应用程序与内核空间的套接字接口;应用程序运行在用户空间。
本申请实施例中,应用程序运行在用户空间,在对原始请求数据包进行首次封装时,为了调用终端内核空间中的数据包封装方法对应用程序生成的原始请求数据包进行封装,终端可以通过应用程序与内核空间连接的套接字接口,即第一预设套接字接口,将原始请求数据包传输至传输层,通过传输层给原始请求数据包的头部添加传输协议头,添加传输协议头之后所得到的原始请求数据包,就是第一传输数据包。
其中,传输层在对原始请求数据包进行打包时,会将目标内网地址作为目标网络地址写入第一传输数据包的头部。
在一些实施例中,第一预设套接字接口可以通过SOCKET API封装协议对原始请求数据包进行封装。示例性地,可以选择TCP、UDP或者RAW等协议格式进行封装,具体的根据实际情况进行选择,本申请实施例不作限定。
S1012、通过第一预设套接字接口,将第一传输数据包传输至内核空间中的预设网络协议栈。
S1013、通过预设网络协议栈,将本机代理应用地址作为目标网络地址,对第一传输数据包进行封装,得到第一网络数据包。
本申请实施例中,终端在得到第一传输数据包之后,就会继续将第一传输数据包向下传输至内核空间中的预设网络协议栈,即网络层,获取本机代理应用对应的本机代理应用地址,通过预设网络协议栈将本机代理应用地址作为第一传输数据包的目标网络地址,添加到第一传输数据包的头部,对第一传输数据包进行封装,得到第一网络数据包。
S1021-2、根据本机代理应用地址在预设主机路由表中进行路由寻址,将第一网络数据包路由至虚拟网卡,并通过虚拟网卡,根据第一物理地址对第一网络数据包进行封装,得到中间数据包,并将中间数据包传输至预设字符设备;第一物理地址为预设字符设备的物理地址;预设字符设备用于在内核空间与用户空间之间进行数据包传输。
本申请实施例中,终端可以根据S1021-1至S1023-1中的方法,根据本机代理应用地址在预设主机路由表中进行路由寻址,将第一网络数据包路由至虚拟网卡。终端可以通过虚拟网卡,将预设字符设备的物理地址作为第一物理地址,将第一物理地址作为第一网络数据包的目标网络地址,添加到第一网络数据包的头部,对第一网络数据包进行封装,得到中间数据包,从而完成对原始请求数据包的首次封装。
S1022-2、通过预设字符设备,从中间数据包中解析出第一网络数据包,并将第一网络数据包传输至用户空间中的本机代理应用。
本申请实施例中,预设字符设备在接收到第一物理地址与自身物理地址对应的中间数据包时,从中间数据包中解析出第一网络数据包,通过预设字符流传输方式,将第一网络数据包传输至用户空间中的本机代理应用。
示例性的,本申请实施例提供了首次封装的示意图,参见图8,终端从应用层得到原始请求数据包9-1之后,会在原始请求数据包的头部添加传输协议头,例如TCP头9-2,得到第一传输数据包,其中,TCP头9-2包括目标内网设备对应的目标内网地址。然后获取本机代理应用地址,将本机代理应用地址以IP头9-3的形式添加在第一传输数据包的头部,得到第一网络数据包,再将预设字符设备对应的第一物理地址,以MAC头9-4的形式添加到第一网络数据包,得到中间数据包,完成对原始请求数据包的首次封装。
在本申请的一些实施例中,终端对中间数据包进行再次封装,得到封装数据包,即S103的具体实现过程,可以包括S1031-S1034,将结合各步骤进行说明。
S1031、通过本机代理应用,从第一网络数据包中解析出原始请求数据包与目标内网地址,并将原始请求数据包传输至连接本机代理应用与内核空间的第二预设套接字接口;本机代理应用运行于用户空间。
本申请实施例中,本机代理应用在接收到目标网络地址与自身地址对应的第一网络数据包时,可以从第一网络数据包中解析出原始请求数据包与目标内网地址,进而可以通过代理的形式,将原始请求数据包传输至连接本机代理应用与内核空间的第二预设套接字接口,启动对原始请求数据包重新封装,也即第二次封装过程,第二次封装过程用于将原始请求数据包发送至目标内网设备。
本申请实施例中,第二预设套接字接口为用户空间中的本机代理应用向内核空间进行数据包传输的接口。
S1032、通过第二预设套接字接口,根据目标内网地址对原始请求数据包进行封装,得到第二传输数据包,并将第二传输数据包传输至预设网络协议栈。
本申请实施例中,终端在对原始请求数据包进行再次封装时,仍然可以先通过传输层为中间数据包增加传输协议头,得到第二传输数据包,这里,第二传输数据包的封装方式可以与第一传输数据包相同,也可以不同。
终端再将第二传输数据包向下层传输,传输至网络层的预设网络协议栈。
可以理解的是,由于再次封装是流量代理时所需要的封装,即是通过全流量代理转发中间数据包时的封装,因而,此次封装时的所需要添加的附加信息,都是目标内网设备相关的信息。
S1033、通过预设网络协议栈,根据目标内网地址在预设路由表中进行路由寻址,得到物理网卡地址;根据预设路由地址对第二传输数据包进行封装,得到第二网络数据包,并根据物理网卡地址将第二网络数据包路由至物理网卡;预设路由地址为物理网卡的出口网关对应的网络地址。
本申请实施例中,终端通过预设网络协议栈,根据目标内网地址在预设路由表中进行最大匹配长度的路由寻址,得到目标内网地址对应的物理网卡地址。终端将物理网卡地址作为二次网络层封装的源网络地址,并将物理网卡地址对应的网关地址,即预设路由地址作为二次网络层封装的目标网络地址,生成网络层头部数据添加至第二传输数据包,将第二传输数据包封装为第二网络数据包。
本申请实施例中,终端根据物理网卡地址将第二网络数据包路由至物理网卡,以通过物理网卡将目标网络地址为预设路由地址的第二网络数据包发送至出口网关。
S1034、通过物理网卡,在第二网络数据包的头部添加第二物理地址,得到封装数据包;第二物理地址为物理网卡的出口网关对应的物理地址。
本申请实施例中,终端通过物理网卡接收到路由到自身的第二网络数据包口,在第二网络数据包的头部添加出口网关对应的物理地址,如此,终端就完成了对原始请求数据包的再次封装,得到了封装数据包。
基于上述S1031-S1034的过程,对应地,S104的实现过程可以是:通过物理网卡,根据第二物理地址将封装数据包发送至对应的出口网关,以使出口网关根据第二物理地址接收到封装数据包后,对封装数据包进行解析,得到第二传输数据包,并根据第二传输数据包中的目标内网地址将原始请求数据包发送至目标内网设备。
在一些实施例中,出口网关可以根据第二传输数据包中的目标内网地址继续路由到下一跳的中继路由设备,在逐级路由转发中根据每个下一跳中继路由设备的网络地址与物理地址,对第二传输数据包进行多次的网络层与物理层的封装与解封装,最终将原始请求数据包传递至目标内网设备。
可以理解的是,服务器的物理地址,可以是服务器的MAC地址。MAC地址用于在网络中唯一标示一个网卡,其是由网络设备制造商生成时烧录在网卡中的。
本申请实施例中,终端依次为中间数据包添加传输协议头、服务器的路由信息和服务器的物理地址,就可以完成对中间数据包的再次封装,以使中间数据包能够被发送给服务器。
在本申请的一些实施例中,传输协议头包括:传输控制协议头、用户数据包协议头和网际互连协议头中的任意一个或多个。从而,终端在给原始请求数据包增添传输协议头时,添加的可以是传输控制协议头,即TCP头、用户数据包协议头,即UDP头,以及网际互连协议头,即IP头中的一个或多个。例如,终端可以给原始请求数据包添加TCP头,也可以给原始请求数据包添加IP头,还可以给原始请求数据包添加TCP头和IP头,本申请在此不作限定。
同理的,终端在给中间数据包添加传输协议头时,添加的可以是传输控制协议头、用户数据包协议头和网际互连协议头中的一个或多个。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例是在用户进行全尺寸办公时进行内网访问的场景下实现的。本申请实施例主要是通过对数据包的拦截和再次封装,实现对流量的同一拦截,从而做到不需要手动配置系统、应用的上网代理,就可以自由访问内网资源。
图9为本申请实施例提供的数据包流向和封装示意图。参见图9,对数据包的封装主要包括以下步骤:
S201、移动端在从APP10-1的HTTP请求中获取其请求体中的数据包(原始请求数据包)。
其中,APP10-1相当于应用程序,HTTP请求相当于内网访问请求。此时,移动端会将请求体和请求头部分开且分开,从请求体中获取数据包,从请求头部获取数据包对应的目标内网地址。
S202、移动端将数据包通过系统所创建的Socket连接10-2向TCP/IP协议栈10-3传输,在Socket连接10-2中将目标内网地址作为对数据包进行封装的目标网络地址,对数据包添加包含TCP头部(传输协议头),封装得到第一传输数据包。
其中,Socket连接10-2相当于第一预设套接字接口,TCP/IP协议栈10-3相当于预设网络协议栈。
S203、移动端的TCP/IP协议栈10-3将全流量代理10-6(本机代理应用)对应的本机代理应用地址作为对第一传输数据包进行封装的目标网络地址,对第一传输数据被添加IP头部,得到第一网络数据包。根据本机代理应用地址在预设路由表中进行路由寻址,得到对应的TUN/TAP虚拟设备10-4(虚拟网卡)地址,将第一网络数据包传输至TUN/TAP虚拟设备10-4。
这里,移动端可以预先在预设路由表中,将本机代理应用地址作为一项预设目标网络地址,将TUN/TAP虚拟设备地址作为本机代理应用地址对应的网关地址,增加对应的目标路由信息,并将目标路由信息中的跃跳数确定为本机代理应用在预设路由表中所能匹配到路由信息中最小的跃跳数。这样,当TCP/IP协议栈10-3根据本机代理应用地址在预设路由表中进行路由寻址时,TCP/IP协议栈10-3会从预设路由表中的各个路由信息(即图9中的0.0.0.0、10.8.0.1、10.8.0.10、10.80.22.1、10.80.22.13等)中,根据最长匹配原则查找到至少包含TUN/TAP虚拟设备地址的候选路由信息,由于TUN/TAP虚拟设备地址对应的跃跳数最小,因此路由优先级最高,移动端可以根据TUN/TAP虚拟设备地址,优先将第一网络数据包路由至TUN/TAP虚拟设备10-4。需要说明的是,第一次用户空间到内核空间的流量封装是发送到TUN/TAP虚拟设备10-4,而非全流量代理模式下数据封装时是直接发送到设备驱动,不需要经过TUN/TAP虚拟设备10-4。
S204、移动端的TUN/TAP虚拟设备10-4为第一网络数据包,再添加包含字符设备10-5(Character Devise)的MAC地址的头部信息,将第一网络数据包封装为中间数据包。
这里,字符设备10-5(Character Devise)的MAC地址相当于第一物理地址。
S205、通过字符设备10-5接收中间数据包并解析出第一网络数据包,将第一网络数据包传输至移动端的全流量代理10-6。
S206、移动端的全流量代理10-6对第一网络数据包进行解析,得到原始请求数据包与目标内网地址,全流量代理10-6发起代理访问请求,建立Socket连接10-7。
其中,Socket连接10-7相当于第二预设套接字接口。
S207、通过Socket连接10-7,将目标内网地址作为对数据包进行封装的目标网络地址,为数据包添加TCP头部,得到第二传输数据包,通过Socket连接10-7向TCP/IP协议栈10-8发送。
S208、移动端的TCP/IP协议栈10-8将NIC10-10(物理网卡)的地址作为第二传输数据包的源网络地址,将NIC10-10对应的出口网关地址作为对第二传输数据包进行封装的目标网络地址,为第二传输数据包添加IP头部,得到第二网络数据包。TCP/IP协议栈10-8可以根据第二网络数据包对应的源网络地址即NIC10-10(物理网卡)的地址,将第二网络数据包发送给NIC10-10对应的设备驱动10-9。
这里,NIC10-10对应的出口网关地址相当于预设路由地址。
S209、移动端的设备驱动10-9根据第二网络数据包中的目标网络地址,为第二网络数据包添加包含下一跳路由设备,也即NIC10-10对应的出口网关MAC地址(出口网关的物理地址)的头部信息,这样,就得到了封装好的数据包(封装数据包)。
移动端在得到封装好的数据包之后,会通过NIC10-10将封装好的数据包发送给出口网关,再通过出口网关进行中继路由设备的逐级路由转发,最终将数据包通过层层封装转发至服务端(目标内网设备),使得服务端对封装好的数据包进行解封装,得到数据包,通过数据包的内容对移动端的内网访问请求进行响应。
继续参见图9,图9中提供了数据包的封装过程与上述步骤的对应关系,即将请求头部和请求体分开,将请求体作为数据包分别对应S201和S206,添加TCP头部对应了S202和S207,添加IP头部对应了S203、S205和S208,添加MAC头部对应了S204和S209。从而,由图9可以明确看出,本申请实施例对数据包经过了两次封装,在第一次封装时添加虚拟设备的IP和MAC地址,经过本机代理应用对第一次封装后的数据包拦截之后,再对本机代理应用发出的请求再进行一次用户态到内核态的封装,从而实现将数据包代理转发到服务器,以实现对内网资源的请求。
通过上述方式,能够实现在不区分内网和外网流量请求的情况下,同一对包含内网请求(内网访问请求)的数据包进行封装,避免了需要区分内网和外网时的操作,从而实现不需要在PAC模式下对系统进行配置,就可以让用户对内网进行访问,提高了内网访问的便捷程度。同时,上述方式对于不支持代理软件的移动端而言,也能够实现内网的访问,从而适用的场景更多。
下面继续说明本申请实施例提供的内网访问装置455的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器450的内网访问装置455中的软件模块可以包括:
首次封装模块4551,用于从应用程序的内网访问请求中解析出原始请求数据包,并对所述原始请求数据包进行封装,得到第一网络数据包;所述第一网络数据包的目标网络地址为本机代理应用地址;
数据拦截模块4552,用于根据所述本机代理应用地址在预设路由表中进行路由寻址,将所述第一网络数据包路由至虚拟网卡,并通过所述虚拟网卡将所述第一网络数据包传输至本机代理应用;所述虚拟网卡对应的虚拟网卡地址为所述本机代理应用地址在所述预设路由表中对应的最小跃跳数的路由地址;
再次封装模块4553,用于通过所述本机代理应用,对所述第一网络数据包进行重新封装,得到封装数据包;所述封装数据包的目标网络地址为所述内网访问请求对应的目标内网地址;
数据发送模块4554,用于利用物理网卡发送所述封装数据包,以将所述原始请求数据包发送至所述目标内网地址对应的目标内网设备。
在本申请的一些实施例中,所述内网访问装置455还包括设置模块,所述设置模块,用于根据所述本机代理应用地址在预设路由表中进行路由寻址,将所述第一网络数据包传输至虚拟网卡之前,当所述预设路由表中不包含所述虚拟网卡地址时,根据所述本机代理应用地址,在预设路由表中包含的至少一个预设目标网络地址中进行逐位匹配,得到最大匹配长度的预设目标网络地址;所述至少一个预设目标网络地址与至少一个预设路由信息一一对应;当所述最大匹配长度大于或等于预设长度阈值时,将所述预设目标网络地址作为候选目标地址;当所述最大匹配长度小于预设长度阈值时,将预设默认目标网络地址作为所述候选目标地址;所述至少一个预设目标网络地址包含预设默认目标网络地址;在所述预设路由表中,增加所述候选目标地址对应的目标路由信息;将目标路由信息中的目标网关地址确定为所述虚拟网卡地址,并将所述目标路由信息中的目标跃跳数设置为小于所述候选目标地址对应的预设路由信息中的跃跳数。
在本申请的一些实施例中,所述数据拦截模块4552,还用于根据所述本机代理应用地址,在预设路由表中包含的至少一个预设目标网络地址中进行最大长度匹配,得到至少一个候选目标地址;在所述至少一个候选目标地址对应的至少一个候选路由信息中,根据跃跳数确定至少一个候选路由信息的路由优先级;所述路由优先级与跃跳数成反比;从路由优先级最高的所述目标路由信息中获取所述虚拟网卡地址,将所述虚拟网卡地址作为所述第一网络数据包的路由地址,将所述第一网络数据包路由至所述虚拟网卡。
在本申请的一些实施例中,所述首次封装模块4551,还用于通过应用程序对应的第一预设套接字接口,根据所述目标内网地址对所述原始请求数据包进行封装,得到第一传输数据包;所述第一预设套接字接口为连接所述应用程序与内核空间的套接字接口;所述应用程序运行在用户空间;通过所述第一预设套接字接口,将所述第一传输数据包传输至所述内核空间中的预设网络协议栈;通过所述预设网络协议栈,将所述本机代理应用地址作为目标网络地址,对所述第一传输数据包进行封装,得到所述第一网络数据包。
在本申请的一些实施例中,所述数据拦截模块4552,还用于通过所述虚拟网卡,根据第一物理地址对所述第一网络数据包进行封装,得到中间数据包,并将所述中间数据包传输至预设字符设备;所述第一物理地址为所述预设字符设备的物理地址;所述预设字符设备用于在所述内核空间与所述用户空间之间进行数据包传输;通过所述预设字符设备,从所述中间数据包中解析出所述第一网络数据包,并将所述第一网络数据包传输至所述用户空间中的所述本机代理应用。
在本申请的一些实施例中,所述再次封装模块4553,还用于通过所述本机代理应用,从所述第一网络数据包中解析出所述原始请求数据包与所述目标内网地址,并将所述原始请求数据包传输至连接所述本机代理应用与内核空间的第二预设套接字接口;所述本机代理应用运行于用户空间;通过所述第二预设套接字接口,根据所述目标内网地址对所述原始请求数据包进行封装,得到第二传输数据包,并将所述第二传输数据包传输至所述预设网络协议栈;通过所述预设网络协议栈,根据所述目标内网地址在所述预设路由表中进行路由寻址,得到物理网卡地址;根据预设路由地址对所述第二传输数据包进行封装,得到第二网络数据包,并根据所述物理网卡地址将所述第二网络数据包路由至所述物理网卡;所述预设路由地址为所述物理网卡的出口网关对应的网络地址;通过所述物理网卡,在所述第二网络数据包的头部添加第二物理地址,得到所述封装数据包;所述第二物理地址为所述物理网卡的出口网关对应的物理地址。
在本申请的一些实施例中,所述数据发送模块4554,还用于通过物理网卡,将所述封装数据包发送至所述预设路由地址对应的目标路由设备,以使所述目标路由设备根据所述第二物理地址接收到所述封装数据包后,对所述封装数据包进行解析,得到所述第二传输数据包,并根据所述第二传输数据包中的所述目标内网地址将所述原始请求数据包发送至所述目标内网设备。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的内网访问方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行内网访问指令,当可执行内网访问指令被处理器执行时,将引起处理器执行本申请实施例终端侧提供的内网访问方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行内网访问指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行内网访问指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,HyperText Markup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行内网访问指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例,终端在首轮封装过程中,可以根据本机代理应用地址将内网访问请求对应的原始请求数据包进行封装,得到第一网络数据包,这样在第一网络数据包在协议栈的预设路由表中进行路由寻址时,可以通过本机代理应用地址匹配到虚拟网卡地址,并将虚拟网卡地址作为向本机代理应用发送数据包的路由地址。由于虚拟网卡地址是本机代理应用地址匹配的最小跃跳数的路由地址,因此被预设网络协议栈选择作为目标路由的优先级较高,从而保证了内网访问请求的数据能够优先通过虚拟网卡传递到本机代理应用,进而可以通过本机代理应用对内网访问请求的数据进行重新封装并发送至目标内网设备,从而实现了无论对于内网设备还是外网设备发出的内网访问请求,还是对于原本不支持代理的应用程序发出的内网访问请求,都可以通过本申请实施例中的方法实现内网访问的全流量的自动拦截,最终实现对内外网设备的内网访问请求进行统一代理、统一转发。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种内网访问方法,其特征在于,包括:
从应用程序的内网访问请求中解析出原始请求数据包,并对所述原始请求数据包进行封装,得到第一网络数据包;所述第一网络数据包的目标网络地址为本机代理应用地址;
根据所述本机代理应用地址在预设路由表中进行路由寻址,将所述第一网络数据包路由至虚拟网卡,并通过所述虚拟网卡将所述第一网络数据包传输至本机代理应用;所述虚拟网卡对应的虚拟网卡地址为所述本机代理应用地址在所述预设路由表中对应的最小跃跳数的路由地址;
通过所述本机代理应用,对所述第一网络数据包进行重新封装,得到封装数据包;所述封装数据包的目标网络地址为所述内网访问请求对应的目标内网地址;
利用物理网卡发送所述封装数据包,以将所述原始请求数据包发送至所述目标内网地址对应的目标内网设备。
2.根据权利要求1所述的方法,其特征在于,所述根据所述本机代理应用地址在预设路由表中进行路由寻址,将所述第一网络数据包路由至虚拟网卡之前,所述方法还包括:
当所述预设路由表中不包含所述虚拟网卡地址时,根据所述本机代理应用地址,在预设路由表中包含的至少一个预设目标网络地址中进行逐位匹配,得到最大匹配长度的预设目标网络地址;所述至少一个预设目标网络地址与至少一个预设路由信息一一对应;
当所述最大匹配长度大于或等于预设长度阈值时,将所述预设目标网络地址作为候选目标地址;
当所述最大匹配长度小于预设长度阈值时,将预设默认目标网络地址作为所述候选目标地址;所述至少一个预设目标网络地址包含预设默认目标网络地址;
在所述预设路由表中,增加所述候选目标地址对应的目标路由信息;将目标路由信息中的目标网关地址确定为所述虚拟网卡地址,并将所述目标路由信息中的目标跃跳数设置为小于所述候选目标地址对应的预设路由信息中的跃跳数。
3.根据权利要求2所述的方法,其特征在于,所述根据所述本机代理应用地址在预设路由表中进行路由寻址,将所述第一网络数据包路由至虚拟网卡,包括:
根据所述本机代理应用地址,在预设路由表中包含的至少一个预设目标网络地址中进行最大长度匹配,得到至少一个候选目标地址;
在所述至少一个候选目标地址对应的至少一个候选路由信息中,根据跃跳数确定至少一个候选路由信息的路由优先级;所述路由优先级与跃跳数成反比;
从路由优先级最高的所述目标路由信息中获取所述虚拟网卡地址,将所述虚拟网卡地址作为所述第一网络数据包的路由地址,将所述第一网络数据包路由至所述虚拟网卡。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述对所述原始请求数据包进行封装,得到第一网络数据包,包括:
通过应用程序对应的第一预设套接字接口,根据所述目标内网地址对所述原始请求数据包进行封装,得到第一传输数据包;所述第一预设套接字接口为连接所述应用程序与内核空间的套接字接口;所述应用程序运行在用户空间;
通过所述第一预设套接字接口,将所述第一传输数据包传输至所述内核空间中的预设网络协议栈;
通过所述预设网络协议栈,将所述本机代理应用地址作为目标网络地址,对所述第一传输数据包进行封装,得到所述第一网络数据包。
5.根据权利要求4所述的方法,其特征在于,所述通过所述虚拟网卡将所述第一网络数据包传输至本机代理应用,包括:
通过所述虚拟网卡,根据第一物理地址对所述第一网络数据包进行封装,得到中间数据包,并将所述中间数据包传输至预设字符设备;所述第一物理地址为所述预设字符设备的物理地址;所述预设字符设备用于在所述内核空间与所述用户空间之间进行数据包传输;
通过所述预设字符设备,从所述中间数据包中解析出所述第一网络数据包,并将所述第一网络数据包传输至所述用户空间中的所述本机代理应用。
6.根据权利要求4所述的方法,其特征在于,所述通过所述本机代理应用,对所述第一网络数据包进行重新封装,得到封装数据包,包括:
通过所述本机代理应用,从所述第一网络数据包中解析出所述原始请求数据包与所述目标内网地址,并将所述原始请求数据包传输至连接所述本机代理应用与内核空间的第二预设套接字接口;所述本机代理应用运行于用户空间;
通过所述第二预设套接字接口,根据所述目标内网地址对所述原始请求数据包进行封装,得到第二传输数据包,并将所述第二传输数据包传输至所述预设网络协议栈;
通过所述预设网络协议栈,根据所述目标内网地址在所述预设路由表中进行路由寻址,得到物理网卡地址;根据预设路由地址对所述第二传输数据包进行封装,得到第二网络数据包,并根据所述物理网卡地址将所述第二网络数据包路由至所述物理网卡;所述预设路由地址为所述物理网卡的出口网关对应的网络地址;
通过所述物理网卡,在所述第二网络数据包的头部添加第二物理地址,得到所述封装数据包;所述第二物理地址为所述物理网卡的出口网关对应的物理地址。
7.根据权利要求6所述的方法,其特征在于,所述利用物理网卡发送所述封装数据包,以将所述原始请求数据包发送至所述目标内网地址对应的目标内网设备,包括:
通过物理网卡,根据所述第二物理地址将所述封装数据包发送至对应的出口网关,以使所述出口网关根据所述第二物理地址接收到所述封装数据包后,对所述封装数据包进行解析,得到所述第二传输数据包,并根据所述第二传输数据包中的所述目标内网地址将所述原始请求数据包发送至所述目标内网设备。
8.一种内网访问装置,其特征在于,包括:
首次封装模块,用于从应用程序的内网访问请求中解析出原始请求数据包,并对所述原始请求数据包进行封装,得到第一网络数据包;所述第一网络数据包的目标网络地址为本机代理应用地址;
数据拦截模块,用于根据所述本机代理应用地址在预设路由表中进行路由寻址,将所述第一网络数据包路由至虚拟网卡,并通过所述虚拟网卡将所述第一网络数据包传输至本机代理应用;所述虚拟网卡对应的虚拟网卡地址为所述本机代理应用地址在所述预设路由表中对应的最小跃跳数的路由地址;
再次封装模块,用于通过所述本机代理应用,对所述第一网络数据包进行重新封装,得到封装数据包;所述封装数据包的目标网络地址为所述内网访问请求对应的目标内网地址;
数据发送模块,用于利用物理网卡发送所述封装数据包,以将所述原始请求数据包发送至所述目标内网地址对应的目标内网设备。
9.一种内网访问设备,其特征在于,包括:
存储器,用于存储可执行内网访问指令;
处理器,用于执行所述存储器中存储的可执行内网访问指令时,实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有可执行内网访问指令,用于被处理器执行时,实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110404454.5A CN115225292A (zh) | 2021-04-15 | 2021-04-15 | 一种内网访问方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110404454.5A CN115225292A (zh) | 2021-04-15 | 2021-04-15 | 一种内网访问方法、装置、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115225292A true CN115225292A (zh) | 2022-10-21 |
Family
ID=83604264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110404454.5A Pending CN115225292A (zh) | 2021-04-15 | 2021-04-15 | 一种内网访问方法、装置、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115225292A (zh) |
-
2021
- 2021-04-15 CN CN202110404454.5A patent/CN115225292A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108449282B (zh) | 一种负载均衡方法及其装置 | |
CN112165532B (zh) | 节点访问方法、装置、设备及计算机可读存储介质 | |
EP3039833B1 (en) | System and method for providing a data service in an engineered system for middleware and application execution | |
US20200007445A1 (en) | Enhanced service function chain | |
CN109088820B (zh) | 一种跨设备链路聚合方法、装置、计算装置和存储介质 | |
US10050859B2 (en) | Apparatus for processing network packet using service function chaining and method for controlling the same | |
KR20140110058A (ko) | 통신 네트워크들을 위한 클라우드 컴퓨팅 제어된 게이트웨이 | |
CN110311929A (zh) | 一种访问控制方法、装置及电子设备和存储介质 | |
US20130198830A1 (en) | Access relay method and access gateway device | |
CN106063229A (zh) | 用于转发数据的方法和系统 | |
CN107948077B (zh) | 一种数据报文的转发方法及装置 | |
KR102293752B1 (ko) | 통신 네트워크를 위한 방법, 및 전자 제어 유닛 | |
CN102739684A (zh) | 一种基于虚拟IP地址的Portal认证方法及服务器 | |
WO2021012601A1 (zh) | 报文处理方法、装置、设备及可读存储介质 | |
US10374946B2 (en) | Centralized wireless network management system | |
US20220029917A1 (en) | Executing workloads across multiple cloud service providers | |
WO2024067338A1 (zh) | 云组网系统、安全访问方法、设备及存储介质 | |
CN113364660A (zh) | Lvs负载均衡中的数据包处理方法及装置 | |
CN106105098A (zh) | 交换机及业务请求报文的处理方法 | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
CN108064441B (zh) | 一种加速网络传输优化方法以及系统 | |
CN115085954A (zh) | 一种内网访问方法、装置、设备及计算机可读存储介质 | |
CN115225292A (zh) | 一种内网访问方法、装置、设备及计算机可读存储介质 | |
CN115834472A (zh) | 一种报文处理方法、转发策略获取方法及装置 | |
CN113709016B (zh) | 通信系统以及通信方法、装置、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |