域名解析缓存方法、dns服务器及计算机可读存储介质

文档序号:421240 发布日期:2021-12-21 浏览:8次 >En<

阅读说明:本技术 域名解析缓存方法、dns服务器及计算机可读存储介质 (Domain name resolution caching method, DNS (Domain name Server) and computer readable storage medium ) 是由 吴万涛 李普 杨斌 于 2021-09-24 设计创作,主要内容包括:本发明涉及网络通信技术领域,具体地涉及一种域名解析缓存方法、DNS服务器及计算机可读存储介质。本发明提供的域名解析缓存方法能够大幅提高DNS域名解析的解析效率,上述方法具体包括:步骤S1,建立重点域名名单,将重点域名名单中的域名缓存到专用芯片的高速缓存区中,将不在重点域名名单中的域名缓存到专用芯片的低速缓存区中;步骤S2,接收到域名解析请求后,在高速缓存区中进行查询,若高速缓存区中缓存有域名解析请求中的域名,则跳过步骤S3并返回域名解析请求的应答结果;步骤S3,若高速缓存区中未缓存有域名解析请求中的域名,则在低速缓存区中进行查询,并返回域名解析请求的应答结果。(The present invention relates to the field of network communication technologies, and in particular, to a domain name resolution caching method, a DNS server, and a computer-readable storage medium. The domain name resolution caching method provided by the invention can greatly improve the resolution efficiency of DNS domain name resolution, and the method specifically comprises the following steps: step S1, establishing a key domain name list, caching the domain names in the key domain name list into a high-speed cache region of the special chip, and caching the domain names not in the key domain name list into a low-speed cache region of the special chip; step S2, after receiving the domain name resolution request, inquiring in the cache region, if the domain name in the domain name resolution request is cached in the cache region, skipping step S3 and returning the response result of the domain name resolution request; in step S3, if the domain name in the domain name resolution request is not cached in the cache region, the query is performed in the low-speed cache region, and a response result of the domain name resolution request is returned.)

域名解析缓存方法、DNS服务器及计算机可读存储介质

技术领域

本发明涉及网络通信技术领域,具体地涉及一种域名解析缓存方法、DNS服务器及计算机可读存储介质。

背景技术

域名解析为通过域名解析出对应的IP地址,让人们通过注册的域名可以方便地访问到网站的一种服务。随着互联网技术的发展以及各种智能设备的普及,域名解析需求量也发生了大幅增长,相应地就会需要有超高速的域名解析服务。

域名解析服务通常需要中央处理器(CPU)向内存中查询域名对应的IP地址数据。但是,CPU存取数据的速度非常的快,能够达到1G/sec以上,而对于内存而言,能够达到10M/sec以上就属于较快的速度了,两者速度近百倍。

现有技术中,为了解决CPU速度和内存速度的速度差异问题,建立了计算机的多级缓存(Cache),当需要进行域名解析时,会首先从缓存(Cache)中查找需要的数据,缓存(Cache)中找不到的话则再从内存中查找。由于缓存(Cache)的运行速度比内存快得多,甚至可以达到与CPU相同的1G/sec,从而缓存(Cache)能够使域名解析速度大幅提升。但由于缓存(Cache)虽然解析速度快,但缓存空间较小,只能存储部分域名,而且缓存(Cache)中存储的域名用户难以进行自由选择。而实际应用中,域名的请求是很随机的,带来的后果就是通用计算机的多级缓存(Cache)经常会找不到请求域名对应的IP地址数据,即发生缓存不命中(CacheMiss),反而会导致CPU花费更多的时间在查找和读取内存上,造成CPU的性能损失,降低域名的解析速度。

因此,亟待一种技术方案,能够提供高效稳定的域名解析服务。

发明内容

针对以上问题,本发明提供了一种域名解析缓存方法、DNS服务器及计算机可读存储介质,能够稳定地大幅提高域名解析的解析速度。

本发明提供的域名解析缓存方法,包括:

步骤S1,建立重点域名名单,将重点域名名单中的域名缓存到专用芯片的高速缓存区中,将不在重点域名名单中的域名缓存到专用芯片的低速缓存区中;

步骤S2,接收到域名解析请求后,在高速缓存区中进行查询,若高速缓存区中缓存有域名解析请求中的域名,则跳过步骤S3并返回域名解析请求的应答结果;

步骤S3,若高速缓存区中未缓存有域名解析请求中的域名,则在低速缓存区中进行查询,并返回域名解析请求的应答结果。

在本发明提供的域名解析缓存方法中,预先建立的重点域名名单中的域名被缓存到专用芯片的高速缓存区中,高速缓存区有着远高于内存的存取数据的速度,从而针对重点域名名单中的域名的解析请求均可以被高速应答,以提高整体域名解析服务的速度。而且,重点域名名单中的域名是可以由用户指定的,即可以将需要高速应答或经常访问的域名存储在重点域名名单,以获得对应的高速域名解析服务。

在本发明的较优技术方案中,域名解析缓存方法还包括

步骤S4,若低速缓存区中未缓存有域名解析请求中的域名,则将域名解析请求转发至递归服务器,接收并返回递归服务器发送的域名解析请求的应答结果。

通过专用芯片的高速缓存区和低速缓存区中存储的数据可以覆盖绝大多数的域名解析请求,而对于在高速缓存区和低速缓存区中均无法查询到应答结果的域名,则需要转发至递归服务器,由递归服务器去进行域名解析,从递归服务器或其他DNS服务器中查询应答结果,并返回给用户。

在本发明的较优技术方案中,域名解析缓存方法的步骤S1还包括步骤S11,定期或不定期地更新重点域名名单。

因为需要进行高速解析的域名大概率不是固定的,通过定期或不定期地更新重点域名名单,可以将需要进行高速解析的域名加入重点域名名单,将不再需要进行高速解析的域名从重点域名名单中删除。定期或不定期的更新可以通过程序按照预设的规则自行更新,也可以由使用者自行进行域名的增删选择。

优选地,在本发明的技术方案中,域名解析缓存方法中的重点域名名单是历史解析请求记录中域名解析请求数量前N名的域名的名单,其中,5000≤N≤50000。历史解析请求记录中域名解析请求数量前N名的域名即被访问次数最多的N个域名,基本占据了域名解析请求总量的90%以上,因此保证历史解析请求记录中域名解析请求数量前N名的域名能够进行高速解析,也就能够极大程度地提高整体域名解析服务的效率。

在本发明的较优技术方案中,域名解析缓存方法中采用的专用芯片为现场可编程逻辑门阵列芯片(FPGA)。FPGA由逻辑单元、随机存取存储器、乘法器等硬件资源组成,通过将这些硬件资源合理组织,可实现乘法器、寄存器、地址发生器等硬件电路,FPGA的所有功能均可由硬件实现,流水线并行和数据并行,数据处理速度极快。

具体地,在本发明的较优技术方案中,现场可编程逻辑门阵列芯片(FPGA)的高速缓存区为静态随机存取存储器,低速缓存区为块存储器。静态随机存取存储器(SRAM)的数据存取速度快,但成本较高,适宜作为数量较少、但访问频率高的重点域名名单中的域名的缓存区;而块存储器虽然速度没有静态随机存取存储器(SRAM),但其有着较大的存储空间,是FPGA定制的随机存取存储器资源,能够存储更多的域名数据。

在本发明的技术方案中,还提供了一种DNS服务器,该DNS服务器包括存储器和一个或者多个处理器,至少一部分处理器为专用芯片,当存储器中的程序或者指令由处理器执行时,DNS服务器在进行域名缓存解析时,能够执行以下步骤:

步骤S1,建立重点域名名单,将重点域名名单中的域名缓存到专用芯片的高速缓存区中,将不在重点域名名单中的域名缓存到专用芯片的低速缓存区中;

步骤S2,接收到域名解析请求后,在高速缓存区中进行查询,若高速缓存区中缓存有域名解析请求中的域名,则调过步骤S3并返回域名解析请求的应答结果;

步骤S3,若高速缓存区中未缓存有域名解析请求中的域名,则在低速缓存区中进行查询,并返回域名解析请求的应答结果。

通过上述步骤,在本发明的技术方案中提供的DNS服务器能够稳定地大幅提高域名解析的解析速度。

在本发明的技术方案中,还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述域名解析缓存方法的步骤。

附图说明

图1是本发明的实施方式中一种域名解析缓存方法的流程示意图;

图2是本发明的实施方式中一种优选的域名解析缓存方法的流程示意图;

图3是本发明的实施方式中一种域名解析缓存方法的系统结构图;

图4是本发明的实施方式中一种DNS服务器的示意图。

附图标记:1-安全策略子系统,2-DNS业务子系统,3-高速缓存区,4-低速缓存区,5-递归转发子系统,6-递归服务器,7-缓存更新子系统,8-业务管理子系统,9-日志子系统,10-DNS服务器,11-存储器,12-处理器。

具体实施方式

下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明的保护范围。

如图1所示,本发明的实施方式中提供了一种域名解析缓存方法,包括:

步骤S1,建立重点域名名单,将重点域名名单中的域名缓存到专用芯片的高速缓存区中,将不在重点域名名单中的域名缓存到专用芯片的低速缓存区中;

步骤S2,接收到域名解析请求后,在高速缓存区中进行查询,若高速缓存区中缓存有域名解析请求中的域名,则跳过步骤S3并返回域名解析请求的应答结果;

步骤S3,若高速缓存区中未缓存有域名解析请求中的域名,则在低速缓存区中进行查询,并返回域名解析请求的应答结果。

在本实施方式中,首先,需要建立的重点域名名单,并将重点域名名单中的域名缓存到专用芯片的高速缓存区中。在收到域名解析请求如域名为www.example.com时,先到缓存有重点域名信息的高速缓存区中查找是否缓存有域名www.example.com的IP地址信息。若高速缓存区中缓存有域名www.example.com的IP地址信息,即可直接将该IP地址信息作为域名解析请求的应答结果返回给用户;若高速缓存区中缓存没有域名www.example.com的IP地址信息,再到专用芯片的低速缓存区中查找域名www.example.com的IP地址信息。

由于高速缓存区有着远高于一般内存的存取数据的速度,针对重点域名名单中的域名的解析请求均可以被高速应答,从而能够提高整体域名解析服务的速度。而且,重点域名名单中的域名是可以由用户指定的,即可以将需要高速应答或经常访问的域名存储在重点域名名单,以获得对应的高速域名解析服务。

如图2所示,在本发明的实施方式中,域名解析缓存方法还包括步骤S4,若低速缓存区中未缓存有域名解析请求中的域名,则将域名解析请求转发至递归服务器,接收并返回递归服务器发送的域名解析请求的应答结果。

进行域名解析时,如果在专用芯片的高速缓存区和低速缓存区中均没有查询到域名www.example.com的IP地址信息,就需要将域名www.example.com的域名解析请求转发至递归服务器,并由递归服务器向整个DNS域名解析网络发出查询请求,以获得查询结果并返回给用户。此处的查询结果可以是域名www.example.com的IP地址信息等常规解析结果,也可以是域名不存在(nxdomain)等非正常解析结果。

优选地,在本发明的实施方式中,域名解析缓存方法的步骤S1还包括

步骤S11,定期或不定期地更新重点域名名单。

重点域名名单即能够进行高速域名解析的域名名单,但是因为需要进行高速域名解析的域名大概率不是固定的,需要通过定期或不定期地更新重点域名名单。上述更新步骤可以将需要进行高速域名解析的域名加入重点域名名单,将不再需要进行高速域名解析的域名从重点域名名单中删除。定期或不定期的更新可以通过程序按照预设的规则自行更新,也可以由使用者自行进行域名的增删选择。

进一步地,本实施方式中,域名解析缓存方法中的重点域名名单是历史解析请求记录中域名解析请求数量前N名的域名的名单,其中5000≤N≤50000。历史解析请求记录中域名解析请求数量前N名的域名即被访问次数最多的N个域名,基本占据了域名解析请求总量的90%以上,因此保证历史解析请求记录中域名解析请求数量前N名的域名能够进行高速解析,也就能够极大程度地提高整体域名解析服务的效率。一般地,在N=10000即重点域名名单包括历史解析请求记录中域名解析请求数量前1000名的域名时,重点域名名单即可涵盖域名解析请求总量的95%以上。

值得一提的是,重点域名名单的构建方式不仅限于参考历史解析请求记录的域名解析请求数量,还可以根据域名的其他特征数据,如访问量、访问时长、访问人数等进行重点域名名单的构建。同样地,还可以通过人工进行域名筛选,如包含指定字段的域名、需要重点关注的域名等。

优选地,在本发明的实施方式中,域名解析缓存方法采用的专用芯片为现场可编程逻辑门阵列芯片(FPGA)。FPGA是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点,通过流水线并行和数据并行实现更大的并行度和数据存取速度。

具体而言,在本发明的实施方式提供的域名解析缓存方法中,现场可编程逻辑门阵列芯片(FPGA)的高速缓存区为静态随机存取存储器,低速缓存区为块存储区。

静态随机存取存储器(SRAM)的数据存取速度快,但成本较高,适宜作为数量较少、但访问频率高的重点域名名单中的域名的缓存区;而块存储器虽然速度没有静态随机存取存储器(SRAM),但其有着较大的存储空间,是FPGA定制的随机存取存储器资源,能够存储更多的域名数据。

本发明的实施方式中,提供了一种域名解析缓存方法,用以实现该域名解析缓存方法的系统结构如图3所示。域名解析缓存方法的系统结构包括安全策略子系统1、DNS业务子系统2、高速缓存区3、低速缓存区4、递归转发子系统5、递归服务器6、缓存更新子系统7、业务管理子系统8以及日志子系统9。

其中,安全策略子系统1用以判断往来数据的安全性,即域名解析请求和域名应答结果的数据包无安全性问题才能通过安全策略子系统1,从而进行下一步的传送或解析。安全策略子系统1与业务管理子系统8之间分别存在信息交互,安全策略子系统1能够将日期、时间、用户等数据包信息存入日志子系统9,以备之后调用和查询。

DNS业务子系统2用以解析将从安全策略子系统1中传送过来的域名解析请求信息,然后将请求解析的域名传送到高速缓存区3中,并接收高速缓存区3和/或低速缓存区4中返回的应答结果。另外,DNS业务子系统2也能够将后端返回信息如应答结果通过安全策略子系统1返回给请求端如用户。

高速缓存区3和低速缓存区4分别缓存有一部分的域名信息,域名请求会依次在高速缓存区3和低速缓存区4中查询对应的IP地址信息等域名请求的应答结果,并且高速缓存区3和低速缓存区4会将查询到的应答结果返回到DNS业务子系统2中。

递归转发子系统5能够将低速缓存区4中传来的域名解析请求递归转发到外部的递归服务器6,并且能够将递归服务器6返回的域名请求的应答结果传送给DNS业务子系统2。

递归服务器6可以位于系统外部,用于本地无缓存结果时的递归查询,即接收到递归转发子系统5传来的域名解析请后进行递归查询,若无应答信息,则将查询请求递归到下一级递归服务器6,直到某个递归服务器6传送回相应的应答结果,再将相应的应答结果传送回递归转发子系统5,由递归转发子系统5再传送给DNS业务子系统2。

缓存更新子系统7用于定期或不定期地对高速缓存区3和低速缓存区4中缓存的域名信息进行更新。

业务管理子系统8以上安全策略子系统1、DNS业务子系统2及缓存更新子系统7均有信息交互,以便业务管理子系统8对整个实现该域名解析缓存方法的系统的每个流程系统地管理和监控。

日志子系统9与以上安全策略子系统1保持有信息交互,用于记录和存储经过安全策略子系统1传递的数据包的日期、时间、动作等系统日志信息。

如图4所示,在本发明的实施方式中,还提供了一种DNS服务器10,该DNS服务器10包括存储器11和一个或者多个处理器12,至少一部分处理器12为专用芯片,当存储器11中的程序或者指令由处理器12执行时,DNS服务器10在进行域名缓存解析时,能够执行以下步骤:

步骤S1,建立重点域名名单,将重点域名名单中的域名缓存到专用芯片的高速缓存区中,将不在重点域名名单中的域名缓存到专用芯片的低速缓存区中;

步骤S2,接收到域名解析请求后,在高速缓存区中进行查询,若高速缓存区中缓存有域名解析请求中的域名,则调过步骤S3并返回域名解析请求的应答结果;

步骤S3,若高速缓存区中未缓存有域名解析请求中的域名,则在低速缓存区中进行查询,并返回域名解析请求的应答结果。

另外,需要说明的是,存储器11可包含非易失性存储器,例如只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、快闪存储器(FLASH)或能够在有或者没有应用电力的情况下存储程序指令或数据的任何其他装置。存储器11还可包括易失性存储器,例如随机存取存储器(RAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)和同步动态随机存取存储器(SDRAM),还可使用其他类型的RAM来实现存储器11。存储器11可使用单个存储器模块或多个存储器模块来实现。虽然存储器11被描绘为与处理器12本地互连,但本领域的技术人员将认识到,在不偏离主题技术的范围的情况下存储器11可与处理器12分离地设置在不同的计算机中。

处理器12还可以包括通用处理器、处理器核心、多处理器、可重配置处理器、微控制器、数字信号处理器(DSP)、专用集成电路(ASIC)、图形处理单元(GPU)、现场可编程门阵列芯片(FPGA)、可编程逻辑器件(PLD)、控制器、状态机、门控逻辑、离散硬件部件或者任何其他处理单元以及上述一个或多个处理器的组合。

通过上述步骤,在本发明的实施方式中提供的DNS服务器10能够稳定地大幅提高域名解析的解析速度,并且能够避免域名解析时的缓存命中率过低,造成DNS服务器10性能损失。

在本发明的实施方式中,还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述域名解析缓存方法的步骤。

至此,已经结合附图描述了本发明的技术方案。但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于上述具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:模拟MCU中断方法、装置、终端及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类