我拥有一个域名(例如example.com
),并且想要:
- 使用我的公共 DNS自动更新
ext.example.com
(通过脚本,一旦 ISP 提供的 IP 发生变化,该脚本就会进行更新)→ 可行 - 将顶级域名 (
example.com
) 重定向至ext.example.com
) - 使用通配符
*.example.com
指向ext.example.com
为此,我将相关的 DNS 条目设置为 (+ SOA
, NS
)
IN DNAME ext.example.com.
* IN CNAME ext.example.com.
ext 60 IN A 350.299.1.1
当我查询时,ext.example.com
我得到了一个奇怪的答案:递归串联ext
ext.example.com. 3508 IN CNAME ext.ext.example.com.
ext.ext.example.com. 3508 IN CNAME ext.ext.ext.example.com.
ext.ext.ext.example.com. 3508 IN CNAME ext.ext.ext.ext.example.com.
(about 20 such lines in total)
看来比赛是在*.example.com
(CNAME
)而不是ext.example.com
(A
记录)上进行的。
有没有办法强制 DNS 特定性?(即ext.example.com
提供更具体的信息,而不是更通用的通配符)
答案1
这是因为我对事物缺乏了解DNAME
。
我以为它有类似于的功能ALIAS
- 重定向顶级域(不可能CNAME
)。但它没有 - 它重新映射域。
删除它解决了眼前的问题,但不能解决一般问题(如何处理不支持的裸域ALIAS
)
答案2
重定向域名的 Apex 是一个古老的 DNS 限制,并且每年都变得越来越重要。
许多 DNS 供应商都有自己的专有解决方案来解决这一限制(例如 AWS 或 Cloudflare 的扁平 CNAME,或 Neustar 的 ApexAlias 记录)。
但是您可能有兴趣知道,有一个针对该问题的草案解决方案,如果它被整个行业接受,则可能会直接实施到 DNS 中。
请参阅此处的提案草案
https://datatracker.ietf.org/doc/html/draft-ietf-dnsop-svcb-https-01
或者为了更容易阅读,请参阅此处的 Cloudflare 精彩文章
https://blog.cloudflare.com/speeding-up-https-and-http-3-negotiation-with-dns/