一种基于DNS的流量代理方法、服务器及系统与流程

文档序号:25348220发布日期:2021-06-08 12:43阅读:219来源:国知局
一种基于DNS的流量代理方法、服务器及系统与流程
一种基于dns的流量代理方法、服务器及系统
技术领域
1.本申请涉及网络技术领域,尤其涉及一种基于dns的流量代理方法、服务器及系统。


背景技术:

2.在现有流量代理服务中,由于内容提供商的源站服务器的ip地址会经常发生更新,因此,需先对其进行dns代理,以获知域名对应的ip地址,并通过将其保存至缓存来提高响应速度,但由于dns代理服务器在运行过程中可能会发生进程重启、异常退出、或设备异常重启等问题,内存的信息就会丢失,造成缓存中存储的域名和ip地址映射关系丢失,则再次接收到该域名的dns解析请求时,只能从权威服务器中获取该域名对应的ip地址,增加了域名服务器的工作量,拖慢域名服务器的代理速度。


技术实现要素:

3.本发明实施例提供一种基于dns的流量代理方法、服务器及系统,用于防止因内存数据丢失而导致的上述问题,提高流量代理系统性能。
4.第一方面,本发明实施例提供一种基于dns的流量代理方法,该方法包括:
5.域名dns代理服务接收客户端发送的dns解析请求,所述dns解析请求包含待解析域名;
6.所述dns代理服务从dns权威服务器获取所述待解析域名对应的ip地址;
7.若所述dns代理服务记录有针对所述待解析域名的流量控制策略,则保存所述待解析域名和所述ip地址至本地磁盘,并基于所述ip地址对所述dns解析请求进行响应。
8.上述方法中,通过将待解析域名和ip地址保存至本地磁盘。则在本地缓存信息丢失时,dns代理服务可以直接从本地磁盘中获取待解析域名对应的ip地址,而无需再次从dns权威服务器获取该待解析域名对应的ip地址。相比于现有技术来说,本申请可以在dns代理服务中的内存数据丢失时,通过从本地磁盘中获取本地缓存中丢失的信息,以快速响应dns解析请求,降低dns代理服务的工作量,加快dns代理服务的代理速度。
9.可选的,在所述dns代理服务从dns权威服务器获取所述待解析域名对应的ip地址步骤前,所述方法还包含:所述dns代理服务查询本地缓存,以获取所述待解析域名对应的ip地址;若未查询到记录,则查询本地磁盘,以获取所述待解析域名对应的ip地址;若所述本地磁盘中没有相应记录,再执行所述从dns权威服务器获取所述待解析域名对应的ip地址的步骤以及后续步骤;若所述本地缓存或者所述本地磁盘中有相应记录,则基于从所述本地缓存或所述本地磁盘中获取到的所述待解析域名对应的ip地址,对所述dns解析请求进行响应。
10.上述方法中,dns代理服务先从本地缓存获取待解析域名对应的ip地址,若获取不到,则从本地磁盘获取待解析域名对应的ip地址,若本地缓存和本地磁盘皆获取不到,才从dns权威服务器获取待解析域名对应的ip地址。如此,当dns代理服务进程重启或异常等造
成本地缓存中的信息丢失,可以从本地磁盘获取,可以节省重新从dns权威服务器获取该丢失的信息所耗费的时间,加快dns代理服务的流量代理速度。
11.可选的,所述方法包含:将所述待解析域名所述ip地址保存至本地缓存。
12.上述方法中,将从dns权威服务器获取到的ip地址保存至本地缓存,可以节省dns代理服务访问本地磁盘或dns权威服务器的时间,以及若ip地址可以无需存储在本地磁盘时,节约本地磁盘的存储空间。
13.可选的,所述保存所述待解析域名和所述ip地址至本地磁盘,具体包含:
14.反转所述待解析域名的字符,得到存储目录;在本地磁盘的文件系统中创建所述存储目录,保存所述ip地址至所述存储目录下。
15.根据上述方法对ip地址进行存储,可便于后续对ip地址的查询,提升获取ip地址的高效性。
16.可选的,所述查询本地磁盘的方法具体包括:
17.对所述待解析域名的字符进行翻转,基于翻转后的字符得到对应的查询目录,并基于所述查询目录与所述文件系统的存储目录进行匹配,若匹配成功,则在获取匹配到存储目录下保存的所述ip地址,确定为所述待解析域名对应的ip地址;若没有,则确定所述本地磁盘中没有相应记录。
18.上述方法中,根据翻转后的待解析域名匹配存储目录,获取待解析域名匹配的文件名,进一步在该文件中获取ip地址。如此,增加获取ip地址的高效性。
19.可选的,所述方法更包含:所述dns代理服务基于所述ip地址和所述流量控制策略生成ip流量控制策略,发送至流量控制服务,使得所述流量控制服务在接收到所述客户端发往所述ip地址的流量时,基于所述ip流量控制策略对所述流量进行代理。
20.可选的,当所述dns代理服务接收到配置平台下发的域名流量控制策略更新指令时,获取所述更新指令中包含的各待更新域名及对应的更新后的流量控制策略,从所述本地磁盘中查询各所述待更新域名对应的ip地址,并基于所述待更新域名对应的ip地址及所述更新后的流量控制策略生成新的ip流量控制策略,发送至所述流量控制服务,并指示所述流量控制服务基于所述新的ip流量控制策略对本地保存的ip流量控制策略进行更新。
21.上述方法中,流量控制服务基于dns代理服务发送的ip流量控制策略,可对客户端发往该ip地址的流量进行代理。如此,可以实现不同ip地址对应不同流量控制策略,增加流量控制的灵活度。
22.第二方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序在计算机上运行时,使得计算机实现执行第一方面的各种可能的设计中所述的方法。
23.第三方面,本发明实施例提供一种dns代理服务器,该dns代理服务器包括:
24.存储器,用于存储计算机程序;
25.处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行第一方面的各种可能的设计中所述的方法。
26.第四方面,本发明实施例提供一种流量代理系统,该系统包括:
27.配置平台,用于配置域名流量控制策略,并将所述域名流量控制策略发送给dns代理服务;dns代理服务与所述配置平台通信连接,接收所述域名流量控制策略,通过执行如
第一方面所述的基于dns的流量代理方法,对客户端发送的dns解析请求进行处理。
28.进一步的,所述系统还包括:与所述dns代理服务通信连接的流量控制服务,所述dns代理服务在获取到所述dns解析请求中待解析域名对应的ip地址后,将所述ip地址和对应的流量控制策略发送至所述流量控制服务;所述流量控制服务,用于接收所述客户端针对所述ip地址发出的流量,并根据所述dns代理服务发送的所述ip地址和所述流量控制策略,对所述流量进行加速控制。
29.本发明的这些实现方式或其他实现方式在以下实施例的描述中会更加简明易懂。
附图说明
30.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
31.图1为本发明实施例提供的一种dns的流量代理系统的应用架构示意图;
32.图2a为本发明实施例提供的一种基于dns的流量代理系统部署示意图;
33.图2b为本发明实施例提供的一种基于dns的流量代理系统部署示意图;
34.图3为本发明实施例提供的一种基于dns的流量代理方法的流程示意图。
具体实施方式
35.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
36.如图1所示,为本发明实施例提供的一种基于dns的流量代理方法的应用架构示意图。其中,客户端101可以是电脑、手机、服务器等可通信设备;dns代理服务102可以是基于计算机程序实现的,该计算机程序可部署在各种服务设备上或客户端本地,具体而言,服务设备可以是计算机服务器、或者是交换机、路由器等网络服务设备;流量控制服务103也是基于计算机程序实现的,可部署在各种服务设备上或客户端本地,具体而言,服务设备可以是计算机服务器、或者是交换机、路由器等网络服务设备,其可以与dns代理服务部署在同一设备上,也可以分开部署;配置平台104可以是部署在服务设备或集群上的管理平台,同样可基于计算机程序实现,在本发明的其他实施例中,配置平台104也可以部署在客户端本地,可用于生成和管理域名流量控制策略,并将域名流量控制策略下发至dns代理服务,其中,域名流量控制策略包含需要进行流量控制的域名信息及各域名对应的流量控制策略,流量控制策略可包含具体的路由路径,或路由选路策略,例如,基于成本优先的选路策略、基于回源速率的选路策略、或基于线路可靠性的选路策略,具体的选路策略可根据实际的业务需求进行设定,本发明并不以此为限。
37.可以理解的是,本发明实施例中的dns代理服务、流量控制服务和配置平台均是基于计算机程序实现,那么这三个服务可分别部署在不同设备上,如图1所示,也可部署在同一设备上,如图2a和图2b所示,例如,均部署在同一服务设备上,或均部署在客户端本地,具
体可根据实际需求进行调整,本发明并不以此限制。
38.dns代理服务102可接收配置平台104下发的域名流量控制策略,并将域名流量控制策略存储在本地缓存和/或本地磁盘,用于后续生成域名对应的ip地址的流量控制策略。
39.具体而言,dns代理服务102接收客户端101发送的dns解析请求,获取dns解析请求中的待解析域名,根据待解析域名查询本地存储的域名流量控制策略中是否存在该待解析域名对应的流量控制策略,若存在,则可在从dns权威服务器获取到待解析域名对应的ip地址后,生成该ip地址与待解析域名对应的流量控制策略的映射关系,并发送至流量加速器,使得流量加速器可基于ip与流量控制策略的映射关系确定对接收到的流量进行加速代理,同时可将该待解析域名与ip地址关联存储在本地缓存和本地磁盘中。
40.基于此,本申请实施例提供了一种基于dns的流量代理方法的流程,如图3所示,本申请实施例所提供的基于dns的流量代理方法应用于dns代理服务,具体包括:
41.步骤301、dns代理服务接收客户端发送的dns解析请求,所述dns解析请求包含待解析域名。
42.在一实施中,dns代理服务可通过从客户端网络出口设备处对流量进行拦截,以获取客户端发出的所有流量,并对该些流量进行识别,以确定出客户端发出的dns解析请求。
43.在另一实施中,可通过配置客户端本地dns服务器地址为所述dns代理服务的方式,使得dns代理服务接收到客户端发送的dns解析请求。
44.而当dns代理服务部署在客户端本地时,则可通过对本地端口的监听来接收到客户端发出的dns解析请求。
45.当dns接收到客户端发出的dns解析请求后,可对该dns解析请求进行报文解析,并从中获取该dns解析请求中需要被解析的待解析域名。
46.步骤302、所述dns代理服务从dns权威服务器获取所述待解析域名对应的ip地址。
47.步骤303、若所述dns代理服务记录有针对所述待解析域名的流量控制策略,则保存所述待解析域名和所述ip地址至本地磁盘,并基于所述ip地址对所述dns解析请求进行响应。
48.在实施中,在步骤302执行前,dns代理服务可先查询本地缓存,以从本地缓存中快速获取所述待解析域名对应的ip地址,对该dns解析请求进行响应;若未查询到记录,则可查询本地磁盘,以从本地磁盘中快速获取所述待解析域名对应的ip地址,进而直接对该dns解析请求进行响应。
49.值得注意的是,dns代理服务每次从dns权威服务器获取到dns解析结果时,可对该解析结果中的域名与对应的ip地址缓存在本地,即缓存在本地内存中,同时,为了防止因重启或异常退出后,本地缓存丢失的情况,可将该域名和对应的ip地址同步保存在本地磁盘中,因此,当dns代理服务接收到dns解析请求时,可先查询本地缓存,以获取对应的ip地址,从而快速对该dns解析请求进行响应,若本地缓存中未保存有该待解析域名对应的ip地址,那么存在两种可能性,第一,在有效的缓存期限中,首次接收到针对该待解析域名的dns解析请求;第二,本地缓存有丢失过,因此,可继续从本地磁盘中进行查询,若本地磁盘中保存有该待解析域名对应的ip地址,则说明本地缓存有丢失过,那么dns代理服务可直接从本地磁盘获取到该待解析域名对应的ip地址,并直接对该dns解析请求进行响应;若本地磁盘中也没有对应的ip地址,则可将该dns解析请求转发至dns权威服务器,以从dns权威服务器处
得到响应报文,进而从响应报文中获取该待解析域名对应的ip地址,同时将其保存在本地缓存和本地磁盘中。
50.在一实施中,dns代理服务器在将域名和对应的ip地址保存在本地时,可根据该域名是否存在对应的流量控制策略来确定是否需要将域名和对应的ip地址保存在本地磁盘。具体而言,dns代理服务器接收到dns权威服务器发送的响应报文后,可先通过查询本地记录,来确定该响应报文中的待解析域名是否存在对应的流量控制策略,如果不存在,则直接将相应记录保存至本地缓存即可,如果存在,那么在需要将相应记录保存在本地缓存以及本地磁盘中,其中的原理为:若待解析域名存在对应的流量控制策略,说明dns服务需要针对该待解析域名对应的ip地址生成流量控制策略,并下发至流量控制服务,使得流量控制服务可基于ip地址对流量进行控制,同时,由于待解析域名对应的应用服务器的ip地址可能会发生变化,那么dns权威服务器在不同时间点对相同域名的解析结果可能发生变化,因此,在确定本地缓存或本地磁盘中存有对应的ip地址时,对dns解析请求直接响应,可保证客户端基于响应的ip地址发出的流量被流量控制服务接收后,可正确获取到对应的流量控制策略。
51.在一实施中,为改善磁盘存储域名查询的性能,dns代理服务所在服务设备的本地磁盘存储可采用文件系统已有的树型目录结构,在本地磁盘中保存所述待解析域名和所述ip地址至本地磁盘,具体可包含:反转所述待解析域名的字符得到文件存储目录,再对各级域名按目录树的形式创建存储关系;并保存所述ip地址至所述文件存储目录下。举例而言,待解析域名为news.baidu.com,对应的ip地址为1.1.1.1和1.1.1.2,在对其进行本地磁盘存储时,可将该待解析域名反转,且将

.’转化为

/’,从而得到文件存储目录moc/udiab/swen,在文件系统中创建该文件存储目录,并在该文件存储目下保存ip地址1.1.1.1和1.1.1.2,同时也可将待解析域名www.baidu.com对应的流量控制策略保存至该目录下。如此一来,可以在域名查找时直接通过基础的linux api接口access判断域名对应的ip是否存在即可,操作快捷方便。更进一的,在对待解析域名转化成文件存储目录时,可在最后一级域名增加’.’结尾,例如,news.baidu.com和img.news.baidu.com,在存储时分别转化为:moc/udiab/swen.和moc/udiab/swen/gmi.,从而避免与部分层级域名命名冲突。
52.如下为上述示例的一种存储目录:
[0053][0054]
存储目录
[0055]
在一实施中,所述查询本地磁盘的方法具体包括:对所述待解析域名的字符进行翻转,基于翻转后的字符匹配文件存储目录,以确定文件系统中是否有对应的目录,若有,在获取所述目录下保存的所述ip地址,确定为所述待解析域名对应的ip地址;若没有,则确定所述本地磁盘中没有相应记录。根据上述示例,待解析域名为news.baidu.com,反转获取moc/udiab/swen,查找该存储目录的最泛层级moc,继而查找次泛层级udiab,最后查找层级swen,确定层级swen下保存的ip地址1.1.1.1和1.1.1.2为待解析域名news.baidu.com对应
的ip地址。若存储目录下没有moc/udiab/swen对应的目录,则确定本地磁盘中没有相应记录。
[0056]
在一实施中,所述方法更包含:所述dns代理服务将所述ip地址和所述流量控制策略发送至流量控制服务,使得所述流量控制服务在接收到所述客户端发往所述ip地址的流量时,可基于所述流量控制策略对所述流量进行代理。dns代理服务在从dns权威服务器获取到待解析域名www.baidu.com对应的ip地址1.1.1.1和1.1.1.2后,可根据配置平台下发的域名流量控制策略中,确定出待解析域名对应的流量控制策略:加速传输,将ip地址:1.1.1.1和1.1.1.2和加速传输控制策略发送至流量控制服务,使得流量控制服务将接收到的目的地址ip地址为1.1.1.1或1.1.1.2的流量通过加速通道进行传输。
[0057]
在实施中,配置平台可对域名流量控制策略进行管理,包括对其进行更新,如新增、删除等,并下发域名流量控制策略更新指令至dns代理服务,所述更新指令中可包含的各待更新域名及对应的更新后的流量控制策略,当dns代理服务接收到平台下发的域名流量控制策略更新指令时,可获取所述更新指令中包含的各待更新域名及对应的更新后的流量控制策略,并对本地保存的域名流量控制策略进行更新,若待更新域名尚未保存在本地记录中,则可先直接将其保存在本地,在从本地缓存获取待域名对应的ip地址,若可获取到,则基于该ip地址和对应的更新后的流量控制策略生成新的ip流量控制策略,发送至流量控制服务,并指示流量控制服务保存该新的ip流量控制策略;若待更新域名已保存在本地,那么说明需要对该待更新域名对应的流量控制策略就进行更新,可先将本地存储的该待更新域名对应的流量控制策略更新为对应的更新后的流量控制策略,并从所述本地磁盘中查询该待更新域名对应的ip地址,并基于该待更新域名对应的ip地址及所述更新后的流量控制策略生成新的ip流量控制策略,发送至所述流量控制服务,并指示所述流量控制服务基于所述新的ip流量控制策略本地记录的ip流量控制策略进行更新。如此一来,当配置平台对域名流量控制策略进行更新后,dns代理服务可及时对本地的信息进行更新,并同步指示流量控制服务进行更新,使得流量控制服务可基于最新的流量控制策略对客户端发出的流量进行更新。
[0058]
上述方法中,通过将待解析域名和ip地址保存至本地磁盘,当本地缓存信息丢失时,dns代理服务可以直接从本地磁盘中获取待解析域名对应的ip地址,而无需再次从dns权威服务器获取该待解析域名对应的ip地址,从而当dns代理服务中的进程出现异常退出等异常时,可从本地磁盘中获取本地缓存中丢失的信息,无需再次请求dns权威服务器,加快了dns代理服务的代理速度。更进一步的,通过对信息持久化的存储方式进行设置,即对域名进行翻转生成存储目录,在本地磁盘文件系统中创建对应的存储目录,并将对应的ip地址存储在该存储目录下,使得查询方式简便、快捷,也无需调整原内存数据结构的存储框架,节省开发成本。
[0059]
基于同样的构思,本申请实施例提供一种流量代理系统,所述系统包括:配置平台,用于配置域名流量控制策略,并将所述域名流量控制策略发送给dns代理服务;dns代理服务与所述配置平台通信连接,接收所述域名流量控制策略,通过执行如上述的基于dns的流量代理方法,对客户端发送的dns解析请求进行处理。
[0060]
进一步的,所述系统还包括:与所述dns代理服务通信连接的流量控制服务,所述dns代理服务在获取到所述dns解析请求中待解析域名对应的ip地址后,将所述ip地址和对
应的流量控制策略发送至所述流量控制服务;所述流量控制服务,用于接收所述客户端针对所述ip地址发出的流量,并根据所述dns代理服务发送的所述ip地址和所述流量控制策略,对所述流量进行加速控制。
[0061]
基于同样的构思,本申请实施例提供一种dns代理服务器,包括:存储器,用于存储计算机程序;处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行上述的方法。
[0062]
以及,一种计算机可读存储介质,所述计算机可读存储介质存储有程序,当所述程序在计算机上运行时,使得计算机实现执行上述的方法。
[0063]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0064]
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0065]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0066]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0067]
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1