我有托管在托管服务提供商处的服务器,它们还托管我的域名的 DNS 记录。现在我想添加由我自己的 DNS 服务解析的子域。例如:
- 托管服务提供商的名称服务器知道 IP 地址
econemon.com
- 我的一台服务器知道 IP 地址
ftp.econemon.com
还,
- 未知或未定义的子域应路由到与父域相同的 IP
- 在我的 DNS 服务失败时,如果请求都转到与关联的 IP 地址会很好
econemon.com
,但我不确定它应该如何工作。
现在,我已经通读了关于 DNS 的 Wikipedia 文章以了解我的知识,但让我感到困惑的部分是:客户端如何知道要向哪个服务器请求 IP 地址ftp.econemon.com
?它是否从主机获取该信息?如果是这样,我是否必须在那里注册子域(然后我需要我的名称服务器)?
如果您想为您的域的一部分委派权限,您将需要向层次结构添加另一个级别。
当递归 DNS 服务器请求 ftp.econemon.com 的地址时,它会经过多个步骤。首先,它会询问其中一个根服务器,该根服务器将回复 .com 域的名称服务器(此步骤可能会被缓存并且很少执行)。然后它将询问 .com 服务器,它们将使用 econemon.com 域的名称服务器进行响应。最后它会向这些服务器询问 ftp.econemon.com 的地址记录。
理论上,您可以简单地将 ftp.econemon.com 添加为父区域中的 NS 条目
例如:
然后在您的名称服务器中创建 ftp.econemon.com 作为区域。但是如果你这样做,你将不得不为每台服务器创建一个新区域。您可能想要做的是要求您的提供商添加一个委派的子域。
例如:
然后,您可以将 services.econemon.com 作为一个区域添加到您的名称服务器上,并在此单个区域中添加您需要的新条目。
如果您真的也需要短名称,那么添加 CNAME 记录应该不会太麻烦,这样 ftp.econemon.com 的规范名称是 ftp.services.econemon.com,这样您就可以随时更改 IP 地址您希望并允许用户使用短名称。
您需要为 ftp.econemon.com 添加一个指向您自己的 DNS 服务器的 NS 条目。当客户端想要解析 something.ftp.econemon.com 时,它会询问您的提供商 DNS,它会回答它可以在您自己的服务器上解析。一个例子:
在 .econemon.com 之前拥有任何东西。要工作,您可以使用通配符记录 (*)。
但是对于像 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
我不确定委派是否真的有用,除非您真的想允许其他人或组织管理子域。