CN109218454A - Dns请求的响应方法及dns服务器 - Google Patents

Dns请求的响应方法及dns服务器 Download PDF

Info

Publication number
CN109218454A
CN109218454A CN201710243238.0A CN201710243238A CN109218454A CN 109218454 A CN109218454 A CN 109218454A CN 201710243238 A CN201710243238 A CN 201710243238A CN 109218454 A CN109218454 A CN 109218454A
Authority
CN
China
Prior art keywords
dns
request
reply data
dns request
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.)
Pending
Application number
CN201710243238.0A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201710243238.0A priority Critical patent/CN109218454A/zh
Publication of CN109218454A publication Critical patent/CN109218454A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请公开了DNS请求的响应方法及服务器、应答数据的保存方法及装置。其中,DNS请求的响应方法包括:响应于客户端向所述DNS服务器发送DNS请求,所述DNS服务器的内核态响应程序获取所述DNS请求;所述内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据;将查询到的所述DNS请求的应答数据发送给所述客户端。采用本申请实施例,可以实现当DNS服务器响应相同的DNS请求时,内核态响应程序直接从DNS服务器的缓存中获取该DNS请求的应答数据,从而,避免了重复通过DNS服务器中的用户态响应装置获取该DNS请求的应答数据,提升DNS服务器的响应效率。

Description

DNS请求的响应方法及DNS服务器
技术领域
本申请涉及互联网数据处理技术领域,特别涉及一种DNS请求的响应方法及DNS服务器,和,一种应答数据的保存方法及客户端,和,一种网络请求的响应方法及计算设备。
背景技术
DNS(DomainNameSystem,域名系统)是因特网的一项核心服务,它作为可以将域名和IP(InternetProtocol,网络互连协议)地址相互映射的一种分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。
现有技术中,如果客户端向DNS服务器发送DNS请求,由DNS服务器上运行的用户态应用程序接收该DNS请求,并将该DNS请求的应答数据返回给客户端,例如,域名解析结果等。
发明内容
发明人在研究过程中发现,DNS服务器上运行的用户态应用程序在响应 DNS请求时,需要先将该DNS请求转发给内核态应用程序,再由内核态应用程序通过对DNS服务器的存储设备进行读取等内核级操作,才能生成该DNS 请求的应答数据,进而内核态应用程序再将该应答数据返回给用户态应用程序,才能由用户态应用程序返回给客户端。基于此,本申请提供了一种DNS 请求的响应方法,用以在客户端发送相同的DNS请求时,DNS服务器上的内核态响应程序直接从DNS服务器的缓冲中获取该DNS请求的应答数据,避免了DNS服务器上的用户态响应装置重复产生DNS请求的应答数据。
本申请还提供了一种应答数据的保存方法,用以在用户向客户端发送 DNS请求时,客户端从DNS服务器获取该DNS请求的应答数据,并保存该DNS 和应答数据。在用户下一次触发相同DNS请求时,客户端直接将保存的该DNS 请求的应答数据发送给客户。
本申请还提供了DNS请求的响应装置和应答数据的保存装置,用以保证上述方法在实际中的实现及应用。
为了解决上述问题,本申请公开了一种域名系统DNS请求的响应方法,该方法应用于DNS服务器上,该方法包括:
响应于客户端向所述DNS服务器发送DNS请求,所述DNS服务器的内核态响应程序获取所述DNS请求;所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
所述内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据;
将查询到的所述DNS请求的应答数据发送给所述客户端。
其中,如果所述DNS服务器的缓存中查询不到所述DNS请求的应答数据,所述方法还包括:
所述内核态响应程序将所述DNS请求发送至所述DNS服务器的用户态响应装置;
响应于所述用户态响应装置返回所述DNS请求的应答数据,将所述DNS 请求的应答数据发送至所述客户端。
其中,所述方法还包括:
所述内核态响应程序将所述DNS请求的应答数据与所述DNS请求对应保存至所述DNS服务器的缓存中。
其中,所述方法还包括:
在所述DNS服务器的缓存中设置一应答关系表,所述应答关系表用于对应保存DNS请求和应答数据;
相应的,所述内核态响应程序将所述DNS请求的应答数据与所述DNS请求对应保存至所述DNS服务器的缓存中,具体为:
所述内核态响应程序将所述DNS请求的应答数据与所述DNS请求,对应保存至所述应答关系表中。
其中,所述内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据,包括:
所述内核态响应程序在DNS服务器的缓存中定位所述应答关系表,并在所述应答关系表中查询所述DNS请求对应的应答数据。
其中,所述应答关系表采用关键字-健值的形式保存DNS请求和应答数据;所述关键字包括:DNS请求的域名和类型,所述应答数据包括:域名的资源记录。
其中,所述响应于客户端向所述DNS服务器发送DNS请求,所述DNS服务器的内核态响应程序获取所述DNS请求,包括:
响应于客户端向所述DNS服务器发送客户端请求,获取所述客户端请求的请求特征;
判断所述请求特征是否满足预先设置的DNS请求的DNS特征,如果是,则截获该满足DNS特征的客户端请求。
本申请还提供了一种应答数据的保存方法,该方法应用于客户端上,包括:
响应于用户触发DNS请求,客户端将所述DNS请求发送至DNS服务器,由所述DNS服务器的内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据,并将查询到的所述DNS请求的应答数据发送给所述客户端;所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
将所述DNS服务器的内核态响应程序发送的应答数据与所述DNS请求对应保存。
其中,在下一次用户触发相同的DNS请求时,还包括:
依据所述相同的DNS请求查询对应的应答数据,并将查询到的应答数据返回给用户。
本申请还提供了一种DNS服务器,该DNS服务器包括:
获取单元,用于响应于客户端向所述DNS服务器发送DNS请求,获取所述DNS请求;
查询单元,用于在所述DNS服务器的缓存中查询所述DNS请求的应答数据;
发送单元,用于将查询到的所述DNS请求的应答数据发送给所述客户端。本申请还提供了一种客户端,该客户端包括:
获取应答数据单元,用于响应于用户触发DNS请求,将所述DNS请求发送至DNS服务器,由所述DNS服务器的内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据,并将查询到的所述DNS请求的应答数据发送给所述装置;所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
保存单元,用于将所述DNS服务器的内核态响应程序发送的应答数据与所述DNS请求对应保存。
本申请还提供了一种网络请求的响应方法,应用于通过计算机网络或通信网络相互连接的两个或多个计算设备中的至少一个,包括:
所述计算设备接收网络请求,其中,所述计算设备包括内核态响应程序以及内核态响应程序可访问的缓存区,所述网络请求包含源地址;所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
所述计算设备的内核态响应程序获取所述网络请求;
所述内核态响应程序在所述缓存区中查询所述网络请求对应的应答数据;
所述计算设备将查询到的所述应答数据发送给所述网络请求中的源地址。
本申请还提供了一种计算设备,该计算设备通过计算机网络或通信网络与其他计算设备相互连接,该计算设备包括:
内核态响应程序以及所述内核态响应程序可访问的缓存区,所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
该计算设备还包括:接收单元和发送单元,
所述接收单元,用于接收网络请求,
所述内核态响应程序,用于获取所述网络请求,以及在所述缓存区中查询所述网络请求对应的应答数据;
所述发送单元,用于将查询到的所述应答数据发送给所述网络请求中的源地址。
本申请还提供了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于业务故障的监控程序,该处理包括以下步骤:
发送步骤,其响应于客户端向所述DNS服务器发送DNS请求,所述DNS 服务器的内核态响应程序获取所述DNS请求;所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
查询步骤,其所述内核态响应程序在所述DNS服务器的缓存中查询所述 DNS请求的应答数据;
发送步骤,其将查询到的所述DNS请求的应答数据发送给所述客户端。
与现有技术相比,本申请包括以下优点:
本申请公开的DNS请求的响应方法和应答数据的保存方法,其中,DNS 请求的响应方法,在DNS服务器响应客户端第一次发送的DNS请求时,内核态响应程序通过用户态响应装置获取该DNS请求的应答数据,将此应答数据发送给客户端,并将该DNS请求和应答数据保存在DNS服务器的缓存中。当 DNS服务器响应相同的DNS请求时,内核态响应程序直接从DNS服务器的缓存中获取该DNS请求的应答数据,无需再发送给用户态响应装置即可直接获取应答数据;应答数据的保存方法,在用户向客户端发送DNS请求时,客户端通过DNS服务器获取应答数据,将此应答数据发送给用户,并且将该DNS 请求和应答数据对应保存在客户端的存储设备中。当客户端接收相同的DNS 请求时,直接从存储设备中获取应答数据,无需向DNS服务器发送DNS请求即可直接获取应答数据,从而提高了客服端响应DNS请求的效率,提升用户体验。
当然,实施本申请的任一产品并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请在实际应用中的场景架构图;
图2是本申请的DNS请求的响应方法实施例的流程图;
图3是本申请的内核态响应程序获取DNS请求的请求特征示意图;
图4是本申请的DNS请求的响应方法实施例的详细流程图;
图5是本申请的应答数据的保存方法实施例的流程图;
图6是本申请的DNS请求的响应装置实施例的结构框图;
图7是本申请的应答数据的保存装置实施例的结构框图;
图8是本申请的网络请求的响应方法实施例的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参考图1所示,为本申请在实际应用中的场景架构图,客户端101与DNS 服务器102中的内核态响应程序1021以及用户态响应装置1022之间进行通信,若客户端101首次向DNS服务器102发送DNS请求时,DNS服务器102中的内核态响应程序1021获取该DNS请求,并通过用户态响应装置1022来获取此DNS 请求的应答数据,将此应答数据发送给客户端101,并将此DNS请求与应答数据保存在DNS服务器102的缓存中。若客户端101向DNS服务器102发送相同的 DNS请求时,DNS服务器102中的内核态响应程序1021直接从缓存中获取该 DNS请求对应的应答数据,并将此应答数据发给客户端101。其中,内核态指的是服务器的操作系统的内核所运行的模式,而内核态响应程序可以为运行在该模式下的代码,用来实现本申请实施例中DNS请求的响应功能。
参考图2,示出了本申请的一种DNS请求的响应方法实施例的流程图,本实施例应用图1所示的DNS服务器上,本实施例可以包括以下步骤:
步骤S201:响应于客户端向所述DNS服务器发送DNS请求,所述DNS服务器的内核态响应程序获取所述DNS请求。
在本申请中,客户端向DNS服务器发送的客户端请求包括DNS请求和非 DNS请求,内核态响应程序获取该客户端请求。但是,内核态响应程序只响应DNS请求。因此,内核态响应程序根据接收的客户端请求,需要判断此客户端请求是否为DNS请求,如果为DNS请求,内核态响应程序截获该DNS请求。
具体的,内核态响应程序截获DNS请求的过程可以包括:步骤A1~步骤 A2。
步骤A1:响应于客户端向所述DNS服务器发送客户端请求,获取所述客户端请求的请求特征。
具体的,内核态响应程序获取该客户端请求的请求特征的过程,可以参考图3所示的内核态响应程序获取客户端请求的请求特征示意图。从图3可以看出在内核态响应程序中含有Netfilter框架的钩子点:NF_INET_LOCAL_IN 与NF_INET_LOCAL_OUT。
其中,内核态响应程序获取客户端请求的请求特征是通过 NF_INET_LOCAL_IN钩子点来获取。具体的,NF_INET_LOCAL_IN钩子点获取客户端请求的请求特征的方法可以包括:NF_INET_LOCAL_IN钩子点根据客户端请求,利用回调函数将回调函数内DNS请求所对应的DNS请求特征的位置与接收的客户端请求相应位置进行比较,将客户端请求中与DNS请求特征相同位置的内容作为客户端请求的请求特征。
步骤A2:判断所述请求特征是否满足预先设置的DNS请求的DNS特征,如果是,则截获该满足DNS特征的客户端请求。
内核态响应程序通过NF_INET_LOCAL_IN钩子点获取该客户端请求的请求特征后,判断该请求特征是否满足预先设置的DNS请求的DNS特征,即将内核态响应程序中预先设置的DNS请求的DNS特征与获取的客户端请求的请求特征进行比较。
若比较结果相同,则表示该客户端请求满足DNS请求的特征,内核态响应程序截获该满足DNS特征的客户端请求。若比较结果不同,则表示该客户端请求不满足DNS请求的特征,内核态响应程序删除此客户端请求,接着接收下一条客户端请求,继续按照步骤A1~步骤A2来执行,直到接收的客户端请求为DNS请求时,进入步骤S202。
步骤S202:所述内核态响应程序在所述DNS服务器的缓存中查询所述 DNS请求的应答数据。
对于客户端发送相同的DNS请求时,在DNS服务器的缓存中保存有该 DNS请求和对应的应答数据间的对应关系。例如,DNS请求和对应的应答数据可以通过一应答关系表来保存。
在本步骤中,若内核态响应程序获取的DNS请求是曾经被响应过的DNS 请求,则内核态响应程序首先定位DNS服务器的缓存中保存的应答关系表;然后,从定位到的应答关系表中查询到该DNS请求的应答数据。需要说明的是,在本步骤中,对于DNS服务器的缓存中保存DNS请求和对应的应答数据是以应答关系表为例来介绍的,在实际应用中,DNS请求和应答数据间的对应关系可以以其他的形式来保存,本申请对保存形式不作限定。
为了使本领域技术人员对应答数据的存储有更进一步的了解,下面以关键字到健值Key-Value的形式来保存应答数据为例对本步骤进行说明。
在本步骤中,Key可以对应DNS请求的类型和域名,类型可以是:递归查询、迭代查询或反向查询等,而域名是互联网Internet地址中的一项,例如假设的一个地址“domain.com”与互联网协议(IP)地址相对应的一串容易记忆的字符,可以由若干个从a到z的26个拉丁字母、0到9的10个阿拉伯数字及“-”、“.”符号构成并按一定的层次和逻辑排列。DNS请求的域名例如可以为“abcde.com”,则表示该DNS请求来自“abcde”。
进一步的,Key还可以对应于DNS请求的线路。其中,线路可以用于表示 DNS请求来自哪个地理位置。例如,线路为北京,则表示这是从北京市发出的DNS请求。可以理解的是,线路可以用于流量调度,将离用户最近的服务器地址返回给用户,例如,如果DNS请求的线路为上海市,则可以将上海市部署的服务器地址返回给用户,使用户使用离自己较近的服务器地址查看互联网内容,因此能够使用户获得较好的互联网体验。
而Value可以对应于应答数据中的服务器地址,例如,可以是一个HTTP 类型的网页地址等,该服务器地址返回给用户之后,用户就可以访问该服务器地址获得互联网内容了。当然,Value还可以包括一个标识字段,用于表示该应答数据是不是权威的。例如,标识字段的值为“1”表示该应答数据是来自该域名的权威服务器地址,即是权威的应答数据。而如果标识字段的值为“0”则可以表示该应答数据来自其他DNS服务器地址,即不是权威的应答数据。可以理解的是,本领域技术人员还可以对Key-Value的映射关系所对应的数据进行其他配置。
步骤S203:将查询到的所述DNS请求的应答数据发送给所述客户端。
内核态响应程序将查询到的该DNS请求所对应的应答数据,发送给客户端,完成了对客户端发送的DNS请求的响应。
可见,在本申请实施例中,当客户端发送的相同的DNS请求时,DNS服务器中的内核态响应程序直接根据此DNS请求,从DNS服务器的缓存中获取该DNS请求对应的应答数据,并将该应答数据发送给客户端,因此,可以解决DNS服务器响应相同的DNS请求时,重复通过用户态响应装置获取该DNS 请求的应答数据而导致的DNS服务器响应效率低的问题。
参考图4,示出了本申请的DNS请求的响应方法实施例的详细流程图,本实施例可以应用于DNS服务器上,本实施例可以包括以下步骤:
步骤S401:响应于客户端向所述DNS服务器发送DNS请求,所述DNS服务器的内核态响应程序获取所述DNS请求。
本步骤中,所述DNS服务器的内核态响应程序获取所述DNS请求的具体过程,在图2对应的一种DNS请求的响应方法实施例中已进行了介绍,这里不再赘述。
步骤S402:所述内核态响应程序判断所述DNS服务器的缓存中是否存在所述DNS请求的应答数据,若存在,进入步骤S403,若不存在,进入步骤S405。
内核态响应程序根据所述DNS请求,判断所DNS服务器的缓存中是否存在该DNS请求的应答数据,若DNS服务器中存在该DNS请求的应答数据,则执行步骤S403的动作;若DNS服务器中不存在该DNS请求的应答数据,则执行步骤S405的动作。
步骤S403:所述内核态响应程序在所述DNS服务器的缓存中查询所述 DNS请求的应答数据。
在本步骤中,内核态响应程序在所述DNS服务器的缓存中查询所述DNS 请求的应答数据。对于,内核态响应程序在DNS服务器中查询所述DNS请求的应答数据的具体过程在图1所示的实施例中已进行介绍,这里不再赘述。
步骤S404:将查询到的所述DNS请求的应答数据发送所述客户端。
内核态响应程序从DNS服务器的缓存中查询到DNS请求的应答数据,将此应答数发送到所述客户端。
步骤S405:所述内核态响应程序将所述DNS请求发送至所述DNS服务器的用户态响应装置。
在本步骤中,内核态响应程序将客户端发送的DNS请求发送至DNS服务器的用户态响应装置,以便用户态响应装置响应客户端发送的DNS请求,具体的,用户态响应装置响应客户端发送的DNS请求的过程由步骤S406进行详细介绍。
步骤S406:所述用户态响应装置响应所述DNS请求,得到所述DNS请求的应答数据。
本步骤中,用户态响应装置将接收的DNS请求,通过DNS服务器中的内核态响应程序从DNS服务器的存储设备进行读取等内核级操作,生成该DNS 请求的应答数据。
步骤S407:所述用户态响应装置将所述应答数据发送至所述内核态响应程序。
在本步骤中,用户态响应装置通过内核态响应程序中的钩子点 NF_INET_LOCAL_OUT,将响应DNS请求的应答数据发送至内核态响应程序。
在内核态响应程序获取用户态响应装置返回的应答数据后,将DNS请求和应答数据对应的保存在DNS服务器的缓存中,例如,保存在DNS缓存中的应答关系表中。当DNS服务器再次响应相同的DNS请求时,DNS服务器中的内核态响应程序直接从DNS服务器的缓存中获取应答数据。
步骤S408:内核态响应程序将所述DNS请求的应答数据发送至所述客户端。
内核态响应程序将DNS请求的应答数据发送至客户端,此时,完成了对客户端发送的DNS请求的响应。
需要说明的是,在本步骤的内核态响应程序将DNS请求的应答数据发送至客户端,和上步骤的内核态响应程序将DNS请求和应答数据对应的保存在 DNS服务器的缓存中,这两个动作没有先后顺序。
在本实施例中,内核态响应程序获取客户端发送的DNS请求后,首先判断在DNS服务器的缓存中是否存在客户端发送的DNS请求的应答数据,若存在,内核态响应程序直接从DNS服务器的缓存中获取该DNS请求对应的应答数据;若不存在,内核态响应程序通过用户态响应装置来获取该DNS请求的应答数据,并将该DNS请求和应答数据对应保存在DNS服务器的缓存中,当内核态响应程序下次响应相同的DNS请求时,直接从DNS服务器的缓存中获取,避免了响应相同的DNS请求时,重复通过用户态响应装置来获取应答数据,并且直接从DNS服务器的缓存中获取应答数据的速度要快于通过用户态响应装置获取应答数据,从而使得DNS服务器响应客户端发送的DNS请求的效率得到提高。
参考图5,示出了本申请的一种应答数据的保存方法实施例的流程图,本实施例可以应用于图1所示的客户端上,本实施例可以包括:
步骤S501:响应于用户触发DNS请求,客户端将所述DNS请求发送至DNS 服务器,由所述DNS服务器的内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据,并将查询到的所述DNS请求的应答数据发送给所述客户端。
在用户触发DNS请求时,客户端将该DNS请求发送至DNS服务器,由所述DNS服务器的内核响应装置在所述DNS服务器的缓存中查询该DNS请求的应答数据,若DNS服务器的缓存中存在该DNS请求的应答数据时,内核态响应程序直接从DNS服务器的内存中获取该DNS请求的应答数据;若DNS服务器的缓存中不存在该DNS请求的应答数据时,内核态响应程序按照图4所对应的方法实施例中步骤S405~步骤S408的动作来执行,得到该DNS请求的应答数据,并将该DNS请求的应答数据发送给客户端。
步骤S502:将所述DNS服务器的内核态响应程序发送的应答数据与所述 DNS请求对应保存。
在本步骤中,客户端将DNS服务器的内核态响应程序发送的应答数据与该DNS请求对应保存在客户端中,例如,保存在客户端的内存中或者保存在客户端的存储设备等,具体的可以将DNS请求和应答数据对应保存在内存或者存储设备的应答关系表中。
当用户下一次触发相同的DNS请求时,客户端根据用户触发的DNS请求,直接从客户端内存或者存储设备中的应答关系表中,查询该DNS请求的应答数据。
需要说明是,本实施例中客户端DNS请求和应答数据对应的保存在应答关系表中,在实际的应用中,可以以其他形式将DNS请求和应答数据进行保存,本申请对保存的形式不作限定。
在本申请实施例中,当客户端响应用户触发相同的DNS请求,客户端直接从其内存或存储设备中获取该DNS请求的应答数据;当客户端响应用于第一次触发一DNS请求时,客户端通过DNS服务器获取该DNS请求的应答数据,并将该DNS请求和应答数据保存在客户端的存储设备中,从而提高了客户端响应用户触发的DNS请求的响应效率,提升用户体验。
与上述本申请一种DNS请求的响应方法实施例所提供的方法相对应,参考图6,本申请还提供了一种DNS请求的响应装置实施例,在本实施例中,该装置可以集成于DNS服务器端,该装置可以包括:
获取单元601,用于响应于客户端向所述DNS服务器发送DNS请求,获取所述DNS请求。
其中,所述获取单元601可以包括:
获取特征子单元,用于响应于客户端向所述DNS服务器发送客户端请求,获取所述客户端请求的请求特征。
获取请求子单元,用于判断所述请求特征是否满足预先设置的DNS请求的DNS特征,如果是,则截获该满足DNS特征的客户端请求。
查询单元602,用于在所述DNS服务器的缓存中查询所述DNS请求的应答数据。
具体的,查询单元602可以包括:
查询子单元,用于在DNS服务器的缓存中定位所述应答关系表,并在所述应答关系表中查询所述DNS请求对应的应答数据。
具体的,查询单元602还可以包括:
发送请求子单元,用于将所述DNS请求发送至所述DNS服务器的用户态响应装置。
发送应答数据子单元,用于响应于所述用户态响应装置返回所述DNS请求的应答数据,将所述DNS请求的应答数据发送至所述客户端。
保存子单元,用于将所述DNS请求的应答数据与所述DNS请求对应保存至所述DNS服务器的缓存中。
具体的,保存子单元包括保存模块,用于将所述DNS请求的应答数据与所述DNS请求,对应保存至所述应答关系表中。
发送单元603,用于将查询到的所述DNS请求的应答数据发送给所述客户端。
本实施例装置中,当客户端发送的相同的DNS请求时,DNS服务器中的内核态响应程序直接根据此DNS请求,从DNS服务器的缓存中获取该DNS请求对应的应答数据,并将该应答数据发送给客户端,因此,可以解决DNS服务器响应相同的DNS请求时,重复通过用户态响应装置获取该DNS请求的应答数据而导致的DNS服务器响应效率低的问题。
参考图7,本申请还提供了一种应答数据的保存装置实施例,该装置可以集成于客户端上,在本实施例中,该装置可以包括:
获取应答数据单元701,用于响应于用户触发DNS请求,将所述DNS请求发送至DNS服务器,由所述DNS服务器的内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据,并将查询到的所述DNS请求的应答数据发送给所述装置;
保存单元702,用于将所述DNS服务器的内核态响应程序发送的应答数据与所述DNS请求对应保存。
具体的,该装置还可以包括:
反馈单元,用于在下一次用户触发相同的DNS请求时,依据所述相同的 DNS请求查询对应的应答数据,并将查询到的应答数据返回给用户。
在本实施例中,当客户端响应用户触发相同的DNS请求,客户端直接从其存储设备中获取该DNS请求的应答数据;当客户端响应用于触发的首次 DNS请求时,客户端通过DNS服务器获取该DNS请求的应答数据,并将该DNS 请求和应答数据保存在客户端的存储设备中,从而提高了客户端响应用户触发的DNS请求的响应效率,提升用户体验。
参考图8,示出了本申请的一种网络请求的响应方法实施例的流程图,本实施例可以应用于通过计算机网络或通信网络相互连接的两个或多个计算设备中的至少一个,本实施例可以包括:
步骤801:所述计算设备接收网络请求,其中,所述计算设备包括内核态响应程序以及内核态响应程序可访问的缓存区,所述网络请求包含源地址。
其中,计算设备可以包括内核态响应程序和该内核态响应程序可访问的缓存区,缓存区中可以存放对应于网络请求的应答数据。该网络请求可以包括源地址,该源地址可以IP地址(例如:202.17.48)或者能够标识网络请求的来源的其他地址(例如abcde.com等)。该网络请求还可以包括请求内容,该请求内容用于描述该网络请求的目的,例如,请求访问网站A的一段“新车发布”的视频,等等。
步骤802:所述计算设备的内核态响应程序获取所述网络请求。
计算设备的操作系统的内核所运行的模式称为内核态,运行在内核态模式下的代码称为内核态响应程序。内核态响应程序可以截获到该网络请求,并读取网络请求的数据包,从而获取其中包括的源地址,以及请求内容。
步骤803:所述内核态响应程序在所述缓存区中查询所述网络请求对应的应答数据。
内核态响应程序在缓存区中查询该网络请求对应的答应数据。例如,内核态响应程序根据请求内容查询对应的应答数据,例如,查询到网站A的一段“新车发布”的视频的访问地址。
步骤804:所述计算设备将查询到的所述应答数据发送给所述网络请求中的源地址。
接着计算设备将查询到的应答数据发送给网络请求中的源地址,例如发送给客户端A,由客户端A根据网站A的一段“新车发布”的视频的访问地址,来访问该视频。
本实施例中,计算设备接收到网络请求后,内核态响应程序在缓存区中查询该网络请求对应的应答数据,再将查询到的所述应答数据发送给所述网络请求中的源地址,可以通过上述方式将应答数据较为快速地返回源地址,提高了网络请求的响应效率。
该计算设备通过计算机网络或通信网络与其他计算设备相互连接,该计算设备具体可以包括:内核态响应程序、所述内核态响应程序可访问的缓存区、接收单元和发送单元,所述内核态响应程序可以为:在所述服务器的操作系统的内核所运行的模式下的代码;其中,
所述接收单元,用于接收网络请求,
所述内核态响应程序,用于获取所述网络请求,以及在所述缓存区中查询所述网络请求对应的应答数据;
所述发送单元,用于将查询到的所述应答数据发送给所述网络请求中的源地址。
本实施例中,计算设备接收到网络请求后,内核态响应程序在缓存区中查询该网络请求对应的应答数据,计算设备再将查询到的所述应答数据发送给所述网络请求中的源地址,可以通过上述方式将应答数据较为快速地返回源地址,提高了网络请求的响应效率。
本申请还提供了一种计算机可读介质,该计算机可读介质存储有使计算机执行用于业务故障的监控程序,该处理包括以下步骤:
发送步骤,其响应于客户端向所述DNS服务器发送DNS请求,所述DNS 服务器的内核态响应程序获取所述DNS请求;所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
查询步骤,其所述内核态响应程序在所述DNS服务器的缓存中查询所述 DNS请求的应答数据;
发送步骤,其将查询到的所述DNS请求的应答数据发送给所述客户端。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本申请所提供的DNS请求的响应方法及DNS服务器、应答数据的保存方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (14)

1.一种域名系统DNS请求的响应方法,其特征在于,该方法应用于DNS服务器上,该方法包括:
响应于客户端向所述DNS服务器发送DNS请求,所述DNS服务器的内核态响应程序获取所述DNS请求;所述内核态响应程序为::在所述服务器的操作系统的内核所运行的模式下的代码;
所述内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据;
将查询到的所述DNS请求的应答数据发送给所述客户端。
2.根据权利要求1所述的方法,其特征在于,如果所述DNS服务器的缓存中查询不到所述DNS请求的应答数据,还包括:
所述内核态响应程序将所述DNS请求发送至所述DNS服务器的用户态响应装置;
响应于所述用户态响应装置返回所述DNS请求的应答数据,将所述DNS请求的应答数据发送至所述客户端。
3.根据权利要求2所述的方法,其特征在于,还包括::
所述内核态响应程序将所述DNS请求的应答数据与所述DNS请求对应保存至所述DNS服务器的缓存中。
4.根据权利要求3所述的方法,其特征在于,还包括::
在所述DNS服务器的缓存中设置一应答关系表,所述应答关系表用于对应保存DNS请求和应答数据;
相应的,所述内核态响应程序将所述DNS请求的应答数据与所述DNS请求对应保存至所述DNS服务器的缓存中,具体为:
所述内核态响应程序将所述DNS请求的应答数据与所述DNS请求,对应保存至所述应答关系表中。
5.根据权利要求4所述的方法,其特征在于,所述内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据,包括:
所述内核态响应程序在DNS服务器的缓存中定位所述应答关系表,并在所述应答关系表中查询所述DNS请求对应的应答数据。
6.根据权利要求4所述的方法,其特征在于,所述应答关系表采用关键字-健值的形式保存DNS请求和应答数据;所述关键字包括:DNS请求的域名和类型,所述应答数据包括:域名的资源记录。
7.根据权利要求1所述的方法,其特征在于,所述响应于客户端向所述DNS服务器发送DNS请求,所述DNS服务器的内核态响应程序获取所述DNS请求,包括:
响应于客户端向所述DNS服务器发送客户端请求,获取所述客户端请求的请求特征;
判断所述请求特征是否满足预先设置的DNS请求的DNS特征,如果是,则截获该满足DNS特征的客户端请求。
8.一种应答数据的保存方法,其特征在于,该方法应用于客户端上,包括:
响应于用户触发DNS请求,客户端将所述DNS请求发送至DNS服务器,由所述DNS服务器的内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据,并将查询到的所述DNS请求的应答数据发送给所述客户端;所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
将所述DNS服务器的内核态响应程序发送的应答数据与所述DNS请求对应保存。
9.根据权利要求8所述的方法,其特征在于,在下一次用户触发相同的DNS请求时,还包括:
依据所述相同的DNS请求查询对应的应答数据,并将查询到的应答数据返回给用户。
10.一种DNS服务器,其特征在于,该DNS服务器包括:
获取单元,用于响应于客户端向所述DNS服务器发送DNS请求,获取所述DNS请求;
查询单元,用于在所述DNS服务器的缓存中查询所述DNS请求的应答数据;
发送单元,用于将查询到的所述DNS请求的应答数据发送给所述客户端。
11.一种客户端,其特征在于,该客户端包括:
获取应答数据单元,用于响应于用户触发DNS请求,,将所述DNS请求发送至DNS服务器,由所述DNS服务器的内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据,并将查询到的所述DNS请求的应答数据发送给所述装置;所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
保存单元,用于将所述DNS服务器的内核态响应程序发送的应答数据与所述DNS请求对应保存。
12.一种网络请求的响应方法,应用于通过计算机网络或通信网络相互连接的两个或多个计算设备中的至少一个,其特征在于,包括:
所述计算设备接收网络请求,其中,所述计算设备包括内核态响应程序以及内核态响应程序可访问的缓存区,所述网络请求包含源地址;所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
所述计算设备的内核态响应程序获取所述网络请求;
所述内核态响应程序在所述缓存区中查询所述网络请求对应的应答数据;
所述计算设备将查询到的所述应答数据发送给所述网络请求中的源地址。
13.一种计算设备,该计算设备通过计算机网络或通信网络与其他计算设备相互连接,其特征在于,该计算设备包括:
内核态响应程序以及所述内核态响应程序可访问的缓存区,所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
该计算设备还包括:接收单元和发送单元,
所述接收单元,用于接收网络请求,
所述内核态响应程序,用于获取所述网络请求,以及在所述缓存区中查询所述网络请求对应的应答数据;
所述发送单元,用于将查询到的所述应答数据发送给所述网络请求中的源地址。
14.一种计算机可读介质,该计算机可读介质存储有使计算机执行用于业务故障的监控程序,该处理包括以下步骤:
发送步骤,其响应于客户端向所述DNS服务器发送DNS请求,所述DNS服务器的内核态响应程序获取所述DNS请求;所述内核态响应程序为:在所述服务器的操作系统的内核所运行的模式下的代码;
查询步骤,其所述内核态响应程序在所述DNS服务器的缓存中查询所述DNS请求的应答数据;
发送步骤,其将查询到的所述DNS请求的应答数据发送给所述客户端。
CN201710243238.0A 2017-04-13 2017-04-13 Dns请求的响应方法及dns服务器 Pending CN109218454A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710243238.0A CN109218454A (zh) 2017-04-13 2017-04-13 Dns请求的响应方法及dns服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710243238.0A CN109218454A (zh) 2017-04-13 2017-04-13 Dns请求的响应方法及dns服务器

Publications (1)

Publication Number Publication Date
CN109218454A true CN109218454A (zh) 2019-01-15

Family

ID=64960520

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710243238.0A Pending CN109218454A (zh) 2017-04-13 2017-04-13 Dns请求的响应方法及dns服务器

Country Status (1)

Country Link
CN (1) CN109218454A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822309A (zh) * 2021-04-19 2021-05-18 北京视界云天科技有限公司 域名解析方法及装置
CN116204693A (zh) * 2023-04-27 2023-06-02 中国信息通信研究院 基于工业互联网的标识解析方法和装置、设备和介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185936A (zh) * 2011-06-23 2011-09-14 上海牙木通讯技术有限公司 一种基于linux操作系统的DNS服务系统和方法
CN103327025A (zh) * 2013-06-28 2013-09-25 北京奇虎科技有限公司 网络访问控制方法及装置
CN103957284A (zh) * 2014-04-04 2014-07-30 上海聚流软件科技有限公司 Dns行为的处理方法、装置及系统
CN104917851A (zh) * 2015-05-08 2015-09-16 亚信科技(南京)有限公司 信息处理方法及dns缓存服务器
CN105847461A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 用于智能设备的数据包处理方法和系统
CN106549944A (zh) * 2016-10-17 2017-03-29 上海斐讯数据通信技术有限公司 一种基于Linux内核哈希表的域名过滤方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185936A (zh) * 2011-06-23 2011-09-14 上海牙木通讯技术有限公司 一种基于linux操作系统的DNS服务系统和方法
CN103327025A (zh) * 2013-06-28 2013-09-25 北京奇虎科技有限公司 网络访问控制方法及装置
CN103957284A (zh) * 2014-04-04 2014-07-30 上海聚流软件科技有限公司 Dns行为的处理方法、装置及系统
CN104917851A (zh) * 2015-05-08 2015-09-16 亚信科技(南京)有限公司 信息处理方法及dns缓存服务器
CN105847461A (zh) * 2016-03-31 2016-08-10 乐视控股(北京)有限公司 用于智能设备的数据包处理方法和系统
CN106549944A (zh) * 2016-10-17 2017-03-29 上海斐讯数据通信技术有限公司 一种基于Linux内核哈希表的域名过滤方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WILLIAM BOSWELL: "《Windows 2000 Server 技术内幕》", 30 September 2001 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112822309A (zh) * 2021-04-19 2021-05-18 北京视界云天科技有限公司 域名解析方法及装置
CN112822309B (zh) * 2021-04-19 2021-07-16 北京视界云天科技有限公司 域名解析方法及装置
CN116204693A (zh) * 2023-04-27 2023-06-02 中国信息通信研究院 基于工业互联网的标识解析方法和装置、设备和介质

Similar Documents

Publication Publication Date Title
CN111800458B (zh) 一种Kubernetes容器云平台的动态负载均衡方法及系统
CN106161669A (zh) 一种快速域名解析方法和系统、及其终端和服务器
CN106230942B (zh) 一种回源访问的方法及系统
CN107104921B (zh) DDoS攻击防御方法及装置
CN103312716B (zh) 一种访问互联网信息的方法及系统
CN105704036B (zh) 报文转发方法、装置和系统
CN108737532A (zh) 一种资源获取方法、客户端、计算机设备及可读介质
CN103701957A (zh) Dns递归方法及其系统
WO2012065641A1 (en) Dns server arrangement and method
CN107528862A (zh) 域名解析的方法及装置
CN102299969A (zh) 一种Web访问方法、七层交换设备和服务网络
CN106067890A (zh) 一种域名解析方法、装置及系统
CN109067936B (zh) 一种域名解析的方法及装置
CN104113447A (zh) 监测域名解析污染的方法、装置及系统
CN110769080B (zh) 一种域名解析方法、相关产品及计算机可读存储介质
CN103581351B (zh) 网络访问的方法和装置
CN103428302A (zh) 一种域名解析方法、域名解析服务器及域名解析系统
CN107070988A (zh) 报文处理方法及装置
CN102045403A (zh) 分布式网络数据处理方法和装置及系统
CN105357212A (zh) 一种保证安全和隐私的dns端到端解析方法
CN102624914A (zh) 通过Web方式探测客户端使用的本地DNS服务器的方法
CN104935653A (zh) 一种访问热点资源的旁路缓存方法和装置
CN104301415A (zh) 一种基于http重定向的全局负载均衡方法
CN102572011B (zh) 数据处理方法、装置和系统
CN109413224B (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190115

RJ01 Rejection of invention patent application after publication