CN111010460A - 域名解析方法和装置 - Google Patents
域名解析方法和装置 Download PDFInfo
- Publication number
- CN111010460A CN111010460A CN201911294177.6A CN201911294177A CN111010460A CN 111010460 A CN111010460 A CN 111010460A CN 201911294177 A CN201911294177 A CN 201911294177A CN 111010460 A CN111010460 A CN 111010460A
- Authority
- CN
- China
- Prior art keywords
- domain name
- resolved
- data request
- target data
- name 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
Links
Images
Classifications
-
- 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/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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/59—Network arrangements, protocols or services for addressing or naming using proxies for addressing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例提供一种域名解析方法和装置,涉及通信领域,用于提高域名系统的处理性能,提高域名解析的响应速度。该方法包括:域名服务器通过UIO驱动的方式接收客户端发送的多个数据请求;域名服务器过滤多个数据请求,获得第一目标数据请求;域名服务器支持解析第一目标数据请求,第一目标数据请求包括待解析域名;域名服务器根据预设映射关系确定待解析域名对应的IP地址;预设映射关系包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。本发明用于域名服务器的域名解析。
Description
技术领域
本发明涉及通信领域,尤其涉及一种域名解析方法和装置。
背景技术
域名系统(domain name system,DNS)是互联网架构中的最基础、最核心的一项服务,用于实现域名和互联网协议(internet protocol,IP)地址的相互映射,使网络用户方便的访问互联网,而不用去记忆枯燥繁琐的IP地址数串,为众多的网络应用提供根本性支撑。
由于伯克利互联网域名(berkeley internet name domain,BIND)软件的稳定性以及支持的DNS规范和标准的广泛性,因此BIND软件被用于DNS的授权、递归和缓存,用于实现域名与IP地址的映射。随着互联网的快速发展,互联网中需要处理的数据量日益暴增,而BIND软件功能复杂,数据处理能力较低,其数据处理性能面对暴增的数据量已显不足。
发明内容
本发明的实施例提供一种域名解析方法和装置,用于提高域名系统的处理性能,提高域名解析的响应速度。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,提供一种域名解析方法,包括:域名服务器通过UIO驱动的方式接收客户端发送的多个数据请求;域名服务器过滤多个数据请求,获得第一目标数据请求;域名服务器支持解析第一目标数据请求,第一目标数据请求包括待解析域名;域名服务器根据预设映射关系确定待解析域名对应的IP地址;预设映射关系包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。
第二方面,提供一种域名解析装置,包括:收发模块,用于通过UIO驱动的方式接收客户端发送的多个数据请求;处理模块,用于过滤收发模块接收的多个数据请求,获得第一目标数据请求;域名服务器支持解析第一目标数据请求,第一目标数据请求包括待解析域名;处理模块,还用于根据预设映射关系确定待解析域名对应的IP地址;预设映射关系包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。
第三方面,提供一种域名解析装置,包括:存储器、处理器、总线和通信接口;存储器用于存储计算机执行指令,处理器与存储器通过总线连接;当域名解析装置运行时,处理器执行存储器存储的计算机执行指令,以使域名解析装置执行如第一方面提供的域名解析方法。
第四方面,提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行如第一方面提供的域名解析方法。
本发明实施例提供一种域名解析方法和装置,该方法包括:域名服务器通过UIO驱动的方式接收客户端发送的多个数据请求;域名服务器过滤多个数据请求,获得第一目标数据请求;域名服务器支持解析第一目标数据请求,第一目标数据请求包括待解析域名;域名服务器根据预设映射关系确定待解析域名对应的IP地址;预设映射关系包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。本发明实施例提供的域名解析方法通过DPDK提供的UIO接口接收客户端发送的数据请求,绕过了内核对数据请求的处理,提高了域名服务器对数据请求的处理效率;且通过过滤数据请求,滤除了不符合DNS规范的数据请求,提高了域名服务器的抗攻击能力的同时,也能减少域名服务器数据处理量,进一步提升域名服务器的处理性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种域名解析的系统架构示意图;
图2为本发明实施例提供的一种域名服务器的结构示意图;
图3为本发明实施例提供的一种域名解析方法流程示意图一;
图4为本发明实施例提供的一种DPDK的架构示意图;
图5为本发明实施例提供的一种DPDK的工作机制示意图;
图6为本发明实施例提供的一种数据请求的过滤流程示意图;
图7为本发明实施例提供的一种域名解析方法流程示意图二;
图8为本发明实施例提供的一种域名解析装置的结构示意图一;
图9为本发明实施例提供的一种域名解析装置的结构示意图二;
图10为本发明实施例提供的一种域名解析装置的结构示意图三;
图11为本发明实施例提供的一种域名解析装置的结构示意图四。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
还需要说明的是,本发明实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
本发明实施例中涉及的技术名词解释:
DNS:互联网架构中的最基础、最核心的一项服务,用于实现域名和IP地址相互映射,使客户端能够通过域名方便的访问互联网,而不用去记忆枯燥繁琐的IP数串,为众多网络应用提供根本性支撑。
BIND:一款用于DNS的开源软件,用于支持在互联网上发布DNS信息,并为客户端提供DNS查询,BIND是迄今为止使用最广泛的DNS软件,BIND为互联网提供了一个强大的和稳定的组织,用于实现DNS协议。
数据平面开发套件(data plane development kit,DPDK):通过轮询方式接收数据包,避免接收数据包时产生中断。在收到数据包时,经DPDK重载的网卡驱动不会通过中断通知中央处理器(central processing unit,CPU),而是直接将数据包存入内存,交付应用层软件通过DPDK提供的接口来直接处理,节省了大量的CPU中断时间和内存拷贝时间。
用户空间输入输出(user space input/output,UIO):运行在用户空间的I/O技术,通过用户空间实现驱动的功能,从而避免设备的驱动程序随内核的更新而更新。
域名解析是将域名指向IP地址的一种服务,方便客户端通过域名连接至相应的互联网页面,而不用记录繁杂的IP数串。域名解析的系统架构可以如图1所示,包括:客户端01、DNS代理服务器02、一级域名服务器03、二级域名服务器04和三级域名服务器05。依据图1所示的系统架构,域名解析的流程可以为:
客户端01发起域名解析请求,域名解析请求中包括待解析域名,如www.example.com;DNS代理服务器02接收域名解析请求,根据域名解析请求中的待解析域名查询自身缓存中是否存在待解析域名对应的IP地址,若存在,则向客户端01返回该IP地址,域名解析流程结束;若不存在,则将域名解析请求发送至一级域名服务器03,一级域名服务器03内未存储待解析域名对应的IP地址,向DNS代理服务器02返回二级域名服务器04的IP地址;DNS代理服务器02向二级域名服务器04发送该域名解析请求,若二级域名服务器04内未存储待解析域名对应的IP地址,则向DNS代理服务器02返回三级域名服务器05的IP地址,DNS代理服务器02向三级域名服务器05发送该域名解析请求,若三级域名服务器05内存储有待解析域名对应的IP地址,则向DNS代理服务器02返回待解析域名对应的IP地址,DNS代理服务器02将待解析域名对应的IP地址返回给客户端01。
在解析上述的域名www.example.com时,一级域名服务器03可以为根域名服务器,二级域名服务器04可以为.com域名服务器,三级域名服务器05可以为example.com域名服务器。
目前的域名解析中,因为BIND软件支持的DNS规范和标准最为广泛,因此BIND软件常被用于配置域名服务器。但随着互联网的快速发展,互联网的数据处理量暴增,通过BIND软件配置的域名服务器的数据处理性能已显劣势,域名解析速度变慢。
针对上述问题,本发明实施例提供一种新的域名服务器10,如图2所示,包括数据包收发模块11和处理模块12。
可选的,数据包收发模块11和处理模块12包括计算机程序产品,当计算机程序产品运行时,数据包收发模块11和处理模块12执行相应的功能。
具体的,数据包收发模块11可以为DPDK,用于通过轮询的方式接收客户端发送的请求数据包,还可以用于向客户端返回响应请求数据包。
处理模块12可以包括数据包过滤子模块121、系统缓存子模块122、数据包转发子模块123和BIND软件124。
数据包过滤子模块121,用于获取BIND软件124的配置文件,并根据BIND软件124的配置及DNS相关规范过滤接收的请求数据包,减少域名服务器的数据处理量。
系统缓存子模块122,用于存储域名服务器的响应请求数据包,以供客户端的请求数据包查询。
数据包转发子模块123,用于解析请求数据包,以获取请求数据包中客户端的IP地址,并对请求数据包重新组包。
BIND软件124,用于配置域名服务器的授权域、访问控制列表(access controllists,ACL)和视图VIEW等文件,并设置域名服务器的监听地址为127.0.0.1。
需要说明的是,客户端可以通过BIND软件124查询域名对应的IP地址,也可以通过系统缓存子模块122中的响应请求数据包查询的域名对应的IP地址。而系统缓存子模块122中的响应请求数据包可以由BIND软件124生成,响应请求数据包中不仅包括域名与其对应的IP地址,还包括BIND软件124设置的生存时间(time to live,TTL)。系统缓存子模块122可以接收BIND软件124生成的响应请求数据包并存储,不需要对响应请求数据包解析,且响应请求数据包中的TTL在系统缓存子模块122中不变。
域名服务器在接收请求数据包时,请求数据包需要由数据包收发模块11、数据包过滤子模块121、系统缓存子模块122、数据包转发子模块123和BIND软件124依次进行处理,但在向客户端返回响应请求数据包时,响应请求数据包可以由BIND软件124、数据包转发子模块123、系统缓存子模块122和数据包收发子模块11依次进行处理。
依据上述的域名服务器,本发明实施例提供一种域名解析方法,如图3所示,包括:
S101、域名服务器通过UIO驱动的方式接收客户端发送的多个数据请求。
具体的,本发明实施例中域名服务器通过DPDK接收客户端发送的数据请求,DPDK的架构可以如图4所示,包括:DPDK、应用程序和硬件。
其中,DPDK工作在用户空间,包括存储缓冲区(memory buffer,MBUF)管理、无锁环队列、流分类处理、轮询模式驱动(poll mode driver,PMD)和环境抽象层(environmentabstraction layer,EAL)。MBUF管理,用于分配内存,创建缓冲区,通过建立MBUF对象封装实际数据帧,供应用程序使用;无锁环队列,用于针对单个或多个数据包生产者(如客户端)或单个或多个数据包消费者(如域名服务器)的出入队列提供无锁机制,减少系统开销;流分类处理,用于通过网卡对客户端发送的数据包分类;PMD,用于通过非中断模式的轮询方式接收数据包,避免中断开销;EAL,用于访问底层资源,如硬件和内核空间。
应用程序可以是处理数据包的软件程序,如域名服务器中的BIND软件;硬件可以是上述的客户端,如手机或电脑。
需要说明的是,因为上述的EAL用于访问底层资源,因此EAL不仅分布在用户空间,也有部分分布在内核空间。同时,DPDK提供UIO接口,域名服务器可以通过PMD驱动UIO接收客户端的数据请求,即DPDK可以以轮询的方式驱动用户空间的IO接口接收客户端发送的数据请求,图4中未示出UIO。
参照图4所示的DPDK架构,域名服务器在接收客户端发送的数据请求时,可以通过UIO接口以轮询的方式接收数据请求,其工作机制可以如图5所示,当DPDK接收数据请求时,若产生硬件中断,则DPDK基于UIO接口和PDM放弃中断流程,通过应用层在设备映射取包,并将权限交给应用层处理,由应用层对数据请求进行处理,避免因硬件中断而使内核处理数据请求的流程,从而减少系统开销的同时,提升域名服务器的数据请求的接收效率。
上述的客户端可以为用户设备(user equipment,UE),如:手机、电脑,还可以为智能电话、个人数字助理(personal digital assistant,PDA)、膝上型计算机、平板电脑、手持式计算设备和/或用于通过互联网进行通信的其它设备。上述的数据请求可以是单个客户端发送的多个数据请求,也可以是多个客户端发起的多个数据请求。
S102、域名服务器过滤多个数据请求,获得第一目标数据请求。
其中,域名服务器支持解析第一目标数据请求,第一目标数据请求包括待解析域名。
具体的,第一目标数据请求为DNS请求,用于获取DNS请求中待解析域名对应的IP地址。因为客户端发起的数据请求中不仅包括DNS请求,还包括其他如地址解析协议(address resolution protocol,ARP)请求和动态主机配置协议(dynamic hostconfiguration protocol,DHCP)请求等数据请求,因此域名服务器可以在接收数据请求后进行过滤,滤除部分数据请求,提升域名服务器的数据处理速度。
需要说明的是,因为不同的域名服务器管理的域范围可能不同,因此这里的域名服务器在过滤获得第一目标数据请求后,还用于解析第一目标数据请求中的待解析域名对应的IP地址,即域名服务器支持解析第一目标数据请求。此时,域名服务器可以是图1所示的系统架构中的三级域名服务器;当然域名服务器也可以是图1所示的系统架构中的一级域名服务器或二级域名服务器。不同的是,当域名服务器是图1中的一级域名服务器或二级域名服务器时,域名服务器不能返回待解析域名对应的IP地址,而是向DNS代理服务器返回下一级的域名服务器,如域名服务器为图1所示的一级域名服务器时,一级域名服务器向DNS代理服务器返回二级域名服务器的地址;当域名服务器为图1所示的二级域名服务器时,二级域名服务器向DNS代理服务器返回三级域名服务器的地址。
可选的,因为在本发明实施例中域名服务器用于解析DNS请求中待解析域名对应的IP地址,因此域名服务器可以根据DNS相关规范对数据请求进行过滤,以减少域名服务器的数据处理量。域名服务器对数据请求的过滤可以参考DNS相关规范进行,以获得的第一目标数据请求,数据请求的过滤可以如图6所示,包括:
S1021、根据传输数据请求的传输协议和端口号过滤数据请求。
具体的,因为DNS请求是通过用户数据报协议(user datagram protocol,UDP)和53端口传输的,因此可以根据传输数据请求的传输协议和端口号过滤部分数据请求,从中获得用于域名解析的DNS请求。
示例性的,域名服务器可以设置用于传输数据请求的预设传输协议为UDP协议,预设端口号为53。若数据请求通过预设传输协议和预设端口号传输,则对数据请求进行其他处理;若数据请求未通过预设传输协议和预设端口号传输,则将该数据请求丢弃,不作处理。
S1022、根据数据请求的报文格式过滤数据请求。
具体的,DNS请求的报文格式可以如下表1所示。
表1
其中,会话标识是DNS请求的身份证明(identity document,ID)标识,数据请求和其对应的响应请求的ID标识相同;问题区域用于记录待解析域名,其数据格式如下表2所示。
表2
其中,查询类型为1时,数据请求用于查询域名对应的IP地址;查询类型为2时,数据请求用于查询对应的域名服务器,查询类型为5时,数据请求用于查询域名的规范名称;查询类型还包括其他多种类型,在此不再一一赘述。
标志位的数据格式如下表3所示。
表3
QR | opcode | AA | TC | RD | RA | zero | rcode |
其中,请求/响应(query/response,QR)字段用于指示该数据请求是查询还是响应,0表示查询,1表示响应;操作码(operation code,opcode)为0时,数据请求为标准查询,用于查询域名对应的IP地址;opcode为1时,数据请求为反向查询,用于查询IP地址对应的域名;opcode为2时,数据请求用于请求服务器状态。
结合上述DNS请求的报文格式,在本发明实施例中查询类型应为1,QR应为0。若数据请求的报文格式符合查询类型为1,QR为0,则对数据请求进行其他处理;若数据请求的报文格式不符合查询类型为1,QR为0,则丢弃该数据请求,或向客户端返回FORMERROR代码,指示数据请求的报文格式错误。
当然,在数据请求用于解析域名对应的IP地址时,opcode为0;在数据请求用于解析IP地址对应的域名时,opcode为1。同时,由于DNS请求的报文长度不能超过512bytes,因此在对数据请求过滤时,还可以根据数据请求的报文长度滤除超过512bytes的数据请求。
需要说明的是,上述根据数据请求的报文格式滤除数据请求的过程仅为示例性的,实际中,本领域的技术人员也可以根据其他需要对数据请求的报文格式进行限制、过滤。
S1023、根据数据请求中的EDNS版本号过滤数据请求。
具体的,目前的DNS请求中,域名系统扩展机制(extension mechanisms for DNS,EDNS)版本号仅包括一个版本号0,因此,若EDNS版本号为0,则对数据请求进行其他处理;若EDNS版本号不为0,则向客户端返回BADVERS代码,指示数据请求报文中的EDNS版本号错误。
S1024、根据域名服务器管理的域范围过滤数据请求。
具体的,每台域名服务器可能管理的域范围不同,如根域名服务器管理互联网的主目录,可以指示各个顶级域名相应的域名服务器;如.com域名服务器管理域名包括com的域名的目录,用于指示各个包括com的域名对应的域名服务器。因此,域名服务器在解析待解析域名时,若待解析域名不属于域名服务器管理的域范围,则向客户端返回REFUSED代码,用于指示该数据请求中的待解析域名不在域名服务器管理的域范围。
需要注意的是,上述对数据请求过滤的步骤是可以改变的,上述的过滤流程仅为示例性的,过滤的最终结果均是为了使获得的第一目标数据请求具备以下特点:
(1)第一目标数据请求通过预设传输协议和预设端口号传输;预设传输协议和预设端口号为域名服务器传输数据的协议和端口。
(2)第一目标数据请求的报文格式符合DNS报文的格式要求。
(3)第一目标数据请求中的EDNS版本号为预设版本号。
(4)第一目标数据请求中的待解析域名在域名服务器管理的域范围内。
S103、域名服务器根据预设映射关系确定待解析域名对应的IP地址。
其中,预设映射关系包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。
可选的,如图7所示,步骤S103具体包括:
根据待解析域名查询域名服务器的资源记录(resource record,RR),以获取待解析域名对应的IP地址。
其中,RR包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。
具体的,RR包括起始授权(start of authority,SOA)记录、域名服务器(nameserver,NS)记录、地址(address,A)记录、规范名(canonical name,CNAME)记录、邮件交换器(mail exchanger,MX)记录和指针(pointer,PTR)记录。
其中,SOA记录用于指示主服务器记录,用于指示域的最佳信息来源服务区;NS记录用于指示用于解析域名的相应域名服务器;A记录用于指示域名对应的IP地址,CNAME记录用于将一个域名指向另一个域名;MX记录用于建立电子邮箱服务,指向邮件服务器;PTR记录是A记录的逆向记录,用于指示IP地址对应的域名。
域名服务器可以管理多个IP地址,即域名服务器可以支持多个域名的解析,域名服务器中包括至少一条A记录。域名服务器可以根据待解析域名查询A记录,若A记录中存在待解析域名,则确定该A记录中的IP地址为待解析域名对应的IP地址。
需要说明的是,域名服务器在根据待解析域名确定其对应的IP地址前,还需要对客户端发送的数据请求进行解析,以获取客户端的IP地址;将获得的客户端的IP地址添加至EDNS客户子网EDNS CLIENT SUBNET的数据中,并将该EDNS CLIENT SUBNET的数据添加至EDNS的数据中,重新对数据请求组包,使域名服务器查询重新组包的数据请求中的待解析域名对应的IP地址。重新组包的数据请求包括上述的EDNS数据和待解析域名。
将该EDNS的数据和待解析域名重新组包为数据请求,域名服务器对该重新组包的数据请求进行解析。
可选的,如图7所示,本发明实施例提供的域名解析方法还包括:
S104、将响应请求存储至系统缓存。
其中,响应请求为域名服务器对第一目标数据请求的响应,包括待解析域名对应的IP地址。
具体的,域名服务器获得待解析域名对应的IP地址后,向客户端返回待解析域名对应的IP地址,该IP地址通过响应请求传输。本发明实施例中的域名服务器内存储有系统缓存,该系统缓存用于存储域名服务器管理的域范围内的域名及IP地址的对应关系。
示例性的,若待解析域名为www.example.com,该待解析域名对应的IP地址为6.6.6.6,则域名服务器将该待解析域名及其对应的IP地址封装至响应请求,并将该响应请求存储至系统缓存后,再将该响应请求返回给客户端。
需要说明的是,这里的系统缓存与DNS代理服务器中的缓存不同,DNS代理服务器中的缓存需要对响应请求解析,以获取响应请求的内容,如响应请求中的域名、TTL和IP地址。其中,DSN代理服务器中的TTL值逐渐递减,当TTL过期时,该缓存的响应请求失效,DNS代理服务器仍需要通过域名服务器查询域名对应的IP地址。而本发明实施例中的域名解析方法应用于上述的一级域名服务器、二级域名服务器或三级域名服务器,系统缓存在接收响应请求后直接存储该响应请求,不需要对响应请求解析,且设置存储至系统缓存的响应请求的TTL值不递减,因此该响应请求可以长时间在系统缓存中存在。
可选的,如图7所示,在系统缓存中存储有域名与IP地址的对应关系时,域名解析方法还包括:
S105、域名服务器获取第二目标数据请求。
其中,第二目标数据请求包括待解析域名,域名服务器支持解析第二目标数据请求。
具体的,第二目标数据请求可以是域名服务器在系统缓存中存储域名与IP地址的对应关系后,由客户端发起的数据请求,这里第二目标数据请求中的待解析域名与第一目标数据请求中的待解析域名相同。步骤S105获取第二目标数据请求的过程与步骤S101和步骤S102的过程相同,此处不再赘述。
S106、域名服务器根据待解析域名查询系统缓存中的响应请求,以获取待解析域名对应的IP地址。
其中,响应请求包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。
具体的,域名服务器在接收客户端发送的第二目标数据请求后,根据第二目标数据请求中的待解析域名查询系统缓存,若系统缓存中存储的响应请求中包括待解析域名与IP地址的对应关系,则将该响应请求返回给客户端。
需要注意的是,这里响应请求中的TTL值是不变的,因此域名服务器在查询到包括待解析域名和其对应的IP地址的响应请求后,可以直接将该响应请求返回给客户端,而不需要考虑TTL值是否过期。
上述的域名解析方法流程可以由图2所示的域名服务器10实现,如通过数据包收发模块11执行步骤S101,通过数据包过滤子模块121执行步骤S102、S1021-S1024和S105,通过系统缓存子模块122执行步骤S104和S106,通过数据包转发子模块123执行上述获取客户端的IP地址及重新组包的流程,通过BIND软件124执行步骤S103。
本发明实施例提供一种域名解析方法,该方法包括:域名服务器通过UIO驱动的方式接收客户端发送的多个数据请求;域名服务器过滤多个数据请求,获得第一目标数据请求;域名服务器支持解析第一目标数据请求,第一目标数据请求包括待解析域名;域名服务器根据预设映射关系确定待解析域名对应的IP地址;预设映射关系包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。本发明实施例提供的域名解析方法通过DPDK提供的UIO接口接收客户端发送的数据请求,绕过了内核对数据请求的处理,提高了域名服务器对数据请求的处理效率;且通过过滤数据请求,滤除了不符合DNS规范的数据请求,提高了域名服务器的抗攻击能力的同时,也能减少域名服务器数据处理量,进一步提升域名服务器的处理性能。
如图8所示,本发明实施例还提供一种域名解析装置20,包括:
收发模块201,用于通过UIO接收客户端发送的多个数据请求。
处理模块202,用于过滤收发模块201接收的多个数据请求,以获得第一目标数据请求;域名服务器支持解析第一目标数据请求,第一目标数据请求包括待解析域名。
处理模块202,还用于根据预设映射关系确定待解析域名对应的IP地址;预设映射关系包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。
可选的,域名服务器支持解析第一目标数据请求,包括:
第一目标数据请求通过预设传输协议和预设端口号传输;预设传输协议和预设端口号为域名服务器传输数据的协议和端口;
第一目标数据请求的报文格式符合DNS报文的格式要求;
第一目标数据请求中的EDNS版本号为预设版本号;
第一目标数据请求中的待解析域名在域名服务器管理的域范围内。
可选的,处理模块202具体用于:根据待解析域名查询域名服务器的RR,以获取待解析域名对应的IP地址;RR包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。
可选的,如图9所示,域名解析装置20还包括缓存模块203。
缓存模块203,用于缓存响应请求;响应请求为域名服务器对第一目标数据请求的响应,包括待解析域名对应的IP地址。
可选的,处理模块202,还用于获取第二目标数据请求;第二目标数据请求包括待解析域名,域名服务器支持解析第二目标数据请求。
处理模块202,还用于根据待解析域名查询缓存模块203中的响应请求,以获取待解析域名对应的IP地址;响应请求包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。
可选的,如图10所示,域名解析装置20还包括转发模块204和BIND软件205。
转发模块204,用于解析客户端发送的数据请求,以获取客户端的IP地址。
转发模块204,还用于将获得的客户端的IP地址添加至EDNS客户子网EDNS CLIENTSUBNET的数据中,并将该EDNS CLIENT SUBNET的数据添加至EDNS的数据中,重新对数据请求组包,并将重新组包的数据请求转发给BIND软件205。重新组包的数据请求包括上述的EDNS数据和待解析域名。
BIND软件205,用于根据重新组包的数据请求中的客户端的IP地址为待解析域名查询对应的IP地址,客户端的IP地址不同,查询的待解析域名对应的IP地址也可能不同。
本发明实施例提供一种域名解析装置,该装置包括:收发模块,用于通过UIO驱动的方式接收客户端发送的多个数据请求;处理模块,用于过滤收发模块接收的多个数据请求,获得第一目标数据请求;域名服务器支持解析第一目标数据请求,第一目标数据请求包括待解析域名;处理模块,还用于根据预设映射关系确定待解析域名对应的IP地址;预设映射关系包括至少一个域名与至少一个IP地址的对应关系,至少一个域名包括待解析域名。本发明实施例提供的域名解析装置通过DPDK提供的UIO接口接收客户端发送的数据请求,绕过了内核对数据请求的处理,提高了域名服务器对数据请求的处理效率;且通过过滤数据请求,滤除了不符合DNS规范的数据请求,提高了域名服务器的抗攻击能力的同时,也能减少域名服务器数据处理量,进一步提升域名服务器的处理性能。
参照图11所示,本发明实施例还提供另一种域名解析装置,包括存储器31、处理器32、总线33和通信接口34;存储器31用于存储计算机执行指令,处理器32与存储器31通过总线33连接;当域名解析装置运行时,处理器32执行存储器31存储的计算机执行指令,以使域名解析装置执行如上述实施例提供的域名解析方法。
在具体的实现中,作为一种实施例,处理器32(32-1和32-2)可以包括一个或多个CPU,例如图11中所示的CPU0和CPU1。且作为一种实施例,域名解析装置可以包括多个处理器32,例如图11中所示的处理器32-1和处理器32-2。这些处理器32中的每一个CPU可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器32可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
存储器31可以是只读存储器31(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器31可以是独立存在,通过总线33与处理器32相连接。存储器31也可以和处理器32集成在一起。
在具体的实现中,存储器31,用于存储本申请中的数据和执行本申请的软件程序对应的计算机执行指令。处理器32可以通过运行或执行存储在存储器31内的软件程序,以及调用存储在存储器31内的数据,域名解析装置的各种功能。
通信接口34,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如控制系统、无线接入网(radio access network,RAN),无线局域网(wireless local areanetworks,WLAN)等。通信接口34可以包括接收单元实现接收功能,以及发送单元实现发送功能。
总线33可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线33可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行如上述实施例提供的域名解析方法。
本发明实施例还提供一种计算机程序,该计算机程序可直接加载到存储器中,并含有软件代码,该计算机程序经由计算机载入并执行后能够实现上述实施例提供的域名解析方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种域名解析方法,其特征在于,包括:
域名服务器通过用户空间输入/输出UIO驱动的方式接收客户端发送的多个数据请求;
所述域名服务器过滤所述多个数据请求,获得第一目标数据请求;所述域名服务器支持解析所述第一目标数据请求,所述第一目标数据请求包括待解析域名;
所述域名服务器根据预设映射关系确定所述待解析域名对应的互联网协议IP地址;所述预设映射关系包括至少一个域名与至少一个IP地址的对应关系,所述至少一个域名包括所述待解析域名。
2.根据权利要求1所述的域名解析方法,其特征在于,所述域名服务器支持解析所述第一目标数据请求,包括:
所述第一目标数据请求通过预设传输协议和预设端口号传输;所述预设传输协议和所述预设端口号为所述域名服务器传输数据的协议和端口;
所述第一目标数据请求的报文格式符合DNS报文的格式要求;
所述第一目标数据请求中的域名系统扩展机制EDNS版本号为预设版本号;
所述第一目标数据请求中的待解析域名在所述域名服务器管理的域范围内。
3.根据权利要求1或2所述的域名解析方法,其特征在于,所述域名服务器根据预设映射关系确定所述待解析域名对应的IP地址包括:
根据所述待解析域名查询所述域名服务器的资源记录RR,以获取所述待解析域名对应的IP地址;所述RR包括至少一个域名与至少一个IP地址的对应关系,所述至少一个域名包括所述待解析域名。
4.根据权利要求3所述的域名解析方法,其特征在于,所述方法还包括:
将响应请求存储至系统缓存;所述响应请求为所述域名服务器对所述第一目标数据请求的响应,包括所述待解析域名对应的IP地址。
5.根据权利要求4所述的域名解析方法,其特征在于,所述方法还包括:
所述域名服务器获取第二目标数据请求;所述第二目标数据请求包括所述待解析域名,所述域名服务器支持解析所述第二目标数据请求;
所述域名服务器根据所述待解析域名查询所述系统缓存中的响应请求,以获取所述待解析域名对应的IP地址;所述响应请求包括至少一个域名与至少一个IP地址的对应关系,所述至少一个域名包括所述待解析域名。
6.一种域名解析装置,其特征在于,包括:
收发模块,用于通过UIO驱动的方式接收客户端发送的多个数据请求;
处理模块,用于过滤所述收发模块接收的所述多个数据请求,获得第一目标数据请求;域名服务器支持解析所述第一目标数据请求,所述第一目标数据请求包括待解析域名;
处理模块,还用于根据预设映射关系确定所述待解析域名对应的IP地址;所述预设映射关系包括至少一个域名与至少一个IP地址的对应关系,所述至少一个域名包括所述待解析域名。
7.根据权利要求6所述的域名解析装置,其特征在于,所述域名服务器支持解析所述第一目标数据请求,包括:
所述第一目标数据请求通过预设传输协议和预设端口号传输;所述预设传输协议和所述预设端口号为所述域名服务器传输数据的协议和端口;
所述第一目标数据请求的报文格式符合DNS报文的格式要求;
所述第一目标数据请求中的EDNS版本号为预设版本号;
所述第一目标数据请求中的待解析域名在所述域名服务器管理的域范围内。
8.根据权利要求6或7所述的域名解析装置,其特征在于,所述处理模块具体用于:
根据所述待解析域名查询所述域名服务器的RR,以获取所述待解析域名对应的IP地址;所述RR包括至少一个域名与至少一个IP地址的对应关系,所述至少一个域名包括所述待解析域名。
9.一种域名解析装置,其特征在于,包括存储器、处理器、总线和通信接口;所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接;当所述域名解析装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述域名解析装置执行如权利要求1-5任一项所述的域名解析方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括计算机执行指令,当所述计算机执行指令在计算机上运行时,使得所述计算机执行如权利要求1-5任一项所述的域名解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911294177.6A CN111010460A (zh) | 2019-12-16 | 2019-12-16 | 域名解析方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911294177.6A CN111010460A (zh) | 2019-12-16 | 2019-12-16 | 域名解析方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111010460A true CN111010460A (zh) | 2020-04-14 |
Family
ID=70115422
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911294177.6A Pending CN111010460A (zh) | 2019-12-16 | 2019-12-16 | 域名解析方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111010460A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111641728A (zh) * | 2020-05-16 | 2020-09-08 | 中信银行股份有限公司 | 基于分布式系统的调用方法及装置 |
CN112804371A (zh) * | 2020-12-30 | 2021-05-14 | 浙江大华技术股份有限公司 | 一种域名解析处理方法及装置 |
CN114285821A (zh) * | 2021-11-17 | 2022-04-05 | 奇安信科技集团股份有限公司 | 一种域名解析方法、装置、电子设备、存储介质及产品 |
CN116389411A (zh) * | 2023-06-07 | 2023-07-04 | 阿里巴巴(中国)有限公司 | 域名数据处理方法、装置及设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065766A (zh) * | 2014-07-14 | 2014-09-24 | 北京快易博科技有限公司 | 一种旁路缓存域名解析方法和系统 |
CN104954507A (zh) * | 2015-06-23 | 2015-09-30 | 中国互联网络信息中心 | 数据优选的域名解析方法及系统 |
CN105450787A (zh) * | 2014-08-20 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 网络地址映射方法、装置和系统 |
CN105959433A (zh) * | 2016-07-22 | 2016-09-21 | 无锡华云数据技术服务有限公司 | 一种域名解析方法及其域名解析系统 |
CN105975433A (zh) * | 2016-06-30 | 2016-09-28 | 瑞斯康达科技发展股份有限公司 | 一种报文处理方法及装置 |
CN106657432A (zh) * | 2016-11-17 | 2017-05-10 | 中国移动通信集团江苏有限公司 | 域名解析方法及装置 |
CN106790310A (zh) * | 2017-03-31 | 2017-05-31 | 网宿科技股份有限公司 | 分布式拒绝服务攻击防护与负载均衡一体化的方法和系统 |
-
2019
- 2019-12-16 CN CN201911294177.6A patent/CN111010460A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065766A (zh) * | 2014-07-14 | 2014-09-24 | 北京快易博科技有限公司 | 一种旁路缓存域名解析方法和系统 |
CN105450787A (zh) * | 2014-08-20 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 网络地址映射方法、装置和系统 |
CN104954507A (zh) * | 2015-06-23 | 2015-09-30 | 中国互联网络信息中心 | 数据优选的域名解析方法及系统 |
CN105975433A (zh) * | 2016-06-30 | 2016-09-28 | 瑞斯康达科技发展股份有限公司 | 一种报文处理方法及装置 |
CN105959433A (zh) * | 2016-07-22 | 2016-09-21 | 无锡华云数据技术服务有限公司 | 一种域名解析方法及其域名解析系统 |
CN106657432A (zh) * | 2016-11-17 | 2017-05-10 | 中国移动通信集团江苏有限公司 | 域名解析方法及装置 |
CN106790310A (zh) * | 2017-03-31 | 2017-05-31 | 网宿科技股份有限公司 | 分布式拒绝服务攻击防护与负载均衡一体化的方法和系统 |
Non-Patent Citations (1)
Title |
---|
JASONLUCIFER9: ""UIO"", 《百度百科》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111641728A (zh) * | 2020-05-16 | 2020-09-08 | 中信银行股份有限公司 | 基于分布式系统的调用方法及装置 |
CN112804371A (zh) * | 2020-12-30 | 2021-05-14 | 浙江大华技术股份有限公司 | 一种域名解析处理方法及装置 |
CN114285821A (zh) * | 2021-11-17 | 2022-04-05 | 奇安信科技集团股份有限公司 | 一种域名解析方法、装置、电子设备、存储介质及产品 |
CN116389411A (zh) * | 2023-06-07 | 2023-07-04 | 阿里巴巴(中国)有限公司 | 域名数据处理方法、装置及设备 |
CN116389411B (zh) * | 2023-06-07 | 2023-08-18 | 阿里巴巴(中国)有限公司 | 域名数据处理方法、装置及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111010460A (zh) | 域名解析方法和装置 | |
US20180205697A1 (en) | Managing content delivery network service providers by a content broker | |
US9264358B2 (en) | Alias resource record sets | |
CN107872486B (zh) | 通信方法和装置 | |
WO2021078281A1 (zh) | 报文转发及域名地址查询 | |
EP2556438B1 (en) | Reverse dns lookup with modified reverse mappings | |
US8898331B2 (en) | Method, network and computer program for processing a content request | |
CN108494891A (zh) | 一种域名解析方法、服务器及系统 | |
EP3170091B1 (en) | Method and server of remote information query | |
CN109729187B (zh) | 一种代理通信方法、系统、装置及存储介质 | |
US20200382465A1 (en) | Client subnet efficiency by equivalence class aggregation | |
WO2013104172A1 (zh) | 实现负载均衡的方法、dns服务器和客户端 | |
JP2011527043A (ja) | ネットワークコンピューティングコンポーネントを使用するルーティングリクエスト | |
CN111324843A (zh) | 一种前端请求处理方法、装置、设备及可读存储介质 | |
CN111371920A (zh) | Dns前端解析方法及系统 | |
US10826868B2 (en) | NAT aware DNS | |
CN112104640B (zh) | 网关的数据处理方法、装置、设备及可读存储介质 | |
CN113946587A (zh) | 句柄标识解析缓存方法、查询方法及其句柄标识解析系统 | |
CN110855810B (zh) | 一种nat转换方法、装置、网络安全设备及存储介质 | |
JP6484166B2 (ja) | 名前解決装置、名前解決方法及び名前解決プログラム | |
WO2018233579A1 (en) | INFORMATION CENTERED NETWORKING ON MULTIPLE ACCESS NETWORK INTERFACES | |
CN115801731B (zh) | 网络报文的处理方法、装置、电子设备及存储介质 | |
CN114731338B (zh) | 一种用于域名系统服务器的负载的控制的系统和方法 | |
CN107395778B (zh) | 一种用户溯源的方法、装置及系统 | |
TWI663856B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200414 |