dns服务器在做nslookup测试的时候,出现dns timeout 2 seconds的错误解释

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:
最近同事报障,说是在内网进行nslookup测试时发现:当使用内网DNS服务器192.168.1.1进行解析时,DNS服务器响应非常快,而且没有 任何错误;但当使用DMZ区的服务器51.144.198.99进行测试时,发现总是提示请求超时,然后再返回正确解析。由此怀疑我们正在使用的防火墙在 处理DNS请求时存在问题。 

国内的防火墙产品也确实一点也不争气,在使用过程中总是会出现一些莫名其妙的问题,如在低版本操作系统中支持的功能在高版本中可能就支持不好,有时为了解 决低版本操作系统中的一个Bug而进行防火墙操作系统升级,结果可能会是解决了一个,又新出来一堆!这不,才升级了防火墙,同事就找上门来了,没有办法, 谁让咱用的防火墙厂家不争气呢,人家怀疑咱这里出问题也是正常啊! 

首先查看故障现象,按同事所说进行测试: 

C:/>nslookup 

Default Server: dns.dg 

Address: 192.168.1.1 



> www.netadmin.com.cn 

Server: dns.dg 

Address: 192.168.1.1 



Non-authoritative answer: 

Name: www.365master.com 

Address: 219.141.209.244 

Aliases: www.netadmin.com.cn 



> server 51.144.198.99 

Default Server: [51.144.198.99] 

Address: 51.144.198.99 



> www.netadmin.com.cn 

Server: [51.144.198.99] 

Address: 51.144.198.99 



DNS request timed out. (请求超时) 

timeout was 2 seconds. 

Non-authoritative answer: 

Name: www.365master.com 

Address: 219.141.209.244 

Aliases: www.netadmin.com.cn 



C:/>ping 192.168.1.1 (内网DNS服务器) 



Pinging 192.168.1.1 with 32 bytes of data: 



Reply from 192.168.1.1: bytes=32 time<1ms TTL=127 

Reply from 192.168.1.1: bytes=32 time<1ms TTL=127 

Reply from 192.168.1.1: bytes=32 time<1ms TTL=127 

Reply from 192.168.1.1: bytes=32 time<1ms TTL=127 



Ping statistics for 192.168.1.1: 

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), 

Approximate round trip times in milli-seconds: 

Minimum = 0ms, Maximum = 0ms, Average = 0ms 



C:/>ping 51.144.198.99  (DMZ区DNS服务器) 



Pinging 51.144.198.99 with 32 bytes of data: 



Reply from 51.144.198.99: bytes=32 time<1ms TTL=126 

Reply from 51.144.198.99: bytes=32 time<1ms TTL=126 

Reply from 51.144.198.99: bytes=32 time<1ms TTL=126 

Reply from 51.144.198.99: bytes=32 time<1ms TTL=126 



Ping statistics for 51.144.198.99: 

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), 

Approximate round trip times in milli-seconds: 

Minimum = 0ms, Maximum = 0ms, Average = 0ms 



经过ping命令的测试,测试主机到内网DNS服务器、DMZ区DNS服务器响应都很快,所以线路应该没有问题。如果是防火墙策略问题,则nslookup查询时应该完全无响应,而不是在后面又进行了正确解析。 

那么可能是下面的几种原因: 

可能1:DMZ区服务器有问题;经过在DMZ区其它服务器进行nslookup测试,发现DMZ区的DNS服务器响应正常,由此排除了这种可能。 

可能2:防火墙有问题,有可能是高吞吐量时响应有问题。在晚上流量比较小时进行了nslookup测试,发现故障现象仍然存在。看来并不是网络吞吐量引起的防火墙问题。 

难道防火墙存在处理DNS请求时存在问题?不敢这么想!一年前我们发现防火墙存在着FTP问题,结果到现在还没有解决!防火墙厂家的开发人员太有才了!好希望不是防火墙的问题! 

由于在内网进行测试时所使用的主机均为同网段主机,所以尝试更换一台不同网段的主机进行测试,结果竟然―――没有问题! 

OK,只要有机器没有问题,那这个DNS的问题就应该不是防火墙引起的!只要不是防火墙的问题,那就好解决!呵呵,真是怕了防火墙厂家了! 

解决技术问题,如果从表面看不出是什么问题引起的,那么经常用的功能就是Debug,只有从更深层次去查看,才更容易发现问题。那么nslookup工具有没有Debug功能呢?经过简单查看帮助,发现其有两个Debug参数: 

[no]debug - print debugging information(显示一般调试信息) 

[no]d2 - print exhaustive debugging information(显示详细调试信息) 

OK,准备使用d2参数查看两台机器执行Debug时分别做了些什么动作! 



PC-A(Windows XP): 

C:/ >nslookup 

Default Server: dns.dg 

Address: 192.168.1.1 



> server 51.144.198.99 

Default Server: [51.144.198.99] 

Address: 51.144.198.99 



> set d2 

> www.netadmin.com.cn 

Server: [51.144.198.99] 

Address: 51.144.198.99 



------------ 

SendRequest(), len 45 

HEADER: 

opcode = QUERY, id = 18, rcode = NOERROR 

header flags: query, want recursion 

questions = 1, answers = 0, authority records = 0, additional = 0 



QUESTIONS: 

www.netadmin.com.cn.dgic.cn, type = A, class = IN 



------------ 

DNS request timed out. 

timeout was 2 seconds. 

timeout (2 secs) 

SendRequest failed 

------------ 

SendRequest(), len 37 

HEADER: 

opcode = QUERY, id = 19, rcode = NOERROR 

header flags: query, want recursion 

questions = 1, answers = 0, authority records = 0, additional = 0 



QUESTIONS: 

www.netadmin.com.cn, type = A, class = IN 



------------------------ 



Got answer (84 bytes): 

HEADER: 

opcode = QUERY, id = 19, rcode = NOERROR 

header flags: response, want recursion, recursion avail. 

questions = 1, answers = 2, authority records = 0, additional = 0 



QUESTIONS: 

www.netadmin.com.cn, type = A, class = IN 

ANSWERS: 

-> www.netadmin.com.cn 

type = CNAME, class = IN, dlen = 19 

canonical name = www.365master.com 

ttl = 698 (11 mins 38 secs) 

-> www.365master.com 

type = A, class = IN, dlen = 4 

internet address = 219.141.209.244 

ttl = 700 (11 mins 40 secs) 



------------ 

Non-authoritative answer: 

Name: www.365master.com 

Address: 219.141.209.244 

Aliases: www.netadmin.com.cn 



PC-B(Windows 2000 Server): 

C:/ >nslookup 

Default Server: dns.dg 

Address: 192.168.1.1 



> server 51.144.198.99 

Default Server: [51.144.198.99] 

Address: 51.144.198.99 



> set d2 

> www.netadmin.com.cn 

Server: [51.144.198.99] 

Address: 51.144.198.99 



------------ 

SendRequest(), len 37 

HEADER: 

opcode = QUERY, id = 5, rcode = NOERROR 

header flags: query, want recursion 

questions = 1, answers = 0, authority records = 0, additional = 0 



QUESTIONS: 

www.netadmin.com.cn, type = A, class = IN 



------------------------ 

Got answer (132 bytes): 

HEADER: 

opcode = QUERY, id = 5, rcode = NOERROR 

header flags: response, want recursion, recursion avail. 

questions = 1, answers = 2, authority records = 2, additional = 0 



QUESTIONS: 

www.netadmin.com.cn, type = A, class = IN 

ANSWERS: 

-> www.netadmin.com.cn 

type = CNAME, class = IN, dlen = 19 

canonical name = www.365master.com 

ttl = 2521 (42 mins 1 sec) 

-> www.365master.com 

type = A, class = IN, dlen = 4 

internet address = 219.141.209.244 

ttl = 2917 (48 mins 37 secs) 

AUTHORITY RECORDS: 

-> 365master.com 

type = NS, class = IN, dlen = 16 

nameserver = dns11.hichina.com 

ttl = 2917 (48 mins 37 secs) 

-> 365master.com 

type = NS, class = IN, dlen = 8 

nameserver = dns12.hichina.com 

ttl = 2917 (48 mins 37 secs) 



------------ 

Non-authoritative answer: 

Name: www.365master.com 

Address: 219.141.209.244 

Aliases: www.netadmin.com.cn 

经过对照两台PC机的输出,不难发现,问题就出在PC-A在进行nslookup查询时,多出了一次查询,而且多出的这次查询的对象就是www.netadmin.com.cn.dgic.cn,其最后的后缀(dgic.cn)就是测试机PC-A所在的域名。 

在PC使用Nslookup工具进行域名查询测试时,如果该PC是活动目录中的一台主机,默认情况下该主机除了向DNS服务器递交真正需要查询的域名外,它还向DNS服务器递交“查询的域名+活动目录域后缀”(可能为多个)”这样的请求。 

PC-A是活动目录dgic.cn中的一员,在其向内网DNS服务器进行查询请求时,它会提交两个请求,分别 为:www.netadmin.com.cn.dgic.cn和www.netadmin.com.cn。对于前者,内网DNS服务器 192.168.1.1中含有域dgic.cn,但没有www.netadmin.com.cn.dgic.cn主机记录(A记录),nslookup没 有任何输出;对于后者,其进行一般A记录的查询,并进行正确输出显示。当PC-A使用DMZ区DNS服务器进行nslookup查询时,同样道理,它也会 向其发送两个查询请求,对于www.netadmin.com.cn.dgic.cn,由于DMZ区DNS服务器没有域dgic.cn的记录,于是其向上 层服务器查询,在得不到响应的情况下最终返回查询超时;对于www.netadmin.com.cn这一域名,其可以进行查询得到结果,并最终正常输出。 

PC-B只是工作组中一台主机,所以没有域后缀,这样,当其进行nslookup测试时,无论其使用内网DNS服务器还是DMZ区DNS服务器,其只提交一项域名请求,那就是www.netadmin.com.cn,所以查询结果没有超时现象。 

最终,得出了结论:这并不是一个网络故障,而是nslookup工具的原因。 

那么有没有办法禁止nslookup这种行为呢,办法还是有的。其一是使用nslookup中的search参数;其二就是使用srchlist参数。 

Search参数:启用域名搜索列表。这也是默认设置,也就是在使用nslookup进行域名测试时,nslookup会把主机的域名缀附加到所要请求的域名后面。如果想禁用它,则只需在nslookup环境中,使用set nosearch命令即可禁用。 

Srchlist参数:使用域名搜索列表时所要附加的域名列表。默认情况下其值即主机所在的活动目录。如果想更改,可以在nslookup环境中 使用命令“set srchlist=域名1/域名2/域名3”,如果想禁止nslookup工具附加域名,则只需“set srchlist=”即可。 

下面用nslookup工具的另外一种用法来演示这两个参数的使用,并进而证实我们的结论: 

例一:使用默认设置 

C:/>nslookup www.netadmin.com.cn 51.144.198.99 

*** Can't find server name for address 51.144.198.99: Non-existent domain 

Server: UnKnown 

Address: 51.144.198.99 



DNS request timed out. 

timeout was 2 seconds. 

Non-authoritative answer: 

Name: www.365master.com 

Address: 219.141.209.244 

Aliases: www.netadmin.com.cn 



例二:使用“nosearch”参数 

C:/>nslookup -nosearch www.netadmin.com.cn 51.144.198.99 

*** Can't find server name for address 51.144.198.99: Non-existent domain 

Server: UnKnown 

Address: 51.144.198.99 



Non-authoritative answer: 

Name: www.365master.com 

Address: 219.141.209.244 

Aliases: www.netadmin.com.cn 



例三:使用“srchlist=”参数 

C:/>nslookup -srchlist= www.netadmin.com.cn 51.144.198.99 

*** Can't find server name for address 51.144.198.99: Non-existent domain 

Server: UnKnown 

Address: 51.144.198.99 



Non-authoritative answer: 

Name: www.365master.com 

Address: 219.141.209.244 

Aliases: www.netadmin.com.cn 




本文转自 onesthan 51CTO博客,原文链接:http://blog.51cto.com/91xueit/1744866,如需转载请自行联系原作者

相关文章
|
13天前
|
存储 弹性计算 缓存
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
阿里云服务器ECS提供了多种通用型实例规格族,每种规格族都针对不同的计算需求、存储性能、网络吞吐量和安全特性进行了优化。以下是对存储增强通用型实例规格族g8ise、通用型实例规格族g8a、通用型实例规格族g8y、存储增强通用型实例规格族g7se、通用型实例规格族g7等所有通用型实例规格族的详细解析,包括它们的核心特点、适用场景、实例规格及具体指标数据,以供参考。
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
|
17天前
阿里云服务器带宽价格参考:选择1M、3M、5M、10M宽带价格解析
阿里云服务器1M、3M、5M、10M宽带需要多少钱?单说阿里云服务器宽带多少钱,而不确定云服务器实例规格及cpu和内存配置的话,是没办法具体说多少钱的,因为云服务器的价格受很多因素影响。本文将详细解析阿里云服务器在选择1M、3M、5M、10M不同带宽下的价格差异,以供大家参考。
阿里云服务器带宽价格参考:选择1M、3M、5M、10M宽带价格解析
|
1月前
|
弹性计算 开发框架 数据可视化
阿里云虚拟主机和云服务器有什么区别?多角度全解析对比
阿里云虚拟主机与云服务器ECS的主要区别在于权限与灵活性。虚拟主机简化了网站搭建流程,预装常用环境,适合初级用户快速建站;而云服务器提供全面控制权,支持多样化的应用场景,如APP后端、大数据处理等,更适合具备技术能力的用户。尽管虚拟主机在价格上通常更优惠,但随着云服务器价格的下降,其性价比已超越虚拟主机,成为更具吸引力的选择。
|
2月前
|
缓存 运维 监控
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
打造稳定高效的数据引擎:数据库服务器运维最佳实践全解析
|
29天前
|
域名解析 监控 负载均衡
智能DNS解析:自动选择最快服务器的奥秘
【9月更文挑战第7天】智能DNS解析是一种根据用户网络环境和服务器负载动态选择最佳服务器的技术,显著提升了访问速度与稳定性。本文详细介绍了其工作原理,包括实时监控、数据分析和路由选择,并探讨了自动选择最快服务器背后的算法策略,如负载均衡、地理位置识别及实时测试。附带示例代码帮助理解其基本实现过程。
63 0
|
2月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
68 0
|
2月前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
38 0
|
2月前
|
JavaScript 搜索推荐 前端开发
从零搭建到部署:Angular与Angular Universal手把手教你实现服务器端渲染(SSR),全面解析及实战指南助你提升Web应用性能与SEO优化效果
【8月更文挑战第31天】服务器端渲染(SSR)是现代Web开发的关键技术,能显著提升SEO效果及首屏加载速度,改善用户体验。Angular Universal作为官方SSR解决方案,允许在服务器端生成静态HTML文件。本文通过具体示例详细介绍如何使用Angular Universal实现SSR,并分享最佳实践。首先需安装Node.js和npm。
29 0
|
2月前
|
数据采集 弹性计算 供应链
阿里云服务器付费模式:按量付费、包年包月和抢占式实例全解析
阿里云服务器提供包年包月、按量付费与抢占式实例三种付费模式。包年包月为预付费,适合长期稳定使用,价格更优惠并支持备案。按量付费则为后付费模式,按小时结算,适合短期或访问量波动大的场景,但不支持备案。抢占式实例基于按量付费,价格更低(最多节省90%),适用于无状态应用,如临时测试或可弹性伸缩的Web服务,但存在被系统释放的风险,同样不支持备案。根据具体需求选择合适的付费模式能够有效降低成本并提高效率。
57 0
|
2月前
|
JSON API 数据格式
基于服务器响应的实时天气数据进行JSON解析的详细代码及其框架
【8月更文挑战第25天】这段资料介绍了一个使用Python从服务器获取实时天气数据并解析JSON格式数据的基本框架。主要分为三个部分:一是安装必要的`requests`库以发起HTTP请求获取数据,同时利用Python内置的`json`库处理JSON数据;二是提供了具体的代码实现,包括获取天气数据的`get_weather_data`函数和解析数据的`parse_weather_data`函数;三是对代码逻辑进行了详细说明,包括如何通过API获取数据以及如何解析这些数据来获取温度和天气描述等信息。用户需要根据实际使用的天气API调整代码中的API地址、参数和字段名称。

相关产品

  • 云解析DNS
  • 推荐镜像

    更多
    下一篇
    无影云桌面