AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 770896
Accepted
strugee
strugee
Asked: 2016-04-17 14:51:21 +0800 CST2016-04-17 14:51:21 +0800 CST 2016-04-17 14:51:21 +0800 CST

如何在递归中间的某个地方解决 DNS 问题?

  • 772

我的 DNS 有一个非常奇怪的问题。我的域名 ( strugee.net) 无法从某些网络解析,但可以从其他网络解析。

例如,在我的家庭网络(服务器所在的同一网络)上:

% dig strugee.net

; <<>> DiG 9.10.3-P4 <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10086
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net.           IN  A

;; ANSWER SECTION:
strugee.net.        1800    IN  A   216.160.72.225

;; Query time: 186 msec
;; SERVER: 205.171.3.65#53(205.171.3.65)
;; WHEN: Sat Apr 16 15:42:36 PDT 2016
;; MSG SIZE  rcvd: 56

但是,如果我登录到 Digital Ocean 上的服务器,则域无法解析:

% dig strugee.net      

; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> strugee.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 58551
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;strugee.net.           IN  A

;; Query time: 110 msec
;; SERVER: 2001:4860:4860::8844#53(2001:4860:4860::8844)
;; WHEN: Sat Apr 16 18:44:25 EDT 2016
;; MSG SIZE  rcvd: 40

但是,直接访问权威域名服务器就可以了:

% dig @dns1.registrar-servers.com strugee.net   

; <<>> DiG 9.9.5-9+deb8u3-Debian <<>> @dns1.registrar-servers.com strugee.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 30856
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;strugee.net.           IN  A

;; ANSWER SECTION:
strugee.net.        1800    IN  A   216.160.72.225

;; AUTHORITY SECTION:
strugee.net.        1800    IN  NS  dns3.registrar-servers.com.
strugee.net.        1800    IN  NS  dns4.registrar-servers.com.
strugee.net.        1800    IN  NS  dns2.registrar-servers.com.
strugee.net.        1800    IN  NS  dns1.registrar-servers.com.
strugee.net.        1800    IN  NS  dns5.registrar-servers.com.

;; Query time: 3 msec
;; SERVER: 216.87.155.33#53(216.87.155.33)
;; WHEN: Sat Apr 16 18:46:36 EDT 2016
;; MSG SIZE  rcvd: 172

很明显,某个大型网络存在问题,无法解析我的域,但我似乎无法弄清楚在哪里。我浏览了手册dig页以寻找可能有帮助的选项,但没有发现任何特别有用的东西。

我在 Namecheap 上既是域名注册商,也是 DNS 托管商。我打开了 DNSSEC 选项。我最近没有对我的 DNS 设置进行任何更改。

如何调试此问题并找到有问题的名称服务器?

domain-name-system recursive
  • 2 2 个回答
  • 2686 Views

2 个回答

  • Voted
  1. Best Answer
    Andrew B
    2016-04-17T15:40:47+08:002016-04-17T15:40:47+08:00

    如何调试此问题并找到有问题的名称服务器?

    daxd5 提供了一些好的入门建议,但这里唯一真正的答案是您需要知道如何像递归 DNS 服务器一样思考。由于权威层有许多错误配置可能导致不一致SERVFAIL,因此您需要 DNS 专业或在线验证工具。

    无论如何,目标不是逃避帮助你,但我想确保你明白这个问题没有决定性的答案。


    在您的特定情况下,我注意到这strugee.net似乎是一个使用 DNSSEC 签名的区域。从推荐链中存在DS和记录可以看出这一点:RRSIG

    # dig +trace +additional strugee.net
    <snip>
    strugee.net.            172800  IN      NS      dns2.registrar-servers.com.
    strugee.net.            172800  IN      NS      dns1.registrar-servers.com.
    strugee.net.            172800  IN      NS      dns3.registrar-servers.com.
    strugee.net.            172800  IN      NS      dns4.registrar-servers.com.
    strugee.net.            172800  IN      NS      dns5.registrar-servers.com.
    strugee.net.            86400   IN      DS      16517 8 1 B08CDBF73B89CCEB2FD3280087D880F062A454C2
    strugee.net.            86400   IN      RRSIG   DS 8 2 86400 20160423051619 20160416040619 50762 net. w76PbsjxgmKAIzJmklqKN2rofq1e+TfzorN+LBQVO4+1Qs9Gadu1OrPf XXgt/AmelameSMkEOQTVqzriGSB21azTjY/lLXBa553C7fSgNNaEXVaZ xyQ1W/K5OALXzkDLmjcljyEt4GLfcA+M3VsQyuWI4tJOng184rGuVvJO RuI=
    dns2.registrar-servers.com. 172800 IN   A       216.87.152.33
    dns1.registrar-servers.com. 172800 IN   A       216.87.155.33
    dns3.registrar-servers.com. 172800 IN   A       216.87.155.33
    dns4.registrar-servers.com. 172800 IN   A       216.87.152.33
    dns5.registrar-servers.com. 172800 IN   A       216.87.155.33
    ;; Received 435 bytes from 192.41.162.30#53(l.gtld-servers.net) in 30 ms
    

    在我们继续之前,我们需要检查签名是否有效。DNSViz是一个经常用于此目的的工具,它确认确实存在问题。图片中愤怒的红色表示您有问题,但与其将鼠标悬停在所有内容上,我们可以展开左侧边栏上的通知:

    RRSIG strugee.net/A alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
    RRSIG strugee.net/DNSKEY alg 8, id 16517: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
    RRSIG strugee.net/DNSKEY alg 8, id 16517: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
    RRSIG strugee.net/MX alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
    RRSIG strugee.net/NS alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
    RRSIG strugee.net/SOA alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
    RRSIG strugee.net/TXT alg 8, id 10636: The Signature Expiration field of the RRSIG RR (2016-04-14 00:00:00+00:00) is 2 days in the past.
    net to strugee.net: No valid RRSIGs made by a key corresponding to a DS RR were found covering the DNSKEY RRset, resulting in no secure entry point (SEP) into the zone. (216.87.152.33, 216.87.155.33, UDP_0_EDNS0_32768_4096)
    

    问题很明显:您所在区域的签名已过期,需要刷新密钥。您看到不一致结果的原因是并非所有递归服务器都启用了 DNSSEC 验证。那些验证的正在删除您的域,而那些没有验证的则照常营业。


    编辑: Comcast 的 DNS 基础设施以实施 DNSSEC 验证而闻名,作为他们的客户之一,我可以确认我也看到了SERVFAIL。

    $ dig @75.75.75.75 strugee.net | grep status
    ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 2011
    
    • 25
  2. daxd5
    2016-04-17T15:14:54+08:002016-04-17T15:14:54+08:00

    虽然您确实看到权威名称服务器正确响应,但您需要跟进整个 DNS 解析链。也就是说,从根服务器向上遍历整个 DNS 层次结构。

    $ dig net NS
    ;; ANSWER SECTION:
    net.            172800  IN  NS  c.gtld-servers.net.
    net.            172800  IN  NS  f.gtld-servers.net.
    net.            172800  IN  NS  k.gtld-servers.net.
    ;; snipped extra servers given
    $ dig @c.gtld-servers.net strugee.net NS
    ;; AUTHORITY SECTION:
    strugee.net.        172800  IN  NS  dns2.registrar-servers.com.
    strugee.net.        172800  IN  NS  dns1.registrar-servers.com.
    ;; snipped extra servers again
    

    这基本上检查公共 DNS 服务器是否正常工作,并且您正在做与您的 DNS 解析器应该做的事情相同的事情。因此,除非他们的 DNS 解析器出现问题,否则您应该在 Digital Ocean 服务器中得到与上述相同的答案:

    $ dig net NS
    $ dig strugee.net NS
    $ dig strugee.net
    

    如果前两个查询失败,则说明 Digital Ocean 方面的 DNS 失败。检查您的/etc/resolv.conf并尝试查询辅助 DNS 服务器。如果第二个有效,只需切换解析器的顺序并重试。

    • 5

相关问题

  • Solaris DNS

  • resolv.conf 在经过一段时间后被更改

  • 为什么有些网站的网址中没有“www”就无法显示?[关闭]

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve