如何为动态 IP 地址后面的子域名设置 DNS 服务器?

如何为动态 IP 地址后面的子域名设置 DNS 服务器?

我正在开发一种使用 ACME 协议管理 TLS 证书的安全/隔离服务。服务器需要使用特定子域上的 TXT 记录进行响应。此服务器不会为公众提供服务,但需要公开可用。

CNAME记录是被允许的并且可以被跟踪。

托管动态记录的 TLS 管理服务器TXT正在运行 Bind9,并且位于动态 IP 是唯一选项的地方。

域的主 DNS 记录位于注册商的公共 DNS 服务器上。我们已成功设置使用动态 DNS 更新的子域,但动态 DNS 提供商似乎不允许NS记录。

因此在注册处我们有:

domain.com          A   xx.xx.xx.xx
www.domain.com      A   xx.xx.xx.xx
dynamic.domain.com  NS  dynamic.provider.com

在动态提供程序中,我们有:

dynamic.domain.com  A yy.yy.yy.yy

在我们的 TLS 机器人服务器上,我们以 Bind9 作为权威机构运行,dynamic.domain.com并附带一条文本TXT记录:

test  TXT     "A nice Test."

因此期望的结果是,从互联网上的任何地方,您都应该能够运行dig TXT test.dynamic.domain.com并获取A nice Test.

这似乎是动态 DNS 提供商失败了:

dig TXT test.dynamic.domain.com

只是给出:

;; AUTHORITY SECTION:
dynamic.domain.com. 2208    IN  SOA dynamic.provider.com.

NS唯一的方法是在动态 DNS 提供商处设置记录(即切换到支持NS记录的提供商或自行设置)吗?或者是否有使用CNAME记录或A记录的变通方法来实现此目的?

答案1

你不需要。说真的。这很成问题

如果有需要,有两种可能的解决方法:

  • 使用 vpn 代理 VPS。我也遇到过类似的情况,我的所有流量都通过美国代理服务器路由。
  • 使用 cloudflare 零信任隧道。这本质上是您在本地运行的网关,用于将出站连接到 cloudflare。

在您的情况下:场景 1 - 我每月支付 7 美元购买 mikrotik vps。

答案2

我想出了如何让它发挥作用:

您需要两个子域名:一个用作动态A记录,一个指向内部 DNS 服务。两个子域名均NS在注册商处获取记录。

因此在注册处,记录如下所示:

CNAME _acme-challenge.domain.com => tls.robert.domain.com
NS    dynamic.domain.com => dynamic.provider.nameservers
NS    robert.domain.com => ns.dynamic.domain.com

在动态提供程序处:

A ns.dynamic.domain.com => yy.yy.yy.yy (dynamic IP)

在 TLS 机器人服务器上,在 Bind 中:

$ORIGIN robert.domain.com.
$TTL 604800     ; 1 week
robert.domain.com.  IN SOA  robert.domain.com. domains.domain.com. (
                                21         ; serial
                                604800     ; refresh (1 week)
                                86400      ; retry (1 day)
                                2419200    ; expire (4 weeks)
                                604800     ; minimum (1 week)
                                )
        NS      ns.dynamic.domain.com. ; Dynamic A record to self
tls     TXT     "A nice Test."

使用该设置:

dig TXT _acme-challenge.domain.com

生成:

tls.robert.domain.com. 14199 IN TXT "A nice Test."

...来自任何地方。

更新:之前的小问题已修复,上述答案也已编辑。不再有任何警告。我欢迎对任何潜在问题提出建设性反馈。

答案3

要为动态 IP 上的子域名设置 DNS 服务器,请使用动态 DNS 服务。注册提供商,并在您的服务器上安装其客户端以动态更新 IP。配置您的 DNS 记录以将子域名指向动态 DNS 主机名。这可确保您的子域名保持连接,即使 IP 地址发生变化

相关内容