CN107147588B - 流量引导方法和装置 - Google Patents
流量引导方法和装置 Download PDFInfo
- Publication number
- CN107147588B CN107147588B CN201710341240.1A CN201710341240A CN107147588B CN 107147588 B CN107147588 B CN 107147588B CN 201710341240 A CN201710341240 A CN 201710341240A CN 107147588 B CN107147588 B CN 107147588B
- Authority
- CN
- China
- Prior art keywords
- traffic
- flow
- proxy
- rule
- proxy server
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2483—Traffic characterised by specific attributes, e.g. priority or QoS involving identification of individual flows
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种流量引导方法和装置,所示方法包括以下步骤:导入流量至第一代理服务器的代理服务模块;所述代理服务模块对所述流量进行识别,并根据识别结果选择对应的引导规则对所述流量进行引导;其中所述引导规则包含引导所述流量直接回源,引导所述流量到流量处理服务器,引导所述流量到第二代理服务器,以及丢弃所述流量。通过本发明所提供的流量引导方法解决传统透明代理中只能做网络地址转换回源,功能单一、无法对流经的流量做识别以及智能疏导的问题。本发明还提供一种流量引导装置。
Description
技术领域
本发明涉及计算机网络数据技术领域,特别涉及一种流量引导方法和装置。
背景技术
随着互联网技术的高速发展,对客户端流量的疏导需求日益膨胀,透明代理是用于流量疏导的常用技术之一。透明代理是指客户端根本不需要知道有代理服务器的存在,即用户不用做任何设置,客户端请求的流量在通过透明代理的设备,比如路由器之类的,能够获取客户端访问的目的网际协议地址(IP)和端口,然后回源,多用于路由器的网络地址转换(NAT)转发。
现有的透明代理技术存在有以下一些问题:(1)现有技术在流量转发方面只能进行回源处理;(2)现有的透明代理功能过于单一,没有流量识别和流量疏导功能。
发明内容
为了解决现有技术的问题,本发明实施例提供了一种流量引导方法和装置。所述技术方案如下:
一方面,一种流量引导方法,包括以下步骤:
导入流量至第一代理服务器的代理服务模块;
所述代理服务模块对所述流量进行识别,并根据识别结果选择对应的引导规则对所述流量进行引导;
其中所述引导规则包含引导所述流量直接回源,引导所述流量到流量处理服务器,引导所述流量到第二代理服务器,以及丢弃所述流量
进一步的,当所述第一代理服务器的运行模式为本地代理服务模式时,所述导入流量至第一代理服务器的代理服务模块包含通过交换机或网桥将客户端发送的流量引导到本地,再通过所述第一代理服务器的流量劫持模块将所述流量导入至所述代理服务模块;当所述第一代理服务器的运行模式为远端代理服务模式时,所述导入流量至第一代理服务器的代理服务模块包含根据所述引导规则引导所述流量至所述代理服务模块。
具体的,流量劫持模块将流量导入至代理服务模块的具体方法包括:
对于传输控制协议流量,通过配置iptables规则,重定向所述传输控制协议流量到所述代理服务模块;
对于用户数据报协议流量,通过配置iptables规则,并使用透明代理和配置路由规则引导所述用户数据报协议流量到所述代理服务模块;
对于网络控制报文协议流量或通用路由封装协议流量,通过配置iptables规则,并设置标记和配置路由规则引导所述网络控制报文协议流量或通用路由封装协议流量到本地还回接口,并被所述代理服务模块获取。
进一步的,所述代理服务模块对所述流量进行识别之前更包括步骤:对所述流量进行前置引导规则匹配,若匹配成功,所述流量则按照前置引导规则对应的流量引导规则进行引导;若匹配不成功,则对所述流量进行识别。
具体的,前置引导规则包括:网际协议地址引导规则,端口引导规则和冷热网际协议地址规则。
具体的,第一代理服务器和第二代理服务器通过私有多路复用协议进行通信。
具体的,第二代理服务器的运行模式为远端代理服务模式。
具体的,所述第二代理服务器接收到所述流量后,对其进行识别,并根据识别结果对应的流量引导规则对所述流量进行引导。
具体的,所述第一代理服务器和所述第二代理服务器的运行系统内核为Linux内核。
另一方面,一种流量引导装置,包括:第一代理服务器,第二代理服务器,源站服务器和流量处理服务器,所述第一代理服务器和所述第二代理服务器相互连接,并且分别连接于源站服务器和流量处理服务器,其中,所述第一代理服务器包含流量劫持模块和代理服务模块,所述流量劫持模块导入所述流量至所述代理服务模块,所述代理服务模块对所述流量进行识别和引导。
进一步的,所述第一代理服务器与客户端之间通过交换机或网桥连接。
进一步的,所述交换机或所述网桥将来自所述客户端的流量导入至所述第一代理服务器,所述流量劫持模块将所述流量导入至所述代理服务模块。
进一步的,所述代理服务模块包含流量识别单元、协议规则单元和流量引导单元,所述代理服务模块获取所述流量后,所述流量识别单元对所述流量进行识别,所述流量引导单元根据识别结果从所述协议规则单元获取对应的流量引导规则,并按照所述流量引导规则对所述流量进行引导。
进一步的,所述流量识别单元包含http子单元、p2p子单元、game子单元和pptp子单元,所述流量经过所述子单元的识别得出识别结果。
进一步的,所述协议规则单元中保存有针对各种流量识别结果对应的流量引导规则,所述流量引导规则包含引导所述流量直接回源,引导所述流量到流量处理服务器,引导所述流量到第二代理服务器,以及丢弃所述流量。
进一步的,所述代理服务模块更包含前置引导单元,所述代理服务模块获取所述流量后,所述前置引导单元对所述流量进行前置引导规则匹配,若匹配成功,所述流量则进入所述流量引导单元进行引导处理;若匹配失败,所述流量进入所述流量识别单元进行识别,所述流量引导单元根据识别结果对所述流量进行引导。
进一步的,所述第一代理服务器与所述第二代理服务器之间通过私有多路复用协议进行通信。
本发明实施例提供的技术方案带来的有益效果是:本发明使用iptables截获流量并用重定向和透明代理的方法把客户端发出的流量引导到本地代理服务中;本地代理服务可对截获的流量做流量识别,并根据配置规则对识别出的不同流量做相应的疏导,可疏导到不同的代理服务器上、在本地直接回源或直接丢弃。本发明基于透明代理技术,并在此基础上实现了流量的智能疏导,不仅无需客户端进行任何额外的配置,而且解决传统透明代理中只能做网络地址转换回源,功能单一、无法对流经的流量做识别以及智能疏导的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一较佳实施例提供的流量引导方法流程图;
图2为本发明另一较佳实施例提供的流量引导方法流程图;
图3是本发明一较佳实施例提供的流量引导装置结构图;
图4是图3所示实施例中代理模块的一种结构图;
图5是图3所示实施例中代理模块的另一种结构图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
首先,对本发明说明书中的技术词汇进行解释说明。以下说明是对本发明技术的解释,但本发明并不以此为限。
IP地址,是指互联网协议地址(英语:Internet Protocol Address,又译为网际协议地址)。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
iptables是与Linux内核集成的IP信息包过滤系统,该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。iptables是工作在用户空间中,定义规则的工具,本身并不算是防火墙。它定义的规则,可以让在内核空间当中的netfilter(网络过滤器)来读取,并且实现让防火墙工作。iptables工作在内核当中,用来设置、维护和检查Linux内核的IP包过滤规则,可以将规则组成一个列表,实现绝对详细的访问控制功能。iptables可以定义不同的表,每个表都包含几个内部的链,也能包含用户定义的链。每个链都是一个规则列表,对对应的包进行匹配:每条规则指定应当如何处理与之相匹配的包,也可以跳向同一个表内的用户定义的链。
透明代理,是指客户端根本不需要知道有代理服务器的存在,它改变你的requestfields(报文),并会传送真实IP。
target,指的是通过iptables注册到netfilter的规则所对应的操作,也就是要对规则匹配到的数据包进行的操作,比如ACCEPT(接受)、DROP(丢弃)等。
raw socket,即原始套接字,可以接收本机网卡上的数据帧或者数据包,用于监听网络的流量和分析。
如图1所示,图1绘示本发明一较佳实施例所提供的流量引导方法,该流量引导方法包括以下步骤:
步骤S101,导入流量至第一代理服务器的代理服务模块。
具体而言,本发明实施例中的第一代理服务器包含两种运行模式,分别为本地代理服务模式和远端代理服务模式。
在本地代理服务模式下,导入至第一代理服务器的流量是通过交换机策略路由、ospf动态路由或网桥直连的方式将客户端的流量引导至本地,第一代理服务器的的流量劫持模块把流量引导到第一代理服务器的代理服务模块,具体而言,流量劫持模块将截获的流量转发至代理服务模块监听的端口,再由代理服务模块通过其监听端口接收。
在本发明的实施例中,流量劫持模块根据不同的流量类型,采用相应方法将流量导入至代理服务模块:
对于传输控制协议(Transmission Control Protocol,TCP)流量,通过配置iptables规则,重定向TCP流量到本地理服务模块。具体而言,通过对本地Linux系统中的iptables规则进行配置,将协议类型为TCP的流量的目的网际协议地址(InternetProtocol Address,IP)和目的端口重定向为代理服务模块监听的IP地址和TCP端口,从而实现导入本地的TCP流量被代理服务模块监听并接收。
对于用户数据报协议(User Datagram Protocol,UDP)流量,通过配置iptables规则,并使用透明代理引导UDP流量到代理服务模块。具体而言,通过对本地Linux系统中的iptables规则进行配置,将协议类型为UDP的流量通过透明代理来建立与代理服务模块的联系,并对该UDP流量进行标记,并配置本地策略路由,通过指定被标记请求所要查找的路由表,再配置本地路由,在路由表中添加默认路由规则,把被标记UDP流量往本地还回接口,从而被代理服务模块接收。
对于网络控制报文协议(Internet Control Message Protocol,ICMP)流量和通用路由封装协议(Generic Routing Encapsulation,GRE)流量,通过配置iptables规则,并设置标记和配置路由规则引导ICMP流量或GRE流量到本地还回接口,并被代理服务模块获取。
具体而言,通过对本地Linux系统中的iptables规则进行配置,对协议类型为ICMP或GRE的流量进行标记,同时配置本地策略路由和路由规则,指定被标记的流量所要查找的路由表,把被标记的流量发往本地还回接口,从而被本地代理服务模块接收。由于ICMP流量或GRE流量使用的是raw socket,只要把ICMP流量或GRE流量路由到本地还回接口以后,本地还回接口被本地代理服务模块所监听,代理服务模块就能够通过raw socket接收到这个流量。
由此可见,当第一代理服务器处于本地代理服务运行模式时,第一代理服务器接收到的流量是由本地流量劫持模块转发客户端流量到相应监听端口的流量。
当第一代理服务器的运行模式为远端代理服务模式时,导入远端第一代理服务器的代理服务模块的流量则是由其他代理服务器引导而来的流量,代理服务模块是通过对相应端口的监听,来接收该些流量。
远端代理服务模式和本地代理模式的区别在于,代理服务器所接收的流量来源不同,本地代理代理服务模式中,代理服务器接收到的是由客户端直接发出的流量,而在远端代理服务模式中,代理服务器接收到的流量,则是经过其他代理服务器进行处理过的流量,所以当代理服务模块处于不同的运行模式时,其所监听的端口是不同的。
在本实施例的流量引导方法中,第一代理服务器的运行模式可能是本地代理服务模式,也可能是远端代理服务模式,而第二代理服务器的运行模式一定为远端代理服务模式。
步骤S102,代理服务模块对流量进行识别,并根据识别结果选择对应的引导规则对流量进行引导。
代理服务模块收到导入的流量后,识别流量为http流量、p2p流量、game流量或pptp流量或默认流量,根据识别结果,选择对应的引导规则,根据引导规则对流量进行引导,包括引导流量直接回源、引导流量到流量处理服务器、引导流量到第二代理服务器或丢弃流量。
本实施例中,将流量识别为http流量、p2p流量、game流量、pptp流量或默认流量,每种识别结果都有对应的引导规则,该些引导规则是预先设定好的,也是根据实际需求进行设置的,如此一来,代理模块不仅可对流量进行识别区分,还能根据不同的流量类型进行分类引导,从而更加智能化的对流量进行疏导,不仅如此,不同流量类型对应的引导规则也可以分别进行设置,从而可以更加清晰准确的对流量进行疏导,并根据实际需求进行相应调整。
值得注意的是,本发明的实施例中,对流量进行识别的规则是可以实际需求调整的,例如在某些实施例中,仅对http流量和game流量进行识别,并设置相应的引导规则,其他流量则按照设置的规则进行统一引导,不仅如此,还可以对识别的类型进行设置,例如可将流量识别为tcp流量、udp流量等,从其他维度对流量进行识别,从而更好的满足应用场景的实际需求。
本发明的实施例中,第一代理服务器与第二代理服务器中间通过私有多路复用协议进行通信,从而可以实现多个请求在单个TCP通道中传输,节省端口的使用。流量处理服务器包含但不限于squid服务器和p2pcs缓存服务器。
由此可见,本发明提供的流量引导方法,不仅可以对流量进行识别,还能对识别后的流量分别进行引导,而且引导的方式也可以按需设置,解决了传统透明代理中只能做网络地址转换回源,功能单一、无法对流经的流量做识别以及智能疏导的问题。
在本发明的另一较佳实施例中,如图2所示,与图1所示的实施例区别在于步骤S102前,还包括:
步骤S103,对流量进行前置引导规则匹配。
当流量通过步骤S101导入到第一代理服务器的代理服务模块后,根据预设的前置引导规则对流量进行匹配,若匹配成功,则进入步骤S104,若匹配不成功,则进入步骤S102。
具体而言,对流量进行前置引导规则匹配可以对一些特定的流量进行预先过滤处理,例如,对所访问的IP为热度IP的流量可直接进行引导,而无需经过识别,或者对一些错误的访问或攻击性的流量,可通过前置引导规则匹配预先进行拦截,并对其进行相应的处理,简而言之,前置引导规则匹配步骤的设定,是为了进一步完善流量的疏导方法,使得一些特定的流量可以直接进行特定处理,从而提升整体性能和智能性。其中,前置引导规则为预先设置在代理服务模块中的规则,主要包括包括:IP地址引导规则,端口引导规则和冷热IP地址规则,其中,IP地址引导规则是通过流量请求的源IP地址或是目的IP地址进行引导;端口引导规则是通过请求的目的端口来引导;冷热IP地址规则是通过历史数据计算出客户流量的行为,比如访问哪些目的IP地址最频繁,从而形成一套冷热IP地址的引导方案。
可以理解的是,前置引导规则可以按照实际需求进行设定,并不受限于本说明书中的描述。
步骤S104,按照前置引导规则对应的流量引导规则进行引导。
流量经过前置引导规则匹配成功后,将根据预设的前置引导规则对应的流量引导规则进行引导,引导的方式主要包括引导流量直接回源、引导流量到流量处理服务器、引导流量到第二代理服务模块或丢弃流量。
可以理解的是,该流量引导规则是预先设定在代理服务模块中的,并且是可以根据实际需求进行设定的,并不受限于本说明书中的描述。
在本较佳实施例中,步骤S101与步骤S102的及其他内容与图1所示实施例相同,故不再赘述。
本较佳实施例中,通过增设了前置引导规则配合,可对一些特定的流量进行特别处理,从而更进一步的提升了流量引导方法的智能性,从而更好的满足应用场景的实际需求。
此外,本发明还提供的一种流量引导装置1,如图3所示,包括:第一代理服务器10、第二代理服务器20、源站服务器30和流量处理服务器40。第一代理服务器10和第二代理服务器20相互连接,并且分别连接于源站服务器30和流量处理服务器40。
第一代理服务器10包含流量劫持模块11和代理服务模块12。
第一代理服务器10包含两种运行模式,分别为本地代理服务模式和远端代理服务模式。
在本地代理服务模式下,流量劫持模块11引导流量到代理服务模块12,该些流量是通过交换机策略路由、ospf动态路由或网桥直连的方式将客户端的流量引导至第一代理服务器10,并被流量劫持模块11截获的流量。具体而言,流量劫持模块11将截获的流量转发至代理服务模块12监听的端口,代理服务模块12通过其监听端口接收。
在本发明的实施例中,流量劫持模块11根据不同的流量类型,采用不同的方法将流量导入至代理服务模块12:
对于传输控制协议(Transmission Control Protocol,TCP)流量,通过配置iptables规则,重定向TCP流量到代理服务模块12。具体而言,通过对本地系统中的iptables规则进行配置,将协议类型为TCP的流量的目的网际协议地址(InternetProtocol Address,IP)和目的端口重定向为代理服务模块12监听的IP地址和TCP端口,从而实现导入本地的TCP流量被代理服务模块12监听并接收。
对于用户数据报协议(User Datagram Protocol,UDP)流量,通过配置iptables规则,并使用透明代理引导UDP流量到代理服务模块12。具体而言,通过对本地系统中的iptables规则进行配置,将协议类型为UDP的流量通过透明代理来建立与代理服务模块12的联系,并对该UDP流量进行标记,并配置本地策略路由,通过指定被标记请求所要查找的路由表,再配置本地路由,在路由表中添加默认路由规则,把被标记UDP流量发往本地还回接口,从而被代理服务模块12接收。
对于网络控制报文协议(Internet Control Message Protocol,ICMP)流量和通用路由封装协议(Generic Routing Encapsulation,GRE)流量,通过配置iptables规则,并设置标记和配置路由规则引导ICMP流量或GRE流量到本地还回接口,并被代理服务模块12获取。
具体而言,通过对本地系统中的iptables规则进行配置,对协议类型为ICMP或GRE的流量进行标记,同时配置本地策略路由和路由规则,指定被标记的流量所要查找的路由表,把被标记的流量发往本地还回接口,从而被代理服务模块12接收。由于ICMP流量或GRE流量使用的是raw socket,只要把ICMP流量或GRE流量路由到本地还回接口以后,本地还回接口被代理服务模块12所监听,代理服务模块12就能够通过raw socket接收到这个流量。
由此可见,当第一代理服务器10处于本地代理服务运行模式时,代理服务模块12接收到的流量是由流量劫持模块11转发客户端流量到相应监听端口的流量。
当第一代理服务器10的运行模式为远端代理服务模式时,第一代理服务器10也可称为远端代理服务器,导入代理服务模块12的流量则是由其他本地或远端代理服务器引导而来的流量,代理服务模块12也是通过对相应端口的监听,来接收该些流量。
由此本发明的实施例中,代理服务器在不同的运行模式下,代理服务模块12所监听端口也会相应进行调整。
如图3所示,本实施例中,第一代理服务器10通过交换机策略路由或ospf动态路由或网桥直连的方式(图未视)连接于客户端2,客户端2发出的流量由第一代理服务器10接收;而第二代理服务器20所接收到的流量则是来自第一代理服务器10,而不是直接来自于客户端2,故本实施例中,第一代理服务器10的当前运行模式为本地代理服务模式,第二代理服务器20的当前运行模式为远端代理服务模式。值得注意的是,本实施例中的代理服务器的运行模式可以随实际需求进行调整,而不限于某一固定运行模式。
如图4所示,图4绘示了本实施例中第一代理服务器10的代理服务模块12的具体结构图。第一代理服务模块12包含流量识别单元121a、流量引导单元122a和协议规则单元123a,第一代理服务模块12接收到流量后,识别单元121a对流量进行识别,并将流量及识别结果发送至流量引导单元122a,流量引导单元122a接收流量,并根据识别结果从协议规则单元123a获取对应的引导规则,对流量进行引导。
具体而言,流量识别单元121a包含http子单元1211a、p2p子单元1212a、game子单元1213a和pptp子单元1214a,流量识别单元121a在对流量进行识别时,是经过该些子单元对流量进行识别而得出的结果,例如http子单元1211a先对流量进行识别,识别其是否符合http流量特征,若符合,则识别该流量为http流量,并将该流量及识别结果发送至流量引导单元122a;若不符合,则传入其他子单元进行识别;若该些子单元都无法对流量给出识别结构,则给定该流量的识别结果为默认流量,并发送至流量引导单元122a。
在本发明的实施例中,可根据实际需求对该些子单元分别进行开启和关闭的设置,例如只开启http子单元和game子单元,关闭p2p子单元和pptp子单元,那么流量识别单元121a给定的识别结果则包含http流量、或game流量、或默认流量。
协议规则单元123a中包含各流量识别结果对应的流量引导规则,该些流量引导规则包含:引导流量直接回源(即转发至源站服务器40)、引导流量到流量处理服务器30、引导流量到第二代理服务模块20或丢弃流量。举例而言,若流量的识别结果为http流量,那么根据流量引导规则,该可能会对该流量直接回源,或者将该流量引导至流量处理服务器,或引导到第二代理服务模块或丢弃,具体的引导结果也是根据设置的规则进行选定的,例如,设置目的IP是访问百度网址的,则直接进行回源。
可以理解的是,协议规则单元123a中的流量引导规则可根据实际需求进行设定,也就是说,各识别结果的流量对应的引导规则相互之间是相互独立设定的,并无关联,而且每种识别结果对应的具体引导规则所包含的内容也并非一定是统一的,例如,识别结果为http流量的,对应的引导规则可包含上述四种,而识别结果为默认流量的,对应的引导规则可仅为丢弃流量。
由此可见,本发明实施例中,针对不同的流量识别结果对应的流量引导规则可按实际需求分别设定,从而更进一步的提升了流量疏导的智能性,使其更加贴合实际需求。
图5绘示图3所示实施例中代理服务模块的另一种具体结构图。如图5所示,代理服务模块12包含流量识别单元121b,流量引导单元122b,协议规则单元123b和前置引导单元124,代理服务模块12获取流量后,先由前置引导单元124对流量进行前置引导规则匹配,若匹配成功,流量则进入流量引导单元122b进行引导处理;若匹配失败,流量进入流量识别单元121b进行识别,并将流量及识别结果发送至流量引导单元122b,流量引导单元122b接收流量,并根据识别结果从协议规则单元123b获取对应的引导规则,对流量进行引导。
具体而言,前置引导单元124通过对流量进行前置引导规则匹配,并将匹配成功的流量直接发送给流量引导单元122b,流量引导单元122b根据协议规则123b中对应的流量引导规则对流量进行引导,而匹配不成功的流量则进入识别单元121b进行流量识别。
前置引导单元124对流量进行前置引导规则匹配是为了能对一些特定的流量进行预先过滤并直接发送给流量引导单元122b进行流量引导,例如,对所访问的IP为热度IP的流量可直接进行引导,而无需经过识别,或者对一些错误的访问或攻击性的流量,可通过前置引导规则匹配预先进行拦截,并对其进行相应的处理,简而言之,前置引导规则单元124的设定,是为了进一步完善流量引导装置对流量的疏导,使得一些特定的流量可以直接进行特定处理,从而提升整体性能和智能性。
其中,前置引导规则为预先设置在代理服务模块中的规则,主要包括包括:IP地址引导规则,端口引导规则和冷热IP地址规则,其中,IP地址引导规则是通过流量请求的源IP地址或是目的IP地址进行引导;端口引导规则是通过请求的目的端口来引导;冷热IP地址规则是通过历史数据计算出客户流量的行为,比如访问哪些目的IP地址最频繁,从而形成一套冷热IP地址的引导方案。
可以理解的是,前置引导规则可以按照实际需求进行设定,并不受限于本说明书中的描述。
在本发明的实施例中,对于前置引导单元124匹配成功的流量,其前置引导规则匹配结果可包含进一步的匹配结果,例如匹配该流量为热门IP请求流量,或为攻击性流量,该些匹配结果会一并发送至流量引导单元122b,流量引导单元122b将根据匹配结果相应的引导规则对该流量进行引导。
流量识别单元121b包含http子单元1211b、p2p子单元1212b、game子单元1213b和pptp子单元1214b,流量识别单元121b接收由前置引导单元124发送来的匹配不成功的流量,并对该流量进行识别,在对流量进行识别时,是经过该些子单元对流量进行识别而得出的结果,例如http子单元1211b先对流量进行识别,识别其是否符合http流量特征,若符合,则识别该流量为http流量,并将该流量及识别结果发送至流量引导单元122b;若不符合,则传入其他子单元进行识别;若该些子单元都无法对流量给出识别结构,则给定该流量的识别结果为默认流量,并发送至流量引导单元122b。
在本发明的实施例中,可根据实际需求对该些子单元分别进行开启和关闭的设置,例如只开启http子单元和game子单元,关闭p2p子单元和pptp子单元,那么流量识别单元121b给定的识别结果则包含http流量、或game流量、或默认流量。
协议规则单元123b中包含前置引导规则匹配结果对应的流量引导规则,和各流量识别结果对应的流量引导规则,该些流量引导规则包含:引导流量直接回源(即转发至源站服务器40)、引导流量到流量处理服务器30、引导流量到第二代理服务模块20或丢弃流量。举例而言,若流量的识别结果为http流量,那么根据流量引导规则,可能会对该流量直接回源,或者将该流量引导至流量处理服务器,或引导到第二代理服务模块或丢弃,具体的引导结果也是根据设置的规则进行选定的,例如,设置目的IP是访问百度网址的,则直接进行回源。
可以理解的是,协议规则单元123b中的流量引导规则可根据实际需求进行设定,也就是说,匹配结果和各识别结果的流量对应的引导规则相互之间是相互独立设定的,并无关联,而且每种识别结果对应的具体引导规则所包含的内容也并非一定是统一的,例如,识别结果为http流量的,对应的引导规则可包含上述四种,而识别结果为默认流量的,对应的引导规则可仅为丢弃流量。
在本实施例中,通过增设前置引导单元124对流量进行前置引导规则匹配可对一些特定的流量进行特别处理,从而更进一步的提升了流量引导方法的智能性,从而更好的满足应用场景的实际需求。
本发明的实施例中,第一代理服务器、第二代理服务器所包含的结构是相同的,所能实现的功能也相同,区别在于,在当前场景中的运行模式不同,图3所示实施例中,第一代理服务器10的运行模式为本地代理服务模式,故其直接接收来自客户端2的流量,而第二代理服务器20则接收的是来自第一代理服务器10转发而来的流量。而在不同运行模式下,第一代理服务器10和第二代理服务器20的具体规则设置不同,例如流量识别单元中的识别规则、协议规则单元中的流量引导规则可能会存在差异。
本发明的实施例中,第一代理服务器10与第二代理服务器20中间通过私有多路复用协议进行通信,从而可以实现多个请求在单个TCP通道中传输,节省端口的使用。流量处理服务器30包含但不限于squid服务器和p2pcs缓存服务器。
本发明使用iptables截获流量并用重定向和透明代理的方法把流量引导到本地代理服务中;对截获的流量做流量识别,并根据配置规则做相应的疏导,可疏导到不同的代理服务器上、在本地直接回源或直接丢弃。本发明解决传统透明代理中只能做网络地址转换回源,功能单一、无法对流经的流量做识别以及智能疏导的问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种流量引导方法,其特征在于,包括以下步骤:
导入流量至第一代理服务器的代理服务模块,其中,所述第一代理服务器的运行模式包括本地代理服务模式和远端代理服务模式,在所述本地代理服务模式下,所述流量通过交换机策略路由、OSPF动态路由或网桥直连的方式将客户端的流量导入至所述第一代理服务器,在所述远端代理服务模式下,所述流量经过其他代理服务器的处理并引导至所述第一代理服务器;所述第一代理服务器的流量劫持模块根据流量类型对应的iptables规则,将所述流量导入至所述第一代理服务器的代理服务模块;
所述代理服务模块对所述流量进行识别,识别所述流量为http流量、p2p流量、game流量、pptp流量或默认流量,并根据识别结果选择对应的引导规则对所述流量进行引导;
其中所述引导规则包含引导所述流量直接回源,引导所述流量到流量处理服务器,引导所述流量到第二代理服务器,以及丢弃所述流量;
所述第一代理服务器和所述第二代理服务器用于客户端和服务器之间的透明代理。
2.如权利要求1所述的流量引导方法,其特征在于,所述第一代理服务器的流量劫持模块根据流量类型对应的iptables规则,将所述流量导入至所述第一代理服务器的代理服务模块的具体方法包括:
对于传输控制协议流量,通过配置iptables规则,重定向所述传输控制协议流量到所述代理服务模块;
对于用户数据报协议流量,通过配置iptables规则,并使用透明代理和配置路由规则引导所述用户数据报协议流量到所述代理服务模块;
对于网络控制报文协议流量或通用路由封装协议流量,通过配置iptables规则,并设置标记和配置路由规则引导所述网络控制报文协议流量或通用路由封装协议流量到本地还回接口,并被所述代理服务模块获取。
3.如权利要求1所述的流量引导方法,其特征在于,所述代理服务模块对所述流量进行识别之前更包括步骤:对所述流量进行前置引导规则匹配,若匹配成功,所述流量则按照前置引导规则对应的流量引导规则进行引导;若匹配不成功,则对所述流量进行识别。
4.如权利要求3所述的流量引导方法,其特征在于,所述前置引导规则包括:网际协议地址引导规则,端口引导规则和冷热网际协议地址规则。
5.如权利要求1所述的流量引导方法,其特征在于,所述第一代理服务器和所述第二代理服务器通过私有多路复用协议进行通信。
6.如权利要求1所述的流量引导方法,其特征在于,所述第二代理服务器的运行模式为远端代理服务模式。
7.如权利要求1所述的流量引导方法,其特征在于,所述第二代理服务器接收到所述流量后,对其进行识别,并根据识别结果对应的流量引导规则对所述流量进行引导。
8.如权利要求1所述的流量引导方法,其特征在于,所述第一代理服务器和所述第二代理服务器的运行系统内核为Linux内核。
9.一种流量引导装置,其特征在于,包括:第一代理服务器,第二代理服务器,源站服务器和流量处理服务器,所述第一代理服务器和所述第二代理服务器用于客户端和源站服务器之间的透明代理,所述第一代理服务器和所述第二代理服务器之间通过私有多路复用协议进行通信,并且分别连接于源站服务器和流量处理服务器,其中,所述第一代理服务器的运行模式包括本地代理服务模式和远端代理服务模式,在所述本地代理服务模式下,所述流量通过交换机策略路由、OSPF动态路由或网桥直连的方式将客户端的流量导入至所述第一代理服务器,在所述远端代理服务模式下,所述流量经过其他代理服务器的处理并引导至所述第一代理服务器;所述第一代理服务器的流量劫持模块根据流量类型对应的iptables规则,将所述流量导入至所述第一代理服务器的代理服务模块;所述代理服务模块对所述流量进行识别,识别所述流量为http流量、p2p流量、game流量、pptp流量或默认流量,并根据识别结果选择对应的引导规则对所述流量进行引导。
10.如权利要求9所述的流量引导装置,其特征在于,所述第一代理服务器与客户端之间通过交换机或网桥连接。
11.如权利要求9所述的流量引导装置,其特征在于,所述代理服务模块包含流量识别单元、协议规则单元和流量引导单元,所述代理服务模块获取所述流量后,所述流量识别单元对所述流量进行识别,所述流量引导单元根据识别结果从所述协议规则单元获取对应的流量引导规则,并按照所述流量引导规则对所述流量进行引导。
12.如权利要求11所述的流量引导装置,其特征在于,所述流量识别单元包含http子单元、p2p子单元、game子单元和pptp子单元,所述流量经过所述子单元的识别得出识别结果。
13.如权利要求11所述的流量引导装置,其特征在于,所述协议规则单元中保存有针对各种流量识别结果对应的流量引导规则,所述流量引导规则包含引导所述流量直接回源,引导所述流量到流量处理服务器,引导所述流量到第二代理服务器,以及丢弃所述流量。
14.如权利要求11所述的流量引导装置,其特征在于,所述代理服务模块更包含前置引导单元,所述代理服务模块获取所述流量后,所述前置引导单元对所述流量进行前置引导规则匹配,若匹配成功,所述流量则进入所述流量引导单元进行引导处理;若匹配失败,所述流量进入所述流量识别单元进行识别,所述流量引导单元根据识别结果对所述流量进行引导。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710341240.1A CN107147588B (zh) | 2017-05-16 | 2017-05-16 | 流量引导方法和装置 |
PCT/CN2017/088544 WO2018209745A1 (zh) | 2017-05-16 | 2017-06-16 | 流量引导方法和装置 |
EP17906785.5A EP3439252B1 (en) | 2017-05-16 | 2017-06-16 | Traffic directing method and device |
US15/778,886 US11212355B2 (en) | 2017-05-16 | 2017-06-16 | Method and device for redirecting traffic |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710341240.1A CN107147588B (zh) | 2017-05-16 | 2017-05-16 | 流量引导方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107147588A CN107147588A (zh) | 2017-09-08 |
CN107147588B true CN107147588B (zh) | 2020-03-31 |
Family
ID=59778641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710341240.1A Expired - Fee Related CN107147588B (zh) | 2017-05-16 | 2017-05-16 | 流量引导方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11212355B2 (zh) |
EP (1) | EP3439252B1 (zh) |
CN (1) | CN107147588B (zh) |
WO (1) | WO2018209745A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107846470B (zh) * | 2017-11-16 | 2021-06-22 | 网宿科技股份有限公司 | 一种流量引导的方法和系统 |
CN108282414B (zh) * | 2017-12-29 | 2020-05-29 | 网宿科技股份有限公司 | 一种数据流的引导方法、服务器和系统 |
CN108809795B (zh) * | 2018-04-19 | 2021-10-15 | 中国科学院计算机网络信息中心 | 一种局域网环境中透明分流方法和装置 |
CN110392074B (zh) * | 2018-04-19 | 2022-05-17 | 贵州白山云科技股份有限公司 | 一种基于动态加速的调度方法及装置 |
CN109150725B (zh) * | 2018-07-09 | 2021-07-16 | 网宿科技股份有限公司 | 流量疏导方法及服务器 |
CN109639442B (zh) * | 2018-11-20 | 2022-01-18 | 网宿科技股份有限公司 | 流量分类引导方法及系统 |
CN111447144A (zh) * | 2020-04-01 | 2020-07-24 | 中核武汉核电运行技术股份有限公司 | 一种基于透明代理的应用路由方法 |
US11671347B2 (en) * | 2020-09-30 | 2023-06-06 | Vmware, Inc. | On-demand packet redirection |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130997A (zh) * | 2016-06-30 | 2016-11-16 | 网宿科技股份有限公司 | 流量引导的方法和装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687732B1 (en) * | 1998-09-28 | 2004-02-03 | Inktomi Corporation | Adaptive traffic bypassing in an intercepting network driver |
CN101399749B (zh) | 2007-09-27 | 2012-04-04 | 华为技术有限公司 | 一种报文过滤的方法、系统和设备 |
US9002923B2 (en) * | 2008-07-01 | 2015-04-07 | Thomson Licensing | Transparent web proxy |
WO2013015995A1 (en) * | 2011-07-27 | 2013-01-31 | Seven Networks, Inc. | Automatic generation and distribution of policy information regarding malicious mobile traffic in a wireless network |
US8713668B2 (en) * | 2011-10-17 | 2014-04-29 | Mcafee, Inc. | System and method for redirected firewall discovery in a network environment |
CN102594876B (zh) * | 2012-01-19 | 2016-03-16 | 网宿科技股份有限公司 | 游戏实时数据和更新数据的混合加速系统 |
CN105101147B (zh) * | 2015-08-19 | 2019-03-26 | 网宿科技股份有限公司 | 一种实现移动app的定向流量的方法和系统 |
CN105791315B (zh) | 2016-04-25 | 2019-05-14 | 网宿科技股份有限公司 | 一种udp协议加速方法和系统 |
-
2017
- 2017-05-16 CN CN201710341240.1A patent/CN107147588B/zh not_active Expired - Fee Related
- 2017-06-16 US US15/778,886 patent/US11212355B2/en active Active
- 2017-06-16 EP EP17906785.5A patent/EP3439252B1/en active Active
- 2017-06-16 WO PCT/CN2017/088544 patent/WO2018209745A1/zh unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130997A (zh) * | 2016-06-30 | 2016-11-16 | 网宿科技股份有限公司 | 流量引导的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
US11212355B2 (en) | 2021-12-28 |
EP3439252B1 (en) | 2020-07-08 |
EP3439252A1 (en) | 2019-02-06 |
CN107147588A (zh) | 2017-09-08 |
WO2018209745A1 (zh) | 2018-11-22 |
EP3439252A4 (en) | 2019-07-03 |
US20210203738A1 (en) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107147588B (zh) | 流量引导方法和装置 | |
CN109347817B (zh) | 一种网络安全重定向的方法及装置 | |
US10044616B2 (en) | Co-existence of routable and non-routable RDMA solutions on the same network interface | |
CN108512885B (zh) | 用于网络包处理的方法、系统和存储介质 | |
CN110808913B (zh) | 报文处理的方法、装置及相关设备 | |
US20170111314A1 (en) | Peer-to-peer connection establishment using TURN | |
US10095558B2 (en) | Systems and methods for offloading inline SSL processing to an embedded networking device | |
CN107872545B (zh) | 一种报文传输方法及装置、计算机可读存储介质 | |
US10375193B2 (en) | Source IP address transparency systems and methods | |
US20070288613A1 (en) | Providing support for responding to location protocol queries within a network node | |
US11956100B1 (en) | System for scaling network address translation (NAT) and firewall functions | |
US20220021754A1 (en) | Network multi-path proxy selection to route data packets | |
CN104683428A (zh) | 网络业务处理方法与装置 | |
CN106507414A (zh) | 报文转发方法及装置 | |
CN107483593B (zh) | 双向透明代理方法及系统 | |
US9806984B1 (en) | Separating network traffic among virtual servers | |
US7688821B2 (en) | Method and apparatus for distributing data packets by using multi-network address translation | |
US20180124198A1 (en) | Cloud to on-premise port forwarding with ip address bound to loopback alias | |
US20060098646A1 (en) | Local and remote network based management of an operating system-independent processor | |
EP3310015A1 (en) | Network filtering using router connection data | |
CN102065028B (zh) | 一种网关设备以及报文处理方法 | |
CN113824808B (zh) | 用于使用中间相遇代理的网络地址转换穿透的方法和系统 | |
CN111131046B (zh) | 报文转发方法和多核系统 | |
RU2694025C1 (ru) | Система агрегации сетевых данных в компьютерных сетях | |
US20130054785A1 (en) | Communications path discovery |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200331 |
|
CF01 | Termination of patent right due to non-payment of annual fee |