我的服务器托管在托管提供商处,他们还托管我的域名的 DNS 记录。现在我想添加由我自己的 DNS 服务解析的子域名。例如:
- 托管服务提供商的名称服务器知道
econemon.com
- 我的一个服务器知道
ftp.econemon.com
还,
- 未知或未定义的子域名应路由到与父域名相同的 IP
- 当我的 DNS 服务出现故障时,如果所有请求都转到与 关联的 IP 地址
econemon.com
,那就太好了,但我不确定它应该如何工作。
现在,我已经阅读了有关 DNS 的 Wikipedia 文章,以重温我的知识,但让我感到困惑的是:客户端如何知道要向哪个服务器请求 IP 地址ftp.econemon.com
?它是从托管商那里获取该信息吗?如果是这样,我是否必须在那里注册子域名(那么我需要名称服务器做什么)?
答案1
如果您想委托您域名的某个部分的权限,那么您将需要在层次结构中添加另一个级别。
当递归 DNS 服务器请求 ftp.econemon.com 的地址时,它会执行多个步骤。首先,它会请求其中一个根服务器,该根服务器将回复 .com 域的名称服务器(此步骤可能会被缓存,并且很少执行)。然后,它会请求 .com 服务器,这些服务器将回复 econemon.com 域的名称服务器。最后,它会向这些服务器请求 ftp.econemon.com 的地址记录。
理论上,你可以简单地将 ftp.econemon.com 添加为父区域中的 NS 条目
例如:
服务 NS ns1.econemon.com。 ns1 A 192.0.2.1
然后在您的名称服务器中创建 ftp.econemon.com 作为区域。但是如果您这样做,您将必须为每个服务器创建一个新区域。您可能想要做的是要求您的提供商添加一个委托子域。
例如:
服务 NS ns1.services.econemon.com。 服务 NS ns2.services.econemon.com。 ns1.服务 A 192.0.2.1 ns2.services A 192.0.2.2
然后,您可以在名称服务器上将 services.econemon.com 添加为区域,并根据需要在此单个区域中添加新条目。
如果您确实也需要短名称,那么添加 CNAME 记录应该不会有太多麻烦,例如 ftp.econemon.com 有一个规范名称 ftp.services.econemon.com,这样您就可以随时更改 IP 地址,并允许用户使用短名称。
ftp.econemon.com。CNAME ftp.services.econemon.com。
答案2
您需要为 ftp.econemon.com 添加一个指向您自己的 DNS 服务器的 NS 条目。当客户端想要解析某个内容时,ftp.econemon.com 会询问您的提供商 DNS,提供商 DNS 会回答说可以在您自己的服务器上解析。例如:
ftp.econemon.com. IN NS myownns.econemon.com.
myownns.econemon.com. IN A YOUR_DNS_SERVER_IP
为了使 .econemon.com. 之前的任何内容正常工作,您可以使用通配符记录 (*)。
答案3
但对于像 ftp.econemon.com 这样的域名,您可能不需要委派任何内容。像 ftp.econemon.com 这样的域名通常是主机名而不是子域。如果是这种情况,只需为其添加 A 记录即可。
ftp.econemon.com. IN A 192.168.1.1
您还可以添加带有点的 A 记录,例如:
ftp.something.econemon.com. IN A 192.168.1.3
如果 DNS 已绑定,则可以使用通配符,例如:
*.something.econemon.com. IN A 192.168.1.3
我不确定委派是否真的有用,除非你实际上想允许其他人或组织来管理子域。