假设我在 DNS 中为主机 foo.example.com 定义了一条 A 记录。如果没有人知道 foo.example.com 的存在,但知道 example.com 的存在,那么有人能否以某种方式查询 example.com 的 DNS 记录以返回该名称 foo.example.com?
答案1
答案是视情况而定。如果用户可以猜出名称,例如 www,那么他们可以。如果您使用更深奥的名称,则用户只有在能够执行所谓的区域传输,发送整个域的数据。
大多数名称服务器默认不允许区域传输。您可以在此处测试您的名称服务器:
https://tools.digitalpoint.com/zone-transfer?domain=example.com
答案2
从最终用户的角度来看,不是。DNS 只会返回特定主机名(或反向查找的 IP 地址)的结果。
然而,许多 DNS 服务器支持称为区域传输,基本上可以将所有区域文件数据转储到另一台机器。
通过这样做,服务器可以让所有其他 DNS 服务器拥有完整的区域文件,而不是将解析请求委托给它,从而节省一些负载。
实际上,大多数 DNS 管理员出于明显(安全)原因不会允许区域传输。
如果您想自己尝试,请使用nslookup
(在 Windows 中):
//#requesting for google.com dns server
set q=ns
google.com
#response is: primary name server = ns1.google.com
server ns1.google.com
ls -d google.com //#this is the zone transfer request
更多维基百科