CN112104754B - 网络代理方法、系统、装置、设备及存储介质 - Google Patents

网络代理方法、系统、装置、设备及存储介质 Download PDF

Info

Publication number
CN112104754B
CN112104754B CN202011294157.1A CN202011294157A CN112104754B CN 112104754 B CN112104754 B CN 112104754B CN 202011294157 A CN202011294157 A CN 202011294157A CN 112104754 B CN112104754 B CN 112104754B
Authority
CN
China
Prior art keywords
service
address
proxy component
proxy
component
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.)
Active
Application number
CN202011294157.1A
Other languages
English (en)
Other versions
CN112104754A (zh
Inventor
钟奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202011294157.1A priority Critical patent/CN112104754B/zh
Publication of CN112104754A publication Critical patent/CN112104754A/zh
Application granted granted Critical
Publication of CN112104754B publication Critical patent/CN112104754B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Abstract

本申请公开了一种网络代理方法、系统、装置、设备及存储介质,属于云计算和虚拟私有云技术领域。所述方法包括:主调设备向正向代理组件发送基于业务协议的业务报文;正向代理组件在业务报文的基础上添加基于代理协议的报文头部,得到业务数据包;正向代理组件向反向代理组件发送业务数据包;反向代理组件解析业务数据包,得到业务报文;反向代理组件向被调设备发送业务报文。本申请实施例实现了不同虚拟私有云中的设备之间的相互通信以及业务调用,能够对主调设备和被调设备都透明接入,开发和实现简单,降低了模块部署的成本,提升了模块部署的速度。

Description

网络代理方法、系统、装置、设备及存储介质
技术领域
本申请实施例涉及云计算和虚拟私有云技术领域,特别涉及一种网络代理方法、系统、装置、设备及存储介质。
背景技术
虚拟私有云(VPC,Virtual Private Cloud)是私密的、与其它虚拟网络环境隔离的云计算资源的动态配置池。用户可以在虚拟私有云内自由配置IP(Internet Protocol,互联网协议)地址段、子网、安全组等子服务,还可以申请弹性带宽和弹性IP搭建业务系统。
通常情况下,位于同一虚拟私有云内的设备之间可以相互通信,而位于不同虚拟私有云内的设备之间不能够直接进行通信。为了实现不同虚拟私有云内的设备之间的相互通信,相关技术提出了一种内核模块劫持方案,该方案主要是修改netfilter/iptables的内核态模块和用户态模块。Netfilter是一套融入在Linux内核网络协议栈中的报文处理框架,其在内核中传输业务报文的路径上定义了若干个检测点(HOOK),各个协议可以在这些检测点安装钩子函数。业务报文在传输过程中流经某一检测点,相关的模块即提取业务报文并确定业务报文是否符合该检测点的协议规范。若业务报文不符合该检测点的协议规范,则相关的模块可能需要对业务报文进行一些修改,然后将符合该检测点的协议规范的业务报文继续传输至下一个检测点,或者可能直接丢弃该业务报文。
然而,相关技术提供的内核模块劫持方案需要根据不同的业务需求定制不同的开发方案,并且涉及到若干检测点的定义以及每个检测点上钩子函数的安装,方案开发和实现的难度较大,不利于节约成本。
发明内容
本申请实施例提供了一种网络代理方法、系统、装置、设备及存储介质,可用于对主调设备和被调设备都透明接入,降低模块部署的成本并提升模块部署的速度。所述技术方案包括以下内容。
一方面,本申请实施例提供了一种网络代理方法,应用于正向代理组件中,所述方法包括:
接收主调设备发送的基于业务协议的业务报文;
在所述业务报文的基础上添加基于代理协议的报文头部,得到业务数据包;
向反向代理组件发送所述业务数据包,所述反向代理组件用于从所述业务数据包中解析出所述业务报文后,向被调设备发送所述业务报文;
其中,所述主调设备和所述被调设备位于不同的虚拟私有云中。
另一方面,本申请实施例提供了一种网络代理方法,应用于反向代理组件中,所述方法包括:
接收正向代理组件发送的业务数据包,所述业务数据包包括主调设备发送的基于业务协议的业务报文,以及所述正向代理组件在所述业务报文的基础上添加的基于代理协议的报文头部;
解析所述业务数据包,得到所述业务报文;
向被调设备发送所述业务报文;
其中,所述主调设备和所述被调设备位于不同的虚拟私有云中。
再一方面,本申请实施例提供了一种网络代理系统,所述网络代理系统包括正向代理组件和反向代理组件;
所述正向代理组件,用于接收主调设备发送的基于业务协议的业务报文;在所述业务报文的基础上添加基于代理协议的报文头部,得到业务数据包;
所述反向代理组件,用于解析所述业务数据包,得到所述业务报文;向被调设备发送所述业务报文;
其中,所述主调设备和所述被调设备位于不同的虚拟私有云中。
可选地,所述网络代理系统还包括主控组件;所述主控组件,用于:向所述正向代理组件发送第一地址集合,所述第一地址集合包括至少一个设备地址,且所述第一地址集合用于对所述主调设备的身份进行认证;向所述反向代理组件发送第二地址集合,所述第二地址集合包括至少一个代理地址,且所述第二地址集合用于对所述正向代理组件的身份进行认证。
可选地,所述网络代理系统还包括数据库;所述数据库包括以下至少一项数据集合:第一数据集合,用于存储所述正向代理组件相关的信息;第二数据集合,用于存储所述反向代理组件相关的信息:第三数据集合,用于存储传输链路相关的信息;其中,所述传输链路包括以下至少一项:所述主调设备和所述正向代理组件之间的传输链路、所述正向代理组件和所述反向代理组件之间的传输链路、所述反向代理组件和所述被调设备之间的传输链路;第四数据集合,用于存储身份认证相关的信息;所述身份认证包括以下至少一项:针对所述主调设备的身份认证、针对所述正向代理组件的身份认证。
又一方面,本申请实施例提供了一种网络代理装置,设置在正向代理组件中,所述装置包括:
业务报文接收模块,用于接收主调设备发送的基于业务协议的业务报文;
报文头部添加模块,用于在所述业务报文的基础上添加基于代理协议的报文头部,得到业务数据包;
业务数据包发送模块,用于向反向代理组件发送所述业务数据包,所述反向代理组件用于从所述业务数据包中解析出所述业务报文后,向被调设备发送所述业务报文;
其中,所述主调设备和所述被调设备位于不同的虚拟私有云中。
可选地,所述正向代理组件对应至少一个正向代理端口;所述业务数据包发送模块,用于:从所述至少一个正向代理端口中选择目标正向代理端口,所述目标正向代理端口是与目标业务的业务类型相对应的传输端口,所述目标业务是指所述业务报文请求的业务;通过所述目标正向代理端口,向地址为目标地址的反向代理组件发送所述业务数据包,所述目标地址与所述目标正向代理端口相对应。
可选地,报文头部添加模块,用于:确定所述报文头部的内容;按照目标头部格式,在所述业务报文的基础上添加所述报文头部的内容,得到所述业务数据包;其中,所述目标头部格式为符合所述代理协议规范的头部格式。
可选地,所述报文头部的内容用于指示以下至少一项信息:目标业务的业务类型、所述代理协议的类型,所述目标业务是指所述业务报文请求的业务。
可选地,所述装置还包括:第一集合获取模块,用于获取第一地址集合,所述第一地址集合中包括至少一个设备地址;第一身份认证模块,用于基于所述主调设备的地址和所述至少一个设备地址,对所述主调设备的身份进行认证;其中,在所述至少一个设备地址中包括所述主调设备的地址的情况下,通过针对所述主调设备的身份认证;在所述至少一个设备地址中不包括所述主调设备的地址的情况下,不通过针对所述主调设备的身份认证。
还一方面,本申请实施例提供了一种网络代理装置,设置在反向代理组件中,所述装置包括:
业务数据包接收模块,用于接收正向代理组件发送的业务数据包,所述业务数据包包括主调设备发送的基于业务协议的业务报文,以及所述正向代理组件在所述业务报文的基础上添加的基于代理协议的报文头部;
业务数据包解析模块,用于解析所述业务数据包,得到所述业务报文;
业务报文发送模块,用于向被调设备发送所述业务报文;
其中,所述主调设备和所述被调设备位于不同的虚拟私有云中。
可选地,所述反向代理组件对应至少一个反向代理端口;所述业务报文发送模块,用于:从所述至少一个反向代理端口中选择目标反向代理端口,所述目标反向代理端口是与目标业务的业务类型相对应的传输端口,所述目标业务是指所述业务报文请求的业务;通过所述目标反向代理端口,向所述被调设备发送所述业务报文。
可选地,所述装置还包括:第二集合获取模块,用于获取第二地址集合,所述第二地址集合中包括至少一个代理地址;第二身份认证模块,用于基于所述正向代理组件的地址和所述至少一个代理地址,对所述正向代理组件的身份进行认证;其中,在所述至少一个代理地址中包括所述正向代理组件的地址的情况下,通过针对所述正向代理组件的身份认证;在所述至少一个代理地址中不包括所述正向代理组件的地址的情况下,不通过针对所述正向代理组件的身份认证。
还一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述正向代理组件侧的网络代理方法,或者实现如上述反向代理组件侧的网络代理方法。
还一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述正向代理组件侧的网络代理方法,或者实现如上述反向代理组件侧的网络代理方法。
还一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如上述正向代理组件侧的网络代理方法,或者实现如上述反向代理组件侧的网络代理方法。
本申请实施例提供的技术方案可以带来如下有益效果:
通过主调设备在存在调用与其位于不同的虚拟私有云中的被调设备的业务或服务的情况下,由主调设备向正向代理组件发送业务报文;正向代理组件接收到业务报文之后在业务报文的基础上增加报文头部,得到业务数据包,然后通过公网向反向代理组件发送业务数据包;之后,由反向代理组件解析出业务报文后进一步向被调设备发送该业务报文,从而实现不同虚拟私有云中的设备之间的相互通信以及业务调用。并且,由于正向代理组件和反向代理组件在网络代理过程中,仅需在业务报文的基础上增加报文头部,而无需更改业务报文的内容,从而相比于在业务报文传输过程中设置检测点和安装钩子函数开发和实现困难,本申请实施例能够对主调设备和被调设备都透明接入,开发和实现简单,降低了模块部署的成本,提升了模块部署的速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个实施例提供的专线方案的示意图;
图2是本申请一个实施例提供的内核模块劫持方案的示意图;
图3是本申请一个实施例提供的网络代理系统的示意图;
图4是本申请一个实施例提供的网络代理方法的流程图;
图5是本申请一个实施例提供的业务报文和业务响应的传输过程的示意图;
图6是本申请另一个实施例提供的网络代理系统的示意图;
图7是本申请一个实施例提供的代理组件的设计示意图;
图8是本申请一个实施例提供的数据库的内容示意图;
图9是本申请一个实施例提供的网络代理系统及网络代理方法的示意图;
图10是本申请一个实施例提供的网络代理装置的框图;
图11是本申请另一个实施例提供的网络代理装置的框图;
图12是本申请又一个实施例提供的网络代理装置的框图;
图13是本申请还一个实施例提供的网络代理装置的框图;
图14是本申请一个实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中的资源在使用者看来是可以无限扩展的,并且可以随时获取、按需使用、随时扩展、按使用付费。
作为云计算的基础能力提供商,会建立云计算资源池(简称“云平台”,一般称为IaaS(Infrastructure as a Service,基础设施即服务)平台),在资源池中部署多种类型的虚拟资源,供外部客户选择使用。云计算资源池中主要包括:计算设备(为虚拟化机器,包含操作系统)、存储设备、网络设备。
按照逻辑功能划分,在IaaS层上可以部署PaaS(Platform as a Service,平台即服务)层,PaaS层之上再部署SaaS(Software as a Service,软件即服务)层,也可以直接将SaaS部署在IaaS上。PaaS为软件运行的平台,如数据库、Web(万维网)容器等。SaaS为各式各样的业务软件,如Web门户网站、短信群发器等。一般来说,SaaS和PaaS相对于IaaS是上层。
虚拟私有云正是一种私密的、与其它虚拟网络环境隔离的云计算资源的动态配置池。用户可以在虚拟私有云内自由配置IP地址段、子网、安全组等子服务,还可以申请弹性带宽和弹性IP搭建业务系统。
通常情况下,位于同一虚拟私有云内的设备之间可以相互通信,而位于不同虚拟私有云内的设备之间不能够直接进行通信。为了实现不同虚拟私有云内的设备之间的相互通信,相关技术提出了以下几种方案。
方案一:专线方案。如图1所示,在不同的网络环境之间架设专用的物理线路110,从而某一虚拟私有云可以通过该专用的物理线路110访问其它虚拟私有云或其它网络环境中的业务或服务。
方案二:内核模块劫持方案。该方案主要是修改Netfilter/Iptables的内核态模块和用户态模块,如图2所示,Netfilter是一套融入在Linux内核网络协议栈中的报文处理框架,其在内核中传输业务报文的路径上定义了若干个检测点(HOOK)210,各个协议可以在这些检测点210安装钩子函数。业务报文在传输过程中流经某一检测点,相关的模块即提取业务报文并确定业务报文是否符合该检测点的协议规范,若业务报文不符合该检测点的协议规范,则相关的模块可能需要对业务报文进行一些修改,然后将符合该检测点的协议规范的业务报文继续传输至下一个检测点,或者可能直接丢弃该业务报文。
方案三:http/https代理方案。该方案主要是通过类似Nginx或者Apache等工具,以进行符合http/https协议规范的业务报文的转发。在该方案中,需要配置相应的正向代理组件和反向代理组件。
然而,针对上述方案一,需要在不同的网络环境之间架设专用的物理线路,即专线,由于网络环境的数量较多且数量会不断地增长,从而会导致架设周期长、成本高、架设不及时等问题。针对上述方案二,需要根据不同的业务需求定制不同的开发方案,并且涉及到若干检测点的定义以及每个检测点上钩子函数的安装,方案开发和实现的难度较大、调试困难,不利于成本的节约,此外,在后续的维护过程中,可能会涉及模块的修改,模块的修改手续复杂,也不利于效率的提升。针对上述方案三,仅支持符合http/https协议规范的业务报文的转发,从而应用场景存在较大的局限性。基于此,本申请实施例提供了一种网络代理方法,可用于解决上述技术问题。
请参考图3,其示出了本申请一个实施例提供的网络代理系统的示意图。该网络代理系统包括:主调设备310、正向代理组件320、反向代理组件330、被调设备340。
主调设备310是指调用其它设备提供的业务或服务的设备,被调设备340是指被调用其提供的业务或服务的设备。本申请实施例中,主调设备310通过业务报文请求调用被调设备340提供的业务或服务。可选地,主调设备310和被调设备340可以为手机、平板电脑、游戏主机、电子书阅读器、多媒体播放设备、可穿戴设备、PC(Personal Computer,个人计算机)等终端,还可以为台式计算机、服务器等设备。可选地,主调设备310和被调设备340为相同类型的设备,如均为服务器;或者,为不同类型的设备,如主调设备310为台式计算机,被调设备340为服务器。可选地,被调设备340的数量为多个。
正向代理组件320是指靠近主调设备310的代理组件,反向代理组件330是指靠近被调设备310的代理组件。可选地,正向代理组件320和反向代理组件330可以为网关、路由器、服务器以及其它能够提供代理服务的组件等。可选地,正向代理组件320和反向代理组件330为相同类型的组件,如均为路由器;或者,为不同类型的组件,如正向代理组件320为路由器,反向代理组件330为服务器。可选地,正向代理组件320和反向代理组件340的数量为一个或多个,例如,在正向代理组件320为路由器的情况下,其可以实现为一个路由器;在反向代理组件330为服务器的情况下,其可以实现为多个服务器组成的服务器集群。
如图3所示,主调设备310和被调设备340分别位于各自的虚拟私有云中,其中,主调设备310位于虚拟私有云1中,被调设备340位于虚拟私有云2中。主调设备310和被调设备340之间无法直接进行通信,因而需要通过正向代理组件320和反向代理组件330实现通信。正向代理组件320与主调设备310连接,反向代理组件330和被调设备340连接,且正向代理组件320和反向代理组件330之间通过公网连接,也即,正向代理组件320和反向代理组件330承担虚拟私有云1和虚拟私有云2之间“桥头堡”的角色。下面,通过几个实施例对网络代理系统以及网络代理系统中各个主体执行的网络代理过程进行介绍说明。
请参考图4,其示出了本申请一个实施例提供的网络代理方法的流程图。该方法可以应用于上述图3所示的网络代理系统中。该方法包括如下几个步骤。
步骤410,主调设备向正向代理组件发送基于业务协议的业务报文。
主调设备和被调设备位于不同的虚拟私有云中,由于不同的虚拟私有云中的设备无法直接通信,因此,主调设备无法直接调用被调设备提供的业务或服务及相关的数据等。本申请实施例中,主调设备通过正向代理组件和反向代理组件调用被调设备提供的业务或服务。因此,主调设备需要向正向代理组件发送业务报文。
其中,业务报文是基于业务协议的报文,该业务协议为应用层协议。可选地,业务协议包括以下任意一项协议:FTP(File Transfer Protocol,文件传输协议)、TELNET(TeleCommunication Network Protocol,电信网络协议)、HTTP(HyperText TransferProtocol,超文本传输协议)、SNMP(Simple Network Management Protocol,简单网络管理协议)、TFTP(Trivial File Transfer Protocol,简单文件传输协议)、NTP(Network TimeProtocol,网络时间协议)。
步骤420,正向代理组件在业务报文的基础上添加基于代理协议的报文头部,得到业务数据包。
正向代理组件接收到业务报文后,在业务报文的基础上添加报文头部,从而封装业务报文和报文头部,得到业务数据包。其中,报文头部是基于代理协议的头部数据,该代理协议为传输层协议,可选地,代理协议包括以下任意一项协议:TCP(TransmissionControl Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据协议)、自定义协议。
针对不同的业务数据,正向代理组件添加的报文头部的内容可能有所不同,但是报文头部的头部格式是固定的,从而实现规范报文头部、便于反向代理组件的解析等。基于此,上述步骤420包括:正向代理组件确定报文头部的内容;按照目标头部格式,在业务报文的基础上添加报文头部的内容,得到业务数据包。其中,目标头部格式为符合代理协议规范的头部格式,例如,在代理协议为TCP的情况下,目标头部格式为符合TCP规范的头部格式。
本申请实施例对报文头部的内容的确定方式不作限定。可选地,正向代理组件根据采用的代理协议确定报文头部的内容,从而,报文头部的内容用于指示代理协议的类型。例如,在代理协议为TCP协议的情况下,报文头部的内容为1;在代理协议为UDP协议的情况下,报文头部的内容为0。可选地,正向代理组件根据目标业务的业务类型确定报文头部的内容,该目标业务是指主调设备发送的业务报文请求的业务,从而,报文头部的内容用于指示目标业务的业务类型。例如,在目标业务的业务类型为请求监控被调机器的健康状态的情况下,报文头部的内容为1;在目标业务的业务类型为请求被调机器发送业务数据的情况下,报文头部的内容为0。可选地,正向代理组件结合上述两种方式来确定报文头部的内容,从而报文头部的内容用于指示目标业务的业务类型以及代理协议的类型。
在一个示例中,正向代理组件在接收到来自于主调设备的业务报文时,可以对主调设备的身份进行认证,即对主调设备进行鉴权,以确定该主调设备的身份是否合法,提升系统的安全性。基于此,上述方法还包括:获取第一地址集合,第一地址集合中包括至少一个设备地址;基于主调设备的地址和至少一个设备地址,对主调设备的身份进行认证。可选地,在正向代理组件通过对主调设备的身份认证的情况下,正向代理组件确定对主调设备和被调设备之间的数据流量进行代理。
其中,第一地址集合可以实现为地址白名单,从而,在至少一个设备地址中包括主调设备的地址的情况下,正向代理组件通过针对主调设备的身份认证;在至少一个设备地址中不包括主调设备的地址的情况下,正向代理组件不通过针对主调设备的身份认证。第一地址集合还可以实现为地址黑名单,从而,在至少一个设备地址中不包括主调设备的地址的情况下,正向代理组件通过针对主调设备的身份认证;在至少一个设备地址中包括主调设备的地址的情况下,正向代理组件不通过针对主调设备的身份认证。
步骤430,正向代理组件向反向代理组件发送业务数据包。
正向代理组件封装业务报文得到业务数据包后,通过公网将业务数据包转发至反向代理组件。由于正向代理组件对应至少一个正向代理端口(port),在转发业务数据包的过程中,正向代理组件需要明确采用的正向代理端口,并且明确转发至的反向代理组件的地址,从而通过该正向代理端口向该地址对应的反向代理组件发送业务数据包。基于此,上述步骤430包括:从至少一个正向代理端口中选择目标正向代理端口;通过目标正向代理端口,向地址为目标地址的反向代理组件发送业务数据包。
本申请实施例中,正向代理组件对应至少一个正向代理端口,不同的正向代理端口能够传输的数据对应的业务类型可能是不一样的,例如,正向代理组件对应的传输端口包括传输端口77、传输端口78、传输端口81,其中,传输端口77和传输端口78能够传输的数据对应业务类型1,传输端口81能够传输的数据对应业务类型2。因此,正向代理组件在向反向代理组件转发业务数据包的过程中,需要从其对应的至少一个正向代理端口中选择目标正向代理端口,该目标正向代理端口是与目标业务的业务类型相对应的传输端口,目标业务是指主调设备发送的业务报文请求的业务。
由于正向代理端口与反向代理组件的地址之间存在对应关系,该对应关系可以列表、集合、映射关系等形式存储在正向代理组件中,或者,正向代理组件可以从数据库中调用该对应关系。因此,正向代理组件在明确了其采用的目标正向代理端口之后,即可明确转发至的反向代理组件的地址,即目标地址,该目标地址与目标正向代理端口相对应。进而正向代理组件进一步向地址为目标地址的反向代理组件转发业务数据包。
在一个示例中,反向代理组件在接收到来自于正向代理组件的业务数据包时,可以对正向代理组件的身份进行认证,即对正向代理组件进行鉴权,以确定该正向代理组件的身份是否合法,提升系统的安全性。基于此,上述方法还包括:获取第二地址集合,第二地址集合中包括至少一个代理地址;基于正向代理组件的地址和至少一个代理地址,对正向代理组件的身份进行认证。可选地,在反向代理组件通过对正向代理组件的身份认证的情况下,反向代理组件确定对主调设备和被调设备之间的数据流量进行代理。
其中,第二地址集合可以实现为地址白名单,从而,在至少一个代理地址中包括正向代理组件的地址的情况下,反向代理组件通过针对正向代理组件的身份认证;在至少一个代理地址中不包括正向代理组件的地址的情况下,反向代理组件不通过针对正向代理组件的身份认证。第二地址集合可以实现为地址黑名单,从而,在至少一个代理地址中不包括正向代理组件的地址的情况下,反向代理组件通过针对正向代理组件的身份认证;在至少一个代理地址中包括正向代理组件的地址的情况下,反向代理组件不通过针对正向代理组件的身份认证。
步骤440,反向代理组件解析业务数据包,得到业务报文。
反向代理组件在接收到正向代理组件发送的业务数据包时,解析该业务数据包,即可得到基于业务协议的业务报文,同时,反向代理组件还可以得到基于代理协议的报文头部。
可选地,反向代理组件在解析业务数据包的过程中,还可以获取主调设备的地址,同时,通过对监听套接字的接受操作,反向代理组件还可以获取到正向代理组件的地址。进而,反向代理组件可以将主调设备的地址、正向代理组件的地址、反向代理组件的地址、被调设备的地址等组成的业务报文传输过程中的传输细节写入日志,以便于后续运营和维护人员跟踪排查问题。
步骤450,反向代理组件向被调设备发送业务报文。
解析业务数据包得到基于业务协议的业务报文之后,反向代理组件向被调设备发送该业务报文。由于反向代理组件对应至少一个反向代理端口,在发送业务报文的过程中,反向代理组件需要明确采用的反向代理端口,从而通过该反向代理端口向被调设备发送业务报文。基于此,上述步骤450包括:从至少一个反向代理端口中选择目标反向代理端口;通过目标反向代理端口,向被调设备发送业务报文。
本申请实施例中,反向代理组件对应至少一个反向代理端口,不同的反向代理端口能够传输的数据对应的业务类型可能是不一样的。因此,反向代理组件在向被调设备发送业务报文的过程中,需要从其对应的至少一个反向代理端口中选择目标反向代理端口,该目标反向代理端口是与目标业务的业务类型相对应的传输端口,目标业务是指主调设备发送的业务报文请求的业务。明确了目标反向代理端口之后,反向代理组件即通过该目标反向代理端口向被调设备发送业务报文,以实现主调设备与被调设备之间的数据传输。
可选地,被调设备在接收到业务报文之后,对业务报文进行解析等一系列的处理,之后,为了响应主调设备发送的业务报文,被调设备会构造业务响应,然后,被调设备通过本申请实施例提供的技术方案的逆过程将业务响应传输至主调设备。如图5所示,其示出了业务报文和业务响应在主调设备、正向代理组件、反向代理组件、被调设备之间的传输过程。应理解,在本申请实施例公开了业务报文从主调设备至被调设备的传输过程的基础上,本领域技术人员能够基于业务报文的传输过程以及图5,推导得到业务响应从被调设备至主调设备的传输过程,这一过程也应属于本申请的保护范围之内。
应理解,针对上述图4实施例所述的网络代理方法,本领域技术人员还应当能够推导出相应的传输链路实现。例如,假设虚拟私有云1中的设备A(主调设备,caller)需要调用虚拟私有云2中的设备B(被调设备,callees)提供的业务,设备A(caller_id)连接正向代理组件的地址(fproxy_id),正向代理组件连接反向代理组件的地址(rproxy_id),反向代理组件连接设备B的地址(callees_id),这样,caller_id、fproxy_id、rproxy_id、callees_id就可以构成一条完整的传输链路,业务报文在传输链路的中间节点无需更改代码,实现了不同虚拟私有云中的设备之间的通信。
综上所述,本申请实施例提供的技术方案,通过主调设备在存在调用与其位于不同的虚拟私有云中的被调设备的业务或服务的情况下,由主调设备向正向代理组件发送业务报文;正向代理组件接收到业务报文之后在业务报文的基础上增加报文头部,得到业务数据包,然后通过公网向反向代理组件发送业务数据包;之后,由反向代理组件解析出业务报文后进一步向被调设备发送该业务报文,从而实现不同虚拟私有云中的设备之间的相互通信以及业务调用。并且,由于正向代理组件和反向代理组件在网络代理过程中,仅需在业务报文的基础上增加报文头部,而无需更改业务报文的内容,从而相比于在业务报文传输过程中设置检测点和安装钩子函数开发和实现困难,本申请实施例能够对主调设备和被调设备都透明接入,开发和实现简单,降低了模块部署的成本,提升了模块部署的速度。
需要说明的一点是,上述方法实施例以主调设备、正向代理组件、反向代理组件和被调设备之间交互的角度,对本申请实施例提供的网络代理方法进行了介绍说明。有关正向代理组件实施的各个步骤,可以单独实现为正向代理组件侧的网络代理方法。有关反向代理组件实施的各个步骤,可以单独实现为反向代理组件侧的网络代理方法。
请参考图6,其示出了本申请一个实施例提供的网络代理系统的示意图。该网络代理系统包括:正向代理组件610和反向代理组件620。
正向代理组件610,用于接收主调设备发送的基于业务协议的业务报文;在业务报文的基础上添加基于代理协议的报文头部,得到业务数据包。有关正向代理组件执行的各个步骤的介绍说明,请参见上述方法实施例,此处不多赘述。
反向代理组件620,用于解析业务数据包,得到业务报文;向被调设备发送业务报文;主调设备和被调设备位于不同的虚拟私有云中。有关反向代理组件执行的各个步骤的介绍说明,请参见上述方法实施例,此处不多赘述。
为了避免单点故障,本申请实施例中,正向代理组件和反向代理组件采用地址的方式进行部署,针对一条传输链路的地址,通常在该条传输链路对应的两个主体上都部署了相关的服务。可选地,为了便于运营和维护人员随时掌握网络代理系统的状态,及时了解网络代理系统中出现的问题,正向代理组件和反向代理组件可以向监视器(monitor)上报以下至少一项内容:连接次数、拒绝连接次数、收包数、字节数、连接失败次数。其中,连接次数是指网络代理线路总计请求连接的次数;拒绝连接次数是指正向代理组件或反向代理组件总计拒绝网络代理线路连接的次数;收包数是指正向代理组件或反向代理组件总计收发业务数据包的次数;字节数是指正向代理组件或反向代理组件总计收发的数据包占用的字节;连接失败次数是指网络代理线路总计连接失败的次数。基于此,如图7所示,其示出了本申请一个实施例提供的正向代理组件和反向代理组件的设计示意图。
在一个示例中,如图6所示,上述网络代理系统还包括主控组件630;该主控组件630,用于:向正向代理组件610发送第一地址集合,第一地址集合包括至少一个设备地址,且第一地址集合用于对主调设备的身份进行认证;向反向代理组件620发送第二地址集合,第二地址集合包括至少一个代理地址,且第二地址集合用于对正向代理组件610的身份进行认证。有关第一地址集合、第二地址集合以及身份认证过程等的介绍说明,请参见上述方法实施例,此处不多赘述。可选地,正向代理组件610周期性地连接主控组件630,以同步第一地址集合,同时,正向代理组件610还可以向主控组件630上报自身状态;反向代理组件620周期性地连接主控组件630,以同步第二地址集合,同时,反向代理组件620还可以向主控组件630上报自身状态。可选地,主控组件630的数量为至少两个,且主控组件630以无状态的方式部署,即不同的主控组件630之间没有差别,正向代理组件610和反向代理组件620可以根据哈希策略来选择连接的主控组件630,以实现负载均衡。
为了能够实现主控组件630为正向代理组件610和反向代理组件620进行数据的配置,在一个示例中,如图6所示,上述网络代理系统还包括数据库640,主控组件630从数据库640中加载数据,并配置给正向代理组件610和反向代理组件620。可选地,如图8所示,数据库包括以下至少一项数据集合:第一数据集合(tb_fproxy)、第二数据集合(tb_rproxy)、第三数据集合(tb_list)以及第四数据集合(tb_wlist)。
第一数据集合用于存储正向代理组件相关的信息,可选地,正向代理组件相关的信息包括以下至少一项:正向代理组件的地址、正向代理组件对应的正向代理端口、正向代理组件所在的区域、正向代理组件的状态、能够使用的传输协议、传输链路的标识、能够转发至的反向代理组件的地址。
第二数据集合用于存储反向代理组件相关的信息,可选地,反向代理组件相关的信息包括以下至少一项:反向代理组件的地址、反向代理组件对应的反向传输端口、反向代理组件所在的区域、反向代理组件的状态、能够使用的传输协议、传输链路的标识。
第三数据集合用于存储传输链路相关的信息;其中,传输链路包括以下至少一项:主调设备和正向代理组件之间的传输链路、正向代理组件和反向代理组件之间的传输链路、反向代理组件和被调设备之间的传输链路。可选地,传输链路相关的信息包括以下至少一项:传输链路的标识、传输链路对应的主体的地址、传输链路的创建时间、负责维护传输链路的人员信息。
第四数据集合用于存储身份认证相关的信息;身份认证包括以下至少一项:针对主调设备的身份认证、针对正向代理组件的身份认证。可选地,身份认证相关的信息包括以下至少一项:上述第一地址集合、上述第二地址集合。
在一个示例中,如图6所示,网络代理系统还包括Web(万维网)管理系统650以及部署系统660。其中,运营和维护人员可以通过Web管理系统650对各项数据等进行配置,如登记主调设备的地址、正向代理设备的地址等、传输协议等。部署系统660是指正向代理组件610和反向代理组件620的部署方式对应的系统,用于对正向代理组件610和反向代理组件620进行部署。
综上所述,本申请实施例提供的技术方案,通过网络代理系统中的正向代理组件和反向代理组件在位于不同的虚拟私有云中的设备之间进行数据流量的代理,实现了不同虚拟私有云中的设备之间的相互通信以及业务调用。并且,本申请实施例通过正向代理组件和反向代理组件以及其它的管理模块,生成了一种通用的网络代理系统,一方面可以针对业务规则灵活地进行配置网络代理的线路,另一方面还能够在业务的角度上支持UDP流量和TCP流量的转发,从而适应了业务类型的变更,可复制性较强。
请参考图9,其示出了本申请一个实施例提供的网络代理系统及网络代理方法的示意图。该网络代理系统及网络代理方法可支持流量监控、心跳监控、模块鉴权等业务。
如图9所示,运营和维护人员通过Web管理系统注册主调设备、正向代理组件、反向代理组件、被调设备等相关的信息,如地址、名称等,并且配置能够合法进行网络代理的设备地址及代理地址。上述配置信息和设备地址组成的地址集合以及代理地址组成的地址集合存储在数据库中。然后,主控组件可以从数据库中拉取相关的数据,并将这些数据周期性地发送给正向代理组件和反向代理组件。
主调设备与被调设备位于不同的虚拟私有云中,它们之间无法直接建立通信连接。如图9所示,主调设备的业务报文通过正向代理组件,会添加基于TCP或UDP协议的报文头部,得到业务数据包。然后正向代理组件和反向代理组件通过公网连接,并且正向代理组件向反向代理组件转发业务数据包。反向代理组件接收到业务数据包之后,解析该业务数据包得到业务报文,然后向被调设备发送业务报文,以调用被调设备提供的业务或服务。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图10,其示出了本申请一个实施例提供的网络代理装置的框图。该装置具有实现上述正向代理组件侧的网络代理方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是正向代理组件,也可以设置在正向代理组件中。该装置1000可以包括:业务报文接收模块1010、报文头部添加模块1020和业务数据包发送模块1030。
业务报文接收模块1010,用于接收主调设备发送的基于业务协议的业务报文。
报文头部添加模块1020,用于在所述业务报文的基础上添加基于代理协议的报文头部,得到业务数据包。
业务数据包发送模块1030,用于向反向代理组件发送所述业务数据包,所述反向代理组件用于从所述业务数据包中解析出所述业务报文后,向被调设备发送所述业务报文;其中,所述主调设备和所述被调设备位于不同的虚拟私有云中。
在一个示例中,所述正向代理组件对应至少一个正向代理端口;所述业务数据包发送模块1030,用于:从所述至少一个正向代理端口中选择目标正向代理端口,所述目标正向代理端口是与目标业务的业务类型相对应的传输端口,所述目标业务是指所述业务报文请求的业务;通过所述目标正向代理端口,向地址为目标地址的反向代理组件发送所述业务数据包,所述目标地址与所述目标正向代理端口相对应。
在一个示例中,报文头部添加模块1020,用于:确定所述报文头部的内容;按照目标头部格式,在所述业务报文的基础上添加所述报文头部的内容,得到所述业务数据包;其中,所述目标头部格式为符合所述代理协议规范的头部格式。
在一个示例中,所述报文头部的内容用于指示以下至少一项信息:目标业务的业务类型、所述代理协议的类型,所述目标业务是指所述业务报文请求的业务。
在一个示例中,如图11所示,所述装置1000还包括:第一集合获取模块1040,用于获取第一地址集合,所述第一地址集合中包括至少一个设备地址;第一身份认证模块1050,用于基于所述主调设备的地址和所述至少一个设备地址,对所述主调设备的身份进行认证;其中,在所述至少一个设备地址中包括所述主调设备的地址的情况下,通过针对所述主调设备的身份认证;在所述至少一个设备地址中不包括所述主调设备的地址的情况下,不通过针对所述主调设备的身份认证。
综上所述,本申请实施例提供的技术方案,通过主调设备在存在调用与其位于不同的虚拟私有云中的被调设备的业务或服务的情况下,由主调设备向正向代理组件发送业务报文;正向代理组件接收到业务报文之后在业务报文的基础上增加报文头部,得到业务数据包,然后通过公网向反向代理组件发送业务数据包;之后,由反向代理组件解析出业务报文后进一步向被调设备发送该业务报文,从而实现不同虚拟私有云中的设备之间的相互通信以及业务调用。并且,由于正向代理组件和反向代理组件在网络代理过程中,仅需在业务报文的基础上增加报文头部,而无需更改业务报文的内容,从而相比于在业务报文传输过程中设置检测点和安装钩子函数开发和实现困难,本申请实施例能够对主调设备和被调设备都透明接入,开发和实现简单,降低了模块部署的成本,提升了模块部署的速度。
请参考图12,其示出了本申请一个实施例提供的网络代理装置的框图。该装置具有实现上述反向代理组件侧的网络代理方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是反向代理组件,也可以设置在反向代理组件中。该装置1200可以包括:业务数据包接收模块1210、业务数据包解析模块1220和业务报文发送模块1230。
业务数据包接收模块1210,用于接收正向代理组件发送的业务数据包,所述业务数据包包括主调设备发送的基于业务协议的业务报文,以及所述正向代理组件在所述业务报文的基础上添加的基于代理协议的报文头部。
业务数据包解析模块1220,用于解析所述业务数据包,得到所述业务报文。
业务报文发送模块1230,用于向被调设备发送所述业务报文;其中,所述主调设备和所述被调设备位于不同的虚拟私有云中。
在一个示例中,所述反向代理组件对应至少一个反向代理端口;所述业务报文发送模块1230,用于:从所述至少一个反向代理端口中选择目标反向代理端口,所述目标反向代理端口是与目标业务的业务类型相对应的传输端口,所述目标业务是指所述业务报文请求的业务;通过所述目标反向代理端口,向所述被调设备发送所述业务报文。
在一个示例中,如图13所示,所述装置1200还包括:第二集合获取模块1240,用于获取第二地址集合,所述第二地址集合中包括至少一个代理地址;第二身份认证模块1250,用于基于所述正向代理组件的地址和所述至少一个代理地址,对所述正向代理组件的身份进行认证;其中,在所述至少一个代理地址中包括所述正向代理组件的地址的情况下,通过针对所述正向代理组件的身份认证;在所述至少一个代理地址中不包括所述正向代理组件的地址的情况下,不通过针对所述正向代理组件的身份认证。
综上所述,本申请实施例提供的技术方案,通过主调设备在存在调用与其位于不同的虚拟私有云中的被调设备的业务或服务的情况下,由主调设备向正向代理组件发送业务报文;正向代理组件接收到业务报文之后在业务报文的基础上增加报文头部,得到业务数据包,然后通过公网向反向代理组件发送业务数据包;之后,由反向代理组件解析出业务报文后进一步向被调设备发送该业务报文,从而实现不同虚拟私有云中的设备之间的相互通信以及业务调用。并且,由于正向代理组件和反向代理组件在网络代理过程中,仅需在业务报文的基础上增加报文头部,而无需更改业务报文的内容,从而相比于在业务报文传输过程中设置检测点和安装钩子函数开发和实现困难,本申请实施例能够对主调设备和被调设备都透明接入,开发和实现简单,降低了模块部署的成本,提升了模块部署的速度。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
请参考图14,其示出了本申请一个实施例提供的计算机设备的结构框图。在该计算机设备实现为正向代理组件时,可用于执行上述正向代理组件侧的网络代理方法;在该计算机设备实现为反向代理组件时,可用于执行上述反向代理组件侧的网络代理方法。
计算机设备1400包括中央处理单元(Central Processing Unit,CPU)1401、包括随机存取存储器(Random Access Memory,RAM)1402和只读存储器(Read Only Memory,ROM)1403的系统存储器1404,以及连接系统存储器1404和中央处理单元1401的系统总线1405。计算机设备1400还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O(Input Output System)系统)1406,和用于存储操作系统1413、应用程序1414和其他程序模块1415的大容量存储设备1407。
基本输入/输出系统1406包括有用于显示信息的显示器1408和用于用户输入信息的诸如鼠标、键盘之类的输入设备1409。其中显示器1408和输入设备1409都通过连接到系统总线1405的输入输出控制器1410连接到中央处理单元1401。基本输入/输出系统1406还可以包括输入输出控制器1410以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器1410还提供输出到显示屏、打印机或其他类型的输出设备。
大容量存储设备1407通过连接到系统总线1405的大容量存储控制器(未示出)连接到中央处理单元1401。大容量存储设备1407及其相关联的计算机可读介质为计算机设备1400提供非易失性存储。也就是说,大容量存储设备1407可以包括诸如硬盘或者CD-ROM(Compact Disc Read-Only Memory,只读光盘)驱动器之类的计算机可读介质(未示出)。
不失一般性,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read Only Memory,可擦除可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read Only Memory,电可擦可编程只读存储器)、闪存或其他固态存储其技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知计算机存储介质不局限于上述几种。上述的系统存储器1404和大容量存储设备1407可以统称为存储器。
根据本申请的各种实施例,计算机设备1400还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1400可以通过连接在系统总线1405上的网络接口单元1411连接到网络1412,或者说,也可以使用网络接口单元1411来连接到其他类型的网络或远程计算机系统(未示出)。
所述存储器还包括计算机程序,该计算机程序存储于存储器中,且经配置以由一个或者一个以上处理器执行,以实现上述正向代理组件侧的网络代理方法,或者实现上述反向代理组件侧的网络代理方法。
在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时以实现上述正向代理组件侧的网络代理方法,或者实现上述反向代理组件侧的网络代理方法。
可选地,该计算机可读存储介质可以包括:ROM(Read Only Memory,只读存储器)、RAM(Random Access Memory,随机存取记忆体)、SSD(Solid State Drives,固态硬盘)或光盘等。其中,随机存取记忆体可以包括ReRAM(Resistance Random Access Memory,电阻式随机存取记忆体)和DRAM(Dynamic Random Access Memory,动态随机存取存储器)。
在示例性实施例中,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述正向代理组件侧的网络代理方法,或者实现上述反向代理组件侧的网络代理方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。
以上所述仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种网络代理方法,其特征在于,应用于正向代理组件中,所述正向代理组件对应至少一个正向代理端口;所述方法包括:
接收主调设备发送的基于业务协议的业务报文;
获取主控组件发送的第一地址集合,所述第一地址集合包括至少一个设备地址,且所述第一地址集合用于对所述主调设备的身份进行认证;
基于所述主调设备的地址和所述至少一个设备地址,对所述主调设备的身份进行认证;其中,在所述至少一个设备地址中包括所述主调设备的地址的情况下,通过针对所述主调设备的身份认证;在所述至少一个设备地址中不包括所述主调设备的地址的情况下,不通过针对所述主调设备的身份认证;
在通过针对所述主调设备的身份认证的情况下,在所述业务报文的基础上添加基于代理协议的报文头部,得到业务数据包;
从所述至少一个正向代理端口中选择目标正向代理端口,所述目标正向代理端口是与目标业务的业务类型相对应的传输端口,所述目标业务是指所述业务报文请求的业务;
通过所述目标正向代理端口,向地址为目标地址的反向代理组件发送所述业务数据包,所述目标地址与所述目标正向代理端口相对应;所述反向代理组件用于从所述业务数据包中解析出所述业务报文后,向被调设备发送所述业务报文;
其中,所述主调设备和所述被调设备位于不同的虚拟私有云中,且所述主调设备和所述被调设备通过以下几项连接的组合实现通信:所述主调设备与所述正向代理组件之间的连接、所述正向代理组件与所述反向代理组件之间的连接以及所述反向代理组件与所述被调设备之间的连接;所述正向代理组件和所述反向代理组件之间通过公网连接。
2.根据权利要求1所述的方法,其特征在于,所述在所述业务报文的基础上添加基于代理协议的报文头部,得到业务数据包,包括:
确定所述报文头部的内容;
按照目标头部格式,在所述业务报文的基础上添加所述报文头部的内容,得到所述业务数据包;
其中,所述目标头部格式为符合所述代理协议规范的头部格式。
3.根据权利要求2所述的方法,其特征在于,所述报文头部的内容用于指示以下至少一项信息:所述目标业务的业务类型、所述代理协议的类型。
4.一种网络代理方法,其特征在于,应用于反向代理组件中,所述方法包括:
接收正向代理组件通过目标正向代理端口发送的业务数据包,所述业务数据包包括主调设备发送的基于业务协议的业务报文,以及所述正向代理组件在所述业务报文的基础上添加的基于代理协议的报文头部;所述反向代理组件的地址为目标地址,所述目标地址与所述目标正向代理端口相对应;
获取主控组件发送的第二地址集合,所述第二地址集合包括至少一个代理地址,且所述第二地址集合用于对所述正向代理组件的身份进行认证;
基于所述正向代理组件的地址和所述至少一个代理地址,对所述正向代理组件的身份进行认证;其中,在所述至少一个代理地址中包括所述正向代理组件的地址的情况下,通过针对所述正向代理组件的身份认证;在所述至少一个代理地址中不包括所述正向代理组件的地址的情况下,不通过针对所述正向代理组件的身份认证;
在通过针对所述正向代理组件的身份认证的情况下,解析所述业务数据包,得到所述业务报文;
向被调设备发送所述业务报文;
其中,所述主调设备和所述被调设备位于不同的虚拟私有云中,且所述主调设备和所述被调设备通过以下几项连接的组合实现通信:所述主调设备与所述正向代理组件之间的连接、所述正向代理组件与所述反向代理组件之间的连接以及所述反向代理组件与所述被调设备之间的连接;所述正向代理组件和所述反向代理组件之间通过公网连接。
5.根据权利要求4所述的方法,其特征在于,所述反向代理组件对应至少一个反向代理端口;所述向被调设备发送所述业务报文,包括:
从所述至少一个反向代理端口中选择目标反向代理端口,所述目标反向代理端口是与目标业务的业务类型相对应的传输端口,所述目标业务是指所述业务报文请求的业务;
通过所述目标反向代理端口,向所述被调设备发送所述业务报文。
6.一种网络代理系统,其特征在于,所述网络代理系统包括正向代理组件、反向代理组件、主控组件 和数据库;
所述主控组件,用于向所述正向代理组件发送第一地址集合、向所述反向代理组件发送第二地址集合;所述第一地址集合包括至少一个设备地址,且所述第一地址集合用于对主调设备的身份进行认证;所述第二地址集合包括至少一个代理地址,且所述第二地址集合用于对所述正向代理组件的身份进行认证;
所述正向代理组件,用于接收所述主调设备发送的基于业务协议的业务报文;基于所述主调设备的地址和所述至少一个设备地址,对所述主调设备的身份进行认证;在通过针对所述主调设备的身份认证的情况下,在所述业务报文的基础上添加基于代理协议的报文头部,得到业务数据包;
所述反向代理组件,用于基于所述正向代理组件的地址和所述至少一个代理地址,对所述正向代理组件的身份进行认证;在通过针对所述正向代理组件的身份认证的情况下,解析所述业务数据包,得到所述业务报文;向被调设备发送所述业务报文;
其中,所述主调设备和所述被调设备位于不同的虚拟私有云中,且所述主调设备和所述被调设备通过以下几项连接的组合实现通信:所述主调设备与所述正向代理组件之间的连接、所述正向代理组件与所述反向代理组件之间的连接以及所述反向代理组件与所述被调设备之间的连接;所述正向代理组件和所述反向代理组件之间通过公网连接;
其中,所述数据库包括以下至少一项数据集合:
第一数据集合,用于存储所述正向代理组件相关的信息;
第二数据集合,用于存储所述反向代理组件相关的信息:
第三数据集合,用于存储传输链路相关的信息;其中,所述传输链路包括以下至少一项:所述主调设备和所述正向代理组件之间的传输链路、所述正向代理组件和所述反向代理组件之间的传输链路、所述反向代理组件和所述被调设备之间的传输链路;
第四数据集合,用于存储身份认证相关的信息;所述身份认证包括以下至少一项:针对所述主调设备的身份认证、针对所述正向代理组件的身份认证。
7.一种网络代理装置,其特征在于,设置在正向代理组件中,所述正向代理组件对应至少一个正向代理端口;所述装置包括:
业务报文接收模块,用于接收主调设备发送的基于业务协议的业务报文;
第一集合获取模块,用于获取主控组件发送的第一地址集合,所述第一地址集合包括至少一个设备地址,且所述第一地址集合用于对所述主调设备的身份进行认证;
第一身份认证模块,用于基于所述主调设备的地址和所述至少一个设备地址,对所述主调设备的身份进行认证;其中,在所述至少一个设备地址中包括所述主调设备的地址的情况下,通过针对所述主调设备的身份认证;在所述至少一个设备地址中不包括所述主调设备的地址的情况下,不通过针对所述主调设备的身份认证;
报文头部添加模块,用于在通过针对所述主调设备的身份认证的情况下,在所述业务报文的基础上添加基于代理协议的报文头部,得到业务数据包;
业务数据包发送模块,用于从所述至少一个正向代理端口中选择目标正向代理端口,所述目标正向代理端口是与目标业务的业务类型相对应的传输端口,所述目标业务是指所述业务报文请求的业务;通过所述目标正向代理端口,向地址为目标地址的反向代理组件发送所述业务数据包,所述目标地址与所述目标正向代理端口相对应;所述反向代理组件用于从所述业务数据包中解析出所述业务报文后,向被调设备发送所述业务报文;
其中,所述主调设备和所述被调设备位于不同的虚拟私有云中,且所述主调设备和所述被调设备通过以下几项连接的组合实现通信:所述主调设备与所述正向代理组件之间的连接、所述正向代理组件与所述反向代理组件之间的连接以及所述反向代理组件与所述被调设备之间的连接;所述正向代理组件和所述反向代理组件之间通过公网连接。
8.一种网络代理装置,其特征在于,设置在反向代理组件中,所述装置包括:
业务数据包接收模块,用于接收正向代理组件通过目标正向代理端口发送的业务数据包,所述业务数据包包括主调设备发送的基于业务协议的业务报文,以及所述正向代理组件在所述业务报文的基础上添加的基于代理协议的报文头部;所述反向代理组件的地址为目标地址,所述目标地址与所述目标正向代理端口相对应;
第二集合获取模块,用于获取主控组件发送的第二地址集合,所述第二地址集合包括至少一个代理地址,且所述第二地址集合用于对所述正向代理组件的身份进行认证;
第二身份认证模块,用于基于所述正向代理组件的地址和所述至少一个代理地址,对所述正向代理组件的身份进行认证;其中,在所述至少一个代理地址中包括所述正向代理组件的地址的情况下,通过针对所述正向代理组件的身份认证;在所述至少一个代理地址中不包括所述正向代理组件的地址的情况下,不通过针对所述正向代理组件的身份认证;
业务数据包解析模块,用于在通过针对所述正向代理组件的身份认证的情况下,解析所述业务数据包,得到所述业务报文;
业务报文发送模块,用于向被调设备发送所述业务报文;
其中,所述主调设备和所述被调设备位于不同的虚拟私有云中,且所述主调设备和所述被调设备通过以下几项连接的组合实现通信:所述主调设备与所述正向代理组件之间的连接、所述正向代理组件与所述反向代理组件之间的连接以及所述反向代理组件与所述被调设备之间的连接;所述正向代理组件和所述反向代理组件之间通过公网连接。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至3任一项所述的网络代理方法,或者实现如权利要求4或5所述的网络代理方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如权利要求1至3任一项所述的网络代理方法,或者实现如权利要求4或5所述的网络代理方法。
CN202011294157.1A 2020-11-18 2020-11-18 网络代理方法、系统、装置、设备及存储介质 Active CN112104754B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011294157.1A CN112104754B (zh) 2020-11-18 2020-11-18 网络代理方法、系统、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011294157.1A CN112104754B (zh) 2020-11-18 2020-11-18 网络代理方法、系统、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112104754A CN112104754A (zh) 2020-12-18
CN112104754B true CN112104754B (zh) 2021-05-18

Family

ID=73785315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011294157.1A Active CN112104754B (zh) 2020-11-18 2020-11-18 网络代理方法、系统、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112104754B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114765625A (zh) * 2020-12-31 2022-07-19 新智云数据服务有限公司 基于联合学习的信息交互方法、装置和系统
CN112995273B (zh) * 2021-01-28 2022-03-04 腾讯科技(深圳)有限公司 网络打通方案生成方法、装置、计算机设备和存储介质
CN113114794A (zh) * 2021-03-26 2021-07-13 上海万物新生环保科技集团有限公司 一种基于二次代理处理域名的方法及设备
CN113315706B (zh) * 2021-04-30 2023-04-18 上海云轴信息科技有限公司 私有云流量控制方法、设备及系统
CN113259485B (zh) * 2021-06-22 2021-09-17 统信软件技术有限公司 一种网络代理方法、计算设备及可读存储介质
CN114244556B (zh) * 2021-11-05 2023-11-10 北京天融信网络安全技术有限公司 一种协议代理方法及装置
CN114125025B (zh) * 2021-11-23 2024-02-13 北京奥星贝斯科技有限公司 一种多目标网络下的数据传输方法及装置
CN114584606B (zh) * 2022-04-29 2022-08-02 阿里云计算有限公司 端云通信方法及设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667660A (zh) * 2018-05-08 2018-10-16 腾讯科技(深圳)有限公司 路由管理和业务路由的方法和装置及路由系统

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025750A (zh) * 2009-09-15 2011-04-20 天津七所信息技术有限公司 网络缓存代理服务系统
CN105391698B (zh) * 2015-10-22 2018-08-07 国网江苏省电力有限公司扬州供电分公司 基于隔离装置实现电力内外网的socket透传方法
US10142293B2 (en) * 2015-12-15 2018-11-27 International Business Machines Corporation Dynamically defined virtual private network tunnels in hybrid cloud environments
CN107888582A (zh) * 2017-11-07 2018-04-06 湖南中车时代通信信号有限公司 一种app软件穿透铁路内网的系统和方法
CN108924138B (zh) * 2018-07-05 2020-10-23 成都安恒信息技术有限公司 一种实现tcp代理完全透明的方法
CN108965320A (zh) * 2018-08-08 2018-12-07 湖南中车时代通信信号有限公司 一种通用铁路内外网数据交互的系统和方法
CN111130974B (zh) * 2018-11-01 2022-01-18 深信服科技股份有限公司 一种基于多云环境的网络互通系统及方法
CN110545320A (zh) * 2019-08-23 2019-12-06 浙江大华技术股份有限公司 一种内网数据交互方法及设备

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108667660A (zh) * 2018-05-08 2018-10-16 腾讯科技(深圳)有限公司 路由管理和业务路由的方法和装置及路由系统

Also Published As

Publication number Publication date
CN112104754A (zh) 2020-12-18

Similar Documents

Publication Publication Date Title
CN112104754B (zh) 网络代理方法、系统、装置、设备及存储介质
US11777790B2 (en) Communications methods and apparatus for migrating a network interface and/or IP address from one Pod to another Pod in a Kubernetes system
US11012500B2 (en) Secure multi-directional data pipeline for data distribution systems
CN106657180B (zh) 用于云服务的信息传输方法、装置、终端设备及系统
US20220272041A1 (en) Controlling a destination of network traffic
EP4209905A1 (en) Service mesh system employing microservice, and service governance method
CN111552568A (zh) 云服务调用方法和装置
CN114124929A (zh) 跨网络的数据处理方法和装置
CN113794652A (zh) 数据处理方法、装置、电子设备及存储介质
CN116633934A (zh) 负载均衡方法、装置、节点及存储介质
CN111800441B (zh) 数据处理方法、系统、装置、用户端服务器、用户端及管控服务器
CN112968965B (zh) Nfv网络节点的元数据服务方法、服务器及存储介质
CN114338682A (zh) 流量身份标识传递方法、装置、电子设备及存储介质
CN111600755B (zh) 上网行为管理系统和方法
CN110995829B (zh) 实例调用方法、装置及计算机存储介质
US11595471B1 (en) Method and system for electing a master in a cloud based distributed system using a serverless framework
CN114422160A (zh) 一种虚拟防火墙的设置方法、装置、电子设备和存储介质
CN114025010B (zh) 建立连接的方法和网络设备
CN115567605A (zh) 数据中心用户请求处理方法、系统、设备及存储介质
CN115516842A (zh) 编排代理服务
CN115484232A (zh) Dhcp服务器的部署方法、装置、设备及存储介质
CN115174592A (zh) 企业级数据请求转发系统及方法
US11422845B2 (en) Native cloud live traffic migration to counter suspected harmful traffic
CN108055305B (zh) 一种存储扩展方法及存储扩展装置
CN115242791A (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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40034931

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant