![知道为什么托管在 Azure 中的域会导致 Windows DNS(缓存解析器)所有查找失败吗?](https://linux22.com/image/783804/%E7%9F%A5%E9%81%93%E4%B8%BA%E4%BB%80%E4%B9%88%E6%89%98%E7%AE%A1%E5%9C%A8%20Azure%20%E4%B8%AD%E7%9A%84%E5%9F%9F%E4%BC%9A%E5%AF%BC%E8%87%B4%20Windows%20DNS%EF%BC%88%E7%BC%93%E5%AD%98%E8%A7%A3%E6%9E%90%E5%99%A8%EF%BC%89%E6%89%80%E6%9C%89%E6%9F%A5%E6%89%BE%E5%A4%B1%E8%B4%A5%E5%90%97%EF%BC%9F.png)
从上周开始,我们突然在公司网络中遇到解析 FQDN(syrex.quosalsell.com)的问题。Windows 服务器上次安装更新是在 1 月星期二补丁发布之后,因此没有发生任何变化。
我觉得 Azure 做错了什么,因为托管在其他地方的另一个几乎相同的域名运行正常。然而,我不明白他们做错了什么。
我们不拥有该域,它与我们使用的服务相关联,而该服务提供商告诉我们这是我们环境中的问题。为了验证,我们启动了一个新的干净的未加入的 Windows Server 2022,安装了 DNS 角色,然后检索了信任锚(自 Windows Server 2016 以来,DNSSEC 验证默认启用,但不会自动检索信任锚,因此在执行此操作之前,它实际上处于禁用状态)。
我们使用以下命令检索了信任锚,从而启用 DNSSEC 验证:
Get-DnsServerTrustAnchor -Name .
注意:我们可以通过 Google (8.8.8.8)、Cloudflare (1.1.1.1) 和我们自己的递归 DNS 解析器 (BIND v9.16.37-1~deb11u1) 解析域名,这些解析器均已启用 DNSSEC 验证。这似乎不是配置了 DS 记录但区域未签名的情况。
细微差别如下:如果我们向域发送正常的“A”查询,它会按预期工作,但是当我们向“DS”记录发送查询时,Windows Server 2022 的 DNS 服务器会缓存 SERVFAIL 响应,然后使用 SERVFAIL 响应与此 FQDN 相关的任何进一步的客户端查询。
在以下示例中,我们从客户端 (192.168.1.77) 向新 DNS 服务器发送查询,该客户端已配置为向 Google (8.8.8.8) 转发。但问题并不出在 Google,因为当我们使用自己的递归解析器(在 Debian 11 上运行的 BIND)或 Cloudflare (1.1.1.1) 时,Windows DNS 的行为相同。
Azure 中托管的问题域:
2023/02/07 21:04:34 158C PACKET 00000221C36BE530 UDP Snd 8.8.8.8 e95b Q [1001 D NOERROR] DNSKEY (0)
2023/02/07 21:04:35 1A68 PACKET 00000221C508D0B0 UDP Rcv 8.8.8.8 e95b R Q [b081 DR NOERROR] DNSKEY (0)
2023/02/07 21:04:36 1A68 PACKET 00000221C322E5E0 UDP Rcv 192.168.1.77 a476 Q [2001 D NOERROR] DS (5)syrex(10)quosalsell(3)com(0)
2023/02/07 21:04:36 1A68 PACKET 00000221C36A58A0 UDP Snd 8.8.8.8 58c3 Q [1001 D NOERROR] DS (5)syrex(10)quosalsell(3)com(0)
2023/02/07 21:04:36 1A68 PACKET 00000221C6CEBDC0 UDP Rcv 8.8.8.8 58c3 R Q [9081 DR NOERROR] DS (5)syrex(10)quosalsell(3)com(0)
2023/02/07 21:04:36 1A68 PACKET 00000221CA727910 UDP Snd 8.8.8.8 1f93 Q [1001 D NOERROR] DS (5)syrex(10)quosalsell(3)com(0)
2023/02/07 21:04:37 1A68 PACKET 00000221C4D61CC0 UDP Rcv 8.8.8.8 1f93 R Q [9281 DR SERVFAIL] DS (5)syrex(10)quosalsell(3)com(0)
2023/02/07 21:04:37 1A68 PACKET 00000221C322E5E0 UDP Snd 192.168.1.77 a476 R Q [8281 DR SERVFAIL] DS (5)syrex(10)quosalsell(3)com(0)
2023/02/07 21:04:38 1A68 PACKET 00000221C32310A0 UDP Rcv 192.168.1.77 5c95 Q [2001 D NOERROR] NS (5)syrex(10)quosalsell(3)com(0)
2023/02/07 21:04:38 1A68 PACKET 00000221C32310A0 UDP Snd 192.168.1.77 5c95 R Q [8281 DR SERVFAIL] NS (5)syrex(10)quosalsell(3)com(0)
2023/02/07 21:04:39 1A68 PACKET 00000221C508D0B0 UDP Rcv 192.168.1.77 4d06 Q [2001 D NOERROR] A (5)syrex(10)quosalsell(3)com(0)
2023/02/07 21:04:39 1A68 PACKET 00000221C508D0B0 UDP Snd 192.168.1.77 4d06 R Q [8281 DR SERVFAIL] A (5)syrex(10)quosalsell(3)com(0)
经过一番搜索,我们终于找到了另一个(非附属)FQDN,它也使零使用 DNSSEC,其中 FQDN 解析为另一个 FQDN 的 CNAME。在这种情况下,问题不会发生,它只会发生在 Azure 中托管的 DNS 区域上:
2023/02/07 21:50:50 1FBC PACKET 00000242ED8BBB20 UDP Snd 8.8.8.8 dd69 Q [1001 D NOERROR] DNSKEY (0)
2023/02/07 21:50:51 17CC PACKET 00000242EE6699A0 UDP Rcv 8.8.8.8 dd69 R Q [b081 DR NOERROR] DNSKEY (0)
2023/02/07 21:50:52 17CC PACKET 00000242ED8C9650 UDP Rcv 192.168.1.77 fa6d Q [2001 D NOERROR] DS (3)www(6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:52 17CC PACKET 00000242ED8B9060 UDP Snd 8.8.8.8 1f42 Q [1001 D NOERROR] DS (3)www(6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242EDD95D40 UDP Rcv 8.8.8.8 1f42 R Q [9081 DR NOERROR] DS (3)www(6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F4D9C070 UDP Snd 8.8.8.8 d346 Q [1001 D NOERROR] DS (3)www(6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F07191B0 UDP Rcv 8.8.8.8 d346 R Q [9081 DR NOERROR] DS (3)www(6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F4D9C070 UDP Snd 8.8.8.8 16a2 Q [1001 D NOERROR] DS (6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F0B968D0 UDP Rcv 8.8.8.8 16a2 R Q [9081 DR NOERROR] DS (6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F4DB4D00 UDP Snd 8.8.8.8 37f2 Q [1001 D NOERROR] DS (2)co(2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F0CA40F0 UDP Rcv 8.8.8.8 37f2 R Q [9081 DR NOERROR] DS (2)co(2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F4DBFD40 UDP Snd 8.8.8.8 eaa1 Q [1001 D NOERROR] DNSKEY (2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242EFDB2D80 UDP Rcv 8.8.8.8 eaa1 R Q [b081 DR NOERROR] DNSKEY (2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F4DC2950 UDP Snd 8.8.8.8 7e83 Q [1001 D NOERROR] DS (2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F0923990 UDP Rcv 8.8.8.8 7e83 R Q [9081 DR NOERROR] DS (2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F4DBFD40 UDP Snd 8.8.8.8 0082 Q [1001 D NOERROR] DNSKEY (2)co(2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F0CD58A0 UDP Rcv 8.8.8.8 0082 R Q [b081 DR NOERROR] DNSKEY (2)co(2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F4DB4D00 UDP Snd 8.8.8.8 d7e1 Q [1001 D NOERROR] DS (2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242EE4649E0 UDP Rcv 8.8.8.8 d7e1 R Q [9081 DR NOERROR] DS (2)za(0)
2023/02/07 21:50:53 17CC PACKET 00000242F4D9C070 UDP Snd 8.8.8.8 a2e6 Q [1001 D NOERROR] DNSKEY (10)cloudflare(3)NET(0)
2023/02/07 21:50:54 17CC PACKET 00000242F063FDD0 UDP Rcv 8.8.8.8 a2e6 R Q [b081 DR NOERROR] DNSKEY (10)cloudflare(3)NET(0)
2023/02/07 21:50:54 17CC PACKET 00000242F4DB4D00 UDP Snd 8.8.8.8 a3d6 Q [1001 D NOERROR] DS (10)cloudflare(3)NET(0)
2023/02/07 21:50:54 17CC PACKET 00000242F1137890 UDP Rcv 8.8.8.8 a3d6 R Q [b081 DR NOERROR] DS (10)cloudflare(3)NET(0)
2023/02/07 21:50:54 17CC PACKET 00000242F4DBFD40 UDP Snd 8.8.8.8 b3ca Q [1001 D NOERROR] DNSKEY (3)NET(0)
2023/02/07 21:50:54 17CC PACKET 00000242EEDE5990 UDP Rcv 8.8.8.8 b3ca R Q [b081 DR NOERROR] DNSKEY (3)NET(0)
2023/02/07 21:50:54 17CC PACKET 00000242F4DC2950 UDP Snd 8.8.8.8 6e5e Q [1001 D NOERROR] DS (3)NET(0)
2023/02/07 21:50:54 17CC PACKET 00000242F016D0C0 UDP Rcv 8.8.8.8 6e5e R Q [b081 DR NOERROR] DS (3)NET(0)
2023/02/07 21:50:54 17CC PACKET 00000242ED8C9650 UDP Snd 192.168.1.77 fa6d R Q [8281 DR SERVFAIL] DS (3)www(6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:56 17CC PACKET 00000242ED8CC110 UDP Rcv 192.168.1.77 1f52 Q [2001 D NOERROR] NS (3)www(6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:56 17CC PACKET 00000242ED8C9650 UDP Snd 8.8.8.8 6d76 Q [1001 D NOERROR] NS (3)www(6)rsaweb(2)co(2)za(3)cdn(10)cloudflare(3)NET(0)
2023/02/07 21:50:56 17CC PACKET 00000242EE0CE070 UDP Rcv 8.8.8.8 6d76 R Q [b081 DR NOERROR] NS (3)www(6)rsaweb(2)co(2)za(3)cdn(10)cloudflare(3)NET(0)
2023/02/07 21:50:56 17CC PACKET 00000242ED8CC110 UDP Snd 192.168.1.77 1f52 R Q [8081 DR NOERROR] NS (3)www(6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:58 17CC PACKET 00000242EE6699A0 UDP Rcv 192.168.1.77 f63c Q [2001 D NOERROR] A (3)www(6)rsaweb(2)co(2)za(0)
2023/02/07 21:50:58 17CC PACKET 00000242ED8CC110 UDP Snd 8.8.8.8 ded8 Q [1001 D NOERROR] A (3)www(6)rsaweb(2)co(2)za(3)cdn(10)cloudflare(3)NET(0)
2023/02/07 21:50:58 17CC PACKET 00000242EED2A9E0 UDP Rcv 8.8.8.8 ded8 R Q [9081 DR NOERROR] A (3)www(6)rsaweb(2)co(2)za(3)cdn(10)cloudflare(3)NET(0)
2023/02/07 21:50:58 17CC PACKET 00000242EE6699A0 UDP Snd 192.168.1.77 f63c R Q [8081 DR NOERROR] A (3)www(6)rsaweb(2)co(2)za(0)