域名解析方法及装置制造方法及图纸

技术编号:28505455 阅读:25 留言:0更新日期:2021-05-19 22:57
本发明专利技术公开了一种域名解析方法及装置,该方法包括:接收来自域名解析请求端的域名请求报文;获取域名请求报文的报文内容以及域名解析请求端的网络地址;根据域名请求报文的报文内容以及域名解析请求端的网络地址,生成域名请求报文的哈希值;判断域名请求报文的哈希值是否命中报文加速缓存表,该报文加速缓存表中包含:多个报文加速结构体,每个报文加速结构体对应一个哈希值;当域名请求报文的哈希值命中报文加速缓存表的情况下,获取域名请求报文的域名应答报文,并将域名请求报文的域名应答报文添加到报文加速缓存表中相应的报文加速结构体中;基于报文加速缓存表,向域名解析请求端返回域名应答报文。本发明专利技术能够大大提升域名解析服务的性能。名解析服务的性能。名解析服务的性能。

【技术实现步骤摘要】
域名解析方法及装置


[0001]本专利技术涉及互联网领域,尤其涉及一种域名解析方法及装置。

技术介绍

[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]目前,互联网中大部分的域名系统(Domain Name System,DNS)服务端使用美国ISC(Internet Systems Consortium)机构研发的BIND软件对域名进行解析,BIND软件在接收到DNS请求报文后,需要解析报文的内容、根据访问者的IP地址匹配访问控制表(Access Control Lists,ACL)找到对应的视图(View)、使用红黑树找到域名对应的区域(Zone)以及区域(Zone)中配置的域名记录、构建查询结果的结构体并对返回应答报文进行封装、将应答报文返回给请求者。可见,BIND软件对DNS请求进行解析处理时,一个完整的请求处理对CPU资源消耗很多。
[0004]为了提升DNS解析域名的性能,现有技术中主要采用如下两种方案:第一种,在单机性能有限的情况下,使用更多的DNS服务器来提升整体的并发能力。这种方式会提高整体设备的维护成本,同时对多台DNS服务器之间的数据同步有着更高的要求。
[0005]第二种,不使用ISC的BIND软件,通过自主研发的DNS服务端,简化收到DNS报文后的处理流程,降低处理一个完整DNS请求的CPU耗时来提升整体的解析性能。这种自主研发DNS服务端的工作难度大,且在后期使用对BIND软件进行替换,也会产生额外的过渡成本。
[0006]可见,如何提高BIND软件的域名解析性能,是目前亟待解决的技术问题。

技术实现思路

[0007]本专利技术实施例提供一种域名解析方法,用以提升域名解析服务的性能,该方法包括:接收来自域名解析请求端的域名请求报文;获取所述域名请求报文的报文内容以及所述域名解析请求端的网络地址;根据所述域名请求报文的报文内容以及所述域名解析请求端的网络地址,生成所述域名请求报文的哈希值;判断所述域名请求报文的哈希值是否命中报文加速缓存表,其中,所述报文加速缓存表中包含:多个报文加速结构体,每个报文加速结构体对应一个哈希值;当所述域名请求报文的哈希值命中所述报文加速缓存表的情况下,获取所述域名请求报文的域名应答报文,并将所述域名请求报文的域名应答报文添加到所述报文加速缓存表中相应的报文加速结构体中;基于所述报文加速缓存表,向所述域名解析请求端返回域名应答报文。
[0008]本专利技术实施例还提供一种域名解析装置,用以提升域名解析服务的性能,该装置包括:域名请求模块,用于接收来自域名解析请求端的域名请求报文;域名请求报文信息获取模块,用于获取所述域名请求报文的报文内容以及所述域名解析请求端的网络地址;哈希值计算模块,用于根据所述域名请求报文的报文内容以及所述域名解析请求端的网络地
址,生成所述域名请求报文的哈希值;加速缓存查询模块,用于判断所述域名请求报文的哈希值是否命中报文加速缓存表,其中,所述报文加速缓存表中包含:多个报文加速结构体,每个报文加速结构体对应一个哈希值;解析加速模块,用于当所述域名请求报文的哈希值命中所述报文加速缓存表的情况下,获取所述域名请求报文的域名应答报文,并将所述域名请求报文的域名应答报文添加到所述报文加速缓存表中相应的报文加速结构体中;域名应答模块,用于基于所述报文加速缓存表,向所述域名解析请求端返回域名应答报文。
[0009]本专利技术实施例还提供一种计算机设备,用以提升域名解析服务的性能,该计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述域名解析方法。
[0010]本专利技术实施例还提供一种计算机可读存储介质,用以提升域名解析服务的性能,该计算机可读存储介质存储有执行上述域名解析方法的计算机程序。
[0011]本专利技术实施例中提供的域名解析方法、装置、计算机设备及计算机可读存储介质,基于预先创建的报文加速缓存表,在接收到来自域名解析请求端的域名请求报文后,获取域名请求报文的报文内容以及域名解析请求端的网络地址,进而根据域名请求报文的报文内容以及域名解析请求端的网络地址,生成域名请求报文的哈希值,判断该域名请求报文的哈希值是否命中报文加速缓存表中的报文加速结构体,当域名请求报文的哈希值命中报文加速缓存表的情况下,获取域名请求报文的域名应答报文,并将域名请求报文的域名应答报文添加到报文加速缓存表中相应的报文加速结构体中,最后基于该报文加速缓存表,向域名解析请求端返回域名应答报文。通过本专利技术实施例,能够大大提升域名解析服务的性能。
附图说明
[0012]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1为本专利技术实施例中提供的一种域名解析方法流程图;图2为本专利技术实施例中提供的一种域名请求报文的哈希值生成流程图;图3为本专利技术实施例中提供的一种可选的域名解析方法流程图;图4为本专利技术实施例中提供的一种防攻击域名解析方法流程图;图5为本专利技术实施例中提供的又一种防攻击域名解析方法流程图;图6为本专利技术实施例中提供的一种域名解析装置示意图;图7为本专利技术实施例中提供的一种计算机设备示意图。
具体实施方式
[0013]为使本专利技术实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本专利技术实施例做进一步详细说明。在此,本专利技术的示意性实施例及其说明用于解释本专利技术,但并不作为对本专利技术的限定。
[0014]本专利技术实施例中提供了一种域名解析方法,可应用但不限于BIND软件。
[0015]图1为本专利技术实施例中提供的一种域名解析方法流程图,如图1所示,该方法包括如下步骤:S101,接收来自域名解析请求端的域名请求报文。
[0016]需要说明的是,本专利技术实施例中的域名解析请求端是指发起域名解析请求的联网设备;域名请求报文是指请求解析域名的报文。
[0017]S102,获取域名请求报文的报文内容以及域名解析请求端的网络地址。
[0018]需要说明的是,本专利技术实施例中的网络地址可以是但不限于IP地址;在接收到域名请求报文后,获取报文内容以及发送该域名请求报文的设备的IP地址。
[0019]S103,根据域名请求报文的报文内容以及域名解析请求端的网络地址,生成域名请求报文的哈希值。
[0020]在具体实施时,一种方式可以直接根据域名请求报文的报文内容以及域名解析请求端的网络地址,生成域名请求报文的哈希值(hash值);另一种方式中,可分别对域名请求报文的报文内容、域名解析请求端的网络地址进行哈希计算,得到相应的哈希值后,再经过一定的运算,得到最终的哈希值。第二种方式能够进一步避免哈希值碰撞的问题。
[0021]S104,判断本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种域名解析方法,其特征在于,包括:接收来自域名解析请求端的域名请求报文;获取所述域名请求报文的报文内容以及所述域名解析请求端的网络地址;根据所述域名请求报文的报文内容以及所述域名解析请求端的网络地址,生成所述域名请求报文的哈希值;判断所述域名请求报文的哈希值是否命中报文加速缓存表,其中,所述报文加速缓存表中包含:多个报文加速结构体,每个报文加速结构体对应一个哈希值;当所述域名请求报文的哈希值命中所述报文加速缓存表的情况下,获取所述域名请求报文的域名应答报文,并将所述域名请求报文的域名应答报文添加到所述报文加速缓存表中相应的报文加速结构体中;基于所述报文加速缓存表,向所述域名解析请求端返回域名应答报文。2.如权利要求1所述的方法,其特征在于,根据所述域名请求报文的报文内容以及所述域名解析请求端的网络地址,生成所述域名请求报文的哈希值,包括:对所述域名请求报文的报文内容进行哈希计算,得到第一哈希值;对所述网络地址进行哈希计算,得到第二哈希值;对第一哈希值和第二哈希值按位进行异或运算,得到第三哈希值,作为所述域名请求报文的哈希值。3.如权利要求1所述的方法,其特征在于,所述方法还包括:当所述域名请求报文的哈希值未命中所述报文加速缓存表的情况下,根据所述域名请求报文的哈希值生成所述域名请求报文的报文加速结构体,并添加到所述报文加速缓存表中。4.如权利要求1所述的方法,其特征在于,所述方法还包括:统计每个报文加速结构体的命中次数;根据每个报文加速结构体的命中次数,更新每个报文加速结构体的加速状态。5.如权利要求2所述的方法,其特征在于,所述方法还包括:判断第二哈希值是否命中丢包缓存表,其中,所述丢包缓存表中包含:多个丢包结构体,每个丢包结构体对应一个哈希值;当第二哈希值命中丢包缓存表的情况下,获取第二哈希值对应的丢包结构体,判断第二哈希值对应丢包结构体的状态是否为激活状态,并在第二哈希值对应丢包结构体的状态为激活状态的情况下,丢弃所述域名请求报文;当第二哈希值未命中丢包缓存表情况下,根据所述网络地址构建丢...

【专利技术属性】
技术研发人员:袁苏龙
申请(专利权)人:北京视界云天科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1