CN111343042A - 一种dns解析的测试方法及测试系统 - Google Patents
一种dns解析的测试方法及测试系统 Download PDFInfo
- Publication number
- CN111343042A CN111343042A CN202010080665.3A CN202010080665A CN111343042A CN 111343042 A CN111343042 A CN 111343042A CN 202010080665 A CN202010080665 A CN 202010080665A CN 111343042 A CN111343042 A CN 111343042A
- Authority
- CN
- China
- Prior art keywords
- data packet
- domain name
- size
- name resolution
- recursive dns
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种DNS解析的测试方法及测试系统,测试系统包括探测服务器、测试服务器、核心服务器;测试方法包括:核心服务器获取多次域名解析中的第一数据包和第二数据包;第一数据包是递归DNS接收到的测试服务器发送的域名解析的数据包,第二数据包是递归DNS根据第一数据包响应至探测服务器的数据包;核心服务器根据多次域名解析中的第一数据包和第二数据包,确定递归DNS的可支持数据包大小。该技术方案用以确定递归DNS在域名解析中实际支持的数据包大小,以避免递归DNS响应失败的情况。
Description
技术领域
本发明实施例涉及计算机领域,尤其涉及一种DNS(Domain Name System,域名解析系统)解析的测试方法及测试系统。
背景技术
DNS协议中设计的用UDP(User Data Protocol,用户数据报协议)包传输时,数据包大小限制为512字节,现在很多主机已经具备重组大数据包的能力,因此通过DNS扩展协议中的UDP payload size定义可支持自定义UDP数据包大小。
实际应用中,递归DNS会设置UDP payload size(即可支持的UDP数据包大小),且设置值可以大于512,甚至部分递归DNS会设置UDP payload size为4096,但现有的递归DNS中,有的递归DNS虽然设置了UDP payload size为4096,但是其实际上并不能支持4096大小的UDP数据包,此情况中,若权威DNS生成4096大小的UDP数据包,则递归DNS不能正常将UDP数据包响应,出现响应失败的情况。
发明内容
本发明实施例提供一种DNS解析的测试方法及测试系统,用以确定递归DNS在域名解析中实际支持的数据包大小,以避免递归DNS响应失败的情况。
本发明实施例提供的一种DNS解析的测试方法,适应于测试系统,所述测试系统包括探测服务器、测试服务器、核心服务器;
所述方法包括:
所述核心服务器获取多次域名解析中的第一数据包和第二数据包;所述第一数据包是递归DNS接收到的所述测试服务器发送的域名解析的数据包,所述第二数据包是所述递归DNS根据所述第一数据包响应至所述探测服务器的数据包;
所述核心服务器根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小。
可选的,任一次域名解析包括:
所述探测服务器向所述递归DNS发送域名解析请求;
所述测试服务器接收所述递归DNS转发的所述域名解析请求;
所述测试服务器解析所述待解析域名,将所述待解析域名对应的响应数据按照所述域名解析请求中的测试数据包大小生成第一数据包,将所述第一数据包发送至所述递归DNS;
所述探测服务器接收所述递归DNS响应的第二数据包。
可选的,所述测试服务器解析所述待解析域名,将所述待解析域名对应的响应数据按照所述域名解析请求中的测试数据包大小生成第一数据包,包括:
所述测试服务器解析所述待解析域名,生成所述待解析域名对应的响应数据;
所述测试服务器判断所述待解析域名对应的响应数据的大小是否小于所述域名解析请求中的测试数据包大小,若是,则将所述待解析域名对应的响应数据确定为所述第一数据包;
否则,根据所述域名解析请求中的测试数据包大小,将所述待解析域名对应的响应数据处理为与所述域名解析请求中的测试数据包大小相对应的数据包,并将所述处理后的数据包确定为第一数据包。
可选的,所述探测服务器在向所述递归DNS发送域名解析请求之前,还包括:
所述探测服务器确定所述测试数据包大小;
所述探测服务器根据所述测试数据包大小,生成所述测试数据包大小对应的待解析域名;
将所述待解析域名和所述测试数据包大小组成所述域名解析请求。
可选的,所述核心服务器根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小,包括:
所述核心服务器若根据第M次域名解析中的第一数据包和第二数据包确定域名解析成功,且根据第M+1次域名解析中的第一数据包和第二数据包确定域名解析失败,则确定将所述第M次域名解析中的第一数据包指示的数据包大小确定为所述递归DNS的可支持数据包大小;其中,M大于等于1。
可选的,所述核心服务器根据第M次域名解析中的第一数据包和第二数据包确定域名解析成功,包括:
所述核心服务器若确定第M次域名解析中所述第二数据包指示域名解析成功,且与所述第一数据包一致,则确定域名解析成功;
其中,当所述递归DNS支持所述第一数据包的大小时,所述第二数据包指示域名解析成功;当所述递归DNS不支持所述第一数据包的大小时,所述第二数据包指示域名解析失败。
可选的,所述核心服务器在根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小之前,还包括:
所述核心服务器获取所述递归DNS的IP、所述递归DNS的出口IP、每次域名解析中的待解析域名和测试数据包大小;
所述核心服务器在根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小,包括:
所述核心服务器针对每次域名解析,根据所述第一数据包和第二数据包,确定所述域名解析是否成功,并生成所述域名解析的数据字段;所述数据字段至少包括所述递归DNS的IP、所述递归DNS的出口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发送域名解析请求之前,确定所述测试数据包大小;
根据所述测试数据包大小,生成所述测试数据包大小对应的待解析域名;
将所述待解析域名和所述测试数据包大小组成所述域名解析请求。
可选的,所述核心服务器具体用于:
若根据第M次域名解析中的第一数据包和第二数据包确定域名解析成功,且根据第M+1次域名解析中的第一数据包和第二数据包确定域名解析失败,则确定将所述第M次域名解析中的第一数据包指示的数据包大小确定为所述递归DNS的可支持数据包大小;其中,M大于等于1。
可选的,所述核心服务器具体用于:
若确定第M次域名解析中所述第二数据包指示域名解析成功,且与所述第一数据包一致,则确定域名解析成功;
其中,当所述递归DNS支持所述第一数据包的大小时,所述第二数据包指示域名解析成功;当所述递归DNS不支持所述第一数据包的大小时,所述第二数据包指示域名解析失败。
可选的,所述核心服务器还用于:
在根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小之前,获取所述递归DNS的IP、所述递归DNS的出口IP、每次域名解析中的待解析域名和测试数据包大小;
所述核心服务器具体用于:
针对每次域名解析,根据所述第一数据包和第二数据包,确定所述域名解析是否成功,并生成所述域名解析的数据字段;所述数据字段至少包括所述递归DNS的IP、所述递归DNS的出口IP、所述待解析域名、所述测试数据包大小、域名解析是否成功;
根据每次域名解析的数据字段,确定所述递归DNS的可支持数据包大小。
可选的,所述核心服务器还用于:
确定所述递归DNS的可支持数据包大小之后,将所述递归DNS的可支持数据包大小配置于权威DNS的配置文件中;所述配置文件用于所述权威DNS生成与所述递归DNS的可支持数据包大小对应的响应数据包,以反馈至所述递归DNS。
相应的,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述DNS解析的测试方法。
相应的,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述DNS解析的测试方法。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种DNS解析的测试系统的结构示意图;
图2为本发明实施例提供的一种DNS解析的测试方法的流程示意图;
图3为本发明实施例提供的一种DNS解析的流程示意图;
图4为本发明实施例提供的另一种DNS解析的测试方法的流程示意图;
图5为本发明实施例提供的一种DNS解析方法的示意图;
图6为本发明实施例提供的另一种DNS解析方法的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
域名解析中,可以将递归DNS的行为分为以下四类:
第一类:不支持DNS扩展协议;
递归DNS在接收到客户端发送的域名解析请求时,无论该域名解析请求中是否携带数据包大小(UDP payload size),递归DNS都会将不携带数据包大小的域名解析请求发送至权威DNS,且权威DNS会响应小于512字节的响应数据包,从而递归DNS将该小于512字节的响应数据包响应至客户端。
第二类:支持DNS扩展协议,且支持其配置的数据包大小;
递归DNS在接收到客户端发送的域名解析请求时,若该域名解析请求中携带有数据包大小,则递归DNS会将该携带有数据包大小的域名解析请求发送至权威DNS,且权威DNS会响应与数据包大小相对应的响应数据包,从而递归DNS将该与数据包大小相对应的响应数据包响应至客户端。
第三类:支持DNS扩展协议,但不支持其配置的数据包大小;
递归DNS在接收到客户端发送的域名解析请求时,若该域名解析请求中携带有数据包大小,则递归DNS会将该携带有数据包大小的域名解析请求发送至权威DNS,且权威DNS会响应与数据包大小相对应的响应数据包,递归DNS接收到该响应数据包之后,由于自己不能处理该响应数据包,则会将该响应数据包处理成自己可以正常响应的数据包,进而将处理后的数据包响应至客户端。
第四类:支持DNS扩展协议,但不支持其配置的数据包大小;
递归DNS在接收到客户端发送的域名解析请求时,若该域名解析请求中携带有数据包大小,则递归DNS会将该携带有数据包大小的域名解析请求发送至权威DNS,且权威DNS会响应与数据包大小相对应的响应数据包,递归DNS接收到该响应数据包之后,由于自己不能处理该响应数据包,则会向客户端返回响应失败的结果。
基于上述描述,前三类的递归DNS均可以向客户端反馈正常的响应结果,只有第四类的递归DNS会向客户端反馈响应失败的结果,所以,本发明实施例主要适用于第四类的递归DNS的可支持数据包大小的测试。
为了测试第四类的递归DNS的可支持数据包大小,图1示例性的示出了一种测试系统,该测试系统即用于测试递归DNS在域名解析中可支持的数据包大小。
该测试系统中包括探测服务器101、测试服务器102、核心服务器103,具体的,探测服务器101相当于实际域名解析中客户端,用于向递归DNS发送域名解析请求;递归DNS在接收到域名解析请求之后,确定本地尚未缓存有域名解析请求中待解析域名所对应的响应数据,则会将域名解析请求发送至测试服务器102;测试服务器102相当于实际域名解析中权威DNS,用于在接收到递归DNS发送的域名解析请求之后,对域名解析请求中的待解析域名进行解析,以及按照域名解析请求中的数据包大小生成相对应的响应数据包,反馈至递归DNS;递归DNS在接收到响应数据包之后将本次域名解析中的响应结果发送至探测服务器101。核心服务器103用于接收测试服务器102上传的响应数据包和探测服务器101上传的响应结果,以确定递归DNS在域名解析中实际支持的数据包大小。
基于上述描述,图2示例性的示出了本发明实施例提供的一种DNS解析的测试方法的流程,该流程可以由上述测试系统执行。
如图2所示,该流程具体包括:
步骤201,核心服务器获取多次域名解析中的第一数据包和第二数据包;
任一次域名解析中,第一数据包是递归DNS接收到的测试服务器发送的域名解析的数据包,第二数据包是递归DNS根据第一数据包响应至探测服务器的数据包;此处,核心服务器可以是从测试服务器中获取第一数据包,以及从探测服务器中获取第二数据包。
任一次域名解析的具体流程可以如图3示出流程,该流程的执行主体可以包括探测服务器、递归DNS和测试服务器;
步骤301,探测服务器向递归DNS发送域名解析请求;
可以设置探测服务器根据配置信息自动生成域名解析请求,并将生成的域名解析请求发送至递归DNS。具体生成过程中,探测服务器确定当前域名解析中的测试数据包大小,并根据该测试数据包大小,生成测试数据包大小对应的待解析域名,然后将待解析域名和测试数据包大小组成域名解析请求。
一种实现方式中,设置每次域名解析中域名解析请求的测试数据包大小按照预设值递增,也即,本次域名解析中域名解析请求的测试数据包大小相比于上一次域名解析中的测试数据包大小的增量为预设值,举例来说,设置起始数据包大小为500,每次递增的数据包大小为32,以及最大数据包大小为4096,则可知,第一次域名解析中域名解析请求的数据包大小为500,第二次域名解析中域名解析请求的数据包大小为532,第三次域名解析中域名解析请求的数据包大小为564,第四次域名解析中域名解析请求的数据包大小为596,以此类推,直至到4096,由于每次的测试数据包大小不同,则根据测试数据包大小生成的待解析域名不同,相应的,可以设置待解析域名分别为500.test.com、532.test.com、564.test.com、……、4084.test.com、4096.test.com,由于每次待解析域名不同,则每次待解析域名对应的响应数据都不会在递归DNS中缓存,所以递归DNS在接收到域名解析请求时,都会把域名解析请求发送至测试服务器。本实现方式中,可以设置每次递增的数据包大小为32这样较大的增量,当然,为了更细粒度的确定出递归DNS可支持的数据包大小,还可以设置每次递增的数据包大小为较小增量,比如,可以设置增量20或10,甚至可以设置增量为1。
此外,由于可以针对不同的递归DNS进行测试,所以可以根据测试数据包大小和递归DNS的标识,生成对应的待解析域名,举例来说,递归DNS的标识为a,则生成的待解析域名可以为a_500.test.com、a_532.test.com、a_564.test.com、……、a_4084.test.com、a_4096.test.com。
在根据测试数据包大小,生成测试数据包大小对应的待解析域名之后,将待解析域名和测试数据包大小组成域名解析请求,本发明实施例中,测试数据包大小相当于一个附加块附加在域名解析请求中,该附加块即用于发往测试服务器之后,使测试服务器生成与测试数据包大小相对应的响应数据包。
步骤302,递归DNS将域名解析请求发送至测试服务器;
由于步骤301的探测服务器生成的待解析域名所对应的响应数据均未在递归DNS中有缓存,所以递归DNS会在接收到域名解析请求后,将域名解析请求转发至测试服务器。
步骤303,测试服务器解析待解析域名,将待解析域名对应的响应数据按照域名解析请求中的测试数据包大小生成第一数据包;
测试服务器接收到域名解析请求后,解析待解析域名,并将响应数据按照测试数据包大小生成与之对应的数据包,也即第一数据包,具体实现中,可以是测试服务器解析待解析域名,生成待解析域名对应的响应数据,测试服务器判断待解析域名对应的响应数据的大小是否小于域名解析请求中的测试数据包大小,若是,则将待解析域名对应的响应数据确定为第一数据包;否则,根据域名解析请求中的测试数据包大小,将待解析域名对应的响应数据处理为与域名解析请求中的测试数据包大小相对应的数据包,并将处理后的数据包确定为第一数据包。比如,域名解析请求中的测试数据包大小为532,测试服务器解析出的响应数据的组包要不大于532,若解析出的响应数据不大于532,则可以直接将响应数据组包后发送至递归DNS,否则,需要生成数据包大小为532的响应数据包发送至递归DNS。
步骤304,测试服务器将第一数据包发送至递归DNS;
步骤305,递归DNS将第二数据包发送至探测服务器。
递归DNS接收到测试服务器发送的第一数据包,若递归DNS支持第一数据包的数据包大小,则递归DNS会将该第一数据包发送至探测服务器,也就是说,第一数据包与第二数据包相同,且第二数据包指示域名解析成功;若递归DNS不支持第一数据包的数据包大小,则递归DNS会向探测服务器发送响应失败的结果,也就是说,第二数据包指示域名解析失败。
步骤202,核心服务器根据多次域名解析中的第一数据包和第二数据包,确定递归DNS的可支持数据包大小。
在探测服务器设置每次域名解析中测试数据包大小按照预设值递增时,具体确定递归DNS的可支持数据包大小中,可以是核心服务器若根据第M次域名解析中的第一数据包和第二数据包确定域名解析成功,且根据第M+1次域名解析中的第一数据包和第二数据包确定域名解析失败,则确定将第M次域名解析中的第一数据包指示的数据包大小确定为递归DNS的可支持数据包大小;其中,M大于等于1。
如图4为本发明实施例提供的一种核心服务器根据多次域名解析中的第一数据包和第二数据包,确定递归DNS的可支持数据包大小的流程示意图,其中,步骤401至步骤403属于第M次域名解析,步骤404至步骤406属于第M+1次域名解析。
第M次域名解析中:
步骤401,测试服务器向核心服务器发送第一数据包;
步骤402,探测服务器向核心服务器发送第二数据包;
步骤403,核心服务器根据第一数据包和第二数据包,确定域名解析成功;
第M+1次域名解析中:
步骤404,测试服务器向核心服务器发送第一数据包;
步骤405,探测服务器向核心服务器发送第二数据包;
步骤406,核心服务器根据第一数据包和第二数据包,确定域名解析失败。
步骤407,确定将第M次域名解析中的第一数据包指示的数据包大小确定为递归DNS的可支持数据包大小。
本发明实施例中,核心服务器在根据第M次域名解析中的第一数据包和第二数据包确定域名解析成功时,可以在确定第M次域名解析中第二数据包指示域名解析成功,且第二数据包与第一数据包一致之后,确定域名解析成功。相应的,核心服务器在根据第M+1次域名解析中的第一数据包和第二数据包确定域名解析失败时,可以是在确定第M+1次域名解析中第二数据包指示域名解析失败后,确定域名解析失败。
仍以上述例子继续说明,比如,在待解析域名为a_564.test.com时,测试服务器生成的响应数据包大小为564,测试服务器将该响应数据包返回至递归DNS时,递归DNS可以正确将该响应数据包返回至探测服务器,也即探测服务器接收到递归DNS发送的域名解析成功的结果;在待解析域名为a_596.test.com时,测试服务器生成的响应数据包大小为596,测试服务器将该响应数据包返回至递归DNS时,递归DNS不可以正确将该响应数据包返回至探测服务器,也即探测服务器接收到递归DNS发送的域名解析失败的结果,则核心服务器可以确定出该递归DNS可支持的数据包大小为564。
本发明实施例中,可以是核心服务器从测试服务器中获取第一数据包,以及从探测服务器中获取第二数据包,也可以是测试服务器主动将第一数据包上报至核心服务器,以及探测服务器主动将第二数据包上报至核心服务器。当然,核心服务器还可以从递归DNS中获取第一数据包和第二数据包,或者递归DNS将第一数据包和第二数据包上报至核心服务器,或者其他方式。
此外,核心服务器在根据多次域名解析中的第一数据包和第二数据包,确定递归DNS的可支持数据包大小之前,还可以获取递归DNS的IP、递归DNS的出口IP、每次域名解析中的待解析域名和测试数据包大小。一种实现方式中,可以是核心服务器从探测服务器中获取递归DNS的IP、测试域名(相当于待解析域名)、测试数据包大小等,以及从测试服务器中获取域名解析请求的源IP(相当于递归DNS的出口IP)、请求域名(相当于待解析域名)等,核心服务器将获取到的数据进行整合生成多个数据字段,每个数据字段对应一次域名解析,且每个数据字段中至少包括递归DNS的IP、递归DNS的出口IP、对应域名解析的待解析域名、测试数据包大小、域名解析是否成功,核心服务器根据该多个数据字段,确定递归DNS的可支持数据包大小。
具体的,核心服务器在生成每个域名解析对应的数据字段时,可以是针对任一个域名解析,根据该域名解析的第一数据包和第二数据包,确定域名解析是否成功,从而生成“域名解析成功”或者“域名解析失败”的字段,并将该字段与递归DNS的IP、递归DNS的出口IP、待解析域名、测试数据包大小共同组成该域名解析的数据字段,从而用于指示递归DNS的可支持数据包大小。举例来说,若某个域名解析的数据字段包括“域名解析成功”,则表示该递归DNS可以支持该域名解析中测试数据包大小;若某个域名解析的数据字段包括“域名解析失败”,则表示该递归DNS不可以支持该域名解析中测试数据包大小。
核心服务器在确定递归DNS的可支持数据包大小之后,还可以将递归DNS的可支持数据包大小配置于权威DNS的配置文件中,从而在实际应用中,权威DNS在接收到递归DNS发送的域名解析请求后,可以从配置文件中确定该递归DNS的可支持数据包大小,进而生成与递归DNS的可支持数据包大小对应的响应数据包,以反馈至递归DNS,避免递归DNS自身不能支持接收到的响应数据包的问题。也就是说,权威DNS不仅可以支持正常的DNS协议和DNS扩展协议,还可以根据配置数据,针对不同递归DNS响应与递归DNS相适应的数据包,进而避免出现递归DNS接收到的响应数据包超出其可响应范围导致响应异常的问题。
具体实现中,权威DNS在接收到某个递归DNS发送的域名解析请求时,会判断该域名解析请求的源IP(递归DNS的出口IP)是否在配置文件中,若是,则确定此次请求的待解析域名的响应数据是否会大于配置文件中配置的该递归DNS的可支持数据包大小,若大于,则权威DNS在组包时会按照递归DNS的可支持数据包大小进行组包响应。此外,域名解析请求中还会携带一个数据包大小,权威DNS在组包时也要确定生成的响应数据包小于域名解析请求中携带的数据包大小。当然,若权威DNS确定此次请求的待解析域名的响应数据不大于配置文件中配置的该递归DNS的可支持数据包大小,且不大于域名解析请求中携带的数据包大小,则权威DNS可以正常组包并响应。
举个例子,假设线上有域名a.test1.com,该域名只有一个A记录4.4.4.4,即组包很小不会超过512,同时线上有域名b.test1.com,该域名有很多A记录4.4.4.4……,完全响应的话能够超过4096。
假设有3个递归DNS,分别如下:
出口IP为1.1.1.1,能完全支持自身配置的UDP payload size;
出口IP为2.2.2.2,响应包大小超过600时会截断,只响应600的数据包给客户端;
出口IP为3.3.3.3,响应包大小超过600时会出现响应失败;
所以,核心服务器会将出口IP为3.3.3.3的递归DNS的可支持数据包大小配置在权威DNS中,比如配置信息为“3.3.3.3,600”。
在请求域名a.test1.com时,可以如图5所示,三个递归DNS均返回正常的响应数据包,比如,出口IP为3.3.3.3的递归DNS返回响应数据包为“a.test1.com IN A IP:4.4.4.4”。
在请求域名b.test1.com时,可以如图6所示,出口IP为1.1.1.1的递归DNS可以响应完全的数据包;出口IP为2.2.2.2的递归DNS在接收到权威DNS响应的数据包之后,会将响应数据包截断为小于600的数据包,以返回至客户端;权威DNS根据出口IP为3.3.3.3的递归DNS的可支持数据包大小600生成响应数据包,并将生成的响应数据包发送至该出口IP为3.3.3.3的递归DNS,从而该出口IP为3.3.3.3的递归DNS将响应数据包发送至客户端。
上述技术方案中,核心服务器获取多次域名解析过程中的第一数据包和第二数据包,其中,第一数据包是递归DNS接收到的测试服务器发送的域名解析的数据包,第二数据包是递归DNS根据第一数据包响应至探测服务器的数据包,也就是说,核心服务器获取多次域名解析过程中的递归DNS接收到的响应数据包和发送出去的响应数据包,进而根据该多次域名解析过程中的两个数据包确定递归DNS的可支持数据包大小,通过该方式可以准确测试出递归DNS实际上可支持数据包的大小,从而可以将该数据包大小配置在权威DNS中,权威DNS生成递归DNS的可支持数据包,从而避免递归DNS响应失败的情况。
基于同一发明构思,图1示例性的示出了本发明实施例提供的一种DNS解析的测试系统的结构,该测试系统可以执行DNS解析的测试方法的流程。
所述测试系统包括:
探测服务器101、测试服务器102、核心服务器103;
所述核心服务器103用于获取多次域名解析中的第一数据包和第二数据包;所述第一数据包是递归DNS接收到的所述测试服务器102发送的域名解析的数据包,所述第二数据包是所述递归DNS根据所述第一数据包响应至所述探测服务器101的数据包;
所述核心服务器103还用于根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小。
可选的,任一次域名解析中:
所述探测服务器101用于向所述递归DNS发送域名解析请求;
所述测试服务器102用于接收所述递归DNS转发的所述域名解析请求;
所述测试服务器102还用于解析所述待解析域名,将所述待解析域名对应的响应数据按照所述域名解析请求中的测试数据包大小生成第一数据包,将所述第一数据包发送至所述递归DNS;
所述探测服务器101还用于接收所述递归DNS响应的第二数据包。
可选的,所述测试系统具体用于:
解析所述待解析域名,生成所述待解析域名对应的响应数据;
判断所述待解析域名对应的响应数据的大小是否小于所述域名解析请求中的测试数据包大小,若是,则将所述待解析域名对应的响应数据确定为所述第一数据包;
否则,根据所述域名解析请求中的测试数据包大小,将所述待解析域名对应的响应数据处理为与所述域名解析请求中的测试数据包大小相对应的数据包,并将所述处理后的数据包确定为第一数据包。
可选的,所述探测服务器101还用于:
在向所述递归DNS发送域名解析请求之前,确定所述测试数据包大小;
根据所述测试数据包大小,生成所述测试数据包大小对应的待解析域名;
将所述待解析域名和所述测试数据包大小组成所述域名解析请求。
可选的,所述核心服务器103具体用于:
若根据第M次域名解析中的第一数据包和第二数据包确定域名解析成功,且根据第M+1次域名解析中的第一数据包和第二数据包确定域名解析失败,则确定将所述第M次域名解析中的第一数据包指示的数据包大小确定为所述递归DNS的可支持数据包大小;其中,M大于等于1。
可选的,所述核心服务器103具体用于:
若确定第M次域名解析中所述第二数据包指示域名解析成功,且与所述第一数据包一致,则确定域名解析成功;
其中,当所述递归DNS支持所述第一数据包的大小时,所述第二数据包指示域名解析成功;当所述递归DNS不支持所述第一数据包的大小时,所述第二数据包指示域名解析失败。
可选的,所述核心服务器103还用于:
在根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小之前,获取所述递归DNS的IP、所述递归DNS的出口IP、每次域名解析中的待解析域名和测试数据包大小;
所述核心服务器103具体用于:
针对每次域名解析,根据所述第一数据包和第二数据包,确定所述域名解析是否成功,并生成所述域名解析的数据字段;所述数据字段至少包括所述递归DNS的IP、所述递归DNS的出口IP、所述待解析域名、所述测试数据包大小、域名解析是否成功;
根据每次域名解析的数据字段,确定所述递归DNS的可支持数据包大小。
可选的,所述核心服务器103还用于:
确定所述递归DNS的可支持数据包大小之后,将所述递归DNS的可支持数据包大小配置于权威DNS的配置文件中;所述配置文件用于所述权威DNS生成与所述递归DNS的可支持数据包大小对应响应数据包,以反馈至所述递归DNS。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行上述DNS解析的测试方法。
基于同一发明构思,本发明实施例还提供了一种计算机可读非易失性存储介质,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行上述DNS解析的测试方法。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (13)
1.一种DNS解析的测试方法,其特征在于,适应于测试系统,所述测试系统包括探测服务器、测试服务器、核心服务器;
所述方法包括:
所述核心服务器获取多次域名解析中的第一数据包和第二数据包;所述第一数据包是递归DNS接收到的所述测试服务器发送的域名解析的数据包,所述第二数据包是所述递归DNS根据所述第一数据包响应至所述探测服务器的数据包;
所述核心服务器根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小。
2.如权利要求1所述的方法,其特征在于,任一次域名解析包括:
所述探测服务器向所述递归DNS发送域名解析请求;
所述测试服务器接收所述递归DNS转发的所述域名解析请求;
所述测试服务器解析所述待解析域名,将所述待解析域名对应的响应数据按照所述域名解析请求中的测试数据包大小生成第一数据包,将所述第一数据包发送至所述递归DNS;
所述探测服务器接收所述递归DNS响应的第二数据包。
3.如权利要求2所述的方法,其特征在于,所述测试服务器解析所述待解析域名,将所述待解析域名对应的响应数据按照所述域名解析请求中的测试数据包大小生成第一数据包,包括:
所述测试服务器解析所述待解析域名,生成所述待解析域名对应的响应数据;
所述测试服务器判断所述待解析域名对应的响应数据的大小是否小于所述域名解析请求中的测试数据包大小,若是,则将所述待解析域名对应的响应数据确定为所述第一数据包;
否则,根据所述域名解析请求中的测试数据包大小,将所述待解析域名对应的响应数据处理为与所述域名解析请求中的测试数据包大小相对应的数据包,并将所述处理后的数据包确定为第一数据包。
4.如权利要求2所述的方法,其特征在于,所述探测服务器在向所述递归DNS发送域名解析请求之前,还包括:
所述探测服务器确定所述测试数据包大小;
所述探测服务器根据所述测试数据包大小,生成所述测试数据包大小对应的待解析域名;
将所述待解析域名和所述测试数据包大小组成所述域名解析请求。
5.如权利要求1所述的方法,其特征在于,所述核心服务器根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小,包括:
所述核心服务器若根据第M次域名解析中的第一数据包和第二数据包确定域名解析成功,且根据第M+1次域名解析中的第一数据包和第二数据包确定域名解析失败,则确定将所述第M次域名解析中的第一数据包指示的数据包大小确定为所述递归DNS的可支持数据包大小;其中,M大于等于1。
6.如权利要求5所述的方法,其特征在于,所述核心服务器根据第M次域名解析中的第一数据包和第二数据包确定域名解析成功,包括:
所述核心服务器若确定第M次域名解析中所述第二数据包指示域名解析成功,且与所述第一数据包一致,则确定域名解析成功;
其中,当所述递归DNS支持所述第一数据包的大小时,所述第二数据包指示域名解析成功;当所述递归DNS不支持所述第一数据包的大小时,所述第二数据包指示域名解析失败。
7.如权利要求1所述的方法,其特征在于,所述核心服务器在根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小之前,还包括:
所述核心服务器获取所述递归DNS的IP、所述递归DNS的出口IP、每次域名解析中的待解析域名和测试数据包大小;
所述核心服务器根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小,包括:
所述核心服务器针对每次域名解析,根据所述第一数据包和第二数据包,确定所述域名解析是否成功,并生成所述域名解析的数据字段;所述数据字段至少包括所述递归DNS的IP、所述递归DNS的出口IP、所述待解析域名、所述测试数据包大小、域名解析是否成功;
所述核心服务器根据每次域名解析的数据字段,确定所述递归DNS的可支持数据包大小。
8.如权利要求1所述的方法,其特征在于,所述核心服务器确定所述递归DNS的可支持数据包大小之后,还包括:
所述核心服务器将所述递归DNS的可支持数据包大小配置于权威DNS的配置文件中;所述配置文件用于所述权威DNS生成与所述递归DNS的可支持数据包大小对应的响应数据包,以反馈至所述递归DNS。
9.一种DNS解析的测试系统,其特征在于,包括探测服务器、测试服务器、核心服务器;
所述核心服务器用于获取多次域名解析中的第一数据包和第二数据包;所述第一数据包是递归DNS接收到的所述测试服务器发送的域名解析的数据包,所述第二数据包是所述递归DNS根据所述第一数据包响应至所述探测服务器的数据包;
所述核心服务器还用于根据所述多次域名解析中的第一数据包和第二数据包,确定所述递归DNS的可支持数据包大小。
10.如权利要求9所述的测试系统,其特征在于,任一次域名解析中:
所述探测服务器用于向所述递归DNS发送域名解析请求;
所述测试服务器用于接收所述递归DNS转发的所述域名解析请求;
所述测试服务器还用于解析所述待解析域名,将所述待解析域名对应的响应数据按照所述域名解析请求中的测试数据包大小生成第一数据包,将所述第一数据包发送至所述递归DNS;
所述探测服务器还用于接收所述递归DNS响应的第二数据包。
11.如权利要求9所述的测试系统,其特征在于,所述核心服务器还用于:
确定所述递归DNS的可支持数据包大小之后,将所述递归DNS的可支持数据包大小配置于权威DNS的配置文件中;所述配置文件用于所述权威DNS生成与所述递归DNS的可支持数据包大小对应的响应数据包,以反馈至所述递归DNS。
12.一种计算设备,其特征在于,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行权利要求1至8任一项所述的方法。
13.一种计算机可读非易失性存储介质,其特征在于,包括计算机可读指令,当计算机读取并执行所述计算机可读指令时,使得计算机执行如权利要求1至8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010080665.3A CN111343042B (zh) | 2020-02-05 | 2020-02-05 | 一种dns解析的测试方法及测试系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010080665.3A CN111343042B (zh) | 2020-02-05 | 2020-02-05 | 一种dns解析的测试方法及测试系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111343042A true CN111343042A (zh) | 2020-06-26 |
CN111343042B CN111343042B (zh) | 2022-02-22 |
Family
ID=71181487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010080665.3A Active CN111343042B (zh) | 2020-02-05 | 2020-02-05 | 一种dns解析的测试方法及测试系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111343042B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104754071A (zh) * | 2013-12-31 | 2015-07-01 | 金琥 | 基于dns协议标准检测dns隧道数据的方法 |
WO2017223342A1 (en) * | 2016-06-22 | 2017-12-28 | Ntt Innovation Institute, Inc. | Botnet detection system and method |
CN107592377A (zh) * | 2017-09-25 | 2018-01-16 | 深圳市茁壮网络股份有限公司 | 一种指令处理方法、域名解析服务器及客户端设备 |
CN107645573A (zh) * | 2017-09-29 | 2018-01-30 | 中国人民解放军国防科技大学 | 一种探测递归域名服务器转发配置的方法 |
CN108494891A (zh) * | 2018-02-28 | 2018-09-04 | 网宿科技股份有限公司 | 一种域名解析方法、服务器及系统 |
CN108667947A (zh) * | 2017-03-31 | 2018-10-16 | 贵州白山云科技有限公司 | 一种减少dns应答报文的长度的方法及装置 |
CN109347996A (zh) * | 2018-12-10 | 2019-02-15 | 中共中央办公厅电子科技学院 | 一种dns域名获取系统及方法 |
JP2019029965A (ja) * | 2017-08-03 | 2019-02-21 | 日本電信電話株式会社 | Dnsパケット処理システム、及びdnsパケット処理方法 |
CN109474575A (zh) * | 2018-09-11 | 2019-03-15 | 北京奇安信科技有限公司 | 一种dns隧道的检测方法及装置 |
-
2020
- 2020-02-05 CN CN202010080665.3A patent/CN111343042B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104754071A (zh) * | 2013-12-31 | 2015-07-01 | 金琥 | 基于dns协议标准检测dns隧道数据的方法 |
WO2017223342A1 (en) * | 2016-06-22 | 2017-12-28 | Ntt Innovation Institute, Inc. | Botnet detection system and method |
CN108667947A (zh) * | 2017-03-31 | 2018-10-16 | 贵州白山云科技有限公司 | 一种减少dns应答报文的长度的方法及装置 |
JP2019029965A (ja) * | 2017-08-03 | 2019-02-21 | 日本電信電話株式会社 | Dnsパケット処理システム、及びdnsパケット処理方法 |
CN107592377A (zh) * | 2017-09-25 | 2018-01-16 | 深圳市茁壮网络股份有限公司 | 一种指令处理方法、域名解析服务器及客户端设备 |
CN107645573A (zh) * | 2017-09-29 | 2018-01-30 | 中国人民解放军国防科技大学 | 一种探测递归域名服务器转发配置的方法 |
CN108494891A (zh) * | 2018-02-28 | 2018-09-04 | 网宿科技股份有限公司 | 一种域名解析方法、服务器及系统 |
CN109474575A (zh) * | 2018-09-11 | 2019-03-15 | 北京奇安信科技有限公司 | 一种dns隧道的检测方法及装置 |
CN109347996A (zh) * | 2018-12-10 | 2019-02-15 | 中共中央办公厅电子科技学院 | 一种dns域名获取系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111343042B (zh) | 2022-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107231402B (zh) | Http请求处理方法、装置及系统 | |
CN109495306B (zh) | 一种业务网络的扩容方法及设备 | |
CN108256118B (zh) | 数据处理方法、装置、系统、计算设备以及存储介质 | |
CN108063714B (zh) | 一种网络请求的处理方法及装置 | |
CN111045952A (zh) | 软件测试方法、流量回放装置、终端设备及可读存储介质 | |
CN108763089B (zh) | 一种测试方法、装置及系统 | |
CN109995612B (zh) | 一种服务巡检方法、装置及电子设备 | |
CN109739711B (zh) | 一种接口测试方法、装置、设备和存储介质 | |
CN110213380B (zh) | 一种消息推送方法、装置、计算机设备及存储介质 | |
CN111611140B (zh) | 埋点数据的上报验证方法、装置、电子设备及存储介质 | |
CN108683668A (zh) | 内容分发网络中的资源校验方法、装置、存储介质及设备 | |
CN107360036B (zh) | 一种网络故障定位方法、终端和服务器 | |
CN108733545B (zh) | 一种压力测试方法及装置 | |
CN107632909B (zh) | 用于自动测试设备功能的方法及系统 | |
CN109474484B (zh) | Cdn的检查方法及装置、系统 | |
CA3129986A1 (en) | Network testing method and device | |
US10123190B2 (en) | System and method for testing a CoAP server | |
CN111343042B (zh) | 一种dns解析的测试方法及测试系统 | |
CN108345508B (zh) | 接口调用测试方法和装置 | |
CN113238935A (zh) | 应用测试方法、系统、设备、介质及计算机程序产品 | |
CN109347766B (zh) | 一种资源调度的方法及装置 | |
CN109951549B (zh) | 网络页面的访问方法、装置及计算机可读存储介质 | |
CN111756594B (zh) | 压力测试的控制方法、计算机设备和计算机可读存储介质 | |
CN107483294B (zh) | 监控网络请求的方法及装置 | |
CN107948022B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |