假设我有:
- 注册
myapp.tld
域名并ns.some.tld
设置名称服务器 - DigitalOcean 液滴:
foo.myapp.tld
bar.myapp.tld
- Cloudflare 区域:
myapp.tld
es.myapp.tld
de.myapp.tld
- 其他特定语言的子域名
我需要 DigitalOcean 作为主要名称服务器,并将部分区域(包含根域,这里最有疑问)委托给 Cloudflare。
我应该如何设置名称服务器和 DNS 记录来实现这一点?类似这样的方法可行吗:
- 名称服务器设置为
ns1.digitalocean.com.
(在注册商的配置中) NS
DigitalOcean 中的记录:
按照什么顺序来解析?NS myapp.tld ivy.ns.cloudflare.com. NS *.myapp.tld ivy.ns.cloudflare.com. NS foo.myapp.tld ns1.digitalocean.com.
foo
先子域名再通配符?A
CF 和 DO 中用于处理受支持的主机名的记录
提前致谢。我是 DNS 方面的新手,我需要迁移一个具有与上述结构类似的应用程序。
答案1
总的来说,我怀疑这个问题是出于某种误解。
你有什么理由要像这样在两个 DNS 服务之间进行拆分吗?
DNS 是一棵树,其中区域由父区域定义,父区域将该区域内的某个名称委托给一组名称服务器,新区域
从这里开始。您不能在自己的区域内委托区域的顶点。如果您希望将区域委托给其他地方,您首先不会将区域放在其他地方,而是根据区域的实际位置更改父区域中的委托。
即,如果您有区域,myapp.example
您可以从您的区域内委派foo.myapp.example
(这意味着foo.myapp.example
它下面的所有内容都是新区域),但不能委派myapp.example
它自己(这必须从父区域完成)。
从您的描述来看,我的印象是您实际上想要的是委托myapp.example
给 Cloudflare,然后再委托foo.myapp.example
给 DigitalOcean。这在技术上是可行的,而且如果委托给 DigitalOcean 确实有用的话,这确实有意义。
但是,我甚至会质疑这种设置,因为不清楚委托给 DigitalOcean 是否有任何用途。
您可能只需要委托myapp.example
给 Cloudflare 就可以了。您通常不需要在 DNS 中进行委托,因为您对不同的主机使用不同的托管服务提供商等。
您只需在 Cloudflare 端添加例如地址记录 ( A
/ AAAA
),引用您的 DigitalOcean 主机的地址,例如foo.myapp.example
解析到 DigitalOcean 主机。
原始计划中,提供商特有的进一步复杂化是 Cloudflare 仅允许您在其系统中设置可注册域名(根据政策,这不是固有的技术限制)。因此,您可以myapp.example
在 Cloudflare 中设置域名,但不能设置域名test.myapp.example
,因为后者本身不可注册。