如果我们访问未注册的域名,例如http://no-domain-here.ph/我们从 ph 注册表获取一个网页
但是,此域名没有任何关联的 ns 记录。这是怎么回事?
答案1
这取决于。
这在很大程度上取决于你的浏览器使用的递归名称服务器,因为它可能会撒谎。此外,如今越来越多的浏览器(如 Firefox 或 Google Chrome)能够使用 DoH(基于 HTTPS 的 DNS),因此可以使用任何外部服务器进行 DNS 解析
因此,无论你使用什么 DNS 解析器,如果域名不存在,它都会欺骗你,并做出响应,让你的浏览器直接访问某个特定页面。浏览器中的各种扩展或配置项也会导致同样的行为。
但对于您的具体示例,它可以起作用,因为 .PH 的注册表在其区域中有一个通配符。
您可以轻松检查:
$ dig ph. NS +short
1.ns.ph.
ns2.cuhk.edu.hk.
ph.communitydns.net.
ns4.apnic.net.
$ dig \*.ph A @1.ns.ph. +noall +ans +nottlunits
*.ph. 300 IN A 45.79.222.138
此通配符意味着,无论您查询哪个名称,如果没有其他记录(真实注册的名称),您将获得此 IP 地址。请注意,通配符仅适用于A
:
$ dig \*.ph AAAA @1.ns.ph. +noall +ans +nottlunits
(no data)
$ dig \*.ph NS @1.ns.ph. +noall +ans +nottlunits
(no data)
这种情况只可能发生在 ccTLD 中(但很少有人这样做),因为在过去臭名昭著的 Verisign SiteFinder“实验”之后,ICANN 规则禁止在 gTLD 中这样做。
当这种情况发生时,它不仅会影响浏览器和 HTTP 流量,还会影响一切。这就是问题的根源:假设有一个有效的example.ph
域,您必须发送高度敏感的信息(并且不加密消息),[email protected]
但您输入了错误并发送到[email protected]
这个exanple.ph
域不存在的地方...但它会解析,并且根据 SMTP 规则,即使没有MX
记录,消息也会发送到exanple.ph
解析到的 IP 地址(通配符),然后取决于 MTA 是否在那里监听。
.ws
ccTLD(是的,它是一个国家)具有相同类型的通配符:
$ dig ws. NS +short
ns5.dns.ws.
us3.dns.ws.
us4.dns.ws.
a.dns.ws.
ns2.dns.ws.
s.dns.ws.
$ dig @s.dns.ws \*.ws. A +noall +ans +nottlunits
*.ws. 300 IN A 64.70.19.203