Complete a 3 Question Survey and Earn a re:Post Badge
Help improve AWS Support Official channel in re:Post and share your experience - complete a quick three-question survey to earn a re:Post badge!
DNS 的工作原理是什么,以及如何对部分或间歇性 DNS 故障进行故障排除?
我想对部分或间歇性 DNS 故障进行故障排除。
解决方案
DNS 概述
DNS 将易于记忆的名称(例如 www.example.com)转换为数字 IP 地址(例如 192.0.2.1),然后将用户路由到互联网应用程序。此过程称为“DNS 解析”。 有关详细信息,请参阅什么是 DNS?
DNS 部分、临时或间歇性故障场景
在某些情况下,客户端会短时间或间歇性地遇到 DNS 故障。以下是可能导致 DNS 部分故障的常见场景:
注册商的名称服务器配置不正确
有时,注册商上的一个或多个名称服务器配置不正确。whois 查询提供在域注册商上配置的名称服务器。在 DNS 解析期间,如果注册的名称服务器不响应或响应意外信息,则本地解析器会返回 SERVFAIL 消息。在某些情况下,本地解析器可以使用配置可能正确的其他名称服务器尝试请求。在这种情况下,他们会收到预期的 DNS 响应。
此外,本地解析器可以在 TTL 时间内缓存错误的名称服务器,并且可以将下一个查询发送到配置错误的名称服务器。
更改了托管区的名称服务器
当托管区中域的名称服务器记录配置不正确时,会出现 DNS 部分故障。更新了现有的名称服务器,或在名称服务器记录的值中添加了一些额外的名称服务器。如果解析器尝试使用错误的名称服务器解析域,则您可能会遇到 DNS 部分故障。
客户端的 DNS 解析器无法解析域
有时在解析器配置文件中设置了不正确的解析器,例如 Linux 中的 resolv.conf。当您从 Amazon Virtual Private Cloud (Amazon VPC) 中的 Amazon Elastic Compute Cloud (Amazon EC2) 实例解析域时,EC2 实例将使用 resolv.conf 中定义的名称服务器。
Amazon 提供的 DNS 服务器对 DNS 查询进行节流
Amazon 提供的 DNS 服务器对每个弹性网络接口规定了每秒 1024 个数据包的限制。Amazon 提供的 DNS 服务器会拒绝任何超过此限制的流量。由于 DNS 节流,DNS 会间歇性地超时。要解决此问题,请打开实例缓存或延长应用程序上的 DNS 重试计时器。
域 URL 从互联网解析,而不是从 EC2 实例解析
在您完成以下操作后,域的 DNS 查询将始终从私有托管区进行解析:
- 创建一个与您的域同名的私有托管区。
- 将您的 VPC 与使用 AmazonProvidedDNS 配置的私有托管区和 VPC DHCP 选项相关联。
如果您的域查询记录不在私有托管区中,则 DNS 查询将失败。此外,您的 DNS 查询不会转发到公共域。由于 DNS 记录存在于公共域区域中,因此它确实是从互联网解析的。
Route 53 中的 DNS 防火墙规则配置不正确
如果任何域出现以下任一情况,请检查是否为您的域配置了 Amazon Route 53 DNS 防火墙。
- 在互联网上解析
- 通过公共解析器(即 1.1.1.1 或 8.8.8.8 作为解析器 IP)进行解析
- 不从虚拟专用服务器 (VPS) 进行解析。
Route 53 解析器端点配置不正确
可以将 Route 53 解析器出站端点和解析器规则配置为向本地 DNS 服务器发送特定的 DNS 查询。确保 Route 53 端点、解析器规则和本地 DNS 服务器配置正确。有关详细信息,请参阅如何解决 Route 53 Resolver 端点的 DNS 解析问题?
对基于 Linux 的操作系统上的 DNS 故障进行故障排除
使用 dig 命令对主机的 /etc/resolv.conf 文件中配置的客户端 DNS 服务器执行查询。
$ dig www.amazon.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> www.amazon.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13150 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.amazon.com. IN A ;; ANSWER SECTION: www.amazon.com. 41 IN A 54.239.17.6 ;; Query time: 1 msec ;; SERVER: 10.108.0.2#53(10.108.0.2) ;; WHEN: Fri Oct 21 21:43:11 2016 ;; MSG SIZE rcvd: 48
在前面的示例中,答案部分显示 54.239.17.6 是 www.amazon.com 的 HTTP 服务器的 IP 地址。如果您添加 +trace 变量,则 dig 命令还可以对 DNS 记录执行递归查询。以下是包含 +trace 变量的 dig 命令的示例:
$ dig +trace www.amazon.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> +trace www.amazon.com ;; global options: +cmd . 518400 IN NS J.ROOT-SERVERS.NET. . 518400 IN NS K.ROOT-SERVERS.NET. . 518400 IN NS L.ROOT-SERVERS.NET. ... ;; Received 508 bytes from 10.108.0.2#53(10.108.0.2) in 31 ms com. 172800 IN NS a.gtld-servers.net. com. 172800 IN NS b.gtld-servers.net. com. 172800 IN NS c.gtld-servers.net. ... ;; Received 492 bytes from 193.0.14.129#53(193.0.14.129) in 93 ms amazon.com. 172800 IN NS pdns1.ultradns.net. amazon.com. 172800 IN NS pdns6.ultradns.co.uk. ... ;; Received 289 bytes from 192.33.14.30#53(192.33.14.30) in 201 ms www.amazon.com. 900 IN NS ns-1019.awsdns-63.net. www.amazon.com. 900 IN NS ns-1568.awsdns-04.co.uk. www.amazon.com. 900 IN NS ns-277.awsdns-34.com. ... ;; Received 170 bytes from 204.74.108.1#53(204.74.108.1) in 87 ms www.amazon.com. 60 IN A 54.239.26.128 www.amazon.com. 1800 IN NS ns-1019.awsdns-63.net. www.amazon.com. 1800 IN NS ns-1178.awsdns-19.org. ... ;; Received 186 bytes from 205.251.195.251#53(205.251.195.251) in 7 ms
您也可以执行仅返回名称服务器的查询。
$ dig -t NS www.amazon.com ; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> -t NS www.amazon.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48631 ;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;www.amazon.com. IN NS ;; ANSWER SECTION: www.amazon.com. 490 IN NS ns-1019.awsdns-63.net. www.amazon.com. 490 IN NS ns-1178.awsdns-19.org. www.amazon.com. 490 IN NS ns-1568.awsdns-04.co.uk. www.amazon.com. 490 IN NS ns-277.awsdns-34.com. ;; Query time: 0 msec ;; SERVER: 10.108.0.2#53(10.108.0.2) ;; WHEN: Fri Oct 21 21:48:20 2016 ;; MSG SIZE rcvd: 170
在前面的示例中,www.amazon.com 有以下四个权威名称服务器:
- ns-1019.awsdns-63.net
- ns-1178.awsdns-19.org
- ns-1568.awsdns-04.co.uk
- ns-277.awsdns-34.com
这四台服务器中的任何一个都可以权威地回答有关 www.amazon.com 主机名的问题。使用 dig 命令,直接以特定的名称服务器为目标。检查给定域的每个权威名称服务器的答案是否正确。
以下是向 www.amazon.com 的其中一个权威名称服务器 (ns-1019.awsdns-63.net) 进行查询的示例输出。服务器响应显示 www.amazon.com 可在 54.239.25.192 上线:
$ dig www.amazon.com @ns-1019.awsdns-63.net.; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.37.rc1.49.amzn1 <<>> www.amazon.com @ns-1019.awsdns-63.net. ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31712 ;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0 ;; WARNING: recursion requested but not available ;; QUESTION SECTION: ;www.amazon.com. IN A ;; ANSWER SECTION: www.amazon.com. 60 IN A 54.239.25.192 ;; AUTHORITY SECTION: www.amazon.com. 1800 IN NS ns-1019.awsdns-63.net. www.amazon.com. 1800 IN NS ns-1178.awsdns-19.org. www.amazon.com. 1800 IN NS ns-1568.awsdns-04.co.uk. ... ;; Query time: 7 msec ;; SERVER: 205.251.195.251#53(205.251.195.251) ;; WHEN: Fri Oct 21 21:50:00 2016 ;; MSG SIZE rcvd: 186
以下行显示 ns-576.awsdns-08.net 是 amazon.com 的权威名称服务器:
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0
aa 标志的存在表明名称服务器 ns-1019.awsdns-63.net 为我们提供了对资源记录 www.amazon.com 的权威答案。
对基于 Windows 的操作系统上的 DNS 故障进行故障排除
使用 nslookup 实用程序返回与主机名关联的 IP 地址。
C:\>nslookup www.amazon.comServer: ip-10-20-0-2.ec2.internal Address: 10.20.0.2 Non-authoritative answer: Name: www.amazon.com Address: 54.239.25.192
要使用 nslookup 实用程序确定主机名的权威名称服务器,请使用 -type=NS 标志:
C:\>nslookup -type=NS www.amazon.comServer: ip-10-20-0-2.ec2.internal Address: 10.20.0.2 Non-authoritative answer: www.amazon.com nameserver = ns-277.awsdns-34.com www.amazon.com nameserver = ns-1019.awsdns-63.net www.amazon.com nameserver = ns-1178.awsdns-19.org ...
要查看 www.amazon.com 的 ns-277.awsdns-34.com 是否正确响应了对 www.amazon.com 的请求,请使用以下语法:
C:\>nslookup www.amazon.com ns-277.awsdns-34.comServer: UnKnown Address: 205.251.193.21 Name: www.amazon.com Address: 54.239.25.200
