是否可以获取具有 NS 记录的域的 TXT 记录值

是否可以获取具有 NS 记录的域的 TXT 记录值

我正在编写一个应用程序,让用户可以在他们的域上托管我们的页面。为此,他们需要在他们的 DNS 中配置几个记录。一个是具有唯一值的 TXT 记录,仅用于证明所有权。另一个用于将流量引导到我们的网站,为此我们有三个选项。

CNAME 记录可以工作,但不能与 TXT 记录结合使用(根据 RFC,CNAME 必须是唯一的记录)。A 记录可以工作,并且也允许使用 TXT 记录,但我们希望避免直接使用 IP,因为这样很难迁移到其他 IP。

因此,我们正在研究指向我们 DNS 的 NS 记录。问题是,虽然可以配置一个同时具有 NS 记录和 TXT 记录的域,但当您在原始域上查询 TXT 记录时,您什么也得不到,我认为这是因为 NS 记录。TXT 记录查询命中客户的域,该域显示“我的名称服务器在那里”,而该名称服务器没有 TXT 记录。

有没有办法将 NS 记录和 TXT 记录合并到一个域上,并且仍然能够从原始服务器获取 TXT 记录的值?

答案1

这是我最终为 Gitlab Pages 做的事情。可能适用于 heroku,也可能适用于您的应用程序 @MikeSnare。Necro,但在这里发布它是因为 Gitlab Page 的解决方案不太理想,而且谷歌搜索没有任何帮助。

挑战:

  • 用于所有权验证的 TXT 记录:您需要在自己的子域上发布一条 TXT 记录,并分配一些预期的唯一字符串。对于 gitlab,如下所示yourapp.example.com. TXT unique_nonsense_here
  • 弹性域查找:您不能将CNAMETXT记录相结合,并且使用ALIAS会泄露您的整个域(无意义)。A记录很脆弱,并且NS正如您所指出的,记录不会将您的TXT记录传播到原始域。

动态 DNS 作为解决方法

  1. 动态 DNS 设置:为您的子域名配置动态 DNS 记录。
  2. CI/CD 管道或脚本:设置 CI 管道或脚本以定期查询远程子域的 IP,并使用 ddns 凭据更新动态 DNS 记录。(例如,对于yourapp.example.com CNAME yourapp.gitlab.io.,您可以像 一样dig yourapp.gitlab.io A将生成的 A 记录发布为 的 IP yourapp.example.com
  3. 验证和测试:确保 TXT 记录对于域验证仍然有效,并且子域正确解析为您托管的内容的 IP。

相关内容